Пауза между открытиями, работа только на открытии свечи... оба варианта советников можете найти в кодабазе (для примера).
проверка по OrdersTotal() - не правильный ход, т.к. это Тотал - т.е. все вообще, всех символов, всех роботов, и ручные в этой же куче. организуйте перебор со счётчиком только нужных.
плюсом к OrdersTotal()<2 проверить наличие открытого ордера на текущем баре
Но оно там до секунд показывает. поэтому оно все равно не будет совпадать.
вот эту задачу нужно решить.
Можно использовать OrderOpenTime() и еще смотреть время текущего бара.
Но оно там до секунд показывает. поэтому оно все равно не будет совпадать.
int prevSignal,Signal; //допустим -1 - продажа, 1 - покупка, 0 - отсутствие сигнала
datetime prevTime;
int OnInit()
{
prevTime=iTime(Symbol(),Period(),0);
...
}
//------
void OnTick()
{
if(prevTime!=iTime(Symbol(),Period(),0) && MathAbs(Signal)==1 && prevSignal!=Signal && OrdersTotal()<2)
{
//можно открыть
}
prevSignal=Signal;
prevTime=iTime(Symbol(),Period(),0);
...
}
Но говорят брокер в 00:00 коммент изменяет.
int OnInit()
{
datetime prevTime=iTime(Symbol(),Period(),0);
...
}
//------
if(prevTime!=iTime(Symbol(),Period(),0) && OrdersTotal()<2)
{
//можно открыть
}
prevTime=iTime(Symbol(),Period(),0);
может так и организую ...
то есть работать только на открытии?
может так и организую ...
переделал код выше, иначе все равно 2 штуки откроет
переделал код выше, иначе все равно 2 штуки откроет
хорошо, спасибо.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Количество одновременно открытых ордеров не может быть больше 2 , как это организовать?
Можно сделать так: разрешить ордера открывать если OrdersTotal()<2,
но тогда может несколько ордеров открыться на одной стрелке.
Как по правильному организовать?