Errori, bug, domande - pagina 1330

 

Perché, quando si compila l'indicatore, tutte le impostazioni di questo indicatore che si trovano sui grafici vengono riportate ai valori predefiniti?

 
iZer0:

Buon pomeriggio, potete per favore guidare il nouveau. Uso MT5 non per il trading, ma come fonte di alcuni dati "casuali" (e non chiedete nemmeno perché - non è un mio capriccio). È possibile ottenere dati storici misurati in tick (ho bisogno di dati bid e ask più volte al secondo). Cosa devo fare? So che quando si testa un indicatore MT5 pompa dei dati - come si usa questo?

Ho un compito di scrivere un indicatore personalizzato che invia i tick attuali a un certo servizio (nessun problema). Non ho trovato da nessuna parte come ottenere dati storici in tick ma non in M1.

Nel tester, si possono ottenere tick intra-bar M1. Sono simulati dal terminale. Quanto è casuale? Non lo so. Parlando di MT4. Dovrebbe essere lo stesso su MT5.
OnTick()
{Print("Bid=",Bid);}

Nella scheda "Log" del tester della strategia, vedi il valore del prezzo e il tempo di arrivo.

File:
2107.PNG  7 kb
 

MT4/845, Windows 7/64bit. Ha fatto uno script:

#property strict
double value=1/2;
//---
void OnStart()
  {
   Print("value = ",DoubleToString(value));
  }

Viene stampato nei registri:

2015.07.22 10:13:26.134 Test EURUSD,H1: valore = 0.00000000

e dovrebbe essere 0,50000000.

 
Dovreste scrivere 1.0/2 o 1/2.0 o 1.0/2.0 allora sarà come previsto.
 
Аноним:
Dovresti scrivere 1.0/2 o 1/2.0 o 1.0/2.0 allora sarà quello che ci si aspetta.
Sì, il tuo consiglio mi ha aiutato. Anche se sembrerebbe che anche senza .0 dovrebbe funzionare.
 

Perché methaquotes ha disabilitato la funzione di caricamento delle quotazioni dal server del rivenditore? Ora è possibile caricare solo da metaquote.

Ma anche questo non può essere fatto, perché il messaggio dice che non ci sono citazioni.

Certo, è assente, perché perché le meta-citazioni hanno citazioni con suffissi?

Per esempio i suffissi nei nomi delle coppie di valute sono usati da fortfs, roboforex, eksness ecc.

 
Maxim Khrolenko:
Sì, il tuo consiglio mi ha aiutato. Anche se sarebbe sembrato funzionare senza .0.
Conversione implicita di double in int.
 

Risultato diverso: questo è un risultato discutibile

#import "Test.ex5"
        void f( uint, uint );
#import
        void f( uint, int  )   { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,int) - что само по себе сомнительно
}
e questo è normale
        void f( uint, uint )    { Print( __FUNCSIG__ ); }
        void f( uint, int  )    { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,uint) - нормально
  
}
che differenza fa?
 
A100:
ma per il resto va bene, che differenza fa?
Se ho capito bene, il compilatore dovrebbe bloccarsi e non compilare affatto. Perché ci uint uint, ci uint int, e int, uint sono passati alla funzione, incertezza, tuttavia.
 
Аноним:
Se ho capito bene, il compilatore dovrebbe bloccarsi e non compilare affatto. Perché c'è uint uint, c'è uint int, e int, uint viene passato nella funzione, incertezza, però.

https://www.mql5.com/ru/docs/basis/function/functionoverload

Citazione: "La funzione trovata deve essere la migliore scelta tra le altre scelte per almeno un argomento, e, allo stesso tempo, per gli altri argomenti deve adattarsi bene come gli altri".

Quindi qual è la scelta migliore per chiamare f(int,uint) qui?

Suggerimento: il resto dell'argomento in questo caso è il primo

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5