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

 
alvlaf:
我试了一下,前五分钟运行良好,然后我开始同时开了几笔交易(4笔),而且是在同一货币对上,手数增加。亚历山大,我在你的版本中不太清楚,全局变量是如何获得和改变其值的?
所以,要陆续开始。首先,在一个货币对上测试所有可能的交易,然后在几个货币对上运行。(4)是交易的数量
当EA启动时,如果没有这样的变量(在你的案例中肯定有,因为它被存储了4周),则变量被分配为1。在每一个刻度,这个变量允许或不允许新的交易 - 这是它唯一的意义。如果一个交易是亏损或无利可图的,允许新订单=0,如果不是-1。在检查买入/卖出信号之前,该变量被检查,并从循环中删除,不开任何订单。如果在一个符号上开了4个订单,而且是更大的手数,CountTrades显然不工作。我不能自己检查,因为我所在的地方互联网非常非常糟糕。顺便说一下,对我来说,在Grand Capital期权的任何时间框架上,只有在出现新的蜡烛时才会出现新的刻度线,对你来说也是如此吗?

 
A13ksandr:
所以你要按顺序开始。首先在一个交易对上测试所有可能的交易,然后只在几个上运行。(4) - 这是交易的数量吗?
当EA启动时,如果没有这样的变量(在你的案例中肯定有,因为它被存储了4周),则变量被分配为1。在每一个刻度,这个变量允许或不允许新的交易 - 这是它唯一的意义。如果一个交易是亏损或无利可图的,允许新订单=0,如果不是-1。在检查买入/卖出信号之前,该变量被检查,并从循环中删除,不开任何订单。如果在一个符号上开了4个订单,而且是更大的手数,CountTrades显然不工作。我不能自己检查,因为我所在的地方互联网非常非常糟糕。顺便说一下,对我来说,在Grand Capital期权的任何时间框架上,只有在出现新的蜡烛时才会出现新的刻度线,对你来说也是如此吗?

亚历山大,我认为在启动时给全局变量 赋值1是不正确的,因为我们必须等待至少一个订单打开。我认为我们应该将AllowNewOrders的值与OrdersTotal或 CountTrades绑定,这样它就会在第一个系列打开时发生变化。我今天会试着做,但我很没有经验,所以如果你告诉我如何在代码中正确表述,我会非常感谢你。在我的终端中,刻度线出现在当前条形的任何时刻,甚至在M1上。(4) - 是机器人一次打开的交易数量。而且我已经按照你的建议进行了测试。
 
trader_fx:
https://docs.mql4.com/ru/objects/objectgetdouble https://docs.mql4.com/ru/objects/objectgetinteger

谢谢你!我知道了。现在有一个问题。这些函数的作用是从对象中获取数值。但如何获得,比方说,箭头的值。

在图形中可见,但在对象列表中不可见。例如,如果画出的箭头,例如 。

SetIndexStyle(0, DRAW_ARROW)。

SetIndexArrow(0, 234);

\\\\

ObjectsTotal()(和其他对象函数)没有看到这些箭头....。

 
ilmel:

谢谢你!我知道了。现在有一个问题。这些函数的作用是从对象中获取数值。但如何获得,比方说,箭头的值。

在图形中可见,但在对象列表中不可见。例如,如果画出的箭头,例如 。

SetIndexStyle(0, DRAW_ARROW)。

SetIndexArrow(0, 234);

\\\\

ObjectsTotal()(和其他对象函数)没有看到这些箭头....。

iCustom来救援

 
你好!有人知道9月2日是什么日子吗?
 

晚上好,你能告诉我错误在哪里吗,我从mql4教程中提取了指标https://book.mql4.com/ru/samples/icustom。 但我想让信封出现在一个单独的窗口中。在截图中,主窗口中的指标来自教程,在底部窗口中我有

.屏幕截图

#property strict
#property indicator_separate_window
#property indicator_minimum 1
#property indicator_buffers 1
#property  indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,clrAqua);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
    Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=Close[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
bobrush:

晚上好,你能告诉我错误在哪里吗,我从mql4教程中提取了指标https://book.mql4.com/ru/samples/icustom。 但我想让信封出现在一个单独的窗口中。你可以在主窗口中看到书中的指标,在底部窗口中看到--我的指标


我为什么要设定最低限度?

#property indicator_minimum 1???

为什么我需要使用两种不同的颜色?

但主要的错误是在缓冲区的风格上,参数的数量有点偏。

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

嗯,看起来是这样的。

#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,0,0,indicator_color1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i=rates_total-prev_calculated-1;
   if(prev_calculated>0)     i++;

   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=сlose[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
 
evillive:

为什么要设定最低限度?

#property indicator_minimum 1???

是的,还有两次颜色,为什么,还有不同?

但主要的错误是在缓冲区的风格上,参数的数量有点偏。

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

嗯,看起来是这样的。

非常感谢您!关于#propertyindicator_minimum1 我不知道它是用来做什么的 :),如果不是很难解释的话?我的编程经验是3个失败的EA

 
bobrush:关于#propertyindicator_minimum1 我不知道它是用来做什么的 :)如果这不难解释?

一个单独的指标窗口的刻度下限,超过这个限制的一切都不会显示在窗口中。通常,当你需要一个固定的指标刻度,并知道其数值不超过这个限制时,就会设置最小-最大。
 
evillive:

单个指标窗口刻度的下限,超出此限的任何东西都不会在窗口中显示。通常情况下,当需要一个固定的指标刻度时,就会设置最小-最大值,并且已知其数值不会超过这个限制。
哦,正是我在寻找的,谢谢)