
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я вот пытаюсь это подключить, но не получается!
У меня отдельный класс для работы с ордерами, соответственно я внёс в начале кода советника изменение, и получаю 100 ошибок по своему классу, я что-то не так пытаюсь запустить?
#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>
Я вот пытаюсь это подключить, но не получается!
У меня отдельный класс для работы с ордерами, соответственно я внёс в начале кода советника изменение, и получаю 100 ошибок по своему классу, я что-то не так пытаюсь запустить?
#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>
MT4Orders воздействует только на тот код, который находится ниже (после #include). Поэтому поместите Ваш класс не до, а ПОСЛЕ библиотеки.
1. для начала надо увидеть без помощи общества телепатов что у него за ошибки.
2. А если cPoza13-1 использует MT4Orders и MQL4_to_MQL5, то почему они не включаются в сам файл cPoza13-1? А где то снаружи... странный подход к кодингу
А если cPoza13-1 использует MT4Orders и MQL4_to_MQL5, то почему они не включаются в сам файл cPoza13-1? А где то снаружи... странный подход к кодингу
Подход понятный. cPoza - в чистом виде MQL4-библиотека. Поэтому она не правится.
Например, сделал так конвертацию еще одного MT4-советника (альтернативная конвертация) в кроссплатформенный код
#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
Решил попробовать, т.к. переписываю бота на мт5 и нужно быстренько потестировать :) У вас написано что для hedge счетов, оно и понятно. А как обстоит дело с нетинговыми? Ну с учетом того, что моя стратегия будет использовать только одну открытую позицию, все остальное будет работать корректно?
Саму OrdersHistoryTotal легко ускорить кэшированием счетчика.
Возможно, конечно. Не видел необходимости.
Я использую анализ истории, мой ММ подразумевает торговлю ситуации, на протяжении которой происходит закрытие и открытие позиций, а риск учитывается с использованием финансового результата с начала возникновения ситуации.
Под ситуацией можно представить выявление тренда - работа по его окучиванию до его завершения ведется разная - открытие и закрытие позиций, но важно знать чем можно рисковать так как чем дольше тренд протекает, тем больше вероятность его завершения - отсюда разный объем открываемых ордеров и точек выхода.
#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
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;
}