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

 

Сейчас невозможно определить, работает ли запущенный эксперт в режиме торговли или же в режиме приема фреймов. Прошу добавить соответствующее упоминание в название советника, как это сделано уже с Debug-запуском.

 
const uchar Tmp[]; // 'Tmp' - 'const' variable must be initialized  
FrameAdd(Name, ID, Value, Tmp); // Нужно передать только Value
 
fxsaber:

Нужен аналог IndicatorParameters для советников - ExpertParameters.

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

А функция FrameInputs не помогает? Или я не понял что и как предполагается использовать.

 
Stanislav Korotky:

А функция FrameInputs не помогает? Или я не понял что и как предполагается использовать.

Да, это то, что нужно! В упор не увидел.

 

раньше можно было в ме перетянуть библиотеку DLL и увидеть список доступных функций, сейчас такого нет или как то изменилось все ?

 

В очередной раз ошибка HistorySelect  в тестере. В 1626, вроде, не было. В 1629 - есть.

#include <Trade\Trade.mqh>

void OnTick()
{
  static CTrade Trade;

  const datetime NowTime = TimeCurrent();
  
  if (Trade.Buy(1) && Trade.PositionClose(_Symbol) && HistorySelect(NowTime, NowTime))
  {
    Print(HistoryDealsTotal()); // 0 - это при том, что мы открыли и закрыли позицию в NowTime-время
      
    ExpertRemove();
  }
}
 
fxsaber:

В очередной раз ошибка HistorySelect  в тестере. В 1626, вроде, не было. В 1629 - есть.

Эксперт работает на вашем компьютере с заранее загруженной информации.

Чтоб отобразиться действие сделанное сейчас , нужно некоторое время (менше 10 секунд) :

1. Ваш терминал отправляет запрос на сервер

2. Сервер обрабатывает

3. Обновляется информация в вашем терминале

4. Уже после то у вас сработает правильно HistorySelect и HistoryDealsTotal

То есть : чтоб видеть последние действие в историю , нужно выполнить Sleep после Trade и перед HistorySelect

... либо каким то способом проверить что история не устарела.

( то же как и с котировок - они у вас есть, но такие какие били в момент загрузки )

 
Ivan Ivanov:
fxsaber:

В очередной раз ошибка HistorySelect  в тестере. В 1626, вроде, не было. В 1629 - есть.

 

Вот пример :

//--- отправка запроса
    if ( !OrderSend(request,result) )
      PrintFormat("OrderSend error %d",GetLastError());
    else
    { Sleep(9999); // Time to get result
      ..... // Здесь мне нужен result
    }

Без Sleep у меня не работает, а когда там 10 секунд - нормально.

https://www.mql5.com/ru/docs/trading/ordersend
Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ivan Ivanov:

Вот пример : 

Речь про тестер.
Причина обращения: