TrailingKVN EA Master MQL5_v1

Author: Copyright © 2019, Vladimir Karputov
0 Views
0 Downloads
0 Favorites
TrailingKVN EA Master MQL5_v1
ÿþ//+------------------------------------------------------------------+

//|                                   TrailingKVN EA Master MQL5.mq5 |

//|                              Copyright © 2019, Vladimir Karputov |

//|                                           http://wmua.ru/slesar/ |

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

#property copyright "Copyright © 2019, Vladimir Karputov"

#property link      "http://wmua.ru/slesar/"

#property version   "1.00"

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

//| Include                                                          |

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

#include <Expert\Expert.mqh>

//--- available signals

#include <Expert\Signal\SignalMA.mqh>

//--- available trailing

#include <Expert\Trailing\TrailingBreakevenKVN.mqh>

//--- available money management

#include <Expert\Money\MoneyFixedLot.mqh>

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

//| Inputs                                                           |

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

//--- inputs for expert

input string             Expert_Title                     ="TrailingKVN EA Master MQL5"; // Document name

ulong                    Expert_MagicNumber               =4221;                         //

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_MA_PeriodMA               =36;                           // Moving Average(36,0,...) Period of averaging

input int                Signal_MA_Shift                  =0;                            // Moving Average(36,0,...) Time shift

input ENUM_MA_METHOD     Signal_MA_Method                 =MODE_SMA;                     // Moving Average(36,0,...) Method of averaging

input ENUM_APPLIED_PRICE Signal_MA_Applied                =PRICE_CLOSE;                  // Moving Average(36,0,...) Prices series

input double             Signal_MA_Weight                 =1.0;                          // Moving Average(36,0,...) Weight [0...1.0]

//--- inputs for trailing

input ushort             Trailing_MA_TrailingBreakevenStop=25;                           // Trailing Breakeven Stop

input ushort             Trailing_MA_TrailingBreakevenStep=5;                            // Trailing Breakeven Step

//--- 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(INIT_FAILED);

     }

//--- Creating signal

   CExpertSignal *signal=new CExpertSignal;

   if(signal==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

//---

   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 CSignalMA

   CSignalMA *filter0=new CSignalMA;

   if(filter0==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

   signal.AddFilter(filter0);

//--- Set filter parameters

   filter0.PeriodMA(Signal_MA_PeriodMA);

   filter0.Shift(Signal_MA_Shift);

   filter0.Method(Signal_MA_Method);

   filter0.Applied(Signal_MA_Applied);

   filter0.Weight(Signal_MA_Weight);

//--- Creation of trailing object

   CTrailingBreakevenKVN *trailing=new CTrailingBreakevenKVN;

   if(trailing==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

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

   if(!ExtExpert.InitTrailing(trailing))

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

//--- Set trailing parameters

   trailing.TrailingBreakevenStop(Trailing_MA_TrailingBreakevenStop);

   trailing.TrailingBreakevenStep(Trailing_MA_TrailingBreakevenStep);

//--- Creation of money object

   CMoneyFixedLot *money=new CMoneyFixedLot;

   if(money==NULL)

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

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

   if(!ExtExpert.InitMoney(money))

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

//--- 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(INIT_FAILED);

     }

//--- Tuning of all necessary indicators

   if(!ExtExpert.InitIndicators())

     {

      //--- failed

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

      ExtExpert.Deinit();

      return(INIT_FAILED);

     }

//--- ok

   return(INIT_SUCCEEDED);

  }

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

//| 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();

  }

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

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---