Обсуждение статьи "Создай торговый робот за 6 шагов!" - страница 7

 

Я пытался использовать эту статью для создания собственной программы, но она слишком сложна для моих простых целей. Здесь я попытался сделать простую программу, но компилятор обнаружил (только) одну ошибку: Класс с "отсутствующим типом". И неважно, что я вводил в качестве "типа" или "имени" класса, изменений не было.

Вот начало. Что я делаю не так?


//|KaufVerkauf.mq5 |

//|Авторское право ....2012 |
//|http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright .... 2012"
#property link"http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Include|
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>


//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Инициализация объекта Expert |
//+------------------------------------------------------------------


//---- хэндлы индикаторов
int RSI_handle = 0;// хэндл индикатора iRSI
intADX_handle = 0; // хэндл индикатора iADX
intForce_handle = 0; // хэндл индикатора iForce
int AD_handle = 0;// хэндл индикатора iAD
int Close_handle = 0;
intHigh_handle = 0;
int Low_handle = 0;
int VTick_handle = 0;
int VReal_handle = 0;
int sig =0;


double MqlParams[]; // Массив для хранения параметров индикатора

//+------------------------------------------------------------------+
//| Функция инициализации эксперта RSI|
//+------------------------------------------------------------------+

Класс CExpertSignal

{
private:

int OnInit()

//--- создание индикатора iRSI...........
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 

Спасибо большое.

Я пытаюсь проверить это:

- Скачиваю ваш код, копирую в MQL5 и компилирую: успешно, без ошибок.

- Но советник не может запуститься, он выдает ошибку, как показано ниже:

TestMA_Cross (EURUSD,H1) MA_Cross::CreateFastMA: Ошибка инициализации объекта быстрой МА

Пожалуйста, помогите мне, что не так с этими параметрами:

//--- Установка параметров быстрого MA
   MqlParam parameters[4];
//---
   parameters[0].type=TYPE_STRING;
   parameters[0].string_value="Examples\\Custom Moving Average.ex5";
   parameters[1].type=TYPE_INT;
   parameters[1].integer_value=m_period_fast;      // Период
   parameters[2].type=TYPE_INT;
   parameters[2].integer_value=0;                  // Смена
   parameters[3].type=TYPE_INT;
   parameters[3].integer_value=m_method_fast;      // Метод усреднения
//--- Инициализация объекта
   if(!m_fast_ma.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,parameters))
     {
      printf(__FUNCTION__+": Error initializing the object of the fast MA");
      return(false);
     }

Еще раз большое спасибо.

 

Прежде всего, я хотел бы поблагодарить автора(ов) за эту статью.
Я новичок в MetaTrader, MQL5 и торговле на Forex, поэтому эти статьи очень полезны!

Когда я тестирую этот советник, я замечаю, что для закрытия длинной позиции он дает сигнал на продажу с удвоенным размером лота.
Почему он не только закрывает мою длинную позицию, но и напрямую входит в короткую по тому же сигналу?
В качестве первого теста, чтобы понять все программирование, я хотел бы идти только в длинную позицию, то есть только открывать и закрывать длинную
позицию без входа в короткую позицию по сигналу закрытия/продажи.

Заранее спасибо.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Environment State / Symbol Properties - Documentation on MQL5
 

Добрый день, 

Посоветуйте, пожалуйста, как увеличить (долить) позицию в советнике, который написан на базе Мастера MQL5 и где позиции открываются через

   virtual int       LongCondition();
   virtual int       ShortCondition();   

Я написал робот по рекомендациям в статье  

 https://www.mql5.com/ru/articles/367   "создай торговый робот за 6 шагов" и он прекрасно работает, но попытки повлиять на размер позиции

(неважно увеличить или уменьшить) через повторную генерацию условия  в , например в 

LongCondition();

ни к чему не приводит, уже открытая позиция не изменяется, ее можно только удалить через выполнение условия закрытия или по срабатыванию sl , tp.

 Мастер MQL5 мне нравиться, можно легко и быстро "собирать" многоиндикаторный советник, менять модуль отслеживания sl, менять модуль управления капиталом.

Но попытка написать советник, который открывает минимальную позицию при формировании условия от одного индикатора и увеличивает (доливает) позицию при подтверждении тренда другим индикатором

натолкнулась на вышеописанную проблему - уже открытая позиция не изменяется при повторной выдаче сигнала на открытие через. например LongCondition();

Спасибо. 

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 

Если я запускаю этот пример в тестере стратегий mt5 и выбираю актив pex. Vale5, генетический алгоритм, d1, ohlc 1 минута, максимальный баланс, он выдает ошибку!

Если я запускаю ее на паре форекс, та же самая оптимизация, похоже, завершается (я не ожидал этого, потому что она занимает слишком много времени на локальном агенте).

Ошибка, которая появляется в дневнике тестера, в данном случае для Vale5, имеет отношение к OnInit. Кто-нибудь обнаружил такую же проблему? Если да, то есть ли у вас какие-либо решения и/или выводы?

Спасибо, если кто-то сможет помочь!

 
fspyna:

Если я запускаю этот пример в тестере стратегий mt5 и выбираю актив pex. Vale5, генетический алгоритм, d1, ohlc 1 минута, максимальный баланс, он выдает ошибку!

Если я запускаю ее на паре форекс, та же самая оптимизация, похоже, завершается (я не ожидал этого, потому что она занимает слишком много времени на локальном агенте).

Ошибка, которая появляется в дневнике тестера, в данном случае для Vale5, имеет отношение к OnInit. Кто-нибудь обнаружил такую же проблему? Если да, то есть ли у вас какие-либо решения и/или выводы?

Спасибо, если кто-то сможет помочь!

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

Простое описание, подобное тому, что вы привели выше, не слишком помогает в определении проблемы.

С наилучшими пожеланиями,
Malacarne.

 

У меня нет опыта (пока) программирования на MQL, но есть опыт программирования на других языках. Одна из самых простых ошибок в программировании (мой конкретный курс был Java, которая очень похожа по стилю на C++ и, видимо, MQL) - это неправильное закрытие скобок. Это одна из самых простых ошибок, которую можно сделать, и, наоборот, одна из тех, которые труднее найти.KJG, что касается закрытия лонга и перехода в шорт, то, вероятно, именно на это и рассчитан данный стиль советника. Я видел много торговых стилей с подобными настройками, полагаю, они были разработаны для рынка с высокой волатильностью и постоянными резкими колебаниями цен, как на графике минутного таймфрейма.

Хорошая статья. Я обязательно воспользуюсь этой статьей и многими другими здесь, я уверен.

 
Я следовал инструкциям в шагах 1 и 2, но сигнал не появляется в списке доступных сигналов мастера. Я пробовал использовать другие сигналы, но ни один не работает. Возможно, существует ограничение на количество сигналов, которые могут быть отображены в мастере. Кто-нибудь может помочь?
 

Добрый вечер,

При попытке протестировать робота вы получаете следующую ошибку.

2017.07.04 18:20:27.404 tester stopped because OnInit failed.

Я что-то делаю не так или есть настройки, которые нужно сделать в роботе?

Спасибо

Carlos F.

 

Хорошо объяснены различные этапы строительства. Это понятная и полезная работа, особенно для тех, кто никогда не разрабатывал робота. Спасибо.