MT5 EA ExpertMAMA.mq5: lot size

sekusept  

 Hello!

I like to change the lot size of the following MT5 EA ExpertMAMA-mq5. 

Does anyone have a idea how i can adjust the lot size? 

Many thanks for your support! 

Kind regards,

Frank 

 

//+------------------------------------------------------------------+
//|                                                   ExpertMAMA.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
#include <Expert\Signal\SignalMA.mqh>
#include <Expert\Trailing\TrailingMA.mqh>
#include <Expert\Money\MoneyNone.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Inp_Expert_Title       ="ExpertMAMA";
int                      Expert_MagicNumber     =12003;
bool                     Expert_EveryTick       =false;
//--- inputs for signal
input int                Inp_Signal_MA_Period   =12;
input int                Inp_Signal_MA_Shift    =6;
input ENUM_MA_METHOD     Inp_Signal_MA_Method   =MODE_SMA;
input ENUM_APPLIED_PRICE Inp_Signal_MA_Applied  =PRICE_CLOSE;
//--- inputs for trailing
input int                Inp_Trailing_MA_Period =12;
input int                Inp_Trailing_MA_Shift  =0;
input ENUM_MA_METHOD     Inp_Trailing_MA_Method =MODE_SMA;
input ENUM_APPLIED_PRICE Inp_Trailing_MA_Applied=PRICE_CLOSE;
//+------------------------------------------------------------------+
//| 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);
     }
//--- Creation of signal object
   CSignalMA *signal=new CSignalMA;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(-2);
     }
//--- Add signal to expert (will be deleted automatically))
   if(!ExtExpert.InitSignal(signal))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing signal");
      ExtExpert.Deinit();
      return(-3);
     }
//--- Set signal parameters
   signal.PeriodMA(Inp_Signal_MA_Period);
   signal.Shift(Inp_Signal_MA_Shift);
   signal.Method(Inp_Signal_MA_Method);
   signal.Applied(Inp_Signal_MA_Applied);
//--- Check signal parameters
   if(!signal.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error signal parameters");
      ExtExpert.Deinit();
      return(-4);
     }
//--- Creation of trailing object
   CTrailingMA *trailing=new CTrailingMA;
   if(trailing==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating trailing");
      ExtExpert.Deinit();
      return(-5);
     }
//--- Add trailing to expert (will be deleted automatically))
   if(!ExtExpert.InitTrailing(trailing))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing trailing");
      ExtExpert.Deinit();
      return(-6);
     }
//--- Set trailing parameters
   trailing.Period(Inp_Trailing_MA_Period);
   trailing.Shift(Inp_Trailing_MA_Shift);
   trailing.Method(Inp_Trailing_MA_Method);
   trailing.Applied(Inp_Trailing_MA_Applied);
//--- Check trailing parameters
   if(!trailing.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error trailing parameters");
      ExtExpert.Deinit();
      return(-7);
     }
//--- Creation of money object
   CMoneyNone *money=new CMoneyNone;
   if(money==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating money");
      ExtExpert.Deinit();
      return(-8);
     }
//--- Add money to expert (will be deleted automatically))
   if(!ExtExpert.InitMoney(money))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing money");
      ExtExpert.Deinit();
      return(-9);
     }
//--- Set money parameters
//--- Check money parameters
   if(!money.ValidationSettings())
     {
      //--- failed
      printf(__FUNCTION__+": error money parameters");
      ExtExpert.Deinit();
      return(-10);
     }
//--- Tuning of all necessary indicators
   if(!ExtExpert.InitIndicators())
     {
      //--- failed
      printf(__FUNCTION__+": error initializing indicators");
      ExtExpert.Deinit();
      return(-11);
     }
//--- ok
   return(0);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| Function-event handler "tick"                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   ExtExpert.OnTick();
  }
//+------------------------------------------------------------------+
//| Function-event handler "trade"                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   ExtExpert.OnTrade();
  }
//+------------------------------------------------------------------+
//| Function-event handler "timer"                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ExtExpert.OnTimer();
  }
//+------------------------------------------------------------------+
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
Andrea Bassi  

Hello, use this code:

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

//|                                                   ExpertMAMA.mq5 |

//|                   Copyright 2009-2017, MetaQuotes Software Corp. |

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

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

