Вопросы по Мастеру MQL5 и стандартной библиотеке торговых классов - страница 14

 
Например, рассмотрим сигналы от MACD. Всего описано 5 сигнало на покупку и 5 сигналов на продажу (разворот, пересечение с сигнальной линией и т.д.). Можно ли как то получить значение этих сигналов в каждый момент времени? Т.е. для каждого бара сформировать вектор из 10 элементов, где каждый элемент соответствует сигналу, 1 - его наличие, а 0 - отсутствие? Через какой метод класса CSignalMACD можно получить соответствующие значения?
 
IvanSD:

Например, рассмотрим сигналы от MACD. Всего описано 5 сигнало на покупку и 5 сигналов на продажу (разворот, пересечение с сигнальной линией и т.д.). Можно ли как то получить значение этих сигналов в каждый момент времени? Т.е. для каждого бара сформировать вектор из 10 элементов, где каждый элемент соответствует сигналу, 1 - его наличие, а 0 - отсутствие? Через какой метод класса CSignalMACD можно получить соответствующие значения?
К сожалению, такого функционала в стандартной поставке нет.
 
uncleVic:
К сожалению, такого функционала в стандартной поставке нет.
Спасибо за ответ!
 

Здравствуйте, помогите разобраться. Создал робота (мой первый робот). Сразу после запуска он выключается с сообщением Expert initializing of robot (EURUSD,H1) failed. Больше информации найти не могу.

Вот его код:

--------------------------------------

//+------------------------------------------------------------------+

//|                                                        robot.mq5 |

//|                        Copyright 2012, MetaQuotes Software Corp. |

//|                                              http://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2012, MetaQuotes Software Corp."

#property link      "http://www.mql5.com"

#property version   "1.00"

//+------------------------------------------------------------------+

//| Include                                                          |

//+------------------------------------------------------------------+

#include <Expert\Expert.mqh>

//--- available signals

#include <Expert\robot\robot.mqh>

//--- available trailing

#include <Expert\Trailing\TrailingNone.mqh>

//--- available money management

#include <Expert\Money\MoneyFixedLot.mqh>

//+------------------------------------------------------------------+

//| Inputs                                                           |

//+------------------------------------------------------------------+

//--- inputs for expert

input string         Expert_Title             ="robot";  // Document name

ulong                Expert_MagicNumber       =24553;    // 

bool                 Expert_EveryTick         =false;    // 

//--- inputs for main signal

input int            Signal_ThresholdOpen     =10;       // Signal threshold value to open [0...100]

input int            Signal_ThresholdClose    =10;       // Signal threshold value to close [0...100]

input double         Signal_PriceLevel        =0.0;      // Price level to execute a deal

input double         Signal_StopLevel         =50.0;     // Stop Loss level (in points)

input double         Signal_TakeLevel         =50.0;     // Take Profit level (in points)

input int            Signal_Expiration        =4;        // Expiration of pending orders (in bars)

input int            Signal_MaCross_FastPeriod=13;       // My_MA_Cross(13,MODE_SMA,21,...) Period of fast MA

input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Method of fast MA

input int            Signal_MaCross_SlowPeriod=21;       // My_MA_Cross(13,MODE_SMA,21,...) Period of slow MA

input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Method of slow MA

input double         Signal_MaCross_Weight    =1.0;      // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0]

//--- inputs for money

input double         Money_FixLot_Percent     =10.0;     // Percent

input double         Money_FixLot_Lots        =0.1;      // Fixed volume

//+------------------------------------------------------------------+

//| Global expert object                                             |

//+------------------------------------------------------------------+

CExpert ExtExpert;

//+------------------------------------------------------------------+

//| Initialization function of the expert                            |

//+------------------------------------------------------------------+

int OnInit()

  {

//--- Initializing expert

   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))

     {

      //--- failed

      printf(__FUNCTION__+": error initializing expert");

      ExtExpert.Deinit();

      return(-1);

     }

//--- Creating signal

   CExpertSignal *signal=new CExpertSignal;

   if(signal==NULL)

     {

      //--- failed

      printf(__FUNCTION__+": error creating signal");

      ExtExpert.Deinit();

      return(-2);

     }

//---

   ExtExpert.InitSignal(signal);

   signal.ThresholdOpen(Signal_ThresholdOpen);

   signal.ThresholdClose(Signal_ThresholdClose);

   signal.PriceLevel(Signal_PriceLevel);

   signal.StopLevel(Signal_StopLevel);

   signal.TakeLevel(Signal_TakeLevel);

   signal.Expiration(Signal_Expiration);

//--- Creating filter MA_Cross

   MA_Cross *filter0=new MA_Cross;

   if(filter0==NULL)

     {

      //--- failed

      printf(__FUNCTION__+": error creating filter0");

      ExtExpert.Deinit();

      return(-3);

     }

   signal.AddFilter(filter0);

//--- Set filter parameters

   filter0.FastPeriod(Signal_MaCross_FastPeriod);

   filter0.FastMethod(Signal_MaCross_FastMethod);

   filter0.SlowPeriod(Signal_MaCross_SlowPeriod);

   filter0.SlowMethod(Signal_MaCross_SlowMethod);

   filter0.Weight(Signal_MaCross_Weight);

//--- Creation of trailing object

   CTrailingNone *trailing=new CTrailingNone;

   if(trailing==NULL)

     {

      //--- failed

      printf(__FUNCTION__+": error creating trailing");

      ExtExpert.Deinit();

      return(-4);

     }

//--- Add trailing to expert (will be deleted automatically))

   if(!ExtExpert.InitTrailing(trailing))

     {

      //--- failed

      printf(__FUNCTION__+": error initializing trailing");

      ExtExpert.Deinit();

      return(-5);

     }

//--- Set trailing parameters

//--- Creation of money object

   CMoneyFixedLot *money=new CMoneyFixedLot;

   if(money==NULL)

     {

      //--- failed

      printf(__FUNCTION__+": error creating money");

      ExtExpert.Deinit();

      return(-6);

     }

//--- Add money to expert (will be deleted automatically))

   if(!ExtExpert.InitMoney(money))

     {

      //--- failed

      printf(__FUNCTION__+": error initializing money");

      ExtExpert.Deinit();

      return(-7);

     }

//--- Set money parameters

   money.Percent(Money_FixLot_Percent);

   money.Lots(Money_FixLot_Lots);

//--- Check all trading objects parameters

   if(!ExtExpert.ValidationSettings())

     {

      //--- failed

      ExtExpert.Deinit();

      return(-8);

     }

//--- Tuning of all necessary indicators

   if(!ExtExpert.InitIndicators())

     {

      //--- failed

      printf(__FUNCTION__+": error initializing indicators");

      ExtExpert.Deinit();

      return(-9);

     }

//--- ok

   return(0);

  }

//+------------------------------------------------------------------+

//| Deinitialization function of the expert                          |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   ExtExpert.Deinit();

  }

//+------------------------------------------------------------------+

//| "Tick" event handler function                                    |

//+------------------------------------------------------------------+

void OnTick()

  {

   ExtExpert.OnTick();

  }

//+------------------------------------------------------------------+

//| "Trade" event handler function                                   |

//+------------------------------------------------------------------+

void OnTrade()

  {

   ExtExpert.OnTrade();

  }

//+------------------------------------------------------------------+

//| "Timer" event handler function                                   |

//+------------------------------------------------------------------+

void OnTimer()

  {

   ExtExpert.OnTimer();

  }

//+------------------------------------------------------------------+

 В чем может быть проблема. Я даже не знаю куда смотреть в первую очередь.

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

Automated Trading and Strategy Testing
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
 
pasha191:

Здравствуйте, помогите разобраться. Создал робота (мой первый робот). Сразу после запуска он выключается с сообщением Expert initializing of robot (EURUSD,H1) failed. Больше информации найти не могу.


Информации маловато.

Нужен

#include <Expert\robot\robot.mqh>

Нужны параметры запуска (тестер/терминал, сервер, пара, таймфрейм и т.д.)

PS Исходник лучше прикреплять в виде файла

 

Вопросы по Мастеру MQL5:

1) //--- inputs for money
input double             Money_FixLot_Percent         =10.0;             // Percent
input double             Money_FixLot_Lots            =0.1;              // Fixed volume
Что эти параметры означают? И как они взаимосвязаны?  

2) Можно ли сгенерировать советник который будет выставлять отложенные ордера? Если можно, то как?

3) Что означает переменная Signal_Expiration ? Как ей пользоваться? 

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

Вопросы по Мастеру MQL5:

1) //--- inputs for money
input double             Money_FixLot_Percent         =10.0;             // Percent
input double             Money_FixLot_Lots            =0.1;              // Fixed volume
Что эти параметры означают? И как они взаимосвязаны?  

2) Можно ли сгенерировать советник который будет выставлять отложенные ордера? Если можно, то как?

3) Что означает переменная Signal_Expiration ? Как ей пользоваться? 

1) Параметр Money_FixLot_Percent служит для задания уровня "принудительного стопаута". Не трогайте его.

    Параметр Money_FixLot_Lots задаёт фиксированный объём (лот) которым Ваш эксперт будет входить в рынок

    Эти параметры никак не взаимосвязаны.

2) Любой сгенерированый Мастером советник, может торговать отложенными ордерами. Для этого предназначен параметр ..._PriceLevel. В зависимости от значения этого параметра, поведение эксперта будет следующим:

   0 - вход в рынок будет осуществляться по текущей цене;

   >0 - вход в рынок будет осуществляться отложенными лимит-ордерами (лучше текущей цены на значение параметра);

   <0 - вход в рынок будет осуществляться отложенными стоп-ордерами (хуже текущей цены на значение параметра);

3) Параметр Signal_Expiration задаёт время жизни отложенного ордера (в барах текущего таймфрейма).

 

Если сгенерировать советник в Мастере MQL5, сколько такой советник может одновременно открыть ордеров? Как это регулируется?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

Если сгенерировать советник в Мастере MQL5, сколько такой советник может одновременно открыть ордеров? Как это регулируется?

1 ордер. Не регулируется.

Мастер сделан для проверки стратегий. Если хочется большего, нужно "обработать напильником" (писать руками).

 
uncleVic:

2) Любой сгенерированый Мастером советник, может торговать отложенными ордерами. Для этого предназначен параметр ..._PriceLevel. В зависимости от значения этого параметра, поведение эксперта будет следующим:

   0 - вход в рынок будет осуществляться по текущей цене;

   >0 - вход в рынок будет осуществляться отложенными лимит-ордерами (лучше текущей цены на значение параметра);

   <0 - вход в рынок будет осуществляться отложенными стоп-ордерами (хуже текущей цены на значение параметра);

В каких единицах измеряется параметр PriceLevel ? В пунктах? Т.е. если я хочу выставить отложенный стоп-ордер выше текущей цены на 20 пунктов,

надо этот параметр установить PriceLevel =-0.0020 ?

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