关闭订单的利润计算 "HELP" - 页 8

 
Natashe4ka:
订单是串联关闭的,但如果没有关闭条件,就会收集一两天的订单,等等。

如果该系列实际上是在一个周期内关闭的,例如, 一个柱状体的有效期内,那么我们可以通过关闭的时间加上一个柱状体来获取该系列的标准。也就是说,所有关闭时间小于该时间的订单都应该被抛弃。

然而,我们担心这只在测试器中起作用;任何人工干预 将导致错误的利润计算(只有EA的利润被考虑在内,而人工交易不会)。

 
Vitalie Postolache:
如果该系列实际上是在一个周期内关闭的,例如, 一个柱状体的有效期内,那么我们可以通过关闭的时间加上一个柱状体来获得该系列的标准。也就是说,所有收盘时间小于该时间的订单都应该被丢弃。

I.e.

if ((op<0||OrderType()==op) && (t==OrderCloseTime() ||  t==OrderCloseTime()+60)) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}

(t==OrderCloseTime()||t==OrderCloseTime()+60)?

 
Natashe4ka:

I.e.

if ((op<0||OrderType()==op) && t==OrderCloseTime()+60) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}

+60 ?

PeriodSeconds() 会更正确。还是你只打算在M1上工作?

类似这样的事情。

double lastloss()
{
double lastlos=0.0,op=0.0;
int cnt=0;
datetime time=0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2)
         {
            if(cnt==0) time=OrderCloseTime();
            op=OrderProfit()+OrderSwap()+OrderCommission();
            if(OrderCloseTime()+PeriodSeconds()<time && op>0.0) break;
            lastlos+=op;
            if(cnt!=0) cnt++;
         }
      }
}
return(lastlos);
}
 
Vitalie Postolache:

类似这样的事情。

这是在前一个值的基础上增加一个新的值。但每一次新的关闭,都是一个新的利润值。
 

而且你还可以在评论中对订单进行编号,对于那些不覆盖评论的DC来说。而在试出评论中的数字时,只要数字不符合顺序--系列就结束了。

例如:订单系列编号1,2,3,4,5。按5,4,3,2,1的顺序关闭 - 循环看到1并中断。按1,2,3,4,5和1(前一个系列的顺序号)的顺序关闭 - 循环看到5-1>1的差异而中止。我需要考虑如何将其转化为代码 ))))

 
Natashe4ka:
因此,一个新的值被添加到之前的值中。而每一次新的关闭,都是一个新的利润值。
我不知道,对我来说,这并不成立。
 
Vitalie Postolache:
我不知道,对我来说,这并不成立。

把信息放上去,你就会发现它加起来了。

color ProfitColor;

   if(lastloss()<0) ProfitColor=Red;
   if(lastloss()>0) ProfitColor=LimeGreen;
   if(lastloss()==0)ProfitColor=DarkGray;
   ObjectCreate("Last Profit", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Last Profit", OBJPROP_CORNER, 1);
   ObjectSet("Last Profit", OBJPROP_XDISTANCE, 5);
   ObjectSet("Last Profit", OBJPROP_YDISTANCE, 15);
   ObjectSetText("Last Profit",StringConcatenate("Last Profit: ",DoubleToStr(lastloss(),2)),10,"Arial",ProfitColor);
 
Natashe4ka:

把信息放进去,你会立即看到加起来的东西。

嗯,确实是这样...让我们继续思考))))
 
我知道这是测试仪中的一个测试....。
 
Vitalie Postolache:
嗯,确实是这样...让我们继续思考))))

我也认为它是按规定计算的。
我不应该把这些信息放在代码中,生活就会变得更容易))

而现在令人费解的是,这个功能怎么一直没有正常工作!!!。