Skip to content

Commit 8ea32fa

Browse files
authored
Merge pull request #515 from enarjord/v7.3.14_flags
- replaces coin flags with coin overrides - adds coin overrides to backtest - adds safeguards to prevent bot making duplicate orders - up ccxt version to 4.4.96 - allow selecting subset of objectives for pareto front when using src/pareto.py - remove mimic_backtest_1m_delay feature from live bot - other fixes and improvements
2 parents 6f922e5 + a2b9e8b commit 8ea32fa

31 files changed

+3077
-4113
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
:warning: **Used at one's own risk** :warning:
66

7-
v7.3.13
7+
v7.3.14
88

99

1010
## Overview
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
["BTC", "ETH", "XRP", "BNB", "SOL", "TRX", "DOGE", "ADA", "HYPE", "SUI", "BCH", "LINK", "AVAX", "XLM", "TON", "SHIB", "LTC", "HBAR", "XMR", "BGB", "DOT", "UNI", "AAVE"]

configs/examples/BTC_ETH_XRP_SOL_ADA_long.json

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,65 +6,65 @@
66
"gap_tolerance_ohlcvs_minutes": 120,
77
"start_date": "2020-04-01",
88
"starting_balance": 100000,
9-
"use_btc_collateral": true},
10-
"bot": {"long": {"close_grid_markup_range": 0.004572,
11-
"close_grid_min_markup": 0.002637,
12-
"close_grid_qty_pct": 0.8017,
13-
"close_trailing_grid_ratio": -0.009137,
14-
"close_trailing_qty_pct": 0.716,
15-
"close_trailing_retracement_pct": 0.05841,
16-
"close_trailing_threshold_pct": 0.005497,
17-
"ema_span_0": 359.3,
18-
"ema_span_1": 1364,
9+
"use_btc_collateral": false},
10+
"bot": {"long": {"close_grid_markup_end": 0.001776,
11+
"close_grid_markup_start": 0.01173,
12+
"close_grid_qty_pct": 0.6822,
13+
"close_trailing_grid_ratio": -0.1943,
14+
"close_trailing_qty_pct": 0.8463,
15+
"close_trailing_retracement_pct": 0.03483,
16+
"close_trailing_threshold_pct": 0.0448,
17+
"ema_span_0": 1261,
18+
"ema_span_1": 245.4,
1919
"enforce_exposure_limit": true,
20-
"entry_grid_double_down_factor": 1.692,
21-
"entry_grid_spacing_pct": 0.02693,
22-
"entry_grid_spacing_weight": 0.3481,
23-
"entry_initial_ema_dist": -0.09506,
24-
"entry_initial_qty_pct": 0.006114,
25-
"entry_trailing_double_down_factor": 1.686,
26-
"entry_trailing_grid_ratio": -0.01071,
27-
"entry_trailing_retracement_pct": 0.09015,
28-
"entry_trailing_threshold_pct": 0.06711,
29-
"filter_noisiness_rolling_window": 10.0,
30-
"filter_volume_drop_pct": 0.5,
31-
"filter_volume_rolling_window": 360,
32-
"n_positions": 5,
33-
"total_wallet_exposure_limit": 2,
34-
"unstuck_close_pct": 0.007887,
35-
"unstuck_ema_dist": -0.07748,
36-
"unstuck_loss_allowance_pct": 0.01884,
37-
"unstuck_threshold": 0.4216},
38-
"short": {"close_grid_markup_range": 0,
39-
"close_grid_min_markup": 0.001,
20+
"entry_grid_double_down_factor": 2.036,
21+
"entry_grid_spacing_pct": 0.02686,
22+
"entry_grid_spacing_weight": 0.1112,
23+
"entry_initial_ema_dist": -0.09716,
24+
"entry_initial_qty_pct": 0.007674,
25+
"entry_trailing_double_down_factor": 1.543,
26+
"entry_trailing_grid_ratio": -0.02016,
27+
"entry_trailing_retracement_pct": 0.02493,
28+
"entry_trailing_threshold_pct": 0.04925,
29+
"filter_noisiness_rolling_window": 162.1,
30+
"filter_volume_drop_pct": 0.7968,
31+
"filter_volume_rolling_window": 2605,
32+
"n_positions": 4.528,
33+
"total_wallet_exposure_limit": 1.908,
34+
"unstuck_close_pct": 0.06182,
35+
"unstuck_ema_dist": -0.07028,
36+
"unstuck_loss_allowance_pct": 0.01812,
37+
"unstuck_threshold": 0.447},
38+
"short": {"close_grid_markup_end": 0.001,
39+
"close_grid_markup_start": 0.001,
4040
"close_grid_qty_pct": 0.05,
41-
"close_trailing_grid_ratio": 0,
41+
"close_trailing_grid_ratio": -1,
4242
"close_trailing_qty_pct": 0.05,
4343
"close_trailing_retracement_pct": 0.0001,
44-
"close_trailing_threshold_pct": 0,
44+
"close_trailing_threshold_pct": -0.01,
4545
"ema_span_0": 200,
4646
"ema_span_1": 200,
4747
"enforce_exposure_limit": true,
4848
"entry_grid_double_down_factor": 0.01,
4949
"entry_grid_spacing_pct": 0.001,
5050
"entry_grid_spacing_weight": 0,
51-
"entry_initial_ema_dist": 0,
51+
"entry_initial_ema_dist": -0.1,
5252
"entry_initial_qty_pct": 0.004,
5353
"entry_trailing_double_down_factor": 0.01,
54-
"entry_trailing_grid_ratio": 0,
54+
"entry_trailing_grid_ratio": -1,
5555
"entry_trailing_retracement_pct": 0.0001,
56-
"entry_trailing_threshold_pct": 0,
56+
"entry_trailing_threshold_pct": -0.01,
5757
"filter_noisiness_rolling_window": 10,
5858
"filter_volume_drop_pct": 0.5,
5959
"filter_volume_rolling_window": 360,
6060
"n_positions": 0,
61-
"total_wallet_exposure_limit": 0.01,
61+
"total_wallet_exposure_limit": 0,
6262
"unstuck_close_pct": 0.001,
63-
"unstuck_ema_dist": 0,
63+
"unstuck_ema_dist": -0.1,
6464
"unstuck_loss_allowance_pct": 0.001,
6565
"unstuck_threshold": 0.4}},
66-
"live": {"approved_coins": {"long": ["BTC", "ETH", "XRP", "ADA", "SOL"],
67-
"short": ["BTC", "ETH", "XRP", "ADA", "SOL"]},
66+
"live": {"approved_coins": {"long": ["ADA", "ETH", "BTC", "SOL", "XRP"],
67+
"short": ["ADA", "ETH", "BTC", "SOL", "XRP"]},
6868
"auto_gs": true,
6969
"coin_flags": {},
7070
"empty_means_all_approved": true,
@@ -78,77 +78,80 @@
7878
"max_n_cancellations_per_batch": 5,
7979
"max_n_creations_per_batch": 3,
8080
"max_n_restarts_per_day": 10,
81-
"minimum_coin_age_days": 450,
81+
"mimic_backtest_1m_delay": false,
82+
"minimum_coin_age_days": 365,
8283
"ohlcvs_1m_rolling_window_days": 4,
8384
"ohlcvs_1m_update_after_minutes": 10,
8485
"pnls_max_lookback_days": 30,
8586
"price_distance_threshold": 0.002,
8687
"time_in_force": "good_till_cancelled",
8788
"user": "bybit_01"},
88-
"optimize": {"bounds": {"long_close_grid_markup_range": [0, 0.03],
89-
"long_close_grid_min_markup": [0.001, 0.03],
89+
"optimize": {"bounds": {"long_close_grid_markup_end": [0.001, 0.03],
90+
"long_close_grid_markup_start": [0.001, 0.03],
9091
"long_close_grid_qty_pct": [0.05, 1],
9192
"long_close_trailing_grid_ratio": [-1, 1],
9293
"long_close_trailing_qty_pct": [0.05, 1],
9394
"long_close_trailing_retracement_pct": [0.0001, 0.1],
9495
"long_close_trailing_threshold_pct": [-0.01, 0.1],
9596
"long_ema_span_0": [200, 1440],
9697
"long_ema_span_1": [200, 1440],
97-
"long_entry_grid_double_down_factor": [0.01, 3],
98+
"long_entry_grid_double_down_factor": [0.01, 4],
9899
"long_entry_grid_spacing_pct": [0.001, 0.06],
99100
"long_entry_grid_spacing_weight": [0, 10],
100101
"long_entry_initial_ema_dist": [-0.1, 0.003],
101102
"long_entry_initial_qty_pct": [0.004, 0.02],
102-
"long_entry_trailing_double_down_factor": [0.01, 3],
103+
"long_entry_trailing_double_down_factor": [0.01, 4],
103104
"long_entry_trailing_grid_ratio": [-1, 1],
104105
"long_entry_trailing_retracement_pct": [0.0001, 0.1],
105106
"long_entry_trailing_threshold_pct": [-0.01, 0.1],
106107
"long_filter_noisiness_rolling_window": [10, 360],
107-
"long_filter_rolling_window": [10, 360],
108108
"long_filter_volume_drop_pct": [0.5, 1],
109109
"long_filter_volume_rolling_window": [360, 2880],
110-
"long_n_positions": [2, 5],
111-
"long_total_wallet_exposure_limit": [0.01, 2],
110+
"long_n_positions": [1, 5],
111+
"long_total_wallet_exposure_limit": [0.3, 2],
112112
"long_unstuck_close_pct": [0.001, 0.1],
113113
"long_unstuck_ema_dist": [-0.1, 0.01],
114114
"long_unstuck_loss_allowance_pct": [0.001, 0.05],
115115
"long_unstuck_threshold": [0.4, 0.95],
116-
"short_close_grid_markup_range": [0, 0.03],
117-
"short_close_grid_min_markup": [0.001, 0.03],
116+
"short_close_grid_markup_end": [0.001, 0.03],
117+
"short_close_grid_markup_start": [0.001, 0.03],
118118
"short_close_grid_qty_pct": [0.05, 1],
119119
"short_close_trailing_grid_ratio": [-1, 1],
120120
"short_close_trailing_qty_pct": [0.05, 1],
121121
"short_close_trailing_retracement_pct": [0.0001, 0.1],
122122
"short_close_trailing_threshold_pct": [-0.01, 0.1],
123123
"short_ema_span_0": [200, 1440],
124124
"short_ema_span_1": [200, 1440],
125-
"short_entry_grid_double_down_factor": [0.01, 3],
125+
"short_entry_grid_double_down_factor": [0.01, 4],
126126
"short_entry_grid_spacing_pct": [0.001, 0.06],
127127
"short_entry_grid_spacing_weight": [0, 10],
128128
"short_entry_initial_ema_dist": [-0.1, 0.003],
129129
"short_entry_initial_qty_pct": [0.004, 0.02],
130-
"short_entry_trailing_double_down_factor": [0.01, 3],
130+
"short_entry_trailing_double_down_factor": [0.01, 4],
131131
"short_entry_trailing_grid_ratio": [-1, 1],
132132
"short_entry_trailing_retracement_pct": [0.0001, 0.1],
133133
"short_entry_trailing_threshold_pct": [-0.01, 0.1],
134134
"short_filter_noisiness_rolling_window": [10, 360],
135-
"short_filter_rolling_window": [10, 360],
136135
"short_filter_volume_drop_pct": [0.5, 1],
137136
"short_filter_volume_rolling_window": [360, 2880],
138137
"short_n_positions": [0, 0],
139-
"short_total_wallet_exposure_limit": [0.01, 2],
138+
"short_total_wallet_exposure_limit": [0, 0],
140139
"short_unstuck_close_pct": [0.001, 0.1],
141140
"short_unstuck_ema_dist": [-0.1, 0.01],
142141
"short_unstuck_loss_allowance_pct": [0.001, 0.05],
143142
"short_unstuck_threshold": [0.4, 0.95]},
144143
"compress_results_file": true,
145-
"crossover_probability": 0.7,
144+
"crossover_probability": 0.64,
146145
"enable_overrides": [],
147146
"iters": 300000,
148-
"limits": {"drawdown_worst": 0.3333},
149-
"mutation_probability": 0.2,
147+
"limits": {"drawdown_worst": 0.4},
148+
"mutation_probability": 0.34,
150149
"n_cpus": 5,
151150
"population_size": 1000,
152151
"round_to_n_significant_digits": 4,
153-
"scoring": ["btc_adg_w", "btc_mdg_w", "btc_omega_ratio_w"],
154-
"write_all_results": true}}
152+
"scoring": ["adg_w",
153+
"mdg_w",
154+
"omega_ratio",
155+
"position_unchanged_hours_max",
156+
"sterling_ratio"],
157+
"write_all_results": false}}

configs/examples/btc_long.json

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,34 @@
77
"start_date": "2020-04-01",
88
"starting_balance": 100000,
99
"use_btc_collateral": true},
10-
"bot": {"long": {"close_grid_markup_end": 0.01754,
11-
"close_grid_markup_start": 0.01959,
12-
"close_grid_qty_pct": 0.4406,
13-
"close_trailing_grid_ratio": 0.9476,
14-
"close_trailing_qty_pct": 0.5662,
15-
"close_trailing_retracement_pct": 0.0003578,
16-
"close_trailing_threshold_pct": 0.002069,
17-
"ema_span_0": 206.3,
18-
"ema_span_1": 718.5,
10+
"bot": {"long": {"close_grid_markup_end": 0.001312,
11+
"close_grid_markup_start": 0.006145,
12+
"close_grid_qty_pct": 0.4778,
13+
"close_trailing_grid_ratio": -0.2575,
14+
"close_trailing_qty_pct": 0.6774,
15+
"close_trailing_retracement_pct": 0.07534,
16+
"close_trailing_threshold_pct": 0.01194,
17+
"ema_span_0": 1065,
18+
"ema_span_1": 813.7,
1919
"enforce_exposure_limit": true,
20-
"entry_grid_double_down_factor": 3.678,
21-
"entry_grid_spacing_pct": 0.01505,
22-
"entry_grid_spacing_weight": 4.019,
23-
"entry_initial_ema_dist": 0.00297,
24-
"entry_initial_qty_pct": 0.004931,
25-
"entry_trailing_double_down_factor": 0.4647,
26-
"entry_trailing_grid_ratio": -0.04499,
27-
"entry_trailing_retracement_pct": 0.001776,
28-
"entry_trailing_threshold_pct": 0.02659,
29-
"filter_noisiness_rolling_window": 133.5,
30-
"filter_volume_drop_pct": 0.7034,
31-
"filter_volume_rolling_window": 1628,
20+
"entry_grid_double_down_factor": 1.566,
21+
"entry_grid_spacing_pct": 0.0295,
22+
"entry_grid_spacing_weight": 0.04128,
23+
"entry_initial_ema_dist": -0.01057,
24+
"entry_initial_qty_pct": 0.01999,
25+
"entry_trailing_double_down_factor": 1.362,
26+
"entry_trailing_grid_ratio": -0.234,
27+
"entry_trailing_retracement_pct": 0.005083,
28+
"entry_trailing_threshold_pct": 0.009166,
29+
"filter_noisiness_rolling_window": 239.6,
30+
"filter_volume_drop_pct": 0,
31+
"filter_volume_rolling_window": 1226,
3232
"n_positions": 1,
33-
"total_wallet_exposure_limit": 8.735,
34-
"unstuck_close_pct": 0.002663,
35-
"unstuck_ema_dist": -0.06826,
36-
"unstuck_loss_allowance_pct": 0.00209,
37-
"unstuck_threshold": 0.5601},
33+
"total_wallet_exposure_limit": 6.409,
34+
"unstuck_close_pct": 0.03413,
35+
"unstuck_ema_dist": -0.0715,
36+
"unstuck_loss_allowance_pct": 0.01437,
37+
"unstuck_threshold": 0.5557},
3838
"short": {"close_grid_markup_end": 0.001,
3939
"close_grid_markup_start": 0.001,
4040
"close_grid_qty_pct": 0.05,
@@ -58,14 +58,14 @@
5858
"filter_volume_drop_pct": 0.5,
5959
"filter_volume_rolling_window": 360,
6060
"n_positions": 0,
61-
"total_wallet_exposure_limit": 0.01,
61+
"total_wallet_exposure_limit": 0,
6262
"unstuck_close_pct": 0.001,
6363
"unstuck_ema_dist": -0.1,
6464
"unstuck_loss_allowance_pct": 0.001,
6565
"unstuck_threshold": 0.4}},
66+
"coin_overrides": {},
6667
"live": {"approved_coins": {"long": ["BTC"], "short": ["BTC"]},
6768
"auto_gs": true,
68-
"coin_flags": {},
6969
"empty_means_all_approved": true,
7070
"execution_delay_seconds": 2,
7171
"filter_by_min_effective_cost": true,
@@ -77,6 +77,7 @@
7777
"max_n_cancellations_per_batch": 5,
7878
"max_n_creations_per_batch": 3,
7979
"max_n_restarts_per_day": 10,
80+
"mimic_backtest_1m_delay": false,
8081
"minimum_coin_age_days": 365,
8182
"ohlcvs_1m_rolling_window_days": 4,
8283
"ohlcvs_1m_update_after_minutes": 10,
@@ -97,16 +98,16 @@
9798
"long_entry_grid_spacing_pct": [0.001, 0.06],
9899
"long_entry_grid_spacing_weight": [0, 10],
99100
"long_entry_initial_ema_dist": [-0.1, 0.003],
100-
"long_entry_initial_qty_pct": [0.004, 0.02],
101+
"long_entry_initial_qty_pct": [0.01, 0.1],
101102
"long_entry_trailing_double_down_factor": [0.01, 4],
102103
"long_entry_trailing_grid_ratio": [-1, 1],
103104
"long_entry_trailing_retracement_pct": [0.0001, 0.1],
104105
"long_entry_trailing_threshold_pct": [-0.01, 0.1],
105106
"long_filter_noisiness_rolling_window": [10, 360],
106-
"long_filter_volume_drop_pct": [0.5, 1],
107+
"long_filter_volume_drop_pct": [0, 0],
107108
"long_filter_volume_rolling_window": [360, 2880],
108109
"long_n_positions": [1, 1],
109-
"long_total_wallet_exposure_limit": [0.5, 20],
110+
"long_total_wallet_exposure_limit": [2, 10],
110111
"long_unstuck_close_pct": [0.001, 0.1],
111112
"long_unstuck_ema_dist": [-0.1, 0.01],
112113
"long_unstuck_loss_allowance_pct": [0.001, 0.05],
@@ -133,7 +134,7 @@
133134
"short_filter_volume_drop_pct": [0.5, 1],
134135
"short_filter_volume_rolling_window": [360, 2880],
135136
"short_n_positions": [0, 0],
136-
"short_total_wallet_exposure_limit": [0.01, 2],
137+
"short_total_wallet_exposure_limit": [0, 0],
137138
"short_unstuck_close_pct": [0.001, 0.1],
138139
"short_unstuck_ema_dist": [-0.1, 0.01],
139140
"short_unstuck_loss_allowance_pct": [0.001, 0.05],
@@ -142,15 +143,11 @@
142143
"crossover_probability": 0.64,
143144
"enable_overrides": [],
144145
"iters": 300000,
145-
"limits": {"btc_drawdown_worst": 0.333,
146-
"loss_profit_ratio": 0.9,
147-
"position_unchanged_hours_max": 900},
146+
"limits": {"loss_profit_ratio": 0.65,
147+
"position_unchanged_hours_max": 336},
148148
"mutation_probability": 0.34,
149149
"n_cpus": 5,
150150
"population_size": 500,
151151
"round_to_n_significant_digits": 4,
152-
"scoring": ["btc_adg_w",
153-
"btc_mdg_w",
154-
"btc_sterling_ratio",
155-
"loss_profit_ratio"],
156-
"write_all_results": false}}
152+
"scoring": ["btc_adg_w", "btc_mdg", "btc_sterling_ratio"],
153+
"write_all_results": true}}

0 commit comments

Comments
 (0)