Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 514

 
Mr.Profit:

Buon pomeriggio!

Come combattere con "MetaEditor non trovato" quando si cerca di modificare un EA? MetaTrader build 600.

Non mi sembra di ricordare un tale problema nelle vecchie build...

Può essere spiegato dal fatto che il computer su cui sto lavorando è piuttosto poco potente e caricato per il 50-75% del tempo. Ho 7 istanze MT4 in esecuzione su di esso, ma in condizioni normali (cioè senza carico esterno come l'accesso tramite TeamViewer e cercando di lanciare MetaEditor) le sue prestazioni sono sufficienti, e Task Manager in esecuzione in background mostra un utilizzo medio della CPU <=45-50% per 15-20 minuti.

Questo problema non si verifica nel 100% dei casi e MetaEditor, dopo aver mostrato una pazienza e una persistenza non comuni, funzionerà ogni volta dalla 5°-10°-25° volta. Ma è davvero fastidioso cercare di avviare MetaEditor per mezz'ora.

Con queste domande dovresti andare al thread della build 610th- gli sviluppatori sono lì
 
r772ra:



Grazie.

Vi prego di avvisare, a condizione che non abbiate messo nessun recinto.

Cosa potrebbe essere reso più semplice?

input int    Slippage   = 10;   // установим значение проскальзывания 
extern string ___START_SETUP_ = "---ОСНОВА---";  
input double StartLot   = 0.02; 
extern double LotMultiplicator = 1.3;
extern int N_LotMult = 2;
extern string ___STEP_SETUP_BLOK_ = "--- БЛОК УСЛОВИЙ СЕТКИ ---";
extern int Mode_Step = 1;
extern int Step = 5;
extern int StepUv_Step = 5;
extern string ___CLOSE_SETUP_BLOK_ = "--- БЛОК УСТАНОВОК ЗАКРЫТИЯ ---";
extern int TakeProfit = 40;


double z,y, lot=StartLot, count, step=Step;

  
void OnTick()
  {  
   
     int i_buy=0; int i_sell=0;
     for(int i=0;i<OrdersTotal();i++){
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){
              switch(OrderType()){// Есть ли открыте ордера
                 case OP_BUY:
                    i_buy++;
                 break;
                 case OP_SELL:
                    i_sell++;
                 break;
               }
               
              y = int((OrderOpenPrice()-Ask)/Point); 
              z = OrderLots();
              
              count++;            
          }   
     }
    
     if(LotMultiplicator > 1 && count > N_LotMult) lot = z + z/LotMultiplicator;    
     if(Mode_Step==1) step = Step + count*StepUv_Step;

     if((i_buy==0 && i_sell==0) || y >= step) //--- нет открытых ордеров, открываем
         OrderSend(Symbol(), OP_BUY,lot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue);
     
       count=0;
   
 
Zolotai:


Grazie.

Vi prego di avvisare, a condizione che non abbiate messo nessun recinto.

Cosa potrebbe essere reso più semplice?


PER FAVORE imparate a inserire il codice correttamente! CTRL+ALT+M o SRC.
 
evillive:
PER FAVORE imparate a inserire il codice correttamente! CTRL+ALT+M o SRC.

Fatto.
 
Zolotai:


Spc.

Vi prego di avvisare, a condizione che non abbiate messo nessun recinto.

Cosa potrebbe essere reso più semplice?


E non ci sono errori di compilazione? E nessun errore di esecuzione?

Prima descrivi quello che vuoi ottenere, perché ci sono domande su alcuni punti del codice:

 y = int((OrderOpenPrice()-Ask)/Point); //подставьте в уравнение реальные цены
if((i_buy==0 && i_sell==0) || y >= step) //--- нет открытых ордеров, открываем открывает позицию всегда когда y >= step, а это будет практически всегда по формуле выше, за исключением коридора шириной в "step"
 
evillive:

E non ci sono errori di compilazione? E nessun errore di esecuzione?

Per prima cosa, descrivete ciò che volete ottenere, perché ci sono domande su alcuni punti del codice:




C'è qualcosa che potrebbe essere semplificato. Forse alcune variabili extra... Tutto quello che ho ora è l'apertura a passi, l'aumento del lotto e questo è tutto. Non ho ancora bisogno di TP. È possibile renderlo un po' più semplice, meno codice...
 
C'è molto di lui? Non c'è niente da semplificare lì, al contrario, dovrebbe essere aggravato )))
 
evillive:
C'è molto di lui? Non c'è niente da semplificare lì, al contrario, dovrebbe essere aggravato )))

Grazie. Potreste suggerire una funzione. Se voglio piazzare un ordine stop e takeaway con l'ultimo ordine, allora il primo ordine sarà mediato. Il penultimo ordine con il primo e così via. Come se andassimo al centro...
 
Sono sicuro che ci sono molti netizen nel kodobase - medium, martin, anti-martin, per tutti i gusti.
 
evillive:
Sono sicuro che ci sono molti netizen nel kodobase - medium, martin, anti-martin, per tutti i gusti.

Sì, ma... Bisogna scavare nei codici degli altri. Cosa che non capisco, e ci vuole un sacco di tempo Per capirlo.