Обсуждение статьи "Как создать свой Trailing Stop" - страница 6

 
Чёт не один из выложенных кодов не открывает сделки, выдавая ошибки 2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alert: Запрос на установку ордера Buy не выполнен - код ошибки:4756    При этом запрос по ценам вроде как актуальный  2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alert: action= 1price= 3900.88sl= 3900.58tp= 3901.88volume= 0.1magic= 12345type= 0type_filling= 0deviation= 1000


 
Спасибо, отличная статья, очень подробная.
 

Похоже, это уже мертвая дискуссия, но я все же добавлю свои комментарии.


При компиляции обнаружена пара ошибок, которые необходимо устранить.

В запросе ZeroMemory в строке 116 компилятор говорит

'ZeroMemory' - неожиданный toke, возможно, тип - mission?

'mrequest' - объявление без типа

Похоже, что mrequest не был правильно объявлен с типом......Не знаю, как это исправить.


Также,


возвращаемое значение "OrderSend" должно быть проверено. в строке 215 и 262


Похоже, что возвращается значение, которое не должно возвращаться.


Любая помощь в исправлении этих двух проблем будет очень признательна.

Крис

 

Очень хочется понять, что написано в комментариях ?

class CTrailingStop{

   protected:
      string m_symbol;              // ñèìâîë
      ENUM_TIMEFRAMES m_timeframe;  // òàéìôðåéì
      bool m_eachtick;              // ðàáîòàòü íà êàæäîì òèêå
      bool m_indicator;             // ïîêàçûâàòü èíäèêàòîð íà ãðàôèêå
      bool m_button;                // ïîêàçûâàòü êíîïêó âêëþ÷åíèÿ/âûêëþ÷åíèÿ
      int m_button_x;               // êîîðäèíàòà õ êíîïêè
      int m_button_y;               // êîîðäèíàòà ó êíîïêè
      color m_bgcolor;              // öâåò êíîïêè
      color m_txtcolor;             // öâåò íàäïèñè êíîïêè
      int m_shift;                  // ñìåùåíèå áàðà
      bool m_onoff;                 // âêëþ÷åíî/âûêëþ÷åíî
      int m_handle;                 // õýíäë èíäèêàòîðà
      datetime m_lasttime;          // âðåìÿ ïîñëåäíåãî âûïîëíåíèÿ òðåéëèíã ñòîïà
      MqlTradeRequest m_request;    // ñòðóêòóðà òîðãîâîãî çàïðîñà
      MqlTradeResult m_result;      // ñòðóêòóðà ðåçóëüòàòà òîðãîâîãî çàïðîñà
      int m_digits;                 // êîëè÷åñòâî çíàêîâ ïîñëå çàïÿòîé ó öåíû
      double m_point;               // çíà÷åíèå ïóíêòà
      string m_objname;             // èìÿ êíîïêè
      string m_typename;            // èìÿ òèïà òðåéëèíã ñòîïà
      string m_caption;             // íàäïèñü íà êíîïêå
 
Очень полезное чтение, спасибо!
 
Привет, друзья, я изменил OrderSend для объекта Trade, намного проще. Также событие выполняется каждую секунду, нет необходимости в такой быстрой частоте. Я изменил его на каждые 60 секунд, и это значительно улучшает производительность.
 
Rustam Ayupov #:

Очень хочется понять, что написано в комментариях ?

protected:
string m_symbol;             // символ
ENUM_TIMEFRAMES m_timeframe; // таймфрейм
bool m_eachtick;             // работать на каждом тике
bool m_indicator;            // показывать индикатор на графике
bool m_button;               // показывать кнопку включения/выключения
int m_button_x;              // координата х кнопки
int m_button_y;              // координата у кнопки
color m_bgcolor;             // цвет кнопки
color m_txtcolor;            // цвет надписи кнопки
int m_shift;                 // смещение бара
bool m_onoff;                // включено/выключено
int m_handle;                // хэндл индикатора
datetime m_lasttime;         // время последнего выполнения трейлинг стопа
MqlTradeRequest m_request;   // структура торгового запроса
MqlTradeResult m_result;     // структура результата торгового запроса
int m_digits;                // количество знаков после запятой у цены
double m_point;              // значение пункта
string m_objname;            // имя кнопки
string m_typename;           // имя типа трейлинг стопа
string m_caption;            // надпись на кнопке

С уважением, Владимир.