Simple_Virtual_TP_SL

Author: Copyright 2023, MrBrooklin
0 Views
0 Downloads
0 Favorites
Simple_Virtual_TP_SL
ÿþ//+------------------------------------------------------------------+

//|                                         Simple_Virtual_TP_SL.mq5 |

//|                                       Copyright 2023, MrBrooklin |

//|                         https://www.mql5.com/ru/users/mrbrooklin |

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

#property copyright "Copyright 2023, MrBrooklin"

#property link      "https://www.mql5.com/ru/users/mrbrooklin"

#property version   "1.00"

//---

#include <Trade/Trade.mqh>

CTrade trade;

//--- Input parametrs

input ushort Take_Profit=50; //"59: ?@>D8B

input ushort Stop_Loss=500;  //!B>? ;>AA

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

//| Expert initialization function                                   |

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

int OnInit()

  {

//---

   return(INIT_SUCCEEDED);

  }

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

//| Expert deinitialization function                                 |

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

void OnDeinit(const int reason)

  {

//---

  }

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

//| Expert tick function                                             |

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

void OnTick()

  {

   if(!PositionsTotal()) // 5A;8 =5B >B:@KBKE ?>78F89

      return; // 2KE>48<

   for(int i=PositionsTotal()-1; i>=0; i--) // ?5@518@05< 2A5 >B:@KBK5 ?>78F88

     {

      // ?>;CG8< ?0@0<5B@K ?>78F88

      ulong  pos_ticket=PositionGetTicket(i);               // B8:5B ?>78F88

      string pos_symbol=PositionGetString(POSITION_SYMBOL); // A8<2>;

      ulong  magic=PositionGetInteger(POSITION_MAGIC);      // Magic Number ?>78F88

      double symb_point=SymbolInfoDouble(pos_symbol,SYMBOL_POINT); // @07<5@ >4=>3> ?C=:B0 ?> A8<2>;C

      double sl=PositionGetDouble(POSITION_SL);             // AB>? ;>AA ?>78F88

      double tp=PositionGetDouble(POSITION_TP);             // B59: ?@>D8B ?>78F88

      ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); // B8? ?>78F88

      double price=PositionGetDouble(POSITION_PRICE_OPEN);  // F5=0 >B:@KB8O ?>78F88

      double ask=SymbolInfoDouble(pos_symbol,SYMBOL_ASK);   // ;CGH0O F5=0 =0 ?>:C?:C

      double bid=SymbolInfoDouble(pos_symbol,SYMBOL_BID);   // ;CGH0O F5=0 =0 ?@>406C

      if(PositionGetInteger(POSITION_REASON)!=POSITION_REASON_EXPERT) // 5A;8 ?>78F8O >B:@KB0 @C:0<8

        {

         if(type==POSITION_TYPE_BUY && magic==0) // 5A;8 2K1@0=0 4;8==0O ?>78F8O 8 <5468: @025= "0"

           {

            if(tp==0) // 5A;8 B59: ?@>D8B @025= =C;N

              {

               if(bid>=price+Take_Profit*symb_point) // 5A;8 B5:CI0O F5=0 @02=0 8;8 2KH5 7040==>3> B59: ?@>D8B0

                  trade.PositionClose(pos_ticket); // 70:@K205< ?>78F8N

              }

            if(sl==0) // 5A;8 AB>? ;>AA @025= =C;N

              {

               if(bid<=price-Stop_Loss*symb_point) // 5A;8 B5:CI0O F5=0 @02=0 8;8 =865 7040==>3> AB>? ;>AA0

                  trade.PositionClose(pos_ticket); // 70:@K205< ?>78F8N

              }

           }

         if(type==POSITION_TYPE_SELL && magic==0) // 5A;8 2K1@0=0 :>@>B:0O ?>78F8O 8 <5468: @025= "0"

           {

            if(tp==0) // 5A;8 B59: ?@>D8B @025= =C;N

              {

               if(ask<=price-Take_Profit*symb_point) // 5A;8 B5:CI0O F5=0 @02=0 8;8 =865 7040==>3> B59: ?@>D8B0

                  trade.PositionClose(pos_ticket); // 70:@K205< ?>78F8N

              }

            if(sl==0) // 5A;8 AB>? ;>AA @025= =C;N

              {

               if(ask>=price+Stop_Loss*symb_point) // 5A;8 B5:CI0O F5=0 @02=0 8;8 2KH5 7040==>3> AB>? ;>AA0

                  trade.PositionClose(pos_ticket); // 70:@K205< ?>78F8N

              }

           }

        }

     }

  }

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

Comments