任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 449

 
abeiks:

从最后已知的服务器时间(TimeCurrent())到某一天的第一条开盘 时间(TimeDay(Time[80]))当前图表有多少条


iBarShift 应该有帮助
 
pu6ka:

iBarShift 应该有帮助

我挣扎了一整天,还是没能成功。对我来说是错误的经历,还有更多。:)

有人能写出这个函数吗?

 
abeiks:

我挣扎了一整天,还是没能成功。对我来说是错误的经历,还有更多。:)

有人能写出这个函数吗?

     int n = 0;                                           // индекс дня, в данном случае 0 - текущий день
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс бара
 
Stells:

下午好。

我不明白这是怎么做到的

03:00:24 '9473965': 卖出0.01英镑兑美元的订单在0.00000处开盘,Sl: 1.65314 Tp: 0.00000失败 [无效的S/L或T/P]

用这个代码

为什么开盘价为零


是今晚吗?那么很可能你的止损价低于开盘价,对于卖出指令,止损价应该更高。
 
pu6ka:


这有点不对。我需要从这个TimeDay(Time[80])函数中具体获得一天的开始时间 "n"(秒),但它对我不起作用。

 

我想评估一下历史上的漏洞。
做了这个。

int start() 
{
  if(Time[0] > prev_time ) 
  {
    if( iTime(NULL, PERIOD_M1,0)-iTime(NULL, PERIOD_M1,1) > 200000)
    {
      n=n+1;
      Print("n =",n ,"");
    }
    prev_time = Time[0];
  } 
  
  return (0);
}

我没有理解错,iTime的计数单位是秒,200,000=2.31天?

有可能做到这一点吗?(似乎是在工作,只检测到6件)

 
abeiks:

这有点不对。我需要从这个TimeDay(Time[80])函数中具体获得一天的开始时间 "n"(秒),但它对我不起作用。


具体来说,从这个函数TimeDay(Time[80])开始,我必须再做一些中间计算。你仍然有Time[80] 条的时间。更简单的方法是这样。

     int n = iBarShift(NULL,PERIOD_D1,Time[80]);          // индекс дня, которому принадлежит время бара - Time[80]
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс первого бара дня "n"
 
sv.:

我一直在思考评估历史的漏洞。

这里有一个 非常有用的脚本,我已经用了很多年了。若是上传了报价档案,你需要改变两个参数以避免在设置中打探。它们在截图中以红框突出显示。

要把它扔在任何图表上,并等待几秒钟,直到有报告的文件出现的消息。

 
addict:

买单被打开一次,但卖单的数量又是无限的


写一个这样的函数

int start()

如果( OrdersTotal()==0 && CountTrades()==0)

{

OrderSend ("EURUSD",OP_BUYLIMIT,l,1.36000,5,0,1.36000+tp*Point,"my order",1);

OrderSend ("EURUSD",OP_BUYSTOP,l,1.36000,5,0,1.36000+tp*Point,"my order",1);

否则

{
OrderSend ("EURUSD",OP_SELLLIMIT,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
OrderSend ("EURUSD",OP_SELLSTOP,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
}

}

return(0);

}

//+------------------------------------------------------------------+

int CountTrades()

{

int count = 0。

for(int trade = OrdersTotal()-1; trade >=0; trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)。

如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

count++。

}

}

return(count)。

 
pu6ka:


具体到这个TimeDay(Time[80])函数,你必须再做一些中间的计算。你仍然有酒吧时间[80] 的时间。这样做会比较容易。


谢谢你!:)

原因: