Нужен советник.

 

На многих форумах искал вот такой скрипт/эксперт. Вроде бы очень простой, но в чистом виде его так и не нашел.. Алгоритм такой: открывается одна позиция по текущей цене(например sell) и отложка на buy на Х пунктов от первой; при срабатывании ТП у 1ой позиции нужно чтобы отложка закрывалась, а при открытии 2ой нужно чтобы закрывалась 1ая позиция (которая на sell)и открывалась третья на определенном расстоянии и с определенными ТП и СЛ. Первый шаг я делаю - открываю текущий и отлоденный ордера, но как сделать чтобы при срабатывании(открытии) второй позиции открывалась еще одна и удалялась первая не пойму. Не разберусь с помощью какого оператора прога понимает что настал момент для отрытия позиции. Очень прошу объясните на примере! :(

 
Сер, обращайтесь я Вам помогу. А если хотите и вы москвич я даже вам курсы MQL4 начитаю. Так что пишите mikemb@ittportal.net
 
Mike:
Сер, обращайтесь я Вам помогу. А если хотите и вы москвич я даже вам курсы MQL4 начитаю. Так что пишите mikemb@ittportal.net


Mike спасибо, но всётаки хочется самому подучиться и понять хотя бы основы, так как я начинающий денег тратить лишних пока боязно:)

Вот переделал 1 эксперт вот в такой скрипт:

int step1;
int step2;
   
int start()
  {
   step1=OrderSend(Symbol(),OP_SELL,0.1,Bid,5*Point,Bid+8*Point,Bid-0*Point);
   if (step1 < 0) {
      Print("OrderSend failed with error #", GetLastError());
      return(0);
   }

   step2=OrderSend(Symbol(),OP_BUYSTOP,0.3,Ask+5*Point,5*Point,Bid-5*Point,Bid+15*Point);
   if (step2 < 0) {
      Print("OrderSend failed with error #", GetLastError());
      return(0);
   }
 
   bool OrderUpWasClose;
   bool OrderDownWasClose;
   //Проверяем закрыт ли ордер "вверх"
   if (OrderSelect(step1, SELECT_BY_TICKET) == true) {
      if (OrderCloseTime() != 0) {OrderUpWasClose = true;} else {OrderUpWasClose = false;}
   } else Print("OrderSelect() вернул ошибку - ", GetLastError());
 
      //Удаляем другой открытый ордер
      if (OrderUpWasClose) {
         if (OrderDelete(step2, CLR_NONE)) Print("OrderDelete() вернул ошибку - ", GetLastError());
      }
 
   OrderPrint();
   return(0);
  }
Задумка в том чтобы если сработает ТП(здесь не учтено ТП или СЛ, буду рад если поможете исправить именно чтобы именно по ТП) step1 то закрывается step2. Не знаю где ошибка, помогите кто может:). Второй ордер почему-то не закрывается после срабатывания ТП у первого
 
Lucker:
Mike:
Сер, обращайтесь я Вам помогу. А если хотите и вы москвич я даже вам курсы MQL4 начитаю. Так что пишите mikemb@ittportal.net


Mike спасибо, но всётаки хочется самому подучиться и понять хотя бы основы, так как я начинающий денег тратить лишних пока боязно:)

Вот переделал 1 эксперт вот в такой скрипт:

int step1;
int step2;
   
int start()
  {
   step1=OrderSend(Symbol(),OP_SELL,0.1,Bid,5*Point,Bid+8*Point,Bid-0*Point);
   if (step1 < 0) {
      Print("OrderSend failed with error #", GetLastError());
      return(0);
   }

   step2=OrderSend(Symbol(),OP_BUYSTOP,0.3,Ask+5*Point,5*Point,Bid-5*Point,Bid+15*Point);
   if (step2 < 0) {
      Print("OrderSend failed with error #", GetLastError());
      return(0);
   }
 
   bool OrderUpWasClose;
   bool OrderDownWasClose;
   //Проверяем закрыт ли ордер "вверх"
   if (OrderSelect(step1, SELECT_BY_TICKET) == true) {
      if (OrderCloseTime() != 0) {OrderUpWasClose = true;} else {OrderUpWasClose = false;}
   } else Print("OrderSelect() вернул ошибку - ", GetLastError());
 
      //Удаляем другой открытый ордер
      if (OrderUpWasClose) {
         if (OrderDelete(step2, CLR_NONE)) Print("OrderDelete() вернул ошибку - ", GetLastError());
      }
 
   OrderPrint();
   return(0);
  }
Задумка в том чтобы если сработает ТП(здесь не учтено ТП или СЛ, буду рад если поможете исправить именно чтобы именно по ТП) step1 то закрывается step2. Не знаю где ошибка, помогите кто может:). Второй ордер почему-то не закрывается после срабатывания ТП у первого
Вот тут в точности то, что Вы хотите. Это тоже мой первый эксперт, поэтому там очень много примечаний, которы я делал исключительно для себя.
Я сам много занимался самообразованием и Вам посоветую - изучите от буквы до буквы (используя где надо документацию) приводимый ниже код эксперта(это займет у Вас неделю, две , в день по 4 часа, больше не надо) и Вы выйдите на уровень , на котором находятся 70 % участников этого форума.
И еще я Вам посоветую изучить(именно изучить- законспектировать и глубоко прочувствовать статью на этом форуме -"Азбука торговли валютами"), иначе Вы и через год будете постояннно путаться - что такое купить, а что такое продать, по себе знаю.

С уважением - С.Д.
Файлы:
ish_2.mq4  34 kb
 

Sart, спасибо! Буду изучать

Причина обращения: