открытие ордеров при открытии терминала

 

Есть простой советник без реализации функции учета ордеров. При появлении нового бара при заданных условиях советник открывает и закрывает позиции - всё нормально.

...

datetime prevtime=0;

bool isNewBar()
{
//----
bool res=false;
if (expertBars!=Bars)
{
expertBars=Bars;
res=true;
}
//----
return(res);
}
//+------------------------------------------------------------------+
//| Старт |
//+------------------------------------------------------------------+
int start()
{
if (isNewBar()) EveryBar(); // если появился новый бар -
//выполнить необходимые для него действия
// EveryTick(); // выполнить действия для любого тика
//----
return(0);
}

void EveryBar()

...

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

Как можно устранить этот недостаток?

 

ввести недостающие функции для контроля ордеров: например, количество открытых ордеров по типу ордера, чтоб можно было контролировать нужное открытие/закрытие ордеров

 
keekkenen >>:

ввести недостающие функции для контроля ордеров: например, количество открытых ордеров по типу ордера, чтоб можно было контролировать нужное открытие/закрытие ордеров

Да, наверное, всё-таки придется вводить функцию учета ордеров, типа ограничения на открытие в течение исследуемого периода количества ордеров (например, не больше одного в час).

 
в init вставь expertBars=Bars; тогда проверка в start сработает не сразу после запуска а реально по приходу бара
Причина обращения: