Help. Помогите добавить графические оббъёкты в робот на базе индикатора DeMarker (стрелку при открытии позиции).

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Игорь
346
Игорь  
//+------------------------------------------------------------------+
//|                                     Test advisor on DeMarker.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//------------------параметры советника -------------------------------
extern double lots=0.01; //
extern int Magic=1111678111;
extern int Slippage=1;
double sell_level=0.7;
double buy_level=0.3;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)//EURJPY 125.429, EURUSD 1.32164
   if(Digits==2 || Digits==4)// AUDJPY 87.75,  EURAUD 1,4271
        {
         Slippage*=10;
        }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
   int ticket;
   
   double DM=iDeMarker(NULL,0,14,0);
   double DM1=iDeMarker(NULL,0,14,1);
                   
      if(CountSell()==0 && DM>sell_level&& DM1>sell_level)// открытие продаж
     {
      ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,0,0,"советник",Magic,0,clrNONE);
           }
//
   if(CountSell()>0 && DM<buy_level && DM1<buy_level)// закрытие продаж
     {
      for(int i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
               if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                  Print("Ошибка открытия ордера на покупку !");
           }
        }
     }
//+------------------------------------------------------------------+
  if(CountBuy()==0 && DM<buy_level && DM1<buy_level)// открытие покупок
     {
      ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,0,0,"советник",Magic,0,clrNONE);
          }
//
   if(CountBuy()>0 && DM>sell_level&& DM1>sell_level)// закрытие покупок
     {
      for(int i=OrdersTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
           {
            if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
               if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                  Print("Ошибка открытия ордера на продажу!");
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;
   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+

Всем привет. Люди, если не трудно подскажите как можно добавить графические объекты в робот на базе индикатора DeMarker (стрелки в основном окне МТ4) при открытии позиций.

В советнике при компиляции ошибок и предупреждений нет. Данная система работоспособна на 60%.

Alekseu Fedotov
1479
Alekseu Fedotov  
Игорь:

Всем привет. Люди, если не трудно подскажите как можно добавить графические объекты в робот на базе индикатора DeMarker (стрелки в основном окне МТ4) при открытии позиций.

В советнике при компиляции ошибок и предупреждений нет. Данная система работоспособна на 60%.

  Измените последний параметр в функции  OrderSend(........)  на любимый цвет, и будет вам стрелка

пример

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,0,0,"советник",Magic,0,clrRed);
Игорь
346
Игорь  

Про данную стрелку я знаю. Меня интересует графические объекты:

  OBJ_ARROW_UP         Знак «Стрелка вверх»

OBJ_ARROW_DOWN     Знак «Стрелка вниз»

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий