Aiuto per aggiornare a MetaTrader 5 senza perdite - pagina 15

 
Valmars:

...

Valery, dimmi cosa significa questa sezione di codice in calc.mq5:

...

if(StringSubstr(Symbol(), 3, 3)=="CAD") { xxx=1.2175;   }
if(StringSubstr(Symbol(), 3, 3)=="JPY") { xxx=91.425;   }
if(StringSubstr(Symbol(), 3, 3)=="CHF") { xxx=1.1631;   }
if(StringSubstr(Symbol(), 3, 3)=="AUD") { xxx=1/0.6800; }
if(StringSubstr(Symbol(), 3, 3)=="NZD") { xxx=1/0.54;   }
if(StringSubstr(Symbol(), 3, 3)=="GPB") { xxx=1/1.49;   }
if(StringSubstr(Symbol(), 3, 3)=="EUR") { xxx=1/1.3015; }

...

Cioè, perché alla variabile xxx vengono assegnati valori fissi?

---

E un'altra domanda. La guida contiene informazioni incomplete sul calcolo dei profitti per il Forex, vero? Significa che solo la formula per le quotazioni inverse(XXXUSD) è data per calcolare il profitto.

Identificatore

Descrizione

Formula

SIMBOLO_CALC_MODO_FOREX

Modalità Forex - calcolo del profitto e del margine per il Forex

Margine: Lotti*dimensione del contratto/leva

Profitto: (close_price-open_price)*Contract_Size*Lots

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
tol64:

E un'altra domanda. Si scopre che l'aiuto è incompleto di informazioni sul calcolo del profitto per il Forex? Significa che la formula per il calcolo del profitto è presentata solo per le quotazioni inverse(XXXUSD).

Sì, sembra che tu abbia ragione. Finora, potete leggere sul calcolo dei profitti nell'articolo "L'ABC del trading di valute".
Азбука торговли валютами - Статьи по MQL4
  • www.mql5.com
Азбука торговли валютами - Статьи по MQL4: особенности автоматических торговых стратегий
 
Rosh:
Sì, sembra che tu abbia ragione. Per ora puoi leggere il calcolo dei profitti nell'articolo "L'ABC del trading di valute".

Grazie. Questo articolo dovrebbe sicuramente essere messo nei segnalibri come un foglio di istruzioni, perché non posso tenere tutto nella mia testa. Meglio ancora se la tabella viene aggiunta all'aiuto, in modo che tutto sia centralizzato. :)

---

E valori fissi (su una testa fresca è necessario guardare :) ) così ho capito per un caso se non c'erano dati. Ma questi valori devono essere sempre corretti, a seconda dei tassi di cambio. Ecco perché è meglio emettere il messaggio che non ci sono dati, invece di valori errati.

 
tol64: E ho capito i valori fissi (quando sono freschi in testa :) ) nel caso non ci fossero dati. Ma questi valori devono essere corretti di continuo a seconda del tasso di una o un'altra valuta. Ecco perché è meglio visualizzare un messaggio che non ci sono dati, piuttosto che valori errati.

Sì, hai assolutamente ragione. Ho fatto come l'autore, ero troppo pigro, non avevo tempo... Per i tassi incrociati in MT4 è necessario selezionare esplicitamente nella finestra 'Market Watch' i simboli per entrambe le valute espresse in USD, cioè Per esempio, per NZDJPY devi selezionare USDJPY e NZDUSD. L'autore ha un disclaimer su questo punto nel preambolo:

"Per XXXYYYY attraversa il corrispondente

