回测一次喂完全部历史。用了当时还没发生的价格,数字会好看,实盘会崩。
回测一次把全部历史喂给你。如果你用了当时还没发生的价格,数字会好看,实盘会崩。
考试允许看已做完的前一题,不允许翻后面的卷子。shift(1) 是看前一题。shift(-1) 是偷看下一题。
freqtrade lookahead-analysis。故意错位未来数据,看信号变不变。shift(-1),也不能用一目的迟行线(它本身就看未来)。整列挪一格。正的是看已经走完的上一根,负的是看还没发生的下一根。
shift(1) 拿到上一根的值。shift(-1) 拿到下一根的值。炉子没热就上菜。前几道看起来像菜,其实是生的。
「过去 20 根最高价」如果把当前这根自己算进去,等于已经知道这根会不会破高。
shift(1),只用已经走完的 20 根。体检。故意把未来数据弄乱,看你的信号会不会跟着变。
答得出来,这课才过关。最好指着一行代码讲,不要只背名词。
只放对和错的对照。这版不是加买卖条件,是改你怎么拿「已经发生」的值。
# 对:用已经走完的上一根 prev_high = dataframe["high"].shift(1) # 错:偷看下一根 # next_close = dataframe["close"].shift(-1) # 对:过去 20 根最高价,不含当前这根 donchian = dataframe["high"].rolling(20).max().shift(1) # 错:把当前这根自己算进「已经突破的高点」 # donchian = dataframe["high"].rolling(20).max()
会跑 freqtrade lookahead-analysis,并能指出哪类写法是偷看。
freqtrade lookahead-analysis --userdir /workspace/ft_userdata/user_data \ --config user_data/config_fair.json --strategy FirstSma