Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1239

 
BarCloseB1 = iClose(nameSym,xPeriod,xshiftBar);
BarCloseB1Signal = iClose(nameSymSignal,xPeriod,xshiftBar)

Buona giornata!

Imparo il valore di chiusura per il simbolo corrente e l'altro (quello del segnale per la barra corrente) quando apro una nuova barra oraria.

Ma in realtà il valore per lo strumento corrente corrisponde, mentre il valore per lo strumento segnale prende il valore della barra precedente, cioè se xshiftBar = 1, allora prendexshiftBar=2 per quello segnale, cioè una barra in più

 
Vitaly Muzichenko:

Puoi solo ritirare ciò che hai guadagnato da questa risorsa, che è la vendita di software, segnali e potenza del computer. Ciò che viene inserito può essere speso solo per questa risorsa.

Vitaly, hai sbagliato. Prima devi prelevare, e poi quando e se ne hai bisogno, puoi depositare.

 
Yerkin Sagandykov:

Buona giornata!

Imparo il valore di chiusura per il simbolo corrente e l'altro (quello del segnale per la barra corrente) quando apro una nuova barra oraria.

Ma in realtà il valore per lo strumento corrente corrisponde, mentre il valore per lo strumento segnale prende il valore della barra precedente, cioè se xshiftBar = 1, allora prendexshiftBar=2 per quello segnale, cioè una barra in più

Per verificarlo, sostituite le variabili con i valori 1 e 2. Allora saprete dove si trova l'errore.

 
Alekseu Fedotov:

Con iCustom

Grazie, ma puoi dirmi perché i livelli disegnati volano giù troppo velocemente?
File:
snake.mq4  16 kb
 
Alexey Viktorov:

Per controllare, mettete i valori 1 e 2 al posto delle variabili. Allora saprete dove si trova l'errore.

Il problema non è nei valori delle variabili secondo me. Ho solo un ricalcolo nel mio codice all'arrivo di una nuova ora. e risulta che dal simbolo corrente appare una nuova barra e calcola il valore di bar = 1, ma dal simbolo di segnale è una nuova barra non si è ancora formata o qualcosa del genere e calcola i valori per bar = 2

 if  ( iTime(nameSym, LPeriod, 0 ) == counted_bar ) return; 
Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 
Yerkin Sagandykov:

Il problema non è nei valori della variabile secondo me. Ho solo un ricalcolo nel mio codice, e risulta che per il simbolo corrente appare una nuova barra e calcola la barra =1, ma per il simbolo segnale non si è ancora formata una nuova barra e calcola i valori per la barra =2

Voglio che sia esatto e non "secondo la mia opinione". Allora posso dire con certezza che la nuova barra appare sul simbolo del segnale. E in qualche modo aspettare questo nuovo bar. Ci sono diverse opzioni, sta a voi decidere quale usare.

 

Saluti. Potresti darmi un suggerimento?

Ho bisogno di calcolare il drawdown massimo sugli ordini di un particolare EA.

Se conto per tutti gli ordini, allora lo faccio, e si adatta ai risultati di MT stesso:

      if(AccountEquity()>max_equity){
         max_equity=AccountEquity();
      }   
      if(max_drawdown_total<max_equity-AccountEquity()){
         max_drawdown_total=max_equity-AccountEquity();
      } 

Lo calcolo in questo modo per un Expert Advisor:

      if(MoneyCount()>max_equity_1){
         max_equity_1=MoneyCount();
      }   
      if(max_drawdown_total_1<max_equity_1-MoneyCount()){
         max_drawdown_total_1=max_equity_1-MoneyCount();
      }

double MoneyCount(){
   double count=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
            count+=(OrderProfit()+OrderSwap()+OrderCommission()); //
         }   
      }
   }
   return count;
}

Credo che i risultati dovrebbero essere gli stessi nel tester, ma c'è una differenza (non immediata) di poco più di un punto percentuale. Cosa sto contando di sbagliato?

 
Buon pomeriggio. Potresti per favore consigliarmi quale lingua preferire, mql4 o 5? E perché mt4 ha un meta-editor 5 incorporato, o è anche per mql4?
 
Ciao, potresti per favore consigliarmi come riflettere i valori degli indicatori nel codice quando uno è sovrapposto all'altro, ad esempio ATR è sovrapposto a MA, è possibile in MT4?
 
ZahvatkiN:
Ciao, potresti per favore consigliarmi come riflettere i valori degli indicatori nel codice quando uno è sovrapposto ad un altro, ad esempio ATR è sovrapposto a MA, è possibile in MT4?

Per MQL4 usare iMAOnArray(), per MQL5 - quando si crea un handle iMA specificare l'handle di un ATR creato in precedenza invece del prezzo al quale viene calcolata la media mobile

Motivazione: