Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
}
//+------------------------------------------------------------------+
int start()
{
//----
if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
CalculateIndicator();
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//----
return(0);
}
Самое простое и при этом самое надёжное это смотреть за изменением переменной Bars.
код проверен как в тестере так и при работе в интернете и без него, самая надёжная конструкция.
Все правильно. У Вас на первом тике бара распознается, есть ли открытые ордера или нет:
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
Если есть, идет закрытие, если нет - то открытие, и потом ждем наступления следующего бара.
Т.е. я хочу сказать, что этот алгоритм уже забит в советник. Если Вы хотите поменять алгоритм, обращайтесь к специалистам.
int START_TIME=0;//в init
bool fn_NEW_BAR()}
Так будет точней!
}
//+------------------------------------------------------------------+
int start()
{
//----
if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
CalculateIndicator();
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//----
return(0);
}
У Вас и открытие и закрытие по Open. Это ж стандартный советник Moving