Skip to content
This repository has been archived by the owner on Feb 15, 2022. It is now read-only.

noop strategy: readme/links/list #1062

Merged
merged 1 commit into from
Jan 6, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 102 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,29 +269,80 @@ and also:
```
zenbot list-strategies

cci_srsi
description:
Stochastic CCI Strategy
options:
--period=<value> period length, same as --period_length (default: 20m)
--period_length=<value> period length, same as --period (default: 20m)
--min_periods=<value> min. number of history periods (default: 30)
--ema_acc=<value> sideways threshold (0.2-0.4) (default: 0.03)
--cci_periods=<value> number of RSI periods (default: 14)
--rsi_periods=<value> number of RSI periods (default: 14)
--srsi_periods=<value> number of RSI periods (default: 9)
--srsi_k=<value> %K line (default: 5)
--srsi_d=<value> %D line (default: 3)
--oversold_rsi=<value> buy when RSI reaches or drops below this value (default: 18)
--overbought_rsi=<value> sell when RSI reaches or goes above this value (default: 85)
--oversold_cci=<value> buy when CCI reaches or drops below this value (default: -90)
--overbought_cci=<value> sell when CCI reaches or goes above this value (default: 140)
--constant=<value> constant (default: 0.015)
If you have questions about this strategy, contact me... @talvasconcelos

crossover_vwap
description:
Estimate trends by comparing "Volume Weighted Average Price" to the "Exponential Moving Average".
options:
--period=<value> period length, same as --period_length (default: 120m)
--period_length=<value> period length, same as --period (default: 120m)
--emalen1=<value> Length of EMA 1 (default: 30)
--smalen1=<value> Length of SMA 1 (default: 108)
--smalen2=<value> Length of SMA 2 (default: 60)
--vwap_length=<value> Min periods for vwap to start (default: 10)
--vwap_max=<value> Max history for vwap. Increasing this makes it more sensitive to short-term changes (default: 8000)

dema
description:
Buy when (short ema > long ema) and sell when (short ema < long ema).
options:
--period=<value> period length (default: 1h)
--min_periods=<value> min. number of history periods (default: 21)
--ema_short_period=<value> number of periods for the shorter EMA (default: 10)
--ema_long_period=<value> number of periods for the longer EMA (default: 21)
--up_trend_threshold=<value> threshold to trigger a buy signal (default: 0)
--down_trend_threshold=<value> threshold to trigger a sold signal (default: 0)
--overbought_rsi_periods=<value> number of periods for overbought RSI (default: 9)
--overbought_rsi=<value> sold when RSI exceeds this value (default: 80)
--noise_level_pct=<value> do not trade when short ema is with this % of last short ema (default: 2)

dema
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double Entry here?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

description:
Buy when (short ema > long ema) and sell when (short ema < long ema).
options:
--period=<value> period length (default: 1h)
--min_periods=<value> min. number of history periods (default: 21)
--ema_short_period=<value> number of periods for the shorter EMA (default: 10)
--ema_long_period=<value> number of periods for the longer EMA (default: 21)
--up_trend_threshold=<value> threshold to trigger a buy signal (default: 0)
--down_trend_threshold=<value> threshold to trigger a sold signal (default: 0)
--overbought_rsi_periods=<value> number of periods for overbought RSI (default: 9)
--overbought_rsi=<value> sold when RSI exceeds this value (default: 80)

forex_analytics
description:
Apply the trained forex analytics model.
options:
--modelfile=<value> modelfile (generated by running `train`), should be in models/ (default: none)
--period=<value> period length of a candlestick (default: 30m) (default: 30m)
--period=<value> period length of a candlestick (default: 30m), same as --period_length (default: 30m)
--period_length=<value> period length of a candlestick (default: 30m), same as --period (default: 30m)
--min_periods=<value> min. number of history periods (default: 100)

macd
description:
Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).
options:
--period=<value> period length (default: 1h)
--period=<value> period length, same as --period_length (default: 1h)
--period_length=<value> period length, same as --period (default: 1h)
--min_periods=<value> min. number of history periods (default: 52)
--ema_short_period=<value> number of periods for the shorter EMA (default: 12)
--ema_long_period=<value> number of periods for the longer EMA (default: 26)
Expand All @@ -305,23 +356,32 @@ neural
description:
Use neural learning to predict future price. Buy = mean(last 3 real prices) < mean(current & last prediction)
options:
--period=<value> period length - make sure to lower your poll trades time to lower than this value (default: 5s)
--period=<value> period length - make sure to lower your poll trades time to lower than this value. Same as --period_length (default: 1m)
--period_length=<value> period length - make sure to lower your poll trades time to lower than this value. Same as --period (default: 1m)
--activation_1_type=<value> Neuron Activation Type: sigmoid, tanh, relu (default: sigmoid)
--neurons_1=<value> Neurons in layer 1 Shoot for atleast 100 (default: 5)
--depth=<value> Rows of data to predict ahead for matches/learning (default: 3)
--neurons_1=<value> Neurons in layer 1 Shoot for atleast 100 (default: 1)
--depth=<value> Rows of data to predict ahead for matches/learning (default: 1)
--selector=<value> Selector (default: Gdax.BTC-USD)
--min_periods=<value> Periods to calculate learn from (default: 100)
--min_predict=<value> Periods to predict next number from (default: 10)
--momentum=<value> momentum of prediction (default: 0)
--decay=<value> decay of prediction, use teeny tiny increments (default: 0)
--threads=<value> Number of processing threads you'd like to run (best for sim) (default: 8)
--learns=<value> Number of times to 'learn' the neural network with past data (default: 100)
--min_periods=<value> Periods to calculate learn from (default: 1000)
--min_predict=<value> Periods to predict next number from (default: 1)
--momentum=<value> momentum of prediction (default: 0.9)
--decay=<value> decay of prediction, use teeny tiny increments (default: 0.1)
--threads=<value> Number of processing threads you'd like to run (best for sim) (default: 1)
--learns=<value> Number of times to 'learn' the neural network with past data (default: 2)

noop
description:
Just do nothing. Can be used to e.g. generate candlesticks for training the genetic forex strategy.
options:
--period=<value> period length, same as --period_length (default: 30m)
--period_length=<value> period length, same as --period (default: 30m)

rsi
description:
Attempts to buy low and sell high by tracking RSI high-water readings.
options:
--period=<value> period length (default: 2m)
--period=<value> period length, same as --period_length (default: 2m)
--period_length=<value> period length, same as --period (default: 2m)
--min_periods=<value> min. number of history periods (default: 52)
--rsi_periods=<value> number of RSI periods
--oversold_rsi=<value> buy when RSI reaches or drops below this value (default: 30)
Expand All @@ -334,7 +394,8 @@ sar
description:
Parabolic SAR
options:
--period=<value> period length (default: 2m)
--period=<value> period length, same as --period_length (default: 2m)
--period_length=<value> period length, same as --period (default: 2m)
--min_periods=<value> min. number of history periods (default: 52)
--sar_af=<value> acceleration factor for parabolic SAR (default: 0.015)
--sar_max_af=<value> max acceleration factor for parabolic SAR (default: 0.3)
Expand All @@ -343,7 +404,8 @@ speed
description:
Trade when % change from last two 1m periods is higher than average.
options:
--period=<value> period length (default: 1m)
--period=<value> period length, same as --period_length (default: 1m)
--period_length=<value> period length, same as --period (default: 1m)
--min_periods=<value> min. number of history periods (default: 3000)
--baseline_periods=<value> lookback periods for volatility baseline (default: 3000)
--trigger_factor=<value> multiply with volatility baseline EMA to get trigger value (default: 1.6)
Expand All @@ -352,7 +414,8 @@ srsi_macd
description:
Stochastic MACD Strategy
options:
--period=<value> period length (default: 30m)
--period=<value> period length, same as --period_length (default: 30m)
--period_length=<value> period length, same as --period (default: 30m)
--min_periods=<value> min. number of history periods (default: 200)
--rsi_periods=<value> number of RSI periods
--srsi_periods=<value> number of RSI periods (default: 9)
Expand All @@ -370,7 +433,8 @@ stddev
description:
Buy when standard deviation and mean increase, sell on mean decrease.
options:
--period=<value> period length, set poll trades to 100ms, poll order 1000ms (default: 100ms)
--period=<value> period length, set poll trades to 100ms, poll order 1000ms. Same as --period_length (default: 100ms)
--period_length=<value> period length, set poll trades to 100ms, poll order 1000ms. Same as --period (default: 100ms)
--trendtrades_1=<value> Trades for array 1 to be subtracted stddev and mean from (default: 5)
--trendtrades_2=<value> Trades for array 2 to be calculated stddev and mean from (default: 53)
--min_periods=<value> min_periods (default: 1250)
Expand All @@ -379,7 +443,8 @@ ta_ema
description:
Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.
options:
--period=<value> period length (default: 10m)
--period=<value> period length, same as --period_length (default: 10m)
--period_length=<value> period length, same as --period (default: 10m)
--min_periods=<value> min. number of history periods (default: 52)
--trend_ema=<value> number of periods for trend EMA (default: 20)
--neutral_rate=<value> avoid trades if abs(trend_ema) under this float (0 to disable, "auto" for a variable filter) (default: 0.06)
Expand All @@ -390,7 +455,8 @@ ta_macd
description:
Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).
options:
--period=<value> period length (default: 1h)
--period=<value> period length, same as --period_length (default: 1h)
--period_length=<value> period length, same as --period (default: 1h)
--min_periods=<value> min. number of history periods (default: 52)
--ema_short_period=<value> number of periods for the shorter EMA (default: 12)
--ema_long_period=<value> number of periods for the longer EMA (default: 26)
Expand All @@ -404,7 +470,8 @@ trend_ema (default)
description:
Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.
options:
--period=<value> period length (default: 2m)
--period=<value> period length, same as --period_length (default: 2m)
--period_length=<value> period length, same as --period (default: 2m)
--min_periods=<value> min. number of history periods (default: 52)
--trend_ema=<value> number of periods for trend EMA (default: 26)
--neutral_rate=<value> avoid trades if abs(trend_ema) under this float (0 to disable, "auto" for a variable filter) (default: auto)
Expand All @@ -415,17 +482,22 @@ trendline
description:
Calculate a trendline and trade when trend is positive vs negative.
options:
--period=<value> period length (default: 10s)
--trendtrades_1=<value> Number of trades to load into data (default: 100)
--lastpoints=<value> Number of short points at beginning of trendline (default: 3)
--avgpoints=<value> Number of long points at end of trendline (default: 53)
--min_periods=<value> Minimum trades to backfill with (trendtrades_1 + about ~10) (default: 1250)
--period=<value> period length (default: 30s)
--period_length=<value> period length (default: 30s)
--lastpoints=<value> Number of trades for short trend average (default: 100)
--avgpoints=<value> Number of trades for long trend average (default: 1000)
--lastpoints2=<value> Number of trades for short trend average (default: 10)
--avgpoints2=<value> Number of trades for long trend average (default: 100)
--min_periods=<value> Basically avgpoints + a BUNCH of more preroll periods for anything less than 5s period (default: 15000)
--markup_sell_pct=<value> test (default: 0)
--markdown_buy_pct=<value> test (default: 0)

trust_distrust
description:
Sell when price higher than $sell_min% and highest point - $sell_threshold% is reached. Buy when lowest price point + $buy_threshold% reached.
options:
--period=<value> period length (default: 30m)
--period=<value> period length, same as --period_length (default: 30m)
--period_length=<value> period length, same as --period (default: 30m)
--min_periods=<value> min. number of history periods (default: 52)
--sell_threshold=<value> sell when the top drops at least below this percentage (default: 2)
--sell_threshold_max=<value> sell when the top drops lower than this max, regardless of sell_min (panic sell, 0 to disable) (default: 0)
Expand All @@ -445,6 +517,10 @@ While the `trade` command is running, Zenbot will respond to these keypress comm

These commands can be used to override what the bot is doing. Or, while running with the `--manual` flag, this allows you to make all the trade decisions yourself.

### noop strategy

If you want to use the bot without it trading for you, but just use it for the balance overview and manual trades, you can start the bot with `--strategy noop`, the bot will not trade automatically.

## Conf/argument override files

To run `trade` or `sim` commands with a pre-defined set of options, use:
Expand All @@ -467,7 +543,7 @@ c.oversold_rsi_periods = 20
c.max_slippage_pct = 10
c.order_adjust_time = 10000
```
## GUI
## GUI
A basic web UI is available at the url stated during startup. This port can be configured in the conf.js or randomly assigned.
In it's infancy, there are a few caveats with the current UI.
- In order to have statistics displayed, they must first be dumped from the CLI. Pressing `D` will refresh the statistics on each refresh of the dashboard.
Expand Down
5 changes: 3 additions & 2 deletions extensions/strategies/noop/_codemap.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
module.exports = {
_ns: 'zenbot',

'strategies.noop': require('./strategy')
}
'strategies.noop': require('./strategy'),
'strategies.list[]': '#strategies.noop'
}