Робот открывает Абсолютно одинаковые позиции.

 
Как сделать так, чтоб мой робот не открывал одновременно кучу Абсолютно одинаковых позиций?К примеру некоторое время назад открылись 5 позиций gbp/jpy, и все 5 по цене 153.51.  
 
Aleksandr55777:
Как сделать так, чтоб мой робот не открывал одновременно кучу Абсолютно одинаковых позиций?К примеру некоторое время назад открылись 5 позиций gbp/jpy, и все 5 по цене 153.51.  

Необходимо действовать последовательно: сформировать флаг "ожидаем торговый приказ". Выдать торговый приказ и до момента пока не будет подтверждения (или отказ) торговой операции больше не выдавать торговый приказ.

 

Привет!

Алгоритм примерно будет таким:


1. Проверка - сколько у нас ордеров?

2. Решение = количество.ордеров=0

2. Условие(Есть сигнал+количество.ордеров=0)  -то-  открываем ордер.   // если количество.ордеров будет больше "0" то условие не сработает и ордер не откроется.

3. идем далее...


как то так.

 
Alexander Ivanov #:

Привет!

Алгоритм примерно будет таким:


1. Проверка - сколько у нас ордеров?

2. Решение = количество.ордеров=0

2. Условие(Есть сигнал+количество.ордеров=0)  -то-  открываем ордер.   // если количество.ордеров будет больше "0" то условие не сработает и ордер не откроется.

3. идем далее...


как то так.


Так не всегда работает

https://www.mql5.com/ru/blogs/post/745331

Проверка на наличие дублей ордеров/позиций в MT5
Проверка на наличие дублей ордеров/позиций в MT5
  • 2021.09.12
  • www.mql5.com
Появление дублей ордеров/позиций в MT5 - архитектурная особенность платформы, с которой многие сталкиваются. Данная неприятность вызывает серьезные перекосы в торговых рисках, ломает логику, усложняет
 

Была такая проблема. Сейчас мой робот собирает два массива со временем открытия ордеров (ордера sell и ордера buy). Есть переменные со значением сколько минут прошло со времени открытия последнего sell, buy. Каждый тик сравниваем серверное время и значение переменных.

Если больше (например 30 мин), то следующий соответствующий ордер открывается. 

Все четко работает.

Вопрос: по какому сигналу робот открывает позицию? Мой работает на RSI и часто индикатор долго висит в зонах перепроданности/перекупленности и только привязкой ко времени я решил вопрос. Дашь ответ - может еще что придумаем.
 
Опять же очень хороший метод условие открывать сделки когда ТоталОрдерс=0, но это при торговле по одной паре....
 
Mihail Marchukajtes #:
Опять же очень хороший метод условие открывать сделки когда ТоталОрдерс=0, но это при торговле по одной паре....

Чем это Вам поможет? Вы предлагаете считать ОТЛОЖЕННЫЕ ОРДЕРА. Каким боком это относится к ПОЗИЦИЯМ?

 
Vladimir Karputov #:

Чем это Вам поможет? Вы предлагаете считать ОТЛОЖЕННЫЕ ОРДЕРА. Каким боком это относится к ПОЗИЦИЯМ?

Согласен, сейчас уточнил свой код оказывается вот как у меня сделано...

PositionsTotal()<=0
Тогда открываем позицию....
 
Mihail Marchukajtes #:

Согласен, сейчас уточнил свой код оказывается вот как у меня сделано...

Тогда открываем позицию....

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

Великий и ужасный МТ4 навсегда (или как грамотно выработать стратегию перехода)

fxsaber, 2021.05.05 02:04

// Демонстрация открытия дубля позиции в MT5.

#include <Trade\Trade.mqh>

void OnStart()
{
  CTrade Trade;
  
  while (!IsStopped() && (PositionsTotal() <= 1)) // Закончим, когда появится более одной позиции.
    if (PositionsTotal() == 1)
      Trade.PositionClose(PositionGetTicket(0)); // Если есть позиция - закрываем.
    else if (!OrdersTotal())
      Trade.Buy(0.01); // Если нет позиции и ордера - открываем позицию.
}

Запустите этот код на пустом демо-счете и убедитесь в открытии двух позиций через несколько секунд.

 
fxsaber #:

Это одна из причин, по которой давно отказался от Trade.mqh

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