← К каталогу
Исходный код · ID 3945

pure_martingale.mq4

Похожие материалы по тегам

doubletap3d.mq5MetaTrader 5 · 1 общих теговday type radar for tradingview.txtTradingView · 1 общих теговea robofibo source v.11.2.mq4MetaTrader 4 · 1 общих теговzuluquantsupertrend_pro_elite_v6.mq5MetaTrader 5 · 1 общих теговtraders_dynamic_cb_ssa_norm_index_alerts+arrows1@lifeindreamsworld.mq4MetaTrader 4 · 1 общих теговtrader-criptom4n fixed eror.txtTradingView · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Получить полный код

Поиск по коду файла

extern string    separator1            = "------ Martingale settings ------";
extern double    sl_tp                 = 20;                 // stop loss and take profit
extern double    lotsMultiplier        = 1.5;
extern double    distanceMultiplier    = 1.5;               
extern double    Lots                  = 0.03;               // fixed lot size
extern double    MaxSlippage           = 3;   
extern double    magicNumber           = 1212123;              

extern string  separator2              =  "------ Trading Hours ------";
extern bool    useTradingHours         = false;
extern string  StartTime               = "06:00";
extern string  StopTime                = "18:00";
extern int     GMT_Offset              = 0;

extern string  separator3              = "------ Trading Days ------";
extern bool    Monday                  = true;
extern bool    Tuesday                 = true;
extern bool    Wednesday               = true;
extern bool    Thursday                = true;
extern bool    Friday                  = true;
extern bool    Saturday                = true;
extern bool    Sunday                  = true;

extern string   separator4            = "------ Wiew settings ------";
extern bool     showMenu               = true;
extern color    menuColor              = Yellow; 
extern color    variablesColor         = Red;
extern int      font                   = 10;

double   stopLoss, takeProfit,
         minAllowedLot, lotStep, maxAllowedLot,
         pips2dbl, pips2point, pipValue, minGapStop, maxSlippage,
         menulots,
         profit,
         lots,
         ma1;

datetime barTime=0;

bool  noHistory=false,
      stopsChecked;

int   medzera = 8,
      trades;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {

   if(showMenu)
   {
      ObjectDelete("name");
      ObjectDelete("Openl");
      ObjectDelete("Open");
      ObjectDelete("Lotsl");
      ObjectDelete("Lots");
      ObjectDelete("Profitl");
      ObjectDelete("Profit");
   }

   return(0);
  }

int start()
{
      // код доступен только после оплаты
   }

int Random()
{   
    MathSrand(TimeLocal()+Bid);
    return(MathRand());
}   

bool EnterBuyCondition()
{ 
   if(MathMod(Random(),2)==0)
      return(true);

   return (false);   
}

bool EnterSellCondition()
{ 
   if(MathMod(Random(),2)==1)
      return(true);

   return (false);   
}

bool CheckStops()
{
   double sl=0, tp=0, loss;
   double total=OrdersTotal();

   int ticket=-1;

   for(int cnt=total-1;cnt>=0;cnt--)
   {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(   OrderType()<=OP_SELL                      // check for opened position 
         && OrderSymbol()==Symbol()                   // check for symbol
         && OrderMagicNumber() == magicNumber)        // my magic number
      {
         if(OrderType()==OP_BUY)
         {
            if(OrderStopLoss()==0 || OrderTakeProfit()==0)
            { 
               ticket=OrderTicket(); 
               while (!IsTradeAllowed()) Sleep(500); 
               RefreshRates();

               SelectLastHistoryOrder(Symbol(), magicNumber);

               if(!noHistory)
               {

                  if(OrderProfit()<0)  
                  {
                     loss=MathAbs(OrderClosePrice()-OrderOpenPrice());
                     sl=Ask-(loss)*distanceMultiplier;
                     tp=Ask+(loss)*distanceMultiplier;
                  }
                  else
                  {
                     sl = Ask-stopLoss; 
                     tp = Ask+takeProfit;
                  }
               } 
               else
               {
                  sl = Ask-stopLoss; 
                  tp = Ask+takeProfit;
               } 

               if(Bid-sl<=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
                  sl = Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

               if(tp-Bid<=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
                  tp = Bid+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

               if(!OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
                  return(false);

               if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,Green)) // modify position
               {
               }
               else
                  return (false);
            }
         }   
         if(OrderType()==OP_SELL)
         {
            if(OrderStopLoss()==0 && OrderTakeProfit()==0)
            {
               ticket=OrderTicket();         
               while (!IsTradeAllowed()) Sleep(500); 
               RefreshRates();  

               SelectLastHistoryOrder(Symbol(), magicNumber);

               if(!noHistory)
               {

                  if(OrderProfit()<0)
                  {
                     loss=MathAbs(OrderClosePrice()-OrderOpenPrice());
                     sl=Bid+(loss)*distanceMultiplier;
                     tp=Bid-(loss)*distanceMultiplier;
                  }
                  else
                  {                            
                     sl = Bid+stopLoss;
                     tp = Bid-takeProfit;  
                  }
               }  
               else
               {                            
                  sl = Bid+stopLoss;
                  tp = Bid-takeProfit;  
               }

               if(sl-Ask<=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
                  sl = Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

               if(Ask-tp<=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
                  tp = Ask-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;                

               if(!OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
                  return(false);

               if(OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,Green)) // modify position
               {
               }
               else
                  return (false);
      

Показано первые 50% кода (символов: 9681)

Что вы получите после оплаты

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода: 968 ₽