Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 509

 
Aleksey Stukalov:
Cosa c'è di sbagliato in un trailing stop? È già integrato nel terminale.
Provatelo e capirete
 

Gente gentile aiuta a compilare EA molto per favore, non sono bravo a programmare.

Questo è l'errore che ottengo quando compilo 'delete' - name expected

L'errore nel codice è evidenziato in rosso

void delete(int type){

se(OrdiniTotali()>0){

for(i=OrdiniTotali()-1;i>=0;i--){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(type!=6 && type!=7 && type!=8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magico && OrderType()==type)OrderDelete(OrderTicket();

if(type==6)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magico && OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket());

if(type==7)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magico && OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)OrderDelete(OrderTicket());

if(type==8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magico && OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket());

}

}

}


Ecco un altro errore '(' - puntatore a oggetto atteso

if(oppositedelete){delete(OP_SELLSTOP);delete(OP_SELLLIMIT);}

E qui '}' - non tutti i percorsi di controllo restituiscono un valore

int countglobal(){

int cnt=0;

se(OrdiniTotali()>0){

for(i=OrdiniTotali()-1;i>=0;i--){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

cnt++;

}

ritorno(cnt);

}

}

 
Anton Razmyslov:

Gente gentile aiuta a compilare EA molto per favore, non sono bravo a programmare.

Questo è l'errore che ottengo quando compilo 'delete' - name expected

L'errore nel codice è evidenziato in rosso

void delete(int type){.

..............

Dice che non può essere chiamata in questo modo, dovresti chiamare la funzione con un altro nome.

e questo "non tutti i percorsi di controllo restituiscono un valore" sulla funzione che non ha un percorso di ritorno e non restituisce alcun valore, scrivete return(0); prima dell'ultimo "}" della funzione

 
Спасибо большое!
 
Tema97:
Buon pomeriggio a tutti) Condividete il codice per uno stop loss mobile - per guidare il prezzo )))) Grazie in anticipo
//---------------------------------
void Trailing3(int Mag,string Symb,int Dist,int Shag,bool Isp_shag,bool Isp_bezubitok)
  {
   double dist=0,shag;
   if(Digits==3 || Digits==5)
      dist=Dist*10*Point; shag=Shag*10*Point;
   if(Digits==2 || Digits==4)
      dist=Dist*Point; shag=Shag*Point;

   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      int res=OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==Mag && OrderSymbol()==Symb)
        {
         if(OrderType()==OP_BUY)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
           }
         else  if(OrderType()==OP_SELL)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
           }
        }
     }

  }
//-----------------------------------------------
 
Ciao a tutti! Scaricato MT4, lo strategy tester funziona solo da dicembre 2015, chi sa come pimpare il terminale?
 
olleg.1:
Ciao a tutti! Scaricato MT4, lo strategy tester funziona solo da dicembre 2015, chi sa come patchare il terminale?
Scarica i preventivi per lo strumento richiesto. Servizio - Archivio Preventivi.
 
Grazie!
 

Ciao a tutti!

Potresti per favore dirmi come implementare in EA la possibilità di controllare se la variabile di input è nell'intervallo o no. Per esempio:

a) Più di 10, ma meno di 20

b) Più di 20 o meno di 10

c) ecc.

ZS: finora abbiamo 3 valori per controllare ogni variabile: caso per switch (maggiore di/meno di/più di, ma meno di/meno di o maggiore di) e 2 valori. Immagino che si potrebbe fare un loop di questa costruzione e passare attraverso tutte le variabili... È questa la direzione giusta?

 
Антон:

Ciao a tutti!

Potresti per favore dirmi come implementare in EA la possibilità di controllare se la variabile di input è nell'intervallo o no, in un modo più semplice e corretto. Per esempio:

a) Più di 10, ma meno di 20

b) Più di 20 o meno di 10

c) ecc.

ZS: finora abbiamo 3 valori per controllare ogni variabile: caso per switch (maggiore di/meno di/più di, ma meno di/meno di o maggiore di) e 2 valori. Immagino che si potrebbe fare un loop di questa costruzione e passare attraverso tutte le variabili... È questa la direzione giusta?

Quali variabili mettere in loop? Dammi il codice o scrivilo più chiaramente