[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 17

 

Ciao, la domanda è come facciamo a sapere se l'oggetto è stato eliminato manualmente se conosciamo solo la descrizione dell'oggetto. cioè l'oggetto con un nome sconosciuto, il take profit è collegato all'oggetto, se l'oggetto viene eliminato rimuove il take profit, e non conosciamo il nome dell'oggetto ....

C'è un modo per cambiare il nome dell'oggetto ????

 

Per favore aiutatemi a perfezionare l'EA! Voglio che apra un ordine quando arriva il segnale, quando arriva quello successivo e così via, indipendentemente dal fatto che ci siano ordini aperti o meno.

Per favore, ditemi cosa c'è che non va!

 m0=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,0);
    m1=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,1);
    lwma=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0);
    lwma1=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,1);
    sar=iSAR(NULL,0,step,maximum,0);
    sar1=iSAR(NULL,0,step,maximum,1);
//+------------------------------------------------------------------+
   
      Lots=NormalizeDouble(AccountFreeMargin(),0)*MaxRisk/1000;
     if(Lots<0.01) 
    return(Lot);
//--------------------------------------------------------------------
    balans=NormalizeDouble(AccountFreeMargin(),2);
//--------------------------------------------------------------------
   total=OrdersTotal();
   if(OrdersTotal()>=0)
     {
   x=1;
   x++;  
//==========================Медленный==================================
   if( m1>lwma1 && m0<lwma && balans>0 && total<x)
     {
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Ask-tp*Point,"0",Magik,0,Red);
     }
   if(ticket>0)
     {
     Alert("Продажа №",ticket,"\n",Symbol());
     return(0);
     }
//-------------------------------------------------------------------- 
   if ( m1<lwma1 && m0>lwma && balans>0 && total<x)
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl*Point,Bid+tp*Point,"0",Magik,0,Blue);
     }
  if(ticket>0)
     {
      Alert("Покупка № ",ticket,"\n",Symbol());
      return(0);  
     }
//========================Быстрый=====================================
   
    if(sar1<Bid && sar>Ask && balans>0 && total<x)
      {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl1*Point,Ask-tp1*Point,"0",Magik1,0,Red); return;
      }
    if(ticket>0)
      {
      Alert("Продажа №",ticket,"\n",Symbol());
       return(0);
      }
//---------------------------------------------------------------------
  if(sar1>Ask && sar<Bid && balans>0 && total<x)
      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl1*Point,Bid+tp1*Point,"0",Magik1,0,Blue);
      }
   if(ticket>0)
     {
         Alert("Покупка №",ticket,"\n",Symbol());
         return(0);
        }
       }
 

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

Print(flag,flagg);

Ma_1 - breve
Ma_2 - lungo

quando Ma_1>Ma_2 suona news.wav senza fermarsi, e stampa 0 1 (cioè flag=0 flagg=1)

ma come può essere che quando flagg=1, la condizione (Ma_1>Ma_2 && flagg==0) è soddisfatta e {PlaySound("news.wav") passa?

 
Ciao a tutti, ho bisogno di rifare l'EA per chiudere tutte le posizioni dopo una certa percentuale dell'importo iniziale dell'importo richiesto, per esempio, se nessun ordine è aperto, per esempio, il requitty di 1000 e la % del requitty è impostato al 5%, quindi chiude tutte le posizioni con requitty 1050, ho fatto l'EA registrato una variabile globale e che aveva questo valore per contare e chiudere le posizioni, ma l'EA non vuole chiudere,L'ho fatto così, il saldo aumenta e devo chiudere alcune posizioni al 5% del 'Equity' ma non è 1050 e a volte devo aspettare ancora un po', o il prezzo cambia direzione e ottengo una perdita invece del profitto, per favore aiutate chi sa e ha affrontato i cambiamenti globali!!! Grazie mille per la risposta.
 
Buona sera! Dimmi se ho capito bene che in
iStocastico
modo
Mi riferisco alla linea K o D? Inoltre, 0 è K e 1 è D?
 

E guardate una variante come questa, senza variabili globali.

if(Profit>AccountEquity( )*koefitsientudaleniya){  
   int Total=OrdersTotal();
    for( i=OrdersTotal()-1;i>=0;i--){
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if(OrderSymbol() != Symbol()) continue; 
   if (OrderMagicNumber() != 450) continue;
   if(OrderType()==OP_SELL) {
  OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i,"  GetLastError()CloseOP_SELL ", GetLastError()  );}
   if(OrderType()==OP_BUY)  {
  OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i,"  GetLastError()CloseOP_BUY ", GetLastError()  );}}} и виличины, закрываем все ордера!
//----
 
 
Sì, non ci dovrebbero essere segnali prima di cambiare le miscele!!! Più o meno... Probabilmente guardate tutto il codice! Non lo so, non sembra mostrare...
 
Ho bisogno che l'advisor ricordi il valore di eQuity quando non ci sono ordini aperti, per esempio 1000 e come ho scritto %-5 il valore di eQuity è 1050 quando tutte le posizioni sono chiuse, l'ho ottenuto così alcuni ordini sono chiusi e il saldo aumenta ma il profitto è negativo di tutti gli ordini e l'advisor aspetta finché il profitto è + poi chiude tutte le posizioni
 
lottamer:

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

Print(flag,flagg);

Ma_1 - breve
Ma_2 - lungo

quando Ma_1>Ma_2 suona news.wav senza fermarsi, e stampa 0 1 (cioè flag=0 flagg=1)

ma come può essere che quando flagg=1, la condizione (Ma_1>Ma_2 && flagg==0) è soddisfatta e {PlaySound("news.wav") passa?


Stampa lo stato delle bandiere separatamente per ogni condizione. È così perché lo stato della seconda bandiera non è preso in considerazione nelle condizioni.

P.S. Ed è più conveniente stamparePrint("flag=",flag, "flagg=",flagg) per evitare confusione;

 

È così che ho il robot nella demo. Non ricordo in dettaglio come mi è venuta l'idea di scriverlo.

if(Profit>AccountBalance()*koefitsientudaleniya){
int Total=OrdersTotal();
for( i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() != Symbol()) continua;
if(OrderMagicNumber() != 450) continua;
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i," GetLastError()CloseOP_SELL ", GetLastError() );}
if(OrderType()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i," GetLastError()CloseOP_BUY ", GetLastError() );}}} // Se il profitto supera qualche valore che abbiamo specificato, chiuderemo tutti gli ordini!
//----

O lasciamo che siano i nostri amici più anziani a consigliarci...

Motivazione: