Ошибки, баги, вопросы - страница 3645

 
Oleg Kiss #:
есть ли на фондовом рынке какие то советники или что то, что тоже может следить за курсом, производить куплю-продажу по какому то алгоритму

Если у брокера есть поддержка терминала MT4/MT5, то можете дальше использовать советники с некоторой модификацией.

Иначе у брокера может быть иной софт, поддерживающий встроенные языки программирования, или API для доступа к торговому окружению, тогда на многих языках можно писать советники.

 

"Задним числом" образовался гэп по многим валютным парам на демо серверах MQ - пропало полтора часа истории! Есть ли возможность исправить это?


 

Что именно синхронизировано если SERIES_SYNCHRONIZED возвращает true? На скриншоте ниже история синхронизирована не смотря на то, что ее нет.

#property indicator_plots 0

int OnInit() { 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[])
  {
   static bool flag = false;
   if(flag)
      return rates_total;
   flag = true;
   //---
   test(PERIOD_H6);
   //---
   return rates_total;
  }

#define _boolToStr(a) ((a) ? "true" : "false")
void test(ENUM_TIMEFRAMES a_tf)
  {
   const bool syncBefore = SeriesInfoInteger(Symbol(), a_tf, SERIES_SYNCHRONIZED);
   MqlRates rates[1];
   ResetLastError();
   CopyRates(Symbol(), a_tf, 0, 1, rates);
   const int copyRatesError = _LastError;
   const bool syncAfter = SeriesInfoInteger(Symbol(), a_tf, SERIES_SYNCHRONIZED);
   PrintFormat("current bar %s, syncBefore %s, copyRatesError %i, syncAfter %s", TimeToString(rates[0].time),
               _boolToStr(syncBefore), copyRatesError, _boolToStr(syncAfter));
  }
 
Подскажите способ (без namespace), позволяющий избежать следующей ошибки (долго искал).
void OnStart()
{
  INPUT Input = {5};
  
  if (Input.StartHour == 5)
    Print(StartHour); // Хотел увидеть Input.StartHour, но по невнимательности написал без Input.
}

// Где-то в дебрях.
struct INPUT { int StartHour; };

// Где-то в дебрях.
enum ENUM { StartHour };


Расчет был на то, что переменной StartHour вне INPUT нет, поэтому в случае ошибки компилятор ругнется. Переменной и не было, но оказалось, что есть ENUM (без ALT+G не нашел бы).

 
Aleksey Vyazmikin #:

"Задним числом" образовался гэп по многим валютным парам на демо серверах MQ - пропало полтора часа истории! Есть ли возможность исправить это?


Опять дырки рисуют - зачем?


 
Aleksey Vyazmikin #:

Опять дырки рисуют - зачем?

Даже мне не удалось что-либо понять на скрине, что уж говорить про куда менее (есть, чем заняться) мотивированных MQ.

Зачем создавать сообщения, которые на 100% (даже не 99.99%) не дадут обратной связи?!

 
fxsaber #:
Подскажите способ (без namespace), позволяющий избежать следующей ошибки

Тоже были проблемы.

У меня так:

enum MINMAXTYPE {
     MINMAXTYPE_NONE,
     MINMAXTYPE_MIN,
     MINMAXTYPE_MAX
};
enum DIVORCE_TYPE{
   DIVORCE_NONE = 0,
   DIVORCE_BUY = 1,
   DIVORCE_SELL = 2,
   DIVORCE_BAR = 4
};

В Canvas.mqh:

enum ENUM_LINE_END
  {
   LINE_END_ROUND,
   LINE_END_BUTT,
   LINE_END_SQUARE,
  };
 
fxsaber #:

Даже мне не удалось что-либо понять на скрине, что уж говорить про куда менее (есть, чем заняться) мотивированных MQ.

Зачем создавать сообщения, которые на 100% (даже не 99.99%) не дадут обратной связи?!

Что тут не понятно? Историю сервер удаляет и получаются гэпы - синяя область на последнем скрине.

 
Aleksey Vyazmikin #:

Опять дырки рисуют - зачем?

Не нравиться, используйте сервера брокеров. 

MetaQuotes не брокер, качественную историю не обязан предоставлять

MetaQuotes учебные счета, просто кладезь багов и ошибок, благодаря котором, можно учесть массу моментов в своих торговых роботах и индикаторох.

Чем хуже качество истории и котировок на серверах MetaQuotes,  тем качественнее эксперты, создаваемые и тестируемые на этих серверах.

Я годами собирал ошибки серверов у разных брокеров, а тут все в одном месте...

 
Aleksey Vyazmikin #:

Что тут не понятно? Историю сервер удаляет и получаются гэпы - синяя область на последнем скрине.

Даже после объяснения не вижу этого на скрине. Наверное, таких много.