v4 · 阶段 B

ROI 策略说了算

按持仓时间到点就走的那扇门,这版搞懂再关掉。

minimal_roi {"0": 10} use_exit_signal exit_profit_only

1一句话

赚钱出门有三扇门。这版讲中间那扇:按持仓时间到点就走。策略里写成几乎走不到,这扇门就等于关了。

2生活类比

地铁三道闸。第一道是火警,止损,谁都拦不住。第二道是定时票,ROI,坐满就该下车。第三道是你自己喊停,exit_long。定时票如果设得很松,你就能坐到自己想下的站。

3搬到这版

策略里写minimal_roi = {"0": 10},从第 0 分钟起要赚 1000% 才按 ROI 走。
听策略信号use_exit_signal = True,死叉这扇门开着。
亏着也走exit_profit_only 先保持 False,死叉亏着也允许走。
config 会盖config.json 里如果也写了 ROI / 止损,会盖掉策略。对照用 config_fair.json,里面不写这两项。

4每个新参数

minimal_roi = {"0": 10}

定时票。键是持仓多少分钟,值是赚到多少就该下车。

它是什么
从持仓第 0 分钟起,浮盈达到 10(也就是 1000%)才按这扇门走。等于这扇门关了。
不管它会怎样
不管它,又误用带阶梯 ROI 的 config:金叉还没死叉,就被时间止盈剪掉。
拧大 / 拧小 / 拧反了
拧小,比如 {"0": 0.1}:赚 10% 就走,趋势坐不住。键是分钟,值是收益率。空字典可能加载失败。
use_exit_signal = True

第三道闸开不开。开了,策略自己喊停才算数。

它是什么
允不允许 populate_exit_trend 里的 exit_long = 1 出门。
不管它会怎样
不管它(False):死叉无效,只靠止损和 ROI。
拧大 / 拧小 / 拧反了
拧成 False:第三扇门焊死。趋势策略会变成「不碰止损就一直拿着」,直到 ROI 或你手动砍。
exit_profit_only = False

只在赚钱时才听你喊停,还是亏着也让走。

它是什么
True 时,只有浮盈的单才执行 exit 信号。False 时,死叉亏着也走。
不管它会怎样
不管它,默认常是 False。趋势里死叉出现时,很多单已经是亏的。
拧大 / 拧小 / 拧反了
拧成 True:亏着的死叉被拦住,可能一路拿到止损。这版先保持 False,让死叉说了算。
config 覆盖策略

车站广播比你的票还大。配置文件里的 ROI / 止损,会盖过策略里写的。

它是什么
config.json 里的 minimal_roi 和 stoploss 优先于策略。
不管它会怎样
不管它:你以为关了 ROI,config 还在按时间剪仓。你们已经踩过。
拧大 / 拧小 / 拧反了
fair 配置不写这两项,让策略说了算。不要为了「方便」把阶梯 ROI 拷回 fair。

5假懂

人们会说:「策略里写了 ROI 就听策略的」
更短的一句:config 优先。你在策略里关了门,config 还能打开。对照必须用不过滤的 fair 配置。

6你来讲

答得出来,这课才过关。最好边改两个数字边讲出门顺序。

  1. {"0": 10} 为什么等于关掉时间止盈?10 是 10% 还是 1000%?
  2. config 和策略都写了 ROI,听谁的?
  3. use_exit_signal = False 时,死叉还管事吗?

7这版代码

只放出门相关的三行。config 里不要再写一份 ROI。

minimal_roi = {"0": 10}
use_exit_signal = True
exit_profit_only = False
# config_fair.json 里不要写 minimal_roi / stoploss / timeframe

8过关

只改 ROI 和止损两个数字,再跑一次,讲清三扇门谁先碰到谁先走。

能指着 config.json 和 config_fair.json,说出哪一份会盖掉策略。