Нужен совет, как правильно разместить ARROWCODE,241 в готовом коде.

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

Код который нужно добавить при срабатывании определённого условия

ObjectCreate(0,up_arrow,OBJ_ARROW,0,0,0,0,0);          // создадим стрелку 
ObjectSetInteger(0,up_arrow,OBJPROP_ARROWCODE,241);    // установим код стрелки 
ChartRedraw(0);                                        // перерисуем окно 


ObjectCreate(0,up_arrow,OBJ_ARROW,0,0,0,0,0);          // создадим стрелку 
ObjectSetInteger(0,up_arrow,OBJPROP_ARROWCODE,242);    // установим код стрелки 
ChartRedraw(0);                                        // перерисуем окно 

Вот код в который нужно добавить вышеуказанный код

//+------------------------------------------------------------------+
//|                                     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;
bool   DrawInfo;
//double SetIndexBuffer[2]; // Объявление массива для графики ( стрелки на покупку или продажу)
//+------------------------------------------------------------------+
//| 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;

   //установка стрелки на покупку или продажу при пересечении сигнальной линией уровней 0.3 и 0.7 индикатора DeMarker 
/*
  ObjectCreate(0,up_arrow,OBJ_ARROW,0,0,0,0,0);          // создадим стрелку 
ObjectSetInteger(0,up_arrow,OBJPROP_ARROWCODE,241);    // установим код стрелки 
ChartRedraw(0);                                        // перерисуем окно 


ObjectCreate(0,up_arrow,OBJ_ARROW,0,0,0,0,0);          // создадим стрелку 
ObjectSetInteger(0,up_arrow,OBJPROP_ARROWCODE,242);    // установим код стрелки 
ChartRedraw(0);                                        // перерисуем окно 

*/
        }
   return(INIT_SUCCEEDED);
  }
//-------------------------------------------------------------------
int deinit()
  {
   ObjectsDeleteAll();
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
//  
   int sit;
   string Text[4]; // Объявление массива
   color Color[4]; // Объявление массива цветов
   Text[0]="Покупаем"; // Текст для различных ситуаций
   Text[1]= "Продаём";
//Text[2]="Закрываем Buy";
//Text[3]="Закрываем Sell";
//   
   Color[0]=DeepSkyBlue; // Цвет объекта ..
   Color[1]=LightPink; // .. для различных ситуаций
   Color[2]=Yellow;
   Color[3]=Yellow;
//
   ObjectCreate("DeMarker",OBJ_LABEL,0,0, 0);// Создание объекта "signal" на покупку или продажу
   ObjectSet("DeMarker", OBJPROP_CORNER, 0); // Привязка угола (0-верхний левый угол, 3-нижний левый угол, 1-верхний правый угол, 4-нижний правыйвый угол)
   ObjectSet("DeMarker", OBJPROP_XDISTANCE, 10);// Координата Х
   ObjectSet("DeMarker", OBJPROP_YDISTANCE, 15);// Координата Y
                                                //
   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);
      sit=1;
     }
//
   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);
      sit=0;
     }
//
   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("Ошибка открытия ордера на продажу!");
           }
        }
     }
//---------------------------------------------------------------
// Изменение свойств графического объекта (текст на покупку или продажу)
   ObjectSetText("DeMarker",Text[sit],18,"Arial",Color[sit]);
   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);
  }
//+------------------------------------------------------------------+
Игорь
346
Игорь  
Видно с графикой в МТ4 никто не работает).
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий