老师好,k线低点破下轨为止损条件,收盘前最后一根k线符合止损条件,图表上也出现自设的提示,实际未止损,结果就是夜盘开始后就不在执行止损了,然后由于有仓位也不再执行开仓了,问题出在哪里呢?和我做的实盘模拟有关系吗?
Bool exitLongCond = (Low < LowerChan[1]);
If(MarketPosition == 1 And BarsSinceEntry > 0)
{
If(exitLongCond)
{
Numeric exitPrice = Min(Open, LowerChan[1]);
Sell(0, exitPrice);
跟实盘模拟无关
sell不执行,那就是sell所处的分支结构的条件condition不满足
也就是exitlongcond不是true
exitlongcond 取决于low和lowerchan[1]的大小
low很容易在图上看出来
那么lowerchan[1]呢?
没有描述算法,也没有诊断
这个问题没法回答了
策略运行在5分钟周期,只有收盘前的最后一根k线触发止损而不执行止损,但图表表上会有PlotString输出的 "止损“,其余时间内的止损都能正常执行止损。
你提交的代码里我也没看到有plotstring....
代码执行结果和预想的不对,那么你就应该提交完整的原始代码,才能结局问题
或者你不想透露你的策略,你也可以抽象一个类似的demo,只要能复现问题也行。
像这样描述,很难解决问题呀
不好意思,我是不想打没用的字,浪费时间的,
Bool exitLongCond = (Low < LowerChan[1]);
If(MarketPosition == 1 And BarsSinceEntry > 0)
{
If(exitLongCond)
{
Numeric exitPrice = Min(Open, LowerChan[1]);
Sell(0, exitPrice);
PlotString("平仓标记", "止损 " , High + 2*MinPoint, Cyan);
Commentary("符合条件,止损平仓"); // 输出提示
如果显示了止损标记,意味着执行了该语句,那么程序应该是进了这个分支的。
至于为什么没显示sell的卖平信号,建议你输出一下marketposition看看是0还是1
如果是0就很正常,没有仓位怎么平仓呢