[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 397

 
VOLDEMAR:

Sì, se lo impostate come x=0, andrà a zero, se lo impostate come x:, non andrà a zero, andrà su.


Mi dispiace, non ho notato che è dentro l'inizio ....
 
Sono sicuro che si resetterà. Grazie a tutti, è un po' esilarante.
 
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;
int start()
  { 
int    X=0; 
double price=(Ask+Bid)/2;      
int total=OrdersTotal();                                         
                                       
   for (int i=total-1; i>=0; i--)                                 
   {
    if(OrderSelect(i, SELECT_BY_POS))                          
     { 
      Alert ("Uy",i);
      if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
       {
       X ++;
       }  
       }
       }
       Alert ("X",X);}

if (X==0)
   {
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       


   return(0);
  

Questo è il modo giusto di andare!!!!!

 
Dimka-novitsek:
Sono sicuro che è azzerato. Grazie a tutti, è un po' esilarante.
Meglio usare comment(); poi durante i test potete vedere cosa succede con le vostre variabili in alto a sinistra......
 
Grazie!!!
 
Ho messo il tuo codice, ma non si compila. Qual è l'errore, non riesco a capire. Ma la cosa principale, ho ancora chiesto, ci deve essere qualche tipo di errore logico, gli ordini vengono aperti su ogni tick, molto probabilmente questa parte non funziona.
 if(OrderSymbol()==Symbol()&& OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 && OrderSymbol()==Symbol())
Questa è la parte che non funziona e non riesco a capire nemmeno io?
 
VOLDEMAR:

Ragazzi una domanda più complicata......

Come fare in modo che un EA chiuda tutti gli ordini quando viene raggiunto un determinato profitto .... Chiudere solo gli ordini su un simbolo ...

Esempio: l'EA lavora su 3 coppie di importo per chiudere tutti gli ordini su un simbolo 100p ...

Se l'EUR ha più di 100p chiuderà solo gli ordini su EUR mentre altri possono avere 200p ...

Se prendo accountbalanse(), allora l'EA chiuderà solo quando la somma di tre coppie è più di 100p. Questa opzione non funziona per me !!!!

Aiuto per favore.........



Probabilmente con
OrdineProfitto( )
E anche se (OrderSymbol()==Symbol()) {Anche se non posso scriverlo io...
 

Per favore consigliatemi cosa c'è di sbagliato nel codice. Il robot dovrebbe chiudere un ordine di vendita e se non c'è, dovrebbe comprare. Appare l'errore 4105, che cerco di gestire, ma non c'è risultato. Forse ci sono altri modi per elaborarlo?

PRICECURRENTPPROFIT è il livello di acquisto.


// ROBOT SELLS
// determinare se ci sono ordini di vendita
if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0)
{
for(cnt=OrdersTotal();cnt>=0;cnt--)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); mode = OrderType(); if(OrderSymbol() == "EURUSD")
{if(mode == OP_BUY)
{go=OrderClose(OrderTicket(), Lots, Bid, slippage, Green);

}
}
} // se aperto, chiudere
} if(go != true) {Print("Failed to open SELL order. Errore N", GetLastError());
switch(GetLastError()) {case 4105: OrderSend("EURUSD",OP_SELL,Lots,Bid,2*Point,0,0, "robot vende",MagicNumber,0,Red);break;}
}

 

Voglio aggiungere alcune funzioni per renderlo aperto per comprare e vendere, ma per vendere e comprare ho bisogno di un magicnumber separato

Se scatta un ordine Take Profit, il robot chiude tutti gli ordini pend enti. Voglio che chiuda tutti gli ordini pendenti OP_SELLLIMIT e che lasci invariato OP_BUYLIMIT, OP_BUY

 
Dimka-novitsek:
Ho messo il tuo codice, ma non si compila. Qual è l'errore, non riesco a capire. Ma soprattutto, ho ancora chiesto, ci deve essere qualche tipo di errore logico, gli ordini vengono aperti su ogni tick, molto probabilmente questa parte non funziona, e non riesco a capirlo nemmeno io?
O il codice non è tutto mostrato o manca la parentesi graffa di chiusura in basso.