Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1210

 
void OnTick()
  {
      double ma = iMA(Symbol(),PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,0);
      double price = Close[1];
      

            if(price>ma && CountBuy() == 0)
               {
                     int ticket = OrderSend(Symbol(),OP_BUY,lot, Ask, 5,Ask - sl*Point,Bid + tp*Point,NULL,magic,0,Red);
                     
               }
   }

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

Вот написал элементарный пример кода, есть сигнал, если закрытие свечи больше чем машка то открывается один ордер.

Ордер один открывается но после срабатывания стопа или профита, сигнал остается и будет достаточное долгое время оставаться Истинным, уверен понимаете о чем я,

собственно как мне сделать так чтобы при возникновении сигнала на покупку открылся один ордер и все, до тех пор пока ситуация не измениться и цена закрытия не станет меньше машки.

 

Нужна помощь в написании советника.

Нужен советник который открывает позицию по совпадению, пересечения 2 MA и  MACD   дивергенции ( конвергенции ) . Чтоб был TP и SL. Код без лишних примочек , как можно проще. 

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
a.lxrn:

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

Вот написал элементарный пример кода, есть сигнал, если закрытие свечи больше чем машка то открывается один ордер.

Ордер один открывается но после срабатывания стопа или профита, сигнал остается и будет достаточное долгое время оставаться Истинным, уверен понимаете о чем я,

собственно как мне сделать так чтобы при возникновении сигнала на покупку открылся один ордер и все, до тех пор пока ситуация не измениться и цена закрытия не станет меньше машки.

задачу не правильно формулируете, отсюда и не понимание как это сделать

задача должна примерно так звучать: на баре №1 есть "сигнал бай", а на баре №2 нет этого сигнала - значит это сигнал на покупку

соответственно и будет запрет на повторное открытие и запрет на торговлю "в середине сигнала"

 
Igor Makanu:

задачу не правильно формулируете, отсюда и не понимание как это сделать

задача должна примерно так звучать: на баре №1 есть "сигнал бай", а на баре №2 нет этого сигнала - значит это сигнал на покупку

соответственно и будет запрет на повторное открытие и запрет на торговлю "в середине сигнала"

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

Причем здесь второй бар? не могу понять, может учет ордеров по одному сигналу считать? только не могу понять как

 
ANDREY:

Спасибо за ценную информацию.

По поводу математического склада ума. Раз я с нуля .... пусть и слишком долго .... в некоторой степени освоил учебник Ковалева, и даже научился писать примитивные коды которые компилируются без ошибок, и даже закодировал нечто похожее на "грааль".....значит с моим складом ума происходят изменения в нужную мне сторону.....как мне кажется.
Подскажите пожалуйста  если не сложно ... а функции MQL5  исполняются в Метаэдиторе 4?

Спасибо

Вот классический образец не математического слада ума.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам

a.lxrn, 2020.07.11 14:14

void OnTick()
  {
      double ma = iMA(Symbol(),PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,0);
      double price = Close[1];
      

            if(price>ma && CountBuy() == 0)
               {
                     int ticket = OrderSend(Symbol(),OP_BUY,lot, Ask, 5,Ask - sl*Point,Bid + tp*Point,NULL,magic,0,Red);
                     
               }
   }

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

Вот написал элементарный пример кода, есть сигнал, если закрытие свечи больше чем машка то открывается один ордер.

Ордер один открывается но после срабатывания стопа или профита, сигнал остается и будет достаточное долгое время оставаться Истинным, уверен понимаете о чем я,

собственно как мне сделать так чтобы при возникновении сигнала на покупку открылся один ордер и все, до тех пор пока ситуация не измениться и цена закрытия не станет меньше машки.

a.lxrn:  ничего личного, совсем не хотел вас этим обидеть. Не обижайтесь.
 
a.lxrn:

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

Причем здесь второй бар? не могу понять, может учет ордеров по одному сигналу считать? только не могу понять как

Измените условие, было меньше и стало больше, значит это сигнал на покупку.
 
Alexey Viktorov:

Вот классический образец не математического слада ума.

a.lxrn:  ничего личного, совсем не хотел вас этим обидеть. Не обижайтесь.

)))) я не ребенок чтобы обижаться)) да я не математический заканчивал) я больше гуманитарий, но все с чего то начинали и все по началу тупили как я)) поэтому и прошу помощи

 
Alexey Viktorov:
Измените условие, было меньше и стало больше, значит это сигнал на покупку.

с примером можно?

 
Anton Tsygvintsyev:

Нужна помощь в написании советника.

Нужен советник который открывает позицию по совпадению, пересечения 2 MA и  MACD   дивергенции ( конвергенции ) . Чтоб был TP и SL. Код без лишних примочек , как можно проще. 

Мне не поможете?

 
a.lxrn:

с примером можно?

 if( ( Close[1] > ma && Close[2] <= ma )  && CountBuy() == 0)
скобки можно убрать, написал  для удобства чтения условия
Причина обращения: