Доброго времени всем,кто обратил внимания на данное сообщение! Сразу перейду к делу,я совсем недавно начал осваивать MQL4,и вот пробую написать свой первый советник,сформулировав ТС(выставлять отложник на покупку после определённго времени,при определении максимума часа,на 5ти минутном фрейме,отступив от границ High и Low этого часа по 5 пунктов,для выставления Лося=Low-5п и Профита= (дистанция от (( Low-5п )+ (High +5п)) *2; )столкнулся с очередной проблемой при написании вот этого кода:
extern double Lot=1.0; int start() { int H,M,Ticket; double Max,Min, Max1,Min1, TP, Total; H=Hour(); M=Minute(); Total=OrdersTotal(); if(Total==0) { if(H>=05 && M>=30) { Max=High[iHighest(Symbol(),PERIOD_M5,MODE_HIGH,12,0)]; Min=Low[iLowest(Symbol(),PERIOD_M5,MODE_LOW,12,0)]; Max1=Max+0.0005; Min1=Min-0.0005; TP=Max1+((Max1-Min1)*2); Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,Max1,2,Min1,TP); if(Ticket>0) Alert("Ордер открыт-",Ticket); return(0); } else { Alert("Ошибка№=",GetLastError()); return(0); } return(0); }
return(0);
}
при компиляции кода,ошибок нет,но во время включения в терминал происходит зацыкливание с повторяющимся Alert- "ошибка№=0",ордер не выставляется.
Если кого-то из профессионалов в деле программирования не слишком затруднит,оказать такую помощь начинающему в этом исскустве,буду безгранично благодарен.
Ну и конечно всегда рад принять советы на будущее от опытных людей в этом.
Всем спасибо и добра по жизни!
1) для вставки кода есть кнопка SRC
2) для помощи новичкам есть специальная тема
3) у вас Alert относится к условию
if(H>=05 && M>=30)
то есть каждый тик, пока оно не выполнено, то пишется "ошибка 0"
посмотрите на скобки внимательнее, видимо вы хотели так:
extern double Lot=1.0; int start() { int H,M,Ticket; double Max,Min, Max1,Min1, TP, Total; H=Hour(); M=Minute(); Total=OrdersTotal(); if(Total==0) { if(H>=05 && M>=30) { Max=High[iHighest(Symbol(),PERIOD_M5,MODE_HIGH,12,0)]; Min=Low[iLowest(Symbol(),PERIOD_M5,MODE_LOW,12,0)]; Max1=Max+0.0005; Min1=Min-0.0005; TP=Max1+((Max1-Min1)*2); Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,Max1,2,Min1,TP); if(Ticket>0) { Alert("Ордер открыт-",Ticket); return(0); } else { Alert("Ошибка№=",GetLastError()); return(0); } } return(0); }
при компиляции кода,ошибок нет,но во время включения в терминал происходит зацыкливание с повторяющимся Alert- "ошибка№=0",ордер не выставляется.
Если кого-то из профессионалов в деле программирования не слишком затруднит,оказать такую помощь начинающему в этом исскустве,буду безгранично благодарен.
Ну и конечно всегда рад принять советы на будущее от опытных людей в этом.
Всем спасибо и добра по жизни!
Совет №1. Уважайте участников форума, вставляйте код правильно. Т.е. кнопкой [SRC]
У Вас в коде написано:
if(H>=05 && M>=30) { // тут какие-то действия } else { Alert("Ошибка№=",GetLastError()); return(0); }
т.е. если H меньше пяти или M меньше 30, то будет выполняться блок кода
else { Alert("Ошибка№=",GetLastError()); return(0); }
Вы, вероятно, хотели написать так:
if(H>=05 && M>=30) { Max=High[iHighest(Symbol(),PERIOD_M5,MODE_HIGH,12,0)]; Min=Low[iLowest(Symbol(),PERIOD_M5,MODE_LOW,12,0)]; Max1=Max+0.0005; Min1=Min-0.0005; TP=Max1+((Max1-Min1)*2); Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,Max1,2,Min1,TP); if(Ticket>0) Alert("Ордер открыт-",Ticket); else Alert("Ошибка№=",GetLastError()); return(0); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени всем,кто обратил внимания на данное сообщение! Сразу перейду к делу,я совсем недавно начал осваивать MQL4,и вот пробую написать свой первый советник,сформулировав ТС(выставлять отложник на покупку после определённго времени,при определении максимума часа,на 5ти минутном фрейме,отступив от границ High и Low этого часа по 5 пунктов,для выставления Лося=Low-5п и Профита= (дистанция от (( Low-5п )+ (High +5п)) *2; )столкнулся с очередной проблемой при написании вот этого кода:
extern double Lot=1.0;
int start()
{
int H,M,Ticket;
double Max,Min,
Max1,Min1,
TP,
Total;
H=Hour();
M=Minute();
Total=OrdersTotal();
if(Total==0)
{
if(H>=05 && M>=30)
{
Max=High[iHighest(Symbol(),PERIOD_M5,MODE_HIGH,12,0)];
Min=Low[iLowest(Symbol(),PERIOD_M5,MODE_LOW,12,0)];
Max1=Max+0.0005;
Min1=Min-0.0005;
TP=Max1+((Max1-Min1)*2);
Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,Max1,2,Min1,TP);
if(Ticket>0)
Alert("Ордер открыт-",Ticket);
return(0);
}
else
{
Alert("Ошибка№=",GetLastError());
return(0);
}
return(0);
}
return(0);
}
при компиляции кода,ошибок нет,но во время включения в терминал происходит зацыкливание с повторяющимся Alert- "ошибка№=0",ордер не выставляется.
Если кого-то из профессионалов в деле программирования не слишком затруднит,оказать такую помощь начинающему в этом исскустве,буду безгранично благодарен.
Ну и конечно всегда рад принять советы на будущее от опытных людей в этом.
Всем спасибо и добра по жизни!