为什么不是买入开仓前10天内的最低价?
If (MarketPosition == 0 && MACDValue[1] >= 0 && MAUP[1]) { Buy(1, Open); // 记录开仓前10天的最低价作为止损价 StopLossPrice = Lowest(Low[1], 10); 为什么TB StopLossPrice显示出来的不是买入开仓前10天内的最低价?而是开仓前1天的最低价?搞不懂?哪里写错了吗?
If (MarketPosition == 0 && MACDValue[1] >= 0 && MAUP[1]) { Buy(1, Open); // 记录开仓前10天的最低价作为止损价 StopLossPrice = Lowest(Low[1], 10); 为什么TB StopLossPrice显示出来的不是买入开仓前10天内的最低价?而是开仓前1天的最低价?搞不懂?哪里写错了吗?
你这个就是经典的序列类型使用错误了Lowest(Low[1], 10)这个函数的计算不要放在if分支结构或者and or 逻辑连接词后正确的写法是series<numeric> temp_low_10;temp_low_10 = Lowest(Low[1], 10); If (MarketPosition == 0 && MACDValue[1] >= 0 && MAUP[1]) { Buy(1, Open); // 记录开仓前10天的最低价作为止损价 StopLossPrice = temp_low_10;}相关机制原理的解释看这个零基础课程系列内容 https://www.bilibili.com/video/BV1BV411A7eo/?spm_id_from=333.999.0.0
Lowest(Low[1], 10); 序列函数的计算要放在if括号外,也就是主程序第一层LOW10 = Lowest(Low[1], 10); If (MarketPosition == 0 && MACDValue[1] >= 0 && MAUP[1]) { Buy(1, Open); // 记录开仓前10天的最低价作为止损价 StopLossPrice = LOW10;}