[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 216

 
不,关于自行车并不适合。我需要进行时间校正--两个不同终端的时区 之间的差异。这是一个小时的问题。我自己会去找这个故障的。
 
Aleksander:
在开始时 - 调用函数来检查SellStop订单循环中是否有买入订单...并将其删除 - 如果在未结订单中没有买入订单...
我不明白 " 买入订单存在于SellStop 订单循环 "这句话。
 

见...

集合订单的循环赛(开始)

我们接单

- 如果它是一个SellStop(记住它的神奇数字--它也是一个买单{

通过

BoolOrderSelect( int index, int select, int pool=MODE_TRADES)


我们检查该订单是否存在...- 这是你的购买订单...

如果它不在那里,那么我们就删除当前的SellStop订单。

}

} 订单循环结束...

 
TheXpert:

InitsializeRealMasterOrders -- 在这里寻找一个故障。

这里还有一些东西--不是为了做自行车--https://docs.mql4.com/ru/convert/timetostr



还是一个小故障。在该子程序中,代码从文本文件的行中读取数据。

4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0

订单开放时间是该行的第六个参数。它被命令读入了datetime类型的变量。

Stroka=FileReadString(FileHandle);//开放时间
r_master_OpenTime[i]=StrToTime(Stroka);//开幕时间

结果,我们在变量r_master_OpenTime[i]中得到一个天知道是什么的值。但当我把它的类型从datetime改为int后,一切都好了。我用mql4编程已经超过5年了,我还是忍不住想知道...:)

 
Aleksander:

见...

集合订单的循环赛(开始)

我们接单

- 如果它是一个SellStop(记住它的神奇数字--它也是一个买单票 {

通过

BoolOrderSelect( int index, int select, int pool=MODE_TRADES)


我们检查该订单是否存在...- 这是你的购买订单...

如果它不在那里 - 那么就删除当前的SellStop订单。

}

订单循环结束...

我写了这篇胡言乱语

  int      i, k=OrdersTotal();
  
   for (i=0; i<k; i++)
 if(OrderType()==OP_SELLSTOP)
    if(OrderMagicNumber()==ticket)
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
  if(OrderType()==OP_BUY)return(-1); 
      else
        OrderDelete(OrderTicket());
Спасибо вроде работает))
 

drknn: Все равно глюк. В подпрограмме код считывает данные из строк текстового документа:

4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0

订单开放时间是字符串中的第六个参数。它是通过命令读入日期类型的变量。

Stroka=FileReadString(FileHandlе);// Время открытия
r_master_OpenTime[i]=StrToTime(Stroka);// Время открытия

结果,r_master_OpenTime[i]变量将包含一个不重要的值。但当我把它的类型从datetime改为int后,一切都好了。我用mql4编程已经超过5年了,我还是忍不住想知道...:)

从这里开始
数据时间 StrToTime(string value)。
将一个包含时间和/或日期格式为"yyyy.mm.dd [hh:mi]" 的字符串转换为一个日期时间数字(自1970年1月1日起经过的秒数)。
输入数据的格式与预期格式不符
 

请告知在下列情况下该如何做。

在测试器中工作正常,一切按计划进行,但在realsk上却无法打开交易。

P.S. 真的需要一些帮助,这是一个生命或死亡的问题。

 
Gek34:

大家好。

我试着写了一个指标,它似乎起作用了,但只是在历史上它按计划画,然后当新的报价进来时,它画的是一个通常的掩码。

代码见附件。

int start()
{
int counted_bars=IndicatorCounted();
int i,n;
double Stark=0;
//----
i=Bars-counted_bars-1;//+50;
// n=Bars-counted_bars-1;
while(i>=0)
{
//----

double Ma=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i);
//double Ma1=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i+1);
if(Stark+Step*Point<Ma)Stark=Ma;
if(Stark-Step*Point>Ma)Stark=Ma;
ABuf[i]=Stark;

//----
i--;
}
return(0);
}


请帮助我修复它,使它能继续画出步骤。

我真的会很感激。

Gek.

给我指标的所有代码
 
什么是错的 for (f=1;f<Bars;f++)
{
Price1 =(iClose(Symbol_1,0,0) - iClose(Symbol_1,0,f) ) / MarketInfo(Symbol_1, MODE_POINT)
Price2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,f)) / MarketInfo(Symbol_2, MODE_POINT);
Spread = Price1 - Price2;
Print ("Price1="+Price1, " Price2="+Price2);
if (Spread=0){t=f; break; }
}
Price12 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,t)) / MarketInfo(Symbol_1, MODE_POINT);
Price22 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,t) ) / MarketInfo(Symbol_2, MODE_POINT);
Spread2 = Price12 - Price22;


如果(MathAbs(Spread2) >= razdvizka && Spread2 < 0) { 打开交易 }


我想固定点差等于零的那一栏,并从中控制点差。

 
DanLett:

请告知在下列情况下该如何做。

在测试器中工作正常,一切按计划进行,但在realsk上却无法打开交易。

P.S. 真的需要帮助,生死攸关的问题

是否允许顾问进行交易?