Доработка ботов (советников, индикаторов) vol. 2

YuMy

Новичок форума
Hi coder, Please help me fix the EA error so that the EA can open a trade every time there is a signal from the arrow of the indicator both buy and sell. Tks
 

Вложения

  • EA.mq4
    EA.mq4
    23,9 КБ · Просмотры: 32
  • i-CAi.ex4
    i-CAi.ex4
    9,2 КБ · Просмотры: 56
  • Ind-GG01.ex4
    Ind-GG01.ex4
    13,9 КБ · Просмотры: 61

1_Lexa

Активный участник
У меня вопрос. Можно сделать чтобы ордер считал отложенный ордер своим, и как это сделать. Например: я открыл ордер через советник и отложенный, нужно чтобы следующий отложенный увеличился за счёт двух ордеров, открытого и отложенного. Как это сделать?
 

Ugar

Гуру форума
У меня вопрос. Можно сделать чтобы ордер считал отложенный ордер своим, и как это сделать. Например: я открыл ордер через советник и отложенный, нужно чтобы следующий отложенный увеличился за счёт двух ордеров, открытого и отложенного. Как это сделать?
В советнике задать Magic=0. Если советник помечает свои ордера заданным в Magic идентификатором, то он ручные будет считать своими.
 

ИванМН

Местный знаток
Hi coder, Please help me fix the EA error so that the EA can open a trade every time there is a signal from the arrow of the indicator both buy and sell. Tks
Советник так и делает: открывает первую позицию, когда есть сигнал индикатора. Но это до того момента, когда начинает строиться сетка, после этого он открывает уже не по сигналам, а в сторону первой позиции в сетке на расстоянии заданного шага. Вам надо, чтобы он открывал усредняющие позиции не по заданному шагу, а по новому сигналу?
 

1_Lexa

Активный участник
В советнике задать Magic=0. Если советник помечает свои ордера заданным в Magic идентификатором, то он ручные будет считать своими.
Код:
Expand Collapse Copy
  int b,s,p,res;
   datetime expiration = TimeCurrent()+3600*Expiration;
   double BuyPrice=Ask+Delta*Point;
   double SellPrice=Bid-Delta*Point;
 
   if(Volume[0]>1) return;

 
   for (int i=0; i<OrdersTotal(); i++)
    {
     if (OrderSelect(i, SELECT_BY_POS)==true)
      {
        if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
        if (OrderType()==OP_BUYSTOP) b++;
        if (OrderType()==OP_SELLSTOP) s++;     
      } 
    }
    
//---- buy stop
   if(Close[1]-Open[1]>0 && Hour()==StartHour && p<1 && b<1)
     {
      res=OrderSend(Symbol(),OP_BUYSTOP,Lot,BuyPrice,0,BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point,"",MAGIC,expiration,Blue);
     }     
//---- sell stop
   if(Open[1]-Close[1]>0 && Hour()==StartHour && p<1 && s<1)
     {
      res=OrderSend(Symbol(),OP_SELLSTOP,Lot,SellPrice,0,SellPrice+StopLoss*Point,SellPrice-TakeProfit*Point,"",MAGIC,expiration,Red );
     } 
//----
   return(0);

Что-то на подобе этого
 

Veroniy

Местный житель
Добрый вечер! Если возможно то добавьте в этого старого малость пожованного робота время работы и по окончании которого он должен удалить отложки а в начале работы сново выставить пока не сольёт депозит. Пожалуйста!!!
 

Вложения

denc

Местный житель
Спешки нет. Заодно знания получишь )). Видимо никто браться не хочет. Тишина.
там вопрос с трендовыми. если меняю таймы по тз, то трендовые начинают косячить, и это выглядит "нафиг надо"), там заточено на D1. математику и суть инди понимаю, но некоторые функции, как прописаны в нем, для меня новое. к тому же, чисто мое мнение, М15 не нужен, эти движения и глазом видны) не смотрел, может как зз рисовать будет при пробитии. можно конечно переделать сначала без трендовых, потом кусок кода с ними добавить, и код потом подрихтовать.. ну долго.. вон, гуру чет не берутся за кружечкой чего-нидь развлечься)))
 

Surem

Почетный гражданин
Приветствую мастера. Сделайте пожалуйста в индюке что то вроде средней адаптивной линии-уровня, по показаниям чисел масштабирования.
 

Вложения

Ugar

Гуру форума
Код:
Expand Collapse Copy
  int b,s,p,res;
   datetime expiration = TimeCurrent()+3600*Expiration;
   double BuyPrice=Ask+Delta*Point;
   double SellPrice=Bid-Delta*Point;
 
   if(Volume[0]>1) return;

 
   for (int i=0; i<OrdersTotal(); i++)
    {
     if (OrderSelect(i, SELECT_BY_POS)==true)
      {
        if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
        if (OrderType()==OP_BUYSTOP) b++;
        if (OrderType()==OP_SELLSTOP) s++;   
      }
    }
  
//---- buy stop
   if(Close[1]-Open[1]>0 && Hour()==StartHour && p<1 && b<1)
     {
      res=OrderSend(Symbol(),OP_BUYSTOP,Lot,BuyPrice,0,BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point,"",MAGIC,expiration,Blue);
     }   
//---- sell stop
   if(Open[1]-Close[1]>0 && Hour()==StartHour && p<1 && s<1)
     {
      res=OrderSend(Symbol(),OP_SELLSTOP,Lot,SellPrice,0,SellPrice+StopLoss*Point,SellPrice-TakeProfit*Point,"",MAGIC,expiration,Red );
     }
//----
   return(0);

Что-то на подобе этого
Вместо этого
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
написать так
if (OrderSymbol()!=Symbol() || (OrderMagicNumber()!=MAGIC && OrderMagicNumber()!=0)) continue;

Аналогично сделать везде где он проверяет Magic ордера.
Так он будет считать своими ордера со своим маджиком и ручные.
 

YuMy

Новичок форума
Советник так и делает: открывает первую позицию, когда есть сигнал индикатора. Но это до того момента, когда начинает строиться сетка, после этого он открывает уже не по сигналам, а в сторону первой позиции в сетке на расстоянии заданного шага. Вам надо, чтобы он открывал усредняющие позиции не по заданному шагу, а по новому сигналу?
Thank you for responding. Can you help me fix the EA so that it opens on each arrow signal instead of the current grid. Thank you very much
 

1_Lexa

Активный участник
Вместо этого
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
написать так
if (OrderSymbol()!=Symbol() || (OrderMagicNumber()!=MAGIC && OrderMagicNumber()!=0)) continue;

Аналогично сделать везде где он проверяет Magic ордера.
Так он будет считать своими ордера со своим маджиком и ручные.
Ещё раз.
Например: я открыл ордер через советник и отложенный, нужно чтобы следующий отложенный увеличился за счёт двух ордеров, открытого и отложенного. Как это сделать?
 

FxMen

VIP-участник
Привет,кодерам! Гляньте плиз индюка не хочет отображаться на графике.
 

Вложения

Genry_05

Отдыхает
Приветствую мастера. Сделайте пожалуйста в индюке что то вроде средней адаптивной линии-уровня, по показаниям чисел масштабирования.
так сделана еще в 2019 году по просьбе Марата;)
я еще тогда программировал:giggle:
1683938212918.png
 

Вложения

Посмотрели (318) Посмотреть

Смотрят сейчас (4) Посмотреть

Отслеживают (1806) Посмотреть

Верх