[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 66

 
а вааще-то в таких случаях я обычно более широко стараюсь использовать GetLastError(). Впрочем я, конечно, не профи
 
pepsi писал(а) >>
а вааще-то в таких случаях я обычно более широко стараюсь использовать GetLastError(). Впрочем я, конечно, не профи

я так понимаю что GetLastError() должен говорить почему что-то не делается, например если поток занят, у меня же вообще нихрена не происходит!

 
Skydiver >>:

Я так понял вам просто надо чтобы открылось 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);}


Еще не плохо бы добавить проверку открытия и только после того как проверка успешно прошла перемещать флаг.

Большое спасибо! попробую!

 
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ("длинная позиция открыта по цене",OrderOpenPrice( ));
}

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()
 
Уважаемые эксперты может у кого есть индикатор, который бы показывал на каждом тайм фрейме уровни макс мин за 25 и 50 баров и если цена отскакивала от этого уровня на каком ни будь тайм фрейме на этом месте оставалась линия и оставалась до тех пор пока не пробьет цена ее ? заранее спасибо!
 
pepsi писал(а) >>
есть версия, что не срабатывает именно OrderSend()

а нет версий почему он на тестере срабатывает?

 
sten1981 >>:

а нет версий почему он на тестере срабатывает?

Нет. Но я говорю о том, что при более широком использовании фунции 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)

}

 
тогда на демо в журнале более четко прорисовывется все. Понятнее, где искать ошибку. Самому...
Причина обращения: