//+------------------------------------------------------------------+ //| Trailings.mqh | //| Copyright 2015, Vasiliy Sokolov. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, Vasiliy Sokolov." #property link "http://www.mql5.com" #include #define TRAILING_CLASSIC #include "..\PositionMT5.mqh" #ifdef SHOW_TRAILING_PARAMS input string ClassicTrailingParams = "Values"; // Classic Trailing parameters: input int StepModify = 20; input int DeltaTrailing = 200; #endif //+------------------------------------------------------------------+ //| Parameters and variables of classic trailing stop, with which | //| ClassicTrailing function works. | //+------------------------------------------------------------------+ class CTrailingClassicParams : public CObject { public: double StepModify; // Step in points, after which the stop loss of a position should be changed double DeltaTrailing; // Delta between the current extreme and the trailing level that should be kept double PrevExtremum; // A service variable. The last extremum that was reached CTrailingClassicParams(void); }; //+------------------------------------------------------------------+ //| The default constructor that adds external settings to the object| //+------------------------------------------------------------------+ CTrailingClassicParams::CTrailingClassicParams(void) { #ifdef SHOW_TRAILING_PARAMS this.StepModify = StepModify; this.DeltaTrailing = DeltaTrailing; #else StepModify = 20; DeltaTrailing = 200; #endif } //+------------------------------------------------------------------+ //| Classic trailing stop function | //+------------------------------------------------------------------+ bool TrailingClassic(CPosition* pos, CObject* object) { return false; }