Что тут не так? - страница 3

 

А скажите пожалуйста, почему вот этот скрипт не открывает сделки, а показывает ошибку 0, то есть нет ошибки, но и сделки не открвает.

extern int MagicNumber = 10001;
extern double Lots = 0.1;
extern double StopLoss = 50;
extern double TakeProfit = 50;
extern int TrailingStop = 25;
extern int Slippage = 3;
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{
  double MyPoint=Point;
  if(Digits==3 || Digits==5) MyPoint=Point*10;
  
  double StochMain = iStochastic(NULL,0,7,10,4,MODE_LWMA,1,MODE_MAIN,0);
  double StochSignal = iStochastic(NULL,0,7,10,4,MODE_LWMA,1,MODE_SIGNAL,0);
  double MaSi = iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,0);
  
  if( TotalOrdersCount()==0 ) 
  {
     if((StochMain > StochSignal)&&(Close[1] > MaSi)) // Here is your open buy rule
     {
     OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask+StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"Открыта сделка на покупку!!",MagicNumber,0,Yellow);
     }
     else
     {
        if(GetLastError() != 0)
        Alert("Ошибка ",GetLastError());
     }
  }
  
 
По-моему ваш стоплосс больше, чем цена открытия
 
Точно, а ошибки нет.
 

Скажите, как вот это расшифровать, я никак не пойму как этот кусок работает

    for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

Значит сначала задается переменная cnt со значением 0

Затем, если количество ордеров больше 0, то срабатывает OrderSelect.

Но за что здесь отвечает та же самая переменная cnt со значением 0?

 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
 
Попробуйте просто прочитать про данную функию, и все сразу станет ясно.
 

Нет ничего ясно не стало, почему именно 0? Ордера нумируются с нуля чтоли?

И вот еще

OrderType()<=OP_SELL

Как это понять - меньше или равно ордеру на продажу. Какой из них меньше а какой больше как узнать?

 
sss2019:

Нет ничего ясно не стало, почему именно 0? Ордера нумируются с нуля чтоли?

ага, с нуля. как и все остальное.

И вот еще

Как это понять - меньше или равно ордеру на продажу. Какой из них меньше а какой больше как узнать?


патамушто OP_SELL это константа=1
 

Значит

OP_BUY - 0
OP_SELL - 1
OP_BUYLIMIT - 2
OP_BUYSTOP - 3
OP_SELLLIMIT - 4
OP_SELLSTOP - 5

так получается?

 
sss2019:

Значит

OP_BUY - 0
OP_SELL - 1
OP_BUYLIMIT - 2
OP_BUYSTOP - 3
OP_SELLLIMIT - 4
OP_SELLSTOP - 5

так получается?


Так. Правда есть еще одно значение, равное 6.
 
А это что еще такое будет?
Причина обращения: