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

robot_wti ea.mq4

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

the gold reaper v4.1 mt5.mq5MetaTrader 4 · 1 общих теговquantum queen x 4.3 (1).mq5MetaTrader 5 · 1 общих теговlizard_1.85.mq5MetaTrader 4 · 1 общих теговoverlaychart.mq4MetaTrader 4 · 1 общих теговmarket crusher ea guidlines.txtMQL · 1 общих теговshustrobotpro.mq4MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

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

#property version   "1.00"
#property strict

extern string identifier = "WTI";

extern string din = "Lot for 1000";
extern double lot   = 0.005;  
extern double percent_close = 1;

extern string _grid = "Grid settings";
extern string t1 ="--------------------------------------";
extern int    step = 100;
extern int    indent_open = 0;//отступ для калибровки открытия
extern int    indent = 0;//отступ для калибровки тейк-профита
extern int    pogr = 0;//погрешность по рынку
extern string t2 ="--------------------------------------";
/*
Сетку запускаем, когда цена Bid делится без остатка на step.
После этого открываем два встречных ордера по рынку и открываем уровни сетки.
Триггер на открытие доп уровня: бай!=селл.
Корректируем крайние графицы сетки и внутренние границы сетки, когда срабатывает триггер.
*/
extern string t13 ="--------------------------------------";
extern string _magic = "Unique number";
extern int    magic = 1;

double pp;
int    dd; 
int digits;
int kol;
int kol2;//для отложенных

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

void OnDeinit(const int reason)
  {

  }

double value_profit()
{
   double ld_0 = 0;
   int l_ord_total_8 = OrdersTotal();
   if (l_ord_total_8 > 0) 
   {
      for (int l_pos_12 = l_ord_total_8 - 1; l_pos_12 >= 0; l_pos_12--) 
      {
         if (OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES))
         {
          if (OrderMagicNumber() == magic)
          ld_0 += OrderProfit() + OrderSwap() + OrderCommission();
         } 
      }
   }
  return(ld_0);
}

void CloseAll()
{  
    bool b;
    int total = OrdersTotal() - 1;   
    for (int i = total; i >= 0; i--) 
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
        {
            if (OrderMagicNumber() == magic) 
            {        
                if (OrderType() == OP_BUY || OrderType() == OP_SELL)
                {
                    b = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 20, Blue); // Закрытие рыночного ордера
                } else{
                     b = OrderDelete(OrderTicket()); // Удаление отложенного ордера
                }
            }    
        }    
    } 
} 

int check() {
    int kol_ = 0;
    kol2 = 0;
    int total = OrdersTotal(); // Получаем общее количество ордеров

    for (int i = 0; i < total; i++) {
        if (OrderSelect(i, SELECT_BY_POS)) {

            if (OrderMagicNumber() == magic) {
                if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
                    kol_++; // Увеличиваем счетчик для открытых ордеров
                }
            }
        }
    }

    for (int i = 0; i < total; i++) {
        if (OrderSelect(i, SELECT_BY_POS)) {

            if (OrderMagicNumber() == magic) {
                if (OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT || 
                    OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP) {
                    kol_++; // Увеличиваем счетчик для отложенных ордеров
                    kol2++;
                }
            }
        }
    }
    return(kol_);
}

double sum_lot()
{
   double balance_=GlobalVariableGet(identifier+"_balance");
   int roundedValue = (int)MathRound(balance_/1000);

   return(lot*roundedValue);
}

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

      double profit, total_lot;
      int Ticket;
      double bid   =MarketInfo(Symbol(),MODE_BID);
      double ask   =MarketInfo(Symbol(),MODE_ASK);
      kol=check();

      if (kol==0)
      {
         GlobalVariableSet(identifier+"_balance",AccountBalance());
         GlobalVariableSet(identifier+"_itime",TimeCurrent());
         GlobalVariableSet(identifier+"_start_price",Bid);

         GlobalVariableSet(identifier+"_kol_pos2",0);

            total_lot=sum_lot();
            double takeProfit = NormalizeDouble(ask + step * pp + indent * pp, digits);

            Ticket=OrderSend(Symbol(), OP_BUYLIMIT, NormalizeDouble(total_lot,2), NormalizeDouble(ask,digits)- step/2 * pp, 30, 0, /*buyLimit+takeProfit_buy*/0, "", magic, 0, clrBlue);

            takeProfit = NormalizeDouble(bid - st

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

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

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

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

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