[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 53

 

似乎有什么东西正在清除....情况是这样的:声明了全局变量double Delete_Level。在if语句的主体中,一个新的值被分配给它。

Delete_Level = MA3

而当离开身体时,Delete_Level的全局值并没有改变。问题:当我退出if语句的主体时,如何改变全局变量Delete_Level的值

 
vovan-gogan:

对不起,但你能不能悠着点?)帮我理解在


事实上,永远不会有一个完美的平等 - 这是现实世界,现实世界中,这个或那个过程、操作等都有一些不确定性和公差。学习 "基础知识"...:-P 这再简单不过了。按照我的建议去做,并告诉我,如果这个条件可行,会不会有效果?我自己也对它感兴趣。谢谢你。


 
vovan-gogan:

似乎有什么东西正在清除....情况是这样的:声明了全局变量double Delete_Level。在if语句的主体中,一个新的值被分配给它。

而当离开身体时,Delete_Level的全局值并没有改变。问题:当我退出if语句的主体时,如何改变全局变量Delete_Level的值?


怎么会没有变化呢?当然会有变化。打印代码并查看日志标签,用F12--可视化模式下的逐步测试。
 
sergeev:

按照你和MQL的理解,日期是什么? 。
我想在下订单前做个检查。假设一个时段从10-30开始,那么在10-35时,所有开启买入订单的条件都已满足,但在当前时间 大于或等于10-45时,才应该下单。
 
Roman.:

它怎么不改变呢?当然,这是有变化的。


它是这样的。例如,在一个EA中,我首先声明一个全局变量 int Orders,然后如果有一个挂单,int Orders的值应该如下图所示变化。

int Orders;
if (MA2_2<MA1_2 && MA2_1>MA1_1)//пересечение МА
{
   if (OrdersTotal()>= 1)
   {
   return;
   }
         SL = 30;
         TP = 12;
         S_Price = Low[1] - 1* Point;
         if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0)
            {
               Orders++;
               Alert ("Ордер выставлен. Orders=",Orders );
            }
}           

但这在《命令》中不会改变。每次我们都会收到"订单已设定"的信息。订单=1"

 
vovan-gogan:


它是这样的。例如,在一个EA中,我首先声明一个全局变量int orders,然后在有挂单的情况下,int orders的值应该如下图所示改变。

但是命令没有变化。每次我都会收到"订单已下达"的信息。订单=1"


你不需要一个全局变量,而是一个 启动函数的局部变量。因此,请尝试

int start()                            // Спец. функция start
  {
    int Orders=0;
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //пересечение МА
        {
          if (OrdersTotal()>= 1) return(0);   
          SL = 30;
          TP = 12;
          S_Price = Low[1] - 1* Point;
          if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0)
            {
               Orders++;
               Alert ("Ордер выставлен.Orders = ",Orders );
            }
        }   
       Alert ("Ордеров нет. Orders = ",Orders );    
//----------------------------------------------------------------  
   return;                             // Выход из start()
  }
 
Roman.:


你在那里不需要一个全局变量,但需要一个启动函数的局部变量。因此,请尝试


在我的例子中不也是这样吗?它有什么不同?除了我没有添加启动功能。
 
vovan-gogan:

在我的例子中不也是这样吗?它有什么不同?除了我没有添加启动功能。

你应该试试我的例子。
 
Roman.:

你试试我的版本。

但我看不出有什么区别,可以尝试。请告诉我我做错了什么。
 
告诉我为什么当我打开一个图表(实时)时,用 M30的时间框架 应用参数int shift=iBarShift(NULL,PERIOD_M5,some_time)的指标;shift将是它应该有的,但当我通过测试器运行相同的指标,周期为M30时,shift没有计算出来?