初学者的问题 MQL5 MT5 MetaTrader 5 - 页 922

 
Artyom Trishkin:

简单地在CArrayObj: Add()数组中添加另一个CArrayObj数组

不这样做。不允许参数转换

顺便说一句,如果有关系的话。我的要添加到数组的对象是一个继承自CArrayObj 的类。

class CCustomClass : public CArrayObj
{
}




CCustomClass obj1;
CCustomClass obj2;
...

CArrayObj objects_array;
objects_array.Add(obj1); 
嗯,它在最后一行发誓--不允许参数转换。
 
objects_array.Add(GetPointer(obj1)); 
它在工作,没看到我没有指针。
 
TaywinLannister:

亲爱的论坛成员,请帮助我们!!!。

我想把一个价格步骤分配给一个变量。

int V=SymbolInfoInteger(Symb,SYMBOL_POINT)。

错误:'SymbolInfoInteger' - 没有一个重载可以应用于函数调用

我的错误是什么来着?


int V=(int)Symb,SYMBOL_POINT 的SymbolInfoInteger。

那就试试吧。

 
foreXteller:

亲爱的论坛成员!

请指教!!!。

MetaTrader 5窗口显示买入卖出 值,(据我所知)这决定了赢/输。

然而,当我试图使用历史上的分钟报价来测试我的策略时,这些报价并不包含买入 卖出 值,而是给出了" OPEN"、"HIGH"、"LOW"、"CLOSE"、"TICKVOL""VOL"、"SPREAD"的值。如何从这些数值中获取买入 卖出,以及如何计算价差,都不太清楚。

一切都绝对清楚。更详细地描述一下 "当我试图使用分钟历史引号时 "到底是什么意思?你到底在做什么或想做什么?

 
TaywinLannister:

亲爱的论坛成员,请帮助我们!!!。

我想给价格步骤分配一个变量。

int V=SymbolInfoInteger(Symb,SYMBOL_POINT)。

错误:'SymbolInfoInteger' - 没有一个重载可以应用于函数调用

我的错误 是什么来着?


SymbolInfoInteger 的帮助。

1.直接返回该属性的值。

long  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // идентификатор свойства 
   );

2.根据函数的成功,返回真或假。如果成功,该属性的值将被放置在最后一个参数通过引用传递的目标变量中。

bool  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // идентификатор свойства 
   long&                     long_var   // сюда примем значение свойства 
   );


这就是ORlong ORbool

 
TaywinLannister:

亲爱的论坛成员,请帮助我们!!!。

我想把一个价格步骤分配给一个变量。

int V=SymbolInfoInteger(Symb,SYMBOL_POINT)。

错误:'SymbolInfoInteger' - 没有一个重载可以应用于函数调用

我的错误是什么来着?


double V=SymbolInfoDouble(Symb,SYMBOL_POINT);

点是一个双数类型的值。当作为int接收时,它将有一个零值。

 
Vladimir Karputov:

SymbolInfoInteger 帮助。

1.直接返回该属性的值。

2.根据函数的成功,返回真或假。如果成功,该属性的值将被放置在最后一个参数通过引用传递的目标变量中。


这就是ORlong ORbool

明白了,谢谢)

 
#property copyright "Copyright 2018, Sergey S Morozov"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//#property indicator_separate_window    // Индик. рисуется в новом окне
#property indicator_chart_window    // Индик. рисуется в основном окне

#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red     // Цвет первой линии

extern int History  =50;            // Колич.баров в расчётной истории
extern int Aver_Bars=5;             // Количество баров для расчёта

double ArrayBuff[];

//----------------------------------------------------------------------------------------------------

int OnInit()
{
   SetIndexBuffer(0,ArrayBuff);
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
   return(INIT_SUCCEEDED);
}

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,                           // Индекс бара
      n,                               // Формальный параметр
      Counted_bars;                    // Количество просчитанных баров 
      double
      Sum_H,                           // Сумма значений High за переиод
      Sum_L;                           // Сумма значений Low  за переиод
   //--------------------------------------------------------------------
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
      if (i>History-1)                 // Если много баров то ..
         i=History-1;                  // ..рассчитывать заданное колич.
      while(i>=0)                      // Цикл по непосчитанным барам
        {
         Sum_H=0;                      // Обнуление в начале цикла
         Sum_L=0;                      // Обнуление в начале цикла
         for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
           {
            Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
            Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
           }
         ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars;  // Знач. 0 буфера на i-ом баре
         i--;                                   // Расчёт индекса следующего бара
        }

   return(rates_total);

  }
//+------------------------------------------------------------------+

我刚刚开始,我还不知道如何用这种语言写作。但问题是--如果在一个新的窗口中,图表出现。但我不能在当前的中显示它...我的错误是什么?考虑到我自己写不出来,而且在这里也找不到例子。更何况,这显然不是通过SetChartData(point1,point2)这样的函数;它只是自己发生了......

而且变量似乎已经设置好了(indicator_chart_window),但仍然不能工作....

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
 
Vladimir Karputov:

绝对是应有尽有。更详细地描述一下 "当我试图使用分钟历史引号时 "到底是什么意思?你到底在做什么或想做什么?

为了下载历史报价加载MetaTrader 5,点击带有 美元符号 图标:"符号列表显示"(或者你可以按Ctrl U)。将出现 "符号 "窗口。在 "SPECIFICATION "标签上找到所需的货币对,例如GBPCHF。在 "BARs "选项卡中设置分钟报价(M1)和所需时期的开始和结束日期。点击 "REQUEST "按钮后,将下载一个csv 文件,该文件可用于用Metatrader或自己的程序测试策略。

使用EXCEL ,你可以查看这个文件的内容,其中第一行揭示了文件中的信息,即 "日期、时间",然后是" OPEN"、"HIGH""LOW"、"CLOSE"、"TICKVOL"、"VOL"、"SPREAD"

我知道这些数据的确切含义,但如何从MetaTrader 5使用的这些数据中制作BIT ASK

 
请告诉我,在mt5中,你可以在哪里检查关于一个符号的信息?我记得在MT4中可以在策略测试器 中检查,但在MT5测试器中我没有发现这个功能。