#property copyright "2009-2017, MetaQuotes Software Corp."

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

#property version   "1.00"

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

//| Include                                                          |

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

#include <Expert\Expert.mqh>

#include <Expert\Signal\SignalMA.mqh>

#include <Expert\Trailing\TrailingMA.mqh>

#include <Expert\Money\MoneyFixedLot.mqh>

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

//| Inputs                                                           |

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

//--- inputs for expert

input string             Inp_Expert_Title       ="ExpertMAMA";

int                      Expert_MagicNumber     =12003;

bool                     Expert_EveryTick       =false;

//--- inputs for signal

input int                Inp_Signal_MA_Period   =12;

input int                Inp_Signal_MA_Shift    =6;

input ENUM_MA_METHOD     Inp_Signal_MA_Method   =MODE_SMA;

input ENUM_APPLIED_PRICE Inp_Signal_MA_Applied  =PRICE_CLOSE;

//--- inputs for trailing

input int                Inp_Trailing_MA_Period =12;

input int                Inp_Trailing_MA_Shift  =0;

input ENUM_MA_METHOD     Inp_Trailing_MA_Method =MODE_SMA;

input ENUM_APPLIED_PRICE Inp_Trailing_MA_Applied=PRICE_CLOSE;

//--- inputs for money

input double             Money_FixLot_Percent =10.0;            // Percent

input double             Money_FixLot_Lots    =0.001;           // 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);

     }

//--- Creation of signal object

   CSignalMA *signal=new CSignalMA;

   if(signal==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-2);

     }

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

   if(!ExtExpert.InitSignal(signal))

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-3);

     }

//--- Set signal parameters

   signal.PeriodMA(Inp_Signal_MA_Period);

   signal.Shift(Inp_Signal_MA_Shift);

   signal.Method(Inp_Signal_MA_Method);

   signal.Applied(Inp_Signal_MA_Applied);

//--- Check signal parameters

   if(!signal.ValidationSettings())

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-4);

     }

//--- Creation of trailing object

   CTrailingMA *trailing=new CTrailingMA;

   if(trailing==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-5);

     }

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

   if(!ExtExpert.InitTrailing(trailing))

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-6);

     }

//--- Set trailing parameters

   trailing.Period(Inp_Trailing_MA_Period);

   trailing.Shift(Inp_Trailing_MA_Shift);

   trailing.Method(Inp_Trailing_MA_Method);

   trailing.Applied(Inp_Trailing_MA_Applied);

//--- Check trailing parameters

   if(!trailing.ValidationSettings())

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-7);

     }

//--- Creation of money object

   CMoneyFixedLot *money=new CMoneyFixedLot;

   if(money==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-8);

     }

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

   if(!ExtExpert.InitMoney(money))

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-9);

     }

//--- Set money parameters

   money.Percent(Money_FixLot_Percent);

   money.Lots(Money_FixLot_Lots);

//--- Check money parameters

   if(!money.ValidationSettings())

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-10);

     }

//--- Tuning of all necessary indicators

   if(!ExtExpert.InitIndicators())

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(-11);

     }

//--- ok

   return(0);

  }

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

//| Deinitialization function of the expert                          |

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

void OnDeinit(const int reason)

  {

   ExtExpert.Deinit();

  }

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

//| Function-event handler "tick"                                    |

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

void OnTick()

  {

   ExtExpert.OnTick();

  }

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

//| Function-event handler "trade"                                   |

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

void OnTrade()

  {

   ExtExpert.OnTrade();

  }

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

//| Function-event handler "timer"                                   |

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

void OnTimer()

  {

   ExtExpert.OnTimer();

  }
Vladimir Karputov  
Abu19890030 # :
I have a code that I intend to use two Moving Averages of 10 and 20... at the moment the code has 5 and 30. Can someone please help me know how to change them? I have been editing, but it refuses to change. Please.

Please show your MQL5 code (using the button  Codeor using the button Attach file).

vinner2016  

 Hello!

I would like to change the the profit/loss range for this Expert Adviser MT5 ExpertMAPSARSizeOptimized

Does anyone have a idea how i can do that?, and explains What are those settings in the attached pic? 

Many thanks for your support! 

Kind regards,

Romel  

Files:
Untitled.png  177 kb