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

Я не мастер программировать на mql5, но из этой статьи сделел вывод что, чтобы написать простого эксперта на пересечении 2-х МА, в mql5 нужно аж 2 файла, и плюс писанины какой-то сложной куча! В mql4 для такого экперта нужно всего не более 10 строк и готово!!! Получается если в mql4 тратится на советника например 1 день - то в mql5 нужно на такого же советника убить целых 3, в лучшем случае 2 дня!!! И ещё я понял отичие между этими двумя языками только в том, что в mql5 можно делать всякие красивые и функциональные панельки и всё, и от того что он на mql5 написан, торговать лучше - этот эксперт не будет! Критикуйте и переубеждайте меня.
zlodei:
Критикуйте и переубеждайте меня.
Попробуйте еще раз прочитать.
zlodei:

Я не мастер программировать на mql5, но из этой статьи сделел вывод что, чтобы написать простого эксперта на пересечении 2-х МА, в mql5 нужно аж 2 файла, и плюс писанины какой-то сложной куча!

вывод ошибочный, так как вам предлагают готовые универсальные решения. А такие решения не бывают в двух строчках

Если вам нужен робот чисто на пересечении 2 МА, конкретно для вашей задачи, то его в MQL5 тоже можно написать в 10 строк и готово!!!

Созданный мною советник (hetireema.mq5) каким-то чудным образом заработал на терминале InstaTrader5 (созрел без лишних манипуляций), однако сигнал не виден в  "Мастере" (еще не созрел). Более сложные сигналы созданные по аналогии с 7 и 10 ЕМА- и опять не работают, хотя компилятор  ошибок не видит, в терминале файлы эксперта и сигнала присутствуют, в тестере эксперт есть, входные параметры задаются, а сделки не производятся . Т.е. mql5 язык с капризами или терминалы с глюками.

 Действительно в mql5 очень сложно создать код. Для описания взаимного расположения нескольких ЕМА необходимо 500 строк кода, а то и более. Основная масса кода это проверка ошибок и условий которые перегружают код. Создавал роботов на терминале АсtTrader (язык ActFX (Pascal), там торговых роботов можно шлепать по 50 штук в день с любым набором индикаторов и условий. Занимает робот 2 страницы без лишнего кодоблудия. Однако тестирование крайне   медленное   и история свечей очень ОЧЕНЬ!!! короткая. На МQL5 подкупила быстрота и большая история свечей. Надо выбирать, или неделями писать роботы, или неделями тестировать, быстро написанные. Если MQL4 нивелирует все эти недостатки - уйду туда. Хотя наверное обсуждение языков это другая ветка форума.

alextxpert99:

Созданный мною советник (hetireema.mq5) каким-то чудным образом заработал на терминале InstaTrader5 (созрел без лишних манипуляций), однако сигнал не виден в  "Мастере" (еще не созрел).

Вы уверены, что сделали всё по рецепту?

  1. Создать новый класс с помощью Мастера MQL5 в отдельной папке MQL5/Include/MySignals/. В нем будет наш модуль торговых сигналов.
  2. Составить дескриптор модуля в котором описаны параметры, их тип и значения по умолчанию.
  3. Объявить параметры модуля в самом классе и добавить методы для инициализации в конструкторе.
  4. Проверить входные параметры на корректность и не забыть вызвать метод ValidationSettings() базового класса CExpertSignal.
  5. Создать объекты-индикаторы и добавить предопределенный метод инициализации InitIndicators().
  6. Определить условия возникновения торговых сигналов в методах LongCondition() и ShortCondition().
 Буду  пробовать ещё и ещё. О результатах сообщу.
   Спасибо за поддержку!! Была ошибка в дескрипторе модуля -(Type - указывает на версию модуля сигналов. Всегда должен быть SignalAdvanced;). Исправил и сигналы в "Мастере" появились. Индикаторы не проявляются в сигналах где их количество больше - 4. При создании эксперта буду пробовать компоновать по несколько однотипных простых торговых сигнала. 

Очень хорошо написанная статья, которая, однако, оставила меня разочарованным, так как уже на первом/втором (?) шаге я получил два сообщения об ошибке:

В строке 10 компилятор смог найти, но не открыть файл "ExpertSignal.mqh". Я проверил это, загрузив приложенный файл "MA_...", для которого компилятор выдал то же сообщение об ошибке. Затем, конечно, он также не смог распознать структуру"CExpertSignal" в строке 33 ("MA_..."), тем самым сорвав весь процесс.

Что здесь было не так?

Спасибо!

Locan.BBS

locan.BBS:

Очень хорошо написанная статья, которая, однако, оставила меня разочарованным, так как уже на первом/втором (?) шаге я получил два сообщения об ошибке:

В строке 10 компилятор смог найти, но не открыть файл "ExpertSignal.mqh". Я проверил это, загрузив приложенный файл "MA_...", для которого компилятор выдал то же сообщение об ошибке. Затем, конечно, он также не смог распознать структуру "CExpertSignal" в строке 33 ("MA_..."), тем самым сорвав весь процесс.

Что же там было не так?

ExpertSignal.mqh находится в папке terminal_data_folder\MQL5\Include\Expert\ExpertSignal.mqh.

Возможно, проблема в неправильном расположении MA_Cross.mqh (он должен быть создан в папке terminal_data_folder\MQL5\Include\Expert\MySignals\MA_Cross.mqh):


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

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


//|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