Welcome, Guest |
You have to register before you can post on our site.
|
Online Users |
There are currently 365 online users. » 0 Member(s) | 365 Guest(s)
|
Latest Threads |
Gekko with malware spotte...
Forum: Announcements
Last Post: richersonmichelle
21 minutes ago
» Replies: 190
» Views: 170,134
|
Gekko development status ...
Forum: Announcements
Last Post: kontho
Today, 01:28 AM
» Replies: 1,006
» Views: 931,205
|
Gekko 0.6 released
Forum: Announcements
Last Post: Pharagon
11-23-2024, 10:13 AM
» Replies: 122
» Views: 269,046
|
An official Gekko service...
Forum: Announcements
Last Post: drivemad2
11-22-2024, 07:24 AM
» Replies: 103
» Views: 189,850
|
New Gekko UI in the works
Forum: Announcements
Last Post: clduplicateremover
11-18-2024, 08:21 PM
» Replies: 174
» Views: 227,719
|
How to Soft Reset or Hard...
Forum: General Discussion
Last Post: lucifar
10-07-2021, 07:18 PM
» Replies: 22
» Views: 53,022
|
How to add Binance Future...
Forum: Technical Support
Last Post: Xavier32
10-07-2021, 02:20 PM
» Replies: 47
» Views: 108,388
|
Bittrex Configuration hel...
Forum: Bittrex
Last Post: yirzolusto
10-07-2021, 07:39 AM
» Replies: 6
» Views: 19,116
|
[Question] Why does gekko...
Forum: General Discussion
Last Post: cryptocurrency0
10-06-2021, 01:16 PM
» Replies: 16
» Views: 45,827
|
a couple of technical Que...
Forum: Technical Support
Last Post: mtom78632
10-06-2021, 11:08 AM
» Replies: 25
» Views: 58,579
|
|
|
Disconnected - Something happened to Gekko or ... |
Posted by: dgs2001 - 04-27-2018, 12:34 PM - Forum: Technical Support
- Replies (2)
|
|
Hi All,
Hoping somebody can help me with a networking issue.
I have Gekko working on an Amazon Ubuntu Instance.
I am able to use winSCP to browse the virtual server so I know its all running ok.
I am able to use Amazon AWS Powershell from windows to access the amazon ubuntu instance.
Once connected to Amazon AWS in powershell I am able to run this command
Code: ssh -i C:\Users\User_Name\.ssh\AWS.pem -L3000:localhost:3000 ubuntu@18.my.ip.here
which was taken from - https://github.com/askmike/gekko/issues/1896
The result of this is that Gekko appears to start and run in the powershell window yay
Gekko reports
Code: Serving Gekko UI on https://18.my.ip.here:3000/
Now comes the problem -
If I open a browser window with localhost:3000 the Gekko Background appears but instantly changes to "Disconnected"
This is now driving me nuts, is anybody able to give me a pointer as to whether this is likely to be a setting on my pc? and how do i find out what is causing the disconnection...
Do I need to use the nginx setup?
This is my config -
Code: // This config is used in both the
// frontend as well as the web server.
// see https://github.com/askmike/gekko/blob/stable/docs/installing_gekko_on_a_server.md
const CONFIG = {
headless: true,
api: {
host: '0.0.0.0',
port: 3000,
timeout: 72000000 // 2 minutes
},
ui: {
ssl: true,
host: '18.my.ip.here',
port: 3000,
path: '/'
},
adapter: 'sqlite'
}
if(typeof window === 'undefined')
module.exports = CONFIG;
else
window.CONFIG = CONFIG;
|
|
|
Plugins that emit advice |
Posted by: Kris191 - 04-27-2018, 05:57 AM - Forum: General Discussion
- No Replies
|
|
Hi all,
Quick one apart form the email plugin, which of the other automatically emit advice information?
Telegram you have to request ive figured out
|
|
|
analysis which show weight-loss with PA as a component have shown improvements i |
Posted by: malloyperez - 04-26-2018, 03:45 PM - Forum: General Discussion
- No Replies
|
|
n CV sickness threats,9 progression to T2DM,56 and loss of lluna trim reviewe quantity.10 Importantly, greater CRF levels appear to be safety against loss of lluna trim reviewe quantity in all BMI categories,14 and alter the link of the being overweight paradox. Thus, the current fictional works reveals that overwr is for those with identluna trim reviewied CV diseases. Recent evidence reveals that luna trim review in those with CV sickness, higher BMI stages are associated with better achievements rates compared to those with 'abnormal' amounts.5 This phenomenon which has been known as “the being overweight paradox” has been shown in a variety of CV conditions such as middle failing, hypertension, and middle appropriate diseases.5 Much of these details are epidemiological in characteristics, therefore reverse causation may be an critical facet to consider. More research needed to determine the extent to which the relationships explained
|
|
|
Market Watcher |
Posted by: Kris191 - 04-26-2018, 11:20 AM - Forum: Third Party Software
- Replies (1)
|
|
Hi all,
Just a quick question, has anyone or does anyone know of a program that will watch an exchange and alert when a pair meets set requirements?
I'm thinking of setting parameters looking for a trend and when a asset meets these it informs me to allow me to analyse and decided on a buy or not.
Any ideas on this?
|
|
|
[TUT] STRATEGIE#1 BASSic TULIP RSI TRADER |
Posted by: susitronix - 04-26-2018, 03:50 AM - Forum: Guides
- Replies (10)
|
|
WARNING: THIS IS A GUIDE FOR BEGINNERS FROM A BLOODY BEGINNER AS YOU WILL SEE
PRO-CODERS PLEASE ADD CORRECTIONS SO I CAN LEARN! THANKS TO MIKE
In the following tutorial sequals you can learn:
-how to develop a strategie,
-build some useful tools for our debug purposes
-build a little trend generator
-add a pseudo stoploss (loose halve the bag is better then...)
>>>ONLY START THE SIMULATION WHEN I ASK YOU TO (incomplete snippets wont work)
If you are not to much into electronics/logic/debug...no worries you will learn by the examples,
and with the diffrent code modules you can build your own.
Ask questions AND i strongly recomend to watch some nice youtube java tutorials :
(basic code structure, conventions, operators, statements, var/obj/this.global/arrays!)
Cave of programming
The performance wont be the goal of this tutorals. Its more for educational purpose.
You need a serious code editor that works for you.
after notepad++ and eclipse strugle i use now Visual studio code. perfect love it nice!!
cli == cmd == terminal (command line interface)
bracket convention:
the brackets can be used in three different ways, doing exactly the same
Code: method.check = function(candle)
{
do_something;
}
Code: method.check = function(candle) {
do_something;
}
Code: method.check = function(candle) {do_something;}
to create a comment in the strat use double backlash:
//my comment
for a whole comment-block use asterix+backlash: //the editor will help with colors...
/*
my
comment
block
*/
the = sign-ology
Code: a = b; //basic code convention: the right value will always be moved into the left variable (a value WILL BE LOST)
a = b + c; //on the right we can add operators, do calculations before we move the result into a
if (a == b){ //here the == is a comparator function (is it the same as ???)
do_stuff
}
a = b + c; //the semikolon tells the compiler to do whats before...
a = b + c * x / 3,14; //first it calculates the multiply/divide then the Add/subtract then the result will be moved into a
a = (b + c) * x / 3,14; //first it calculates whats inside the brackets then the result will be moved into a
first we begin with the core of our strategie without eny content:
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var method = {};
method.init = function()
{
}
method.update = function(candle) {
}
method.log = function() {
}
method.check = function(candle)
{
}
module.exports = method;
The compiler needs some basic functions in order to work.
Also the order must be correct:
-init
-update
-log
-check
-export
the log function is not too useful so we have only three main sections:
-init
-update
-check
the export function is only for the compiler, to add our strat to gekko.
Now we begin even smaller and create our first VAR (variable).
This is necessary to initialize the ram since the computer can not place numbers in the air.
A var is a vessel that can hold enything we move inside.
example:
//house would be our object (object based code technique)
house
//house contains...
kitchen, restroom, basement
//kitchen contains...
stove, fridge, sink
//fridge contains...
keg of b...
//when we use that object hirarchy in our code, we would write for keg:
house.kitchen.fridge.keg //(simpified)
now our computer knows where is the keg and therefor thus initialize the ram for us.
if we have a var/number/value we can only use it locally where it is created:
in this example i create a var in [update] and tell the strat in the [check] to display the value in the cli
Code: method.update = function(candle)
{
var myvalue = 0;//here we create/define myvalue as a local object
}
method.check = function(candle) {
log.debug (myvalue); //in here myvalue would not be readable because first we must assign it as a global object
}
Code: method.update = function(candle)
{
var myvalue = 0;//here we create/define myvalue as a local object
this.myvalue = myvalue; //now we make it global by move myvalue into this.myvalue (this. is the global parameter)
}
method.check = function(candle) {
log.debug (this.myvalue); //now it is avilable everywhere in our strat and updated, evertime the code use it somewhere
}
lets create our first var:
since this is the var for my strat i name mine:
our strat:
Code: var trenda = {};
trenda.init = function()
{
}
trenda.update = function(candle) {
}
trenda.log = function() {
}
trenda.check = function(candle)
{
}
module.exports = trenda;
now we add a indicator, fetch the settings from the settings (.toml) and update the indicator before use.
Code: var trenda = {};
trenda.init = function()
{
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function(candle) {
}
trenda.log = function() {
}
trenda.check = function(candle)
{
//update the indicator before using it with the candle data
var resultRSI = this.tulipIndicators.myrsi.result.result;
//now use it...
}
module.exports = trenda;
>>>NOTE: THE INDICATOR WILL AUTOMATICLY FIND THE NECESSARY CANDLE DATA
>>>>>WE ONLY HAVE TO DEFINE THE INPUT LENGTH OF THE AVERAGING
the settings.toml file look like this:
Code: [RSI]
optInTimePeriod = 15
[trsRSI]
high = 70
low = 30
Now its time to save these files to the gekko folder:
use your editor and load a existing gekko strategie.js file from the gekko folder (gekko/strategies/.....)
>select all and delete the content
>>copy/paste my example code strat above
>>>Save as: rename to:
>>>>trendatron_0.js //and save
WARNIG: MY CODE INDENTS HAVE BEEN BIT MESSED UP HERE
JUST: in your editor right-click choose [format document] before save...
use your editor and load a existing gekko strategie.toml file from the gekko folder (gekko/config/strategies/.....)
>select all and delete the content
>>copy/paste my example code user settings above
>>>Save as: rename to:
>>>>trendatron_0.toml
>>>>>Save as type //<<<SELECT TYPE: ALL FILES (SCROLL UP TO FIND IT..!)
We need also to import other variables:
>>we tell gekko where to find the user settings and that we wanna use it in our strat
Code: var config = require ('../core/util.js').getConfig();
add all to our strat //this special vars are placed before the init (like drivers from the op-system of gekko)
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require ('../core/util.js').getConfig();
var trenda = {};
trenda.init = function()
{
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function(candle) {
}
trenda.log = function() {
}
trenda.check = function(candle)
{
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//now use it...
}
module.exports = trenda;
>>>copy/paste the finished code into your editor and safe it
>>>>start gekko user interface in the cli
go to backtest and select:
-Binance
-BTC-USDT
-21 days period
-1 minute candles
-10 minute warmup
-select your strat
>>>>>start backtest...
//NOTE THAT WE WOULD KEEP THESE SETTINGS THROUGOUT OUR DEVELOPEMENT FOR CONSISTENCY
>>>>result = 0.0000<<<<
....what it dos not show enything?!?!?
Allright now we need to create our messurement tools in order to find out what it REALLY does.
its simple:
EVERY FUNCTION WE DESIGN MUST ALSO HAVE ITS OWN DEBUG LINE THAT SHOWS US IN THE CLI:
>>>IF, WHEN, WHAT, AND HOW MUCH DID HAPPEN
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
log.debug('RSI result = ' + resultRSI);
//now use it...
}
module.exports = trenda;
>>>relounch gekko and run new code
now we see the rsi value calculated and displayed on every candle
time to give advice to the trader!
>>>add our first statement:
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
log.debug('RSI result = ' + resultRSI);
//lets trade...
if (resultRSI > this.settings.trsRSI.high) {
this.advice('short');
}
else if (resultRSI < this.settings.trsRSI.low) {
this.advice('long');
}
}
module.exports = trenda;
>>>run the new code
it should display lots of trades and a positive result
the trader recieves the advice from our strat, if the rsi thresholds are reached, and automaticly executes the rest (place order...and more..)
Code: this.advice('short');
nice!
add debug lines and switch-off the unneccessary one simply by commenting it
>>>NOTICE EVERY PART OF CODE CAN BE SWITCHED OFF/ON BY MAKE A COMMENT OUT OF IT
add debug lines that shows/triggers at goShort/goLong and displays the candle.close price
this must be after the long/short event but in the same if-statement...
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
//log.debug('RSI result = ' + resultRSI);
//lets trade...
if (resultRSI > this.settings.trsRSI.high) {
this.advice('short');
log.debug('goShort price.close = ' + this.price.close);
}
else if (resultRSI < this.settings.trsRSI.low) {
this.advice('long');
log.debug('goLong price.close = ' + this.price.close);
}
}
module.exports = trenda;
>>>run new code
>>>>>ERROR oops the cli says:
TypeError: Cannot read property 'close' of undefined
>>>>>>it says in our strat .js at line:40 row:51
ok the candle.close is not defined/initialized yet
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//add candle.close
price =
{
close: 0,//this.candle
};
this.price = price;
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
//log.debug('RSI result = ' + resultRSI);
//lets trade...
if (resultRSI > this.settings.trsRSI.high) {
this.advice('short');
log.debug('goShort price.close = ' + this.price.close);
}
else if (resultRSI < this.settings.trsRSI.low) {
this.advice('long');
log.debug('goLong price.close = ' + this.price.close);
}
}
module.exports = trenda;
>>>no more error but the price.close = 0
we have defined and initialized our price.close but we do not move candle.close into it >>> BEFORE we wanna use it
(candle data are global variables that are beeing updated by the candleBatcher inside gekko)
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//add candle.close
price =
{
close: 0,//this.candle
};
this.price = price;
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update price.close
this.price.close = this.candle.close;
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
//log.debug('RSI result = ' + resultRSI);
//lets trade...
if (resultRSI > this.settings.trsRSI.high) {
this.advice('short');
log.debug('goShort price.close = ' + this.price.close);
}
else if (resultRSI < this.settings.trsRSI.low) {
this.advice('long');
log.debug('goLong price.close = ' + this.price.close);
}
}
module.exports = trenda;
hey are you still here? then you made it grz!
...only one thing for the rsi-bass-strat:
>>>if the if statement does sell/buy, it is maybe still in the rsi threshold trigger region and try to make the same trade till-
the rsi moves out of the trigger region.>>>>>THATS BAD CODE PRACTICE !!!!!
>>>>>>SOLUTION WE ADD DECLARATION
a boolean is like a var >>it can hold a value but only a "1" or "no 1" (0 or 1)
Code: myBoolean = true; //we move true into myBoolean
apply to our strat:
you MUST name all your values in a way that make most sense FOR YOU to work with afterwards
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//add candle.close
price =
{
close: 0,//this.candle
};
this.price = price;
logic =
{
longpos: false
};
this.logic = logic;
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update price.close
this.price.close = this.candle.close;
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
//log.debug('RSI result = ' + resultRSI);
//lets trade...
if (resultRSI > this.settings.trsRSI.high && this.logic.longpos == true) {
this.logic.longpos = false;
this.advice('short');
log.debug('goShort price.close = ' + this.price.close);
}
else if (resultRSI < this.settings.trsRSI.low && this.logic.longpos == false) {
this.logic.longpos = true;
this.advice('long');
log.debug('goLong price.close = ' + this.price.close);
}
}
module.exports = trenda;
>>>in the init we first create/init our globlal object
>>>>in the check section, we block the other state in the if statement
>>>>>in the buy/sell function we set the new state >>>now the buy/sell function is finished-
but on the next candle it CANT FALL BACK
(((THE strategie code will be executed one time per candle)))
in this way we will ALWAYS declair all states in advance for not bouncing back/forth a billion times per second.
>>>>>ITS CALLED BUTTON DEBOUNCE OR DEBOUNCE
(this tiny smart circuit is in every device nowadays, otherways digital buttons/codes would not work well)
still there then we make it more advanced:
>>>we have declared that the boolean must be equal to ==
>>>>THIS IS NOT A GOOD PRACTICE EITHER BECAUSE IF THE BOOLEAN IS NEVER EQUAL TO...THEN IT NEVER HAPPEN
>>>>>WE DECLARE IT WITH NOT
boolean !== false //...IF NOT FALSE THEN...
>>>>>>THIS EXCLUDES THE UNWANTED STATE
>>>>>>>THEREFORE ENY OTHER STATE CAN HAPPEN EXEPT THE UNWANTED ONE
it need little practice to wrap the head around these logic topologies
thought the computer must ALWAYS KNOW WHAT TO DO for not bouncing !!!
>>>>>>>>when the code is lounched then the startup states are most critical
>>>>>>>>>the NOT statement helps alot
Code: /*
Tutorial: trendatron #1
rsi trader
philipp wyler
2018-04-25
*/
var _ = require('lodash');
var log = require('../core/log.js');
var config = require('../core/util.js').getConfig();
var trenda = {};
trenda.init = function () {
//add candle.close
price =
{
close: 0,//this.candle
};
this.price = price;
logic =
{
longpos: false
};
this.logic = logic;
//first fetch settings from .toml
var customRSIsettings = this.settings.RSI;
// define the indicators we need //move the settings into >>>rsi input length
this.addTulipIndicator('myrsi', 'rsi', customRSIsettings);
}
trenda.update = function (candle) {
}
trenda.log = function () {
}
trenda.check = function (candle) {
//update price.close
this.price.close = this.candle.close;
//update the indicator before using it
var resultRSI = this.tulipIndicators.myrsi.result.result;
//add debug line and display the rsi value
//log.debug('RSI result = ' + resultRSI);
//lets trade...
if (resultRSI > this.settings.trsRSI.high && this.logic.longpos !== false) {
this.logic.longpos = false;
this.advice('short');
log.debug('goShort price.close = ' + this.price.close);
}
else if (resultRSI < this.settings.trsRSI.low && this.logic.longpos !== true) {
this.logic.longpos = true;
this.advice('long');
log.debug('goLong price.close = ' + this.price.close);
}
}
module.exports = trenda;
>>>>>the computer knows nothing so we do define everything proper
__________________________________________________________________________________________
this is it for tutorial part one...rsi
the strat looks now very messy and the debug also
in the next tut we create some tools.
|
|
|
Issue/Question about the web UI |
Posted by: Possibilities - 04-25-2018, 07:43 PM - Forum: Technical Discussion
- Replies (4)
|
|
Hey, I recently set up an instance of Gekko on a VPS.
When i use
to start the web interface, and when I close the web interface, nothing saves.
In addition, when I use
Code: node gekko --config config.js
It only opens a CLI.
I have a config.js file with all the settings I need, but the UI won't load the config. The config is only loaded with the node gekko --config config.js command, which only launches a CLI.
I've tried
Code: node gekko --config config.js --ui
But that still doesn't load the config in the UI.
I am wondering if there's a way for the UI to either link to the CLI interface or for the UI to load my config.js.
Any help is appreciated.
|
|
|
BBRSI Stop loss? |
Posted by: bojim - 04-24-2018, 08:53 PM - Forum: Strategy Development
- Replies (12)
|
|
I understand that stop loss is a weakness of Gekko right now, at least from what I've read.
However, hope springs eternal!
Can anyone recommend a stop loss indicator that yields any kind of positive results when testing? Every stop loss strategy/indicator I've tried seems to only make things worse.
BBRSI seems to be the most consistent strategy I've tested so far, but it still has large losses from time to time. A BBRSI_STOPLOSS strat would be great if stop loss remotely worked. It seems that after a stop loss occurs, other indicators in a strat can re-trigger a buy right back into another losing situation. I've tried to modify a stop loss indicator to wait X amount of candles after a stop before allowing other indicators to trigger a buy, but I have yet to see it yield better test results than simply not having a stop loss indicator at all.
Does BBRSI_STOPLOSS exist?
|
|
|
Balance Display |
Posted by: Kris191 - 04-23-2018, 10:44 PM - Forum: Feature Requests
- Replies (2)
|
|
Hi,
One feature i would like to see is a display of current balance of an assets on the exchange or a csv output of trades for people to manipulate, Gryphon created one which worked a treat till Trade class was introduced. Something similar or integration of this would be perfect for those who use multiple exchanges and find logging in a ball ache to check balances.
|
|
|
Tradingview Script |
Posted by: Kris191 - 04-23-2018, 09:32 PM - Forum: Strategy Development
- Replies (6)
|
|
Hi guys,
Does anyone have an open script for tradingview which displays Tommies Bull Bear ADX strat, i want to tinker with one and the only one on tradingview is locked down.
Any help will be greatful.
Thanks
|
|
|
|