Можно так (если я правильно понял вопрос):
int ExpertBars;// в глобальных переменных int init() { ExpertBars = Bars; return(0); } //------------------------------------------- int start() { bool isNewBar=false; if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; } if (isNewBar) {// ЕСЛИ ПОЯВИЛСЯ новый бар здесь делать всё то, что нужно по ценам открытия }
// попробуй if(Volume[0]<2 && ....)
int ExpertBars;// в глобальных переменных int init() { ExpertBars = Bars; return(0); } //------------------------------------------- int start() { bool isNewBar=false; if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; } if (isNewBar) {// ЕСЛИ ПОЯВИЛСЯ новый бар здесь делать всё то, что нужно по ценам открытия }
Bars - Количество баров на текущем графике. Надо чтоб именно на дневном графике. Например: советник включён на минутном или любом другом, а расчёт открытия бара проводился на дневном.
Ну тогда вот:
(не совсем то, но по аналогии - сами там сообразите...)
extern int timeFr=0; //задаем нужный тф datetime OpenTime; //---------------------------------------------------- if ( iBarShift(NULL,timeFr,OpenTime)!= 0) { //делаем - что нужно ... OpenTime = iTime(NULL,timeFr,0); }
ну как советничег торгует немного??)))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дневной график. Как написать выполнение функции, если произошло открытие нового бара. Неоходим именно момент открытия бара.
Например:
bool OpenBar()
{
res=false;
if (произошло открытие нового бара на дневном графике)
{
res=true;
}
return(res);
}