[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 12

 
到了
附加的文件:
 
igrok2008 >> :

在之前的评论中,你指出了我的缺陷,关于不正确的买入和卖出水平,(按照我的理解)这需要你调换< >符号。

对于CCI来说,是否有必要指定-100????????????????????????。

拿着它,把它放在测试器里

并会显示哪里的结果更好

有减法的地方或没有减法的地方

以及哪个数字最终会成为250或-250

 

请写出或建议如何使订单在新条形图 出现时打开并在其关闭时关闭? 我的头很痛,我想不明白))))。

 
vadim2304 >> :

请写出或建议如何使订单在新条形图出现时打开并在其关闭时关闭? 我的头已经很痛了,我不能再想下去了))))。

if ( isTime(Period()*60)) { закрытьОткрытыйОрдер(); открытьНовыйОрдер()};


bool isTime(int sec){
   bool res = false;
   static datetime time = 0;
   double min = 0;
   if (TimeCurrent() >= time){
      min = MathFloor( sec / 60);
      if ( min==0) min = 1.0;         
      time = iTime(NULL,PERIOD_H1,0) + (MathFloor(Minute()/ min) + 1) * min * 60;
      res = true;
   } 
   return( res);
}
 
keekkenen >> :

我知道这是针对H1时间框架的条形图,但在哪里写开盘价和收盘价的代码,在if(isTime(Period()*60))之后,它是什么意思,请解读))

 

误解...Period()*60适用于任何TF--一切以秒为单位表示,即

M1 - 60秒,M5 - 300秒等等。(因为Period()在M1上返回1,在M5上-5...)

我是 比喻性地 写的

if ( isTime(Period()*60)) { закрытьОткрытыйОрдер(); открытьНовыйОрдер()};

其含义是--当一个新的条形图出现时,你可以关闭一个未平仓的订单并打开一个新的订单。

如果你不能自己做,可以看一下教程https://book.mql4.com/ru/。

 
keekkenen >> :

误解...Period()*60适用于任何TF--一切以秒为单位表示,即

M1 - 60秒,M5 - 300秒,等等。(如Period()在М1上返回1,在М5上-5...)

我是 比喻性地 写的。

这个想法是关闭一个开放的订单,并打开一个新的订单。

如果你不能自己做,可以看一下 "https://book.mql4.com/ru/"的教程。


如果没有未平仓的订单(它将在这一栏之后关闭它们),而只是开了一个新的订单,就不会有错误?

 
satop >> :

拿着它,把它塞进测试器

并会告诉你哪里的结果更好。

哪里有负数,哪里就没有。

它就会告诉你是250还是-250。

不要生气,萨托普。每个人都是初学者,每个人都会问一些愚蠢的问题。想想看,回到学校。一定有极客。他们很好奇,他们想学习。当然,随着时间的推移,他们对他们进行了纠缠,但这表明,那些愤怒的人更快地掌握和理解了一切。但这两种教学方法都有生命权。凯撒到凯撒......,没有犯罪.......,我不否认我是个傻子,但我很好奇。没有冒犯的意思...

 
vadim2304 >> :

如果没有未平仓的订单(它将在这一栏之后关闭它们),我们只是开了一个新的订单,将不会有错误?

问题是,关闭订单的OrderClose()函数将订单号作为第一个参数,而订单号只能通过对现有订单调用OrderSelect()来获得,所以一般来说,关闭看起来是这样的...

bool res = false;
int slippage = 3;

for (int i = 0; i < OrdersTotal(); i++) {
   if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES) &&
         OrderSymbol()==Symbol()){

      while (IsTradeContextBusy() || !IsTradeAllowed())
         {Comment("Торговый поток занят ...");Sleep(2000);}               
      res = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(), slippage,CLR_NONE);
      if ( res){  
         res = true; Comment("Ордер закрыт !");              
      }else{
         Comment("Ошибка - ", msg);
      }
   }
}
  


如果OrdersTotal() = 0,即没有未结订单,那么for循环将立即结束...

 
igrok2008 >> :

不要生气,萨托普。每个人都是初学者,每个人都会问一些愚蠢的问题。想想看,回到学校。当然,也有极客。他们很好奇,他们想学习。当然,随着时间的推移,他们对他们进行了纠缠,但这表明,那些愤怒的人更快地掌握和理解了一切。但这两种教学方法都有生命权。凯撒到凯撒......,没有犯罪.......,我不否认我是个傻子,但我很好奇。>>没有冒犯的意思。

我不知道你为什么认为我在生气。

这只是我解释的方式

通过采取任何不平等的迹象和运行

>>在测试器中,你可以得到一个积极的

某个级别的结果,而哪个级别并不重要

积极或消极。而当被问及

是否在有或没有减分的情况下参加考试。

不幸的是,没有明确的区别。

原因: