А как можно сказать советнику чтобы определять максимум и минимум ровно один раз и ровно в 16 00?
Ввести переменную, типа bool, которой после первого выполнения присвоить значение, не позволяющее выполнять действие второй раз.
Конкретнее только с куском кода.
Воть )
if(TimeToStr(TimeCurrent(),TIME_SECONDS) == "16:00:00"){
double max = High[iHighest(NULL,PERIOD_H1,MODE_HIGH,3,0)] + 100 * Point;
double min = Low[iLowest(NULL,PERIOD_H1,MODE_LOW,3,0)] - 100 * Point;
Print("Время = ",TimeToStr(TimeCurrent(),TIME_SECONDS),"Максимум = ", max," Минимум = ",min);
OrderSend(Symbol(),OP_BUYSTOP,0.01,max,3,min,max + 500 * Point,"Bigdog 500пп. Дата " + TimeCurrent(),123,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,0.01,min,3,max,min - 500 * Point,"Bigdog 500пп, Дата" + TimeCurrent(),123,0,Black);
OrderSend(Symbol(),OP_BUYSTOP,0.01,max,3,min,max + 1000 * Point,"Bigdog 1000пп. Дата " + TimeCurrent(),123,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,0.01,min,3,max,min - 1000 * Point,"Bigdog 1000пп, Дата" + TimeCurrent(),123,0,Black);
}
Ну, во-первых за один тик возможно исполнение только одной команды OrderSend()
Далее:
bool hvatit=false; if(TimeToStr(TimeCurrent(),TIME_SECONDS) == "16:00:00" && !hvatit ) { double max = High[iHighest(NULL,PERIOD_H1,MODE_HIGH,3,0)] + 100 * Point; double min = Low[iLowest(NULL,PERIOD_H1,MODE_LOW,3,0)] - 100 * Point; Print("Время = ",TimeToStr(TimeCurrent(),TIME_SECONDS),"Максимум = ", max," Минимум = ",min); OrderSend(Symbol(),OP_BUYSTOP,0.01,max,3,min,max + 500 * Point,"Bigdog 500пп. Дата " + TimeCurrent(),123,0,Green); OrderSend(Symbol(),OP_SELLSTOP,0.01,min,3,max,min - 500 * Point,"Bigdog 500пп, Дата" + TimeCurrent(),123,0,Black); OrderSend(Symbol(),OP_BUYSTOP,0.01,max,3,min,max + 1000 * Point,"Bigdog 1000пп. Дата " + TimeCurrent(),123,0,Green); OrderSend(Symbol(),OP_SELLSTOP,0.01,min,3,max,min - 1000 * Point,"Bigdog 1000пп, Дата" + TimeCurrent(),123,0,Black); //-------------- запрещаем выполнение во второй и последующие разы ------------------------ hvatit=true; //----------------------------------------------------------------------------------------- }
Хочу сделать чтобы советник торговал строго в 16:00. Но когда пишу
в чем проблема ?
Возможно вам надо смотреть не на текущее время, а на время открытия бара (чтобы оно равнялось 16:00).
А после этого блокировать торговлю на этом же баре какой-нибудь переменной, которая будет впоследствии обнуляться,
а процесс будет повторен на след. день, и т.д.
Хочу сделать чтобы советник торговал строго в 16:00. Но когда пишу
в чем проблема ?
Да просто в Ваши 16:00:00 до 16:00:01 Вполне могут уложиться даже не четыре а гораздо больше тиков.
Да просто в Ваши 16:00:00 до 16:00:01 Вполне могут уложиться даже не четыре а гораздо больше тиков.
Сколько, например?
А эта ветка зачем ? прошу не отвечать в спам-темах
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
в чем проблема ?