Cosa c'è di sbagliato in questo? - pagina 3

 

Per favore ditemi perché questo script non apre le offerte e mostra l'errore 0, cioè nessun errore, ma non apre le offerte.

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());
     }
  }
  
 
Penso che il tuo stoploss sia più grande del prezzo di apertura
 
Giusto, e non c'è nessun errore.
 

Dimmi come decifrare questo, non capisco come funziona questo pezzo

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

Quindi prima impostiamo la variabile cnt a 0

Poi, se il numero di ordini supera 0, OrderSelect viene attivato.

Ma di cosa è responsabile questa stessa variabile cnt con valore 0?

 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
 
Provate a leggere semplicemente la funzione e sarà chiaro in poco tempo.
 

No niente è diventato chiaro, perché esattamente 0? Gli ordini sono numerati da zero o cosa?

E c'è di più.

OrderType()<=OP_SELL

Come faccio a sapere se questo è inferiore o uguale a un ordine di vendita? Qual è il più piccolo e qual è il più grande?

 
sss2019:

No niente è diventato chiaro, perché esattamente 0? Gli ordini sono numerati da zero o cosa?

Sì, da zero. Come tutto il resto.

E c'è di più.

Come faccio a sapere se questo è inferiore o uguale a un ordine di vendita? Come facciamo a sapere quale è più piccolo e quale più grande?


perché OP_SELL è costante=1
 

Così

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

è così che funziona?

 
sss2019:

Così

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

è così che funziona?


Giusto. Vero, c'è un altro valore che è uguale a 6.
 
Cos'altro può essere?
Motivazione: