Fix candle ranges in backtesting test
This commit is contained in:
parent
6cf140f8fb
commit
459a2239ce
@ -54,4 +54,10 @@ def _build_backtest_dataframe(data):
|
|||||||
frame[column] = frame[column].astype('float64')
|
frame[column] = frame[column].astype('float64')
|
||||||
if 'buy_tag' not in columns:
|
if 'buy_tag' not in columns:
|
||||||
frame['buy_tag'] = None
|
frame['buy_tag'] = None
|
||||||
|
|
||||||
|
# Ensure all candles make kindof sense
|
||||||
|
assert all(frame['low'] <= frame['close'])
|
||||||
|
assert all(frame['low'] <= frame['open'])
|
||||||
|
assert all(frame['high'] >= frame['close'])
|
||||||
|
assert all(frame['high'] >= frame['open'])
|
||||||
return frame
|
return frame
|
||||||
|
@ -18,8 +18,8 @@ tc0 = BTContainer(data=[
|
|||||||
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
||||||
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
||||||
[2, 4987, 5012, 4986, 4986, 6172, 0, 0], # exit with stoploss hit
|
[2, 4987, 5012, 4986, 4986, 6172, 0, 0], # exit with stoploss hit
|
||||||
[3, 5010, 5000, 4980, 5010, 6172, 0, 1],
|
[3, 5010, 5010, 4980, 5010, 6172, 0, 1],
|
||||||
[4, 5010, 4987, 4977, 4995, 6172, 0, 0],
|
[4, 5010, 5011, 4977, 4995, 6172, 0, 0],
|
||||||
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.01, roi={"0": 1}, profit_perc=0.002, use_sell_signal=True,
|
stop_loss=-0.01, roi={"0": 1}, profit_perc=0.002, use_sell_signal=True,
|
||||||
trades=[BTrade(sell_reason=SellType.SELL_SIGNAL, open_tick=1, close_tick=4)]
|
trades=[BTrade(sell_reason=SellType.SELL_SIGNAL, open_tick=1, close_tick=4)]
|
||||||
@ -32,8 +32,8 @@ tc1 = BTContainer(data=[
|
|||||||
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
||||||
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
||||||
[2, 4987, 5012, 4600, 4600, 6172, 0, 0], # exit with stoploss hit
|
[2, 4987, 5012, 4600, 4600, 6172, 0, 0], # exit with stoploss hit
|
||||||
[3, 4975, 5000, 4977, 4977, 6172, 0, 0],
|
[3, 4975, 5000, 4975, 4977, 6172, 0, 0],
|
||||||
[4, 4977, 4987, 4977, 4995, 6172, 0, 0],
|
[4, 4977, 4995, 4977, 4995, 6172, 0, 0],
|
||||||
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.01, roi={"0": 1}, profit_perc=-0.01,
|
stop_loss=-0.01, roi={"0": 1}, profit_perc=-0.01,
|
||||||
trades=[BTrade(sell_reason=SellType.STOP_LOSS, open_tick=1, close_tick=2)]
|
trades=[BTrade(sell_reason=SellType.STOP_LOSS, open_tick=1, close_tick=2)]
|
||||||
@ -99,7 +99,7 @@ tc5 = BTContainer(data=[
|
|||||||
[1, 5000, 5025, 4980, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
[1, 5000, 5025, 4980, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
||||||
[2, 4987, 5025, 4975, 4987, 6172, 0, 0],
|
[2, 4987, 5025, 4975, 4987, 6172, 0, 0],
|
||||||
[3, 4975, 6000, 4975, 6000, 6172, 0, 0], # ROI
|
[3, 4975, 6000, 4975, 6000, 6172, 0, 0], # ROI
|
||||||
[4, 4962, 4987, 4972, 4972, 6172, 0, 0],
|
[4, 4962, 4987, 4962, 4972, 6172, 0, 0],
|
||||||
[5, 4950, 4975, 4925, 4950, 6172, 0, 0]],
|
[5, 4950, 4975, 4925, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.01, roi={"0": 0.03}, profit_perc=0.03,
|
stop_loss=-0.01, roi={"0": 0.03}, profit_perc=0.03,
|
||||||
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
||||||
@ -167,7 +167,7 @@ tc9 = BTContainer(data=[
|
|||||||
tc10 = BTContainer(data=[
|
tc10 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
||||||
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
@ -183,7 +183,7 @@ tc10 = BTContainer(data=[
|
|||||||
tc11 = BTContainer(data=[
|
tc11 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
||||||
[3, 5000, 5150, 4650, 4750, 6172, 0, 0],
|
[3, 5000, 5150, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
@ -199,7 +199,7 @@ tc11 = BTContainer(data=[
|
|||||||
tc12 = BTContainer(data=[
|
tc12 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 4650, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 4650, 5100, 6172, 0, 0],
|
||||||
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
@ -307,7 +307,7 @@ tc19 = BTContainer(data=[
|
|||||||
[2, 4987, 5300, 4950, 5200, 6172, 0, 0],
|
[2, 4987, 5300, 4950, 5200, 6172, 0, 0],
|
||||||
[3, 5000, 5300, 4940, 4962, 6172, 0, 0], # Sell on ROI
|
[3, 5000, 5300, 4940, 4962, 6172, 0, 0], # Sell on ROI
|
||||||
[4, 4962, 4987, 4950, 4950, 6172, 0, 0],
|
[4, 4962, 4987, 4950, 4950, 6172, 0, 0],
|
||||||
[5, 4550, 4975, 4925, 4950, 6172, 0, 0]],
|
[5, 4550, 4975, 4550, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.10, roi={"0": 0.10, "120": 0.01}, profit_perc=0.01,
|
stop_loss=-0.10, roi={"0": 0.10, "120": 0.01}, profit_perc=0.01,
|
||||||
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
||||||
)
|
)
|
||||||
@ -322,7 +322,7 @@ tc20 = BTContainer(data=[
|
|||||||
[2, 4987, 5300, 4950, 5200, 6172, 0, 0],
|
[2, 4987, 5300, 4950, 5200, 6172, 0, 0],
|
||||||
[3, 5200, 5300, 4940, 4962, 6172, 0, 0], # Sell on ROI
|
[3, 5200, 5300, 4940, 4962, 6172, 0, 0], # Sell on ROI
|
||||||
[4, 4962, 4987, 4950, 4950, 6172, 0, 0],
|
[4, 4962, 4987, 4950, 4950, 6172, 0, 0],
|
||||||
[5, 4550, 4975, 4925, 4950, 6172, 0, 0]],
|
[5, 4925, 4975, 4925, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.10, roi={"0": 0.10, "119": 0.01}, profit_perc=0.01,
|
stop_loss=-0.10, roi={"0": 0.10, "119": 0.01}, profit_perc=0.01,
|
||||||
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
||||||
)
|
)
|
||||||
@ -334,7 +334,7 @@ tc20 = BTContainer(data=[
|
|||||||
tc21 = BTContainer(data=[
|
tc21 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 4650, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 4650, 5100, 6172, 0, 0],
|
||||||
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
@ -350,7 +350,7 @@ tc21 = BTContainer(data=[
|
|||||||
tc22 = BTContainer(data=[
|
tc22 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
||||||
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
@ -369,7 +369,7 @@ tc22 = BTContainer(data=[
|
|||||||
tc23 = BTContainer(data=[
|
tc23 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
||||||
[3, 4850, 5251, 4650, 4750, 6172, 0, 0],
|
[3, 4850, 5251, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
@ -387,8 +387,8 @@ tc24 = BTContainer(data=[
|
|||||||
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
||||||
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
||||||
[2, 4987, 5012, 4986, 4986, 6172, 0, 0],
|
[2, 4987, 5012, 4986, 4986, 6172, 0, 0],
|
||||||
[3, 5010, 5000, 4855, 5010, 6172, 0, 1], # Triggers stoploss + sellsignal
|
[3, 5010, 5010, 4855, 5010, 6172, 0, 1], # Triggers stoploss + sellsignal
|
||||||
[4, 5010, 4987, 4977, 4995, 6172, 0, 0],
|
[4, 5010, 5010, 4977, 4995, 6172, 0, 0],
|
||||||
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.01, roi={"0": 1}, profit_perc=-0.01, use_sell_signal=True,
|
stop_loss=-0.01, roi={"0": 1}, profit_perc=-0.01, use_sell_signal=True,
|
||||||
trades=[BTrade(sell_reason=SellType.STOP_LOSS, open_tick=1, close_tick=3)]
|
trades=[BTrade(sell_reason=SellType.STOP_LOSS, open_tick=1, close_tick=3)]
|
||||||
@ -402,8 +402,8 @@ tc25 = BTContainer(data=[
|
|||||||
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
[0, 5000, 5025, 4975, 4987, 6172, 1, 0],
|
||||||
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
||||||
[2, 4987, 5012, 4986, 4986, 6172, 0, 0],
|
[2, 4987, 5012, 4986, 4986, 6172, 0, 0],
|
||||||
[3, 5010, 5000, 4986, 5010, 6172, 0, 1],
|
[3, 5010, 5010, 4986, 5010, 6172, 0, 1],
|
||||||
[4, 5010, 4987, 4855, 4995, 6172, 0, 0], # Triggers stoploss + sellsignal acted on
|
[4, 5010, 5010, 4855, 4995, 6172, 0, 0], # Triggers stoploss + sellsignal acted on
|
||||||
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.01, roi={"0": 1}, profit_perc=0.002, use_sell_signal=True,
|
stop_loss=-0.01, roi={"0": 1}, profit_perc=0.002, use_sell_signal=True,
|
||||||
trades=[BTrade(sell_reason=SellType.SELL_SIGNAL, open_tick=1, close_tick=4)]
|
trades=[BTrade(sell_reason=SellType.SELL_SIGNAL, open_tick=1, close_tick=4)]
|
||||||
@ -418,7 +418,7 @@ tc26 = BTContainer(data=[
|
|||||||
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
[1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle)
|
||||||
[2, 4987, 5012, 4986, 4986, 6172, 0, 0],
|
[2, 4987, 5012, 4986, 4986, 6172, 0, 0],
|
||||||
[3, 5010, 5251, 4986, 5010, 6172, 0, 1], # Triggers ROI, sell-signal
|
[3, 5010, 5251, 4986, 5010, 6172, 0, 1], # Triggers ROI, sell-signal
|
||||||
[4, 5010, 4987, 4855, 4995, 6172, 0, 0],
|
[4, 5010, 5010, 4855, 4995, 6172, 0, 0],
|
||||||
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
[5, 4995, 4995, 4950, 4950, 6172, 0, 0]],
|
||||||
stop_loss=-0.10, roi={"0": 0.05}, profit_perc=0.05, use_sell_signal=True,
|
stop_loss=-0.10, roi={"0": 0.05}, profit_perc=0.05, use_sell_signal=True,
|
||||||
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
trades=[BTrade(sell_reason=SellType.ROI, open_tick=1, close_tick=3)]
|
||||||
@ -447,7 +447,7 @@ tc27 = BTContainer(data=[
|
|||||||
tc28 = BTContainer(data=[
|
tc28 = BTContainer(data=[
|
||||||
# D O H L C V B S
|
# D O H L C V B S
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5050, 4950, 5100, 6172, 0, 0],
|
[1, 5000, 5100, 4950, 5100, 6172, 0, 0],
|
||||||
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
[2, 5100, 5251, 5100, 5100, 6172, 0, 0],
|
||||||
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
[3, 4850, 5050, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
|
Loading…
Reference in New Issue
Block a user