Как сделать чтобы открывалась только одна сделка на текущей свече?

 
Ребят, всем привет! Смотрите, например, я ставлю условие, если свеча закрывается за МА5 , то на следующей свече вход, стоп 100 пипсов. В тестере, при тестировании по ценам открытия все норм, а если в реале или тестировать по всем тикам, то после закрытия по стопу на той же свече, на какой и была открыта сделка, то опять открывается сделка, потому что условия все еще выполняются. Вот как сделать так, чтобы было также , как и при тестировании по ценам открытия, чтобы на одной свече открывалась только одна сделка, и не переоткрывалась , после закрытия по стопу на той же свече? Если не сложно - киньте ссылку на такую тему, если она уже есть. Заранее спасибо
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
 
Nikolai_korzhok:
Ребят, всем привет! Смотрите, например, я ставлю условие, если свеча закрывается за МА5 , то на следующей свече вход, стоп 100 пипсов. В тестере, при тестировании по ценам открытия все норм, а если в реале или тестировать по всем тикам, то после закрытия по стопу на той же свече, на какой и была открыта сделка, то опять открывается сделка, потому что условия все еще выполняются. Вот как сделать так, чтобы было также , как и при тестировании по ценам открытия, чтобы на одной свече открывалась только одна сделка, и не переоткрывалась , после закрытия по стопу на той же свече?

этот вопрос на форуме затёрт до дыр :-)

чтобы открывалась только одна сделка на свече - просто не открывайте вторую сделку на свече.

эпос об искании текущих сделок и обретении индекса свечи, кратко дан в документации.

но если хотите, можем пересказать в лицах и с эмоциями :-)

 
Maxim Kuznetsov:

этот вопрос на форуме затёрт до дыр :-)

чтобы открывалась только одна сделка на свече - просто не открывайте вторую сделку на свече.

эпос об искании текущих сделок и обретении индекса свечи, кратко дан в документации.

но если хотите, можем пересказать в лицах и с эмоциями :-)

Если не сложно- киньте ссылку, пожалуйста. или как нормально ее найти в поиске? 

 
Nikolai_korzhok:

Если не сложно- киньте ссылку, пожалуйста. или как нормально ее найти в поиске? 

Как определить новый бар. Или что-то похожее на эту фразу.

А движок форума сам вставил ссылку на статью.
 

1. Выбираешь последний закрытый ордер.

2. Узнаёшь время его закрытия datetime OrderCloseTime()

3. Получаешь номер бара по времени iBarShift()

4. Если номер бара = 0, ордер не открываем

 
Nikolai_korzhok:

Если не сложно- киньте ссылку, пожалуйста. или как нормально ее найти в поиске? 

вам уже ответили..

(не в ваш огород камешек) Есть ветки "вопросы новичков по MQL4/5", авторы и звездеющие(обретающие звёзды) там лица не удосужились сделать FAQ чтобы простые/типичные вопросы были на виду. Поэтому только поиск по сайту ;-)

 
Evgeniy Chumakov:

1. Выбираешь последний закрытый ордер.

2. Узнаёшь время его закрытия datetime OrderCloseTime()

3. Получаешь номер бара по времени iBarShift()

4. Если номер бара = 0, ордер не открываем

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

 
Nikolai_korzhok:


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

Если только абсолютную разницу и сравнением полученных секунд с секундами таймфрейма

 
Большое спасибо всем, буду пробовать!
 
Evgeniy Chumakov:

Если только абсолютную разницу и сравнением полученных секунд с секундами таймфрейма

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

 
Nikolai_korzhok:
Ребят, всем привет! Смотрите, например, я ставлю условие, если свеча закрывается за МА5 , то на следующей свече вход, стоп 100 пипсов. В тестере, при тестировании по ценам открытия все норм, а если в реале или тестировать по всем тикам, то после закрытия по стопу на той же свече, на какой и была открыта сделка, то опять открывается сделка, потому что условия все еще выполняются. Вот как сделать так, чтобы было также , как и при тестировании по ценам открытия, чтобы на одной свече открывалась только одна сделка, и не переоткрывалась , после закрытия по стопу на той же свече? Если не сложно - киньте ссылку на такую тему, если она уже есть. Заранее спасибо

простейший вариант сделать такую проверку:

   if(Time[0]==saved_time)


при этом переменная saved_time должна быть либо static либо определена на глобальном уровне (не внутри функции)

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