Я так понял вам просто надо чтобы открылось 3 ордера по разным инструментам? А почему бы не сделать флаговую переменную ну например
В глобальных переменных создаем
int flag=0; string Symb;
///////////////
далее
int start() { if (условие открытия) {flag=1;}
if (flag==1) { Symb="EURUSD"; OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и flag=2; ///выходим тк больше мы ни чего не можем сделать return(0); }
if (flag==2) { Symb="AUDUSD"; OrderSend(Symb,...) flag=3; return(0); }
if (flag==3) { Symb="USDJPY"; OrderSend(Symb,...) flag=0;//Возвращаем флаг в начальное состояние.. return(0); } return(0);}
Еще не плохо бы добавить проверку открытия и только после того как проверка успешно прошла перемещать флаг.
Уважаемые эксперты может у кого есть индикатор, который бы показывал на каждом тайм фрейме уровни макс мин за 25 и 50 баров и если цена отскакивала от этого уровня на каком ни будь тайм фрейме на этом месте оставалась линия и оставалась до тех пор пока не пробьет цена ее ? заранее спасибо!
а вааще-то в таких случаях я обычно более широко стараюсь использовать GetLastError(). Впрочем я, конечно, не профи
я так понимаю что GetLastError() должен говорить почему что-то не делается, например если поток занят, у меня же вообще нихрена не происходит!
Я так понял вам просто надо чтобы открылось 3 ордера по разным инструментам? А почему бы не сделать флаговую переменную ну например
В глобальных переменных создаем
int flag=0;
string Symb;
///////////////
далее
int start()
{
if (условие открытия)
{flag=1;}
if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}
if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}
if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}
Еще не плохо бы добавить проверку открытия и только после того как проверка успешно прошла перемещать флаг.
Большое спасибо! попробую!
}
else Print ("Ошибка открытия длинной позиции:",GetLastError());
возвращает ошибку при неудачном OrderSelect().
if(OrderSend(Symbol(), OP_SELLSTOP, getLots, Bid, 0, 0, 0, WindowExpertName(),Magic, 0, Red) < 0)
Print("Error Open Sellstop = ",GetLastError());
возвращает ошибку при неудачном OrderSend().есть версия, что не срабатывает именно OrderSend()
а нет версий почему он на тестере срабатывает?
а нет версий почему он на тестере срабатывает?
Нет. Но я говорю о том, что при более широком использовании фунции Print (пусть даже и без последующего GetLastError),
намного лучше видно, как советник торгует.
например так:
if(MA1>MA2 && StochPrev<StohCur && StochPrev<SignPrev )
{
print("условие для бай ордера выполнено");
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",16895,0,DeepSkyBlue);if(ticket>0)
}