Библиотеки: MT4Orders - страница 4

 
Саму OrdersHistoryTotal легко ускорить кэшированием счетчика.
 

Я вот пытаюсь это подключить, но не получается!

У меня отдельный класс для работы с ордерами, соответственно я внёс в начале кода советника изменение, и получаю 100 ошибок по своему классу, я что-то не так пытаюсь запустить?

 

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

 
-Aleks-:

Я вот пытаюсь это подключить, но не получается!

У меня отдельный класс для работы с ордерами, соответственно я внёс в начале кода советника изменение, и получаю 100 ошибок по своему классу, я что-то не так пытаюсь запустить?

 

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

MT4Orders воздействует только на тот код, который находится ниже (после #include). Поэтому поместите Ваш класс не до, а ПОСЛЕ библиотеки.
 
fxsaber:
MT4Orders воздействует только на тот код, который находится ниже (после #include). Поэтому поместите Ваш класс не до, а ПОСЛЕ библиотеки.

1. для начала надо увидеть без помощи общества телепатов что у него за ошибки.

2. А если cPoza13-1 использует MT4Orders и MQL4_to_MQL5, то почему они не включаются в сам файл cPoza13-1? А где то снаружи...   странный подход к кодингу

 
Решил попробовать, т.к. переписываю бота на мт5 и нужно быстренько потестировать :) У вас написано что для hedge счетов, оно и понятно. А как обстоит дело с нетинговыми? Ну с учетом того, что моя стратегия будет использовать только одну открытую позицию, все остальное будет работать корректно?
 
o_O:

А если cPoza13-1 использует MT4Orders и MQL4_to_MQL5, то почему они не включаются в сам файл cPoza13-1? А где то снаружи...   странный подход к кодингу

Подход понятный. cPoza - в чистом виде MQL4-библиотека. Поэтому она не правится.

Например, сделал так конвертацию еще одного MT4-советника (альтернативная конвертация) в кроссплатформенный код

#include <MT4Orders.mqh>    // https://www.mql5.com/ru/code/16006
#include <MQL4_to_MQL5.mqh> // https://www.mql5.com/ru/code/16006

#ifdef __MQL5__
  #define MODE_MINLOT SYMBOL_VOLUME_MIN
  
  double MarketInfo( const string Symb, const ENUM_SYMBOL_INFO_DOUBLE Type )
  {
    return(SymbolInfoDouble(Symb, Type));
  }
  
  void OnTick()
  {
    start();
  }  
#endif

#include "OpenTiks.mq4" // https://www.mql5.com/ru/code/8578
Т.е. мой подход при конвертации - не вмешиваться в оригинальный файл.
 
Maxim Dmitrievsky:
Решил попробовать, т.к. переписываю бота на мт5 и нужно быстренько потестировать :) У вас написано что для hedge счетов, оно и понятно. А как обстоит дело с нетинговыми? Ну с учетом того, что моя стратегия будет использовать только одну открытую позицию, все остальное будет работать корректно?
Будет работать! На бирже все делаю через MT4Orders. При этом не ограничиваю себя количеством открытых поз.
 
Stanislav Korotky:
Саму OrdersHistoryTotal легко ускорить кэшированием счетчика.

Возможно, конечно. Не видел необходимости.

-Aleks-:

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

Под ситуацией можно представить выявление тренда - работа по его окучиванию до его завершения ведется разная - открытие и закрытие позиций, но важно знать чем можно рисковать так как чем дольше тренд протекает, тем больше вероятность его завершения - отсюда разный объем открываемых ордеров и точек выхода. 

Видимо, надо все же сделать.
 
Еще один пример конвертации MT4-советника (альтернативная конвертация) в кроссплатформенный вариант
#include <MT4Orders.mqh>    // https://www.mql5.com/ru/code/16006
#include <MQL4_to_MQL5.mqh> // https://www.mql5.com/ru/code/16006

#ifdef __MQL5__
  double AccountBalance( void )  
  {
    return(AccountInfoDouble(ACCOUNT_BALANCE));
  }
  
  int TimeHour( const datetime Date )
  {
    MqlDateTime Tmp;
  
    TimeToStruct(Date, Tmp);
  
    return(Tmp.hour);
  }  
  
  void OnTick()
  {
    start();
  }  
#endif

#include "20_200_expert_v4_2_AntS.mq4" // https://www.mql5.com/ru/code/7891
Исходник оригинала в приложении.
Файлы:
 
fxsaber:
MT4Orders воздействует только на тот код, который находится ниже (после #include). Поэтому поместите Ваш класс не до, а ПОСЛЕ библиотеки.

 

Понял - спасибо - ошибки почти пропали, осталась одна:

 'OrderCloseBy' - function not defined cPoza13-1.mqh 1885 8

 //+------------------------------------------------------------------------------------------------------------------------------------+
//| Возвращает TRUE, если один ордер закрылся другим
//+------------------------------------------------------------------------------------------------------------------------------------+
bool cPoza::closeBy(int ticketB, int ticketA)
{
  if(ticketB > 0 && ticketA > 0)
  {
    if(OrderCloseBy(ticketB, ticketA)) return true;
    else Print("Magic=", mMagic, " ",__FUNCTION__, " Встречное закрытие не вышло ticketB=", ticketB, " ticketA=", ticketA, " вызвало ошибку-", _LastError);
  }
  else return false;
 
  return false;
}

Причина обращения: