Discussion of article "MQL5 Wizard for Dummies"

 

New article MQL5 Wizard for Dummies is published:

In early 2011 we released the first version of the MQL5 Wizard. This new application provides traders with a simple and convenient tool to automatically generate trading robots. Any MetaTrader 5 user can create a custom Expert Advisor not even knowing how to program in MQL5.

Author: MetaQuotes

 

Questions for the developers:

1. Why can't I use other signals?

For example,"Signals based on crossover of two EMAs"

https://www.mql5.com/ru/forum/2935/page1

2. Will the library of signals be replenished?

3. Will it be possible to create your own classes of signals using the "Wizard"?

4. Will it be possible to create Indicators based on indicator arrays using the "Wizard"?

5. Will it be possible to save the wizard settings for further adjustment of the created strategy/indicator directly in the wizard.

In my opinion, items. 3-5 would make the life of traders "not programmers" much easier.

And a complete "fantasy" would be the ability to create your own cassettes of signals for any indicators with the help of the wizard like writing equations in Excel :)

As it is implemented in Metaquots and CQG.

Советники: Мастер MQL5 - Торговые сигналы по пересечению двух экспоненциальных скользящих средних
Советники: Мастер MQL5 - Торговые сигналы по пересечению двух экспоненциальных скользящих средних
  • www.mql5.com
В статье Создание эксперта без программирования с помощью Мастера MQL5 описаны шаги по автоматическому созданию кода советника при помощи Мастера MQL5.
 
I am writing my own signals module, in it the test function is as follows:
//+------------------------------------------------------------------+
//| Checking whether the condition for a sale has been met |
//| INPUT:none|
//| OUTPUT: Voice weight from 0 to 100|
//| REMARK: No.|
//+------------------------------------------------------------------+
int CInnerBarSignal::ShortCondition(){
//--- the condition is checked by the closed previous bar

  
   Print("call short condition");
   if(  Low(1) < Low(2) && High(2)<High(3) && Low(2)>Low(3) && Close(3)<Open(3) ){
     return(100);
   }
//--- condition not met
   return(0);
  }

when running the generated EA in the "all ticks" mode, you can see that the function is performed twice on the bar opening

2011.06.07 11:42:15 Core 1 connection closed

2011.06.07 11:42:15 Core 1 log file "D:\metatrader5\Tester\Agent-127.0.0.0.1-3000\logs\20110607.log" written

2011.06.07 11:42:15 Core 1 EURUSD,H1: 72504 ticks (24 bars) generated within 62 ms (total bars in history 8814, total time 312 ms)

2011.06.07 11:42:15 Core 1 OnTester result 0

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 19:00:00 call short condition

Is this the way it is designed and is postic processing not available in the signal module?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
gdtt:
I am writing my own signals module, in it the test function is as follows:

when running the generated EA in the "all ticks" mode, you can see that the function is performed twice on the bar opening

2011.06.07 11:42:15 Core 1 connection closed

2011.06.07 11:42:15 Core 1 log file "D:\metatrader5\Tester\Agent-127.0.0.0.1-3000\logs\20110607.log" written

2011.06.07 11:42:15 Core 1 EURUSD,H1: 72504 ticks (24 bars) generated within 62 ms (total bars in history 8814, total time 312 ms)

2011.06.07 11:42:15 Core 1 OnTester result 0

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 23:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 22:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 21:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 20:00:00 call short condition

2011.06.07 11:42:15 Core 1 2011.06.02 19:00:00 call short condition

Is this the way it is designed and is postic processing not available in the signal module?

By default, the Expert Advisor is generated by the Wizard to work at opening prices.

In the source code of the Expert Advisor, replace:

//--- Initializing expert
   if(!Ext_Expert.Init(...,...,false,...))

to:

//--- Initializing expert
   if(!Ext_Expert.Init(...,...,true,...))
 

At the beginning of 2011, we released the first version of Wizard MQL5. This step provided traders with a simple and clear tool for automatic creation of trading robots. Any MetaTrader 5 user was able to write their own Expert Advisor without knowing how to program in MQL5.


This is good, but it is not enough for beginners to write their own robots, i.e. you can write them, but only using your library. And if a beginner needs to write an Expert Advisor with his own signals? Here we are...

If you want any beginner to be able to write his own Expert Advisor, you need to add a visualiser. This is implemented, for example, in Trade Navigator. There you can add signals to the library by selecting some chart section. And the visualiser transfers everything itself into the programming language. And it takes into account everything, candlesticks, indicators and graphical lines on the chart. That is, you can create any library. And then you can build any Expert Advisor from these signals. This is what we should strive for.

Regards!

 
NGN:


This is good, but it is not enough for beginners to write their own robots. That is, of course, you can write, but only using your library. And if a beginner needs to write an expert of his own signals? Here we are...

If you want any beginner to be able to write his own Expert Advisor, you need to add a visualiser. This is implemented, for example, in Trade Navigator. There you can add signals to the library by selecting some chart section. And the visualiser transfers everything itself into the programming language. And it takes into account everything, candlesticks, indicators and graphical lines on the chart. That is, you can create any library. And then you can build any Expert Advisor from these signals. This is what we should strive for.

Regards!

Are you not familiar with these articles yet?

1. MQL5 Wizard: How to Write Your Own Module for Open Positions Maintenance

2. MQL5 Wizard: How to write your own capital and risk management module

3. MQL5 Wizard: How to Write Your Trading Signals Module

4. MQL5 Wizard: Creating an Expert Advisor without Programming

5. MQL5 Wizard: New Version

 

Can you tell me how to place pending orders in the wizard?

Another question: is this code correct?

//+------------------------------------------------------------------+
//|| Global expert object|
//+------------------------------------------------------------------+
CExpert ExtExpert;
CExpert ExtExpert1;

//+------------------------------------------------------------------+
//| Initialisation function of the expert |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init("GBPCHF",Period(),Expert_EveryTick,Expert_MagicNumber) || 
      !ExtExpert1.Init("GBPJPY",Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      ExtExpert1.Deinit(); 
      return(-1);
     }

And what symbol/period to set in the tester in this case

2011.06.16 10:15:25     Core 1  2011.06.01 00:00:00   CExpert::Init: wrong symbol or timeframe (must be GBPCHF:PERIOD_H1)
 
beginner:

Can you tell me how to place pending orders in the wizard?

In the generated Expert Advisor there is a parameter Inp_Signal_PricrLivel. it is set in 2/4 significant points.

Value 0 - market entry.

Value greater than 0 - entry is better than the market (according to the limit order).

Value less than 0 - entry is worse than the market (by stop order).

I am not ready to answer the second question at once.
 

Here are the parameters

//+------------------------------------------------------------------+
//| Inputs|
//+------------------------------------------------------------------+
//--- inputs for expert
input string Expert_Title         ="2";   // Document name
int          Expert_MagicNumber   =13179; // 
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 double Signal__Weight       =1.0;   // InnerBar Weight [0...1.0]
//--- inputs for money
input double Money_FixLot_Percent =10.0;  // Percent.
input double Money_FixLot_Lots    =0.1;   // Fixed volume
How should I execute to be able to enter the market on any of the options.
 
beginner:

Here are the parameters

How should I format to be able to enter the market on either option.

To enter better than the market (on the rebound):

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

To enter worse than the market (on breakout):

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

But you can pick it up in the tester by running optimisation on the parameter from -50.0 to 50.0 in increments of 1.0(5.0).

 
uncleVic:
I am not ready to answer the second question at once.

Or tell me how to trade on 2 instruments.