USDYYY o XXXUSD coppie principali (per esempio per GPBJPY nella finestra di revisione del mercato dovrebbe essere aperta

USDJPY deve essere aperto".)

In MT5 è meglio lasciare questo all'indicatore stesso.

 

Piligrim:

Valery (Valmars), pensi che abbia senso in termini di complessità del repackaging offrirti di rifare questo indicatore anche in MQL5? Il precedente, tradotto da te, funziona molto bene!

Non è possibile modificare questo indicatore per MT5, perché MT5 non ha (e non avrà mai) grafici indipendenti. Come funziona l'indicatore in MT4? Crea un grafico autonomo con un periodo non standard, con l'arrivo di una nuova quotazione lo salva nel file .hst di questo periodo non standard. E poi si apre questo grafico. Ad ogni tick, l'indicatore lo aggiorna (ridisegna) con l'aiuto della dll dell'indicatore. Come risultato si vede un grafico con un periodo non standard aggiornato in tempo reale.

In MT5 anche il formato dei file PERIOD.hc (su cui sono costruiti i grafici per i periodi standard) non è stato aperto dagli sviluppatori, probabilmente, perché non possono costruire grafici "mancini". Potete vedere la controversia sui grafici con un periodo arbitrario qui.

 
Valmars:

Sì, hai assolutamente ragione. Ho fatto come l'autore, ero troppo pigro, non avevo tempo... Per i tassi incrociati in MT4 è necessario selezionare esplicitamente nella finestra 'Market Watch' i simboli per entrambe le valute espresse in USD, cioè Per esempio, per NZDJPY devi selezionare USDJPY e NZDUSD. L'autore ha un disclaimer su questo nel preambolo:

"Per le croci XXXYYYY, il corrispondente

coppie principali USDYYY o XXXUSD (per esempio per GPBJPY nella finestra Market Watch deve

essere aperto USDJPY)".

In MT5 è meglio lasciare questo all'indicatore stesso.

Quindi, invece di quella lista con valori fissi questo codice farebbe? :

bool flgExit=false;
string arrSymbols[7]={ "CAD","JPY","CHF","AUD","NZD","GBP","EUR" };
//---
for(int i=ArraySize(arrSymbols)-1; i>=0; i--)
  {
   if(flgExit) { break; }
   //---
   if(StringSubstr(Symbol(),3,3)==arrSymbols[i])
     {
      for(int j=SymbolsTotal(false)-1; j>=0; j--)
        {
         if(SymbolName(j,false)=="USD"+arrSymbols[i]+"")
           {
            SymbolSelect("USD"+arrSymbols[i]+"",true);
            //---
            if((xxx=SymbolInfoDouble(SymbolName(j,true),SYMBOL_BID))<=0)
              {
               Comment("Ошибка ("+IntegerToString(GetLastError())+") при получении данных по символу "+SymbolName(j,true)+""); return(0);
              }
            else { flgExit=true; break; }
           }
       }
   }
}
 
Valmars:

Questo indicatore non può essere convertito in MT5, poiché MT5 non ha (e non avrà) grafici autonomi. Come funziona l'indicatore in MT4? Crea un grafico autonomo con un periodo non standard, con l'arrivo di una nuova quotazione lo salva nel file .hst di questo periodo non standard. E poi si apre questo grafico. Ad ogni tick, l'indicatore lo aggiorna (ridisegna) con l'aiuto della dll dell'indicatore. Come risultato, vedrete un grafico con un periodo non standard aggiornato in tempo reale.

In MT5 anche il formato dei file PERIOD.hc (su cui sono costruiti i grafici per i periodi standard) non è stato nemmeno divulgato dagli sviluppatori, probabilmente perché non possono costruire dei grafici "mancini". Potete vedere la controversia sui grafici con un periodo arbitrario qui.

In ogni caso grazie, Valery! Per me, come non programmatore, una consultazione professionale comprensibile è molto più preferibile in termini di trovare possibili soluzioni a qualche problema al di là delle mie competenze.

 
tol64:

Quindi, invece di quella lista a valore fisso, questo codice funzionerebbe bene? :

Sì, basta eseguirlo anche per il secondo carattere della croce e metterlo nell'inite.

 
Valmars:
Sì, fate così anche per il secondo carattere trasversale e mettetelo nell'inite.

Valery, se hai un momento libero, dai un'occhiata alla versione corretta. È fatto correttamente ora con tutto ciò che è stato discusso sopra in mente? Grazie.


File:
 
tol64:

...

Aggiornato il file sopra(calcriskprofit.mq5). Corretto il refuso. Invece di GBP era GPB. :)