[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 249

 
artmedia70:
不要问,用测试人员检查...:)
编译后,专家顾问的工作方式与修改前一样。也就是说,它画的是一条线。
 
globad:
专家画一条线。
如果代码说" 如果没有画线,就画线1;如果没有画线,就画线2" - 它们不可能不被画出来:)
 
eddy:artmedia70:
如果代码说 "如果没有画线,就画线1;如果没有画线,就画线2" - 它们不可能不被画出来:)
所有的人,都想通了!它是有效的!
 

你能告诉我为什么测试报告中的百分比都是0?即相对缩减,最大缩减,等等?

 
artmedia70:

例如,像这样。

像这样打电话。

我希望你能把几分钟变成几小时......。:)





我试着按你说的方法写,但还是不行......它还是在前一个仓位 关闭时开仓......()

也许你不明白我的意思,我想让它在前一个仓位关闭后不早于1小时开仓......而在你的情况下,它排除了重新开仓的可能性,但一旦关闭,它立即打开下一个仓位。

 if (SecondsAfterOpenLastPos(NULL, OP_SELL, MAGIC)>=(Period()*Interval)*60) {
        OpenSell();  
           } 
 
伙计们的帮助:我们需要在前一笔交易关闭后的一定时间内开启交易,....help
 
Vovo4ka:
伙计们的帮助:我需要一个交易在前一个交易关闭后过了一定的时间才会被打开....help 。


for (int i=0; i<OrdersTotal(); i++){ 如果
(OrderSelect(i, SELECT_BY_POS)==true)。{ TC = TimeCurrent(); OM = OrderMagicNumber(); if (TC-OM>86400 && (OrderType()==OP_SELL)){ CLOSEORDER("Sell"); }如果(TC-OM>86400 && (OrderType()==OP_BUY)){ CLOSEORDER("Buy"); } } }










在OrderMagicNumber()中,当打开一个订单时,它写道:Magic=TimeCurrent()。

 
ILL:


for (int i=0; i<OrdersTotal(); i++){ 如果(OrderSelect(i, SELECT_BY_POS)==true)。{ TC = TimeCurrent(); OM = OrderMagicNumber(); if (TC-OM>86400 && (OrderType()==OP_SELL)){ CLOSEORDER("Sell"); }如果(TC-OM>86400 && (OrderType()==OP_BUY)){ CLOSEORDER("Buy"); } } }











在OrderMagicNumber()中,当打开一个订单时,写到:Magic = TimeCurrent()。


我忘了 =)86400 - 这是关闭仓位 的秒数。
 
ILL:

你能告诉我为什么测试报告中的百分比都是0?即相对缩减,最大缩减,等等?


都想好了--存款太多)
 
Vovo4ka:


我试着按你说的方法写,它起作用了......它仍然在前一个仓位的收盘时开仓......(

也许你不明白我的意思,它需要在前一笔交易关闭后不早于1小时开仓......而在你的情况下,它排除了开立重复交易的可能性,但一旦关闭,下一笔交易就会立即开仓。

并考虑到功能代码?找到四个不同点 :) :

//+----------------------------------------------------------------------------+
datetime SecondsAfterCloseLastPos(string sy, int op, int mn) 
{
   datetime t;
   int      i, k=OrdersHistoryTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()!=op)          continue; 
         if (OrderMagicNumber()!=mn)   continue; 
         if (t<OrderCloseTime()) t=OrderCloseTime();
         }
      }
  return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+