满足条件时止损不执行(求助)

Params Numeric FastLength(0.5); Numeric StopLength(35); // StopLength是一个数值变量,指定止损距离的跳数Vars Numeric i; Numeric my_entryprice; Numeric StopPrice; //Events OnBar(ArrayRef<Integer> indexs) { // 循环处理每个交易周期 Range[0:DataSourceSize() - 1] { // 计算指标 i = (High[1] - Close[1]) *fastlength; if(MarketPosition>0 && my_entryprice-LOW>35) // 如果我们持有多头仓位止损 { sell(1,Min(StopPrice,Close)); PlotNumeric(\"止损出场价格\", min(Open,StopPrice)); // 在图表上画出我们的止损出场价格 } // 添加根据条件开仓的逻辑 if (MarketPosition<>1&& high[0] > Open[0] + i) { my_entryprice = Open[0] + i; Buy(1, my_entryprice); StopPrice=my_entryprice -StopLength; // 根据我们的入场价格和止损距离计算并设置止损价格 } } If(MarketPosition==1&&longContractProfit()>0&&BarsSinceEntry()>=1&&Open[0]>=Close[1]) sell(1,Close[0]); //更新持仓状态 }代码如上在标红处是有疑问的代码在满足条件时,sell不执行请问如何修改!!!!

你在你那红色的语句前面把 my_entryprice 输出来看看,你会发现,my_entryprice 永远是0,于是my_entryprice-LOW 永远都不可能大于35,于是你那止损语句永远不会执行。解决方法:把 my_entryprice 定义成序列变量试试

回复:感谢按照你说的换成Series<Numeric> 来定义my_entryprice 就解决了 ! 比人工客服和他们每天回复的靠谱多了谢谢

试试输出一下当时的图表资金 看看钱够不够开你的手术

回复:可以输出的 就是标红代码无法执行请问怎么解决