пАчему не работает?

 

Советник должен продавать или покупать, но он это не делает, почему?


{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
string test = GlobalVariableGet("GVprod");
Comment("Test = ", test);
Alert (test);

//----
if (test=="1")
{
Alert ("fghfghgdfdgtryh");
OrderSend("EURUSD",OP_SELL,0.01,Ask,3,Bid-15*Point,Bid+15*Point);
return;
}

if (test=="0")
{
//
Alert ("0");
OrderSend("EURUSD",OP_BUY,0.01,Ask,3,Bid-15*Point,Bid+15*Point);
return;
}

return(0);
}
//+------------------------------------------------------------------+
 
vlandex писал(а) >>

Советник должен продавать или покупать, но он это не делает, почему?

{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
string test = GlobalVariableGet("GVprod");
Comment("Test = ", test);
Alert (test);

//----
if (test=="1")
{
Alert ("fghfghgdfdgtryh");
OrderSend("EURUSD",OP_SELL,0.01,Ask,3,Bid-15*Point,Bid+15*Point);
return;
}

if (test=="0")
{
//
Alert ("0");
OrderSend("EURUSD",OP_BUY,0.01,Ask,3,Bid-15*Point,Bid+15*Point);
return;
}

return(0);
}
//+------------------------------------------------------------------+

GlobalVariableGet возвращает double. Или сравнивайте даблы или делайте явное преобразование с помощью DoubleToStr. Кроме того значение глобальной переменной может быть не 0 и не 1. Ну и советнику нужно разрешить торговать.

 
vlandex писал(а) >>

OrderSend("EURUSD",OP_SELL,0.01,Ask,3,Bid-15*Point,Bid+15*Point);
OrderSend("EURUSD",OP_BUY,0.01,Ask,3,Bid-15*Point,Bid+15*Point);
У Вас в операндах функции OrderSend - черти что
 
api писал(а) >>

GlobalVariableGet возвращает double. Или сравнивайте даблы или делайте явное преобразование с помощью DoubleToStr. Кроме того значение глобальной переменной может быть не 0 и не 1. Ну советнику нужно разрешить торговать.

И это тоже

 
PapaYozh писал(а) >>

У Вас в операндах функции OrderSend - черти что

Ну по крайней мере покупать должна, если не пять знаков

 
с дублами разобрался, спасибо, а че с OrderSend не так?
 
vlandex писал(а) >>
с дублами разобрался, спасибо, а че с OrderSend не так?

Ордер OP_SELL открывается по цене Bid, а закрывается по Ask.

Ордер OP_BUY открывается по цене Ask, а закрывается по Bid.

Если вы работаете с пятизначным ДЦ, то у OP_BUY слишком близко ставятся стопы (почитайте в про STOPLEVEL).

 
И вообще, начните с изучения учебника
 
PapaYozh >>:
И вообще, начните с изучения учебника

Чёж так грубо, коллега? Можэ, его советник просто НЕ ХОЧЕТ торговать? Может же советник не хотеть? Вот Вам, коллега, разве всегда хочется работать?

 
AlexEro писал(а) >>

Чёж так грубо, коллега? Можэ, его советник просто НЕ ХОЧЕТ торговать? Может же советник не хотеть? Вот Вам, коллега, разве всегда хочется работать?

А советника никто не спрашивает хочет он или нет. Такова его тяжкая доля- хотеть всегда, когда попросят :)