加入了三分钟回测
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,11 @@
|
||||
"""
|
||||
BitMart 四分之一回归策略回测(精准版)
|
||||
BitMart 五分之一回归策略回测(精准版)
|
||||
使用3分钟K线周期计算触发价格,1分钟K线判断触发顺序
|
||||
|
||||
========== 策略规则 ==========
|
||||
1. 触发价格计算(基于有效的前一根K线,实体>=0.1):
|
||||
- 做多触发价格 = 收盘价 + 实体/4(从收盘价往上涨1/4)
|
||||
- 做空触发价格 = 收盘价 - 实体/4(从收盘价往下跌1/4)
|
||||
- 做多触发价格 = 收盘价 + 实体/5(从收盘价往上涨1/5)
|
||||
- 做空触发价格 = 收盘价 - 实体/5(从收盘价往下跌1/5)
|
||||
|
||||
2. 信号触发条件:
|
||||
- 当前K线最高价 >= 做多触发价格 → 做多信号
|
||||
@@ -100,14 +100,14 @@ def find_valid_prev_bar(all_data, current_idx, min_body_size=0.1):
|
||||
return None, None
|
||||
|
||||
|
||||
def get_one_fourth_levels(prev):
|
||||
def get_one_fifth_levels(prev):
|
||||
"""
|
||||
计算前一根K线实体的 1/4 双向触发价格
|
||||
计算前一根K线实体的 1/5 双向触发价格
|
||||
返回:(做多触发价格, 做空触发价格)
|
||||
|
||||
基于收盘价计算(无论阴线阳线):
|
||||
- 做多触发价格 = 收盘价 + 实体/4(从收盘价往上涨1/4实体)
|
||||
- 做空触发价格 = 收盘价 - 实体/4(从收盘价往下跌1/4实体)
|
||||
- 做多触发价格 = 收盘价 + 实体/5(从收盘价往上涨1/5实体)
|
||||
- 做空触发价格 = 收盘价 - 实体/5(从收盘价往下跌1/5实体)
|
||||
"""
|
||||
p_open = float(prev['open'])
|
||||
p_close = float(prev['close'])
|
||||
@@ -118,8 +118,8 @@ def get_one_fourth_levels(prev):
|
||||
return None, None
|
||||
|
||||
# 基于收盘价的双向触发价格
|
||||
long_trigger = p_close + body / 4
|
||||
short_trigger = p_close - body / 4
|
||||
long_trigger = p_close + body / 5
|
||||
short_trigger = p_close - body / 5
|
||||
|
||||
return long_trigger, short_trigger
|
||||
|
||||
@@ -237,7 +237,7 @@ def check_trigger_with_1m(
|
||||
if prev is None:
|
||||
return None, None, None, False
|
||||
|
||||
long_trigger, short_trigger = get_one_fourth_levels(prev)
|
||||
long_trigger, short_trigger = get_one_fifth_levels(prev)
|
||||
|
||||
if long_trigger is None:
|
||||
return None, None, None, False
|
||||
@@ -507,7 +507,7 @@ if __name__ == '__main__':
|
||||
total_net_profit = total_money_profit - total_fee
|
||||
|
||||
print(f"\n{'='*60}")
|
||||
print(f"【BitMart 四分之一策略回测结果(3分钟K线 + 1分钟精准判断)】")
|
||||
print(f"【BitMart 五分之一策略回测结果(3分钟K线 + 1分钟精准判断)】")
|
||||
print(f"{'='*60}")
|
||||
print(f"回测周期:{START_DATE} 到 {END_DATE}")
|
||||
print(f"最小实体要求:{MIN_BODY_SIZE}")
|
||||
|
||||
Reference in New Issue
Block a user