Buon pomeriggio. Potete consigliarmi, ho scritto un semplice indicatore... e quando arriva una nuova barra, ecco come si comporta la linea dell'indicatore. Quale può essere il problema?
Controlla cosa viene restituito daCopyRates. Ilnumero di elementi copiati non è necessariamente uguale a quello richiesto. Pertanto, l'array può essere superato e i dati in questo posto del buffer saranno nulli, il che è successo.
Sembra che durante l'aggiornamento della nuova versione di Terminal, la cartella Program Files\Meta Trader 5\MQL5 sia completamente copiata in C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5 (è Win7, anche se altri OS probabilmente hanno la stessa cartella + forse anche altre). Altrimenti non posso spiegare, dove è la coppia di ore di lavoro, fatto pochi giorni fa e che frutta testato con successo.
Il fatto è che ho l'abitudine di formattare le classi attraverso .mqh-file, e poi collegarle. Senza saperlo, ho buttato i miei mqh e mq5 in Program Files\Meta Trader 5\MQL5, ho visto che non appaiono in Navigator e li ho spostati nella cartella di lavoro (C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5). Tutto andava bene, fino a quando il terminale è stato aggiornato - ho eseguito l'Expert Advisor per testare ulteriormente, e poi ho voluto modificare qualcos'altro e ho visto un vecchio codice, una copia di quello in Program Files\Meta Trader 5\MQL5. La versione corretta è stata ottimizzata, perché mq5 non è cambiato e il terminale non ha indovinato che sono stati fatti cambiamenti in mqh. La ricompilazione ha portato a un ritorno alla vecchia versione.
Come risultato sono molto seccato e dovrò spendere una o due ore per quello che ho già fatto.
Le vie d'uscita da questa situazione che vedo sono.
1) copiare l'intera cartella, ma solo l'elenco dei file inclusi nel pacchetto standard;
2) in qualche modo avvertire l'utente che verrà sovrascritto (anche se, se si cambiano molti file nella libreria standard, sarà un dolore);
3) determinare in qualche modo (calcolare il crc, per esempio) che la cartella mql5 in Program Files è cambiata, e prima di installare una nuova versione, emettere un avviso in modo da poter salvare i propri dati;
4) fare una copia del vecchio MQL5 in Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\ (aggiungere, per esempio, la versione MQL5.384) - la più semplice.
In conclusione - molto incazzato, dovrà spendere un'ora o due di nuovo su qualcosa che ho già fatto.
Vedo una via d'uscita da questa situazione - ................
....................
È un problema raro, ma dannazione, è un brutto problema.
Feedback costruttivo agli sviluppatori: si prega di fare un backup automatico dell'intera cartella MQL5 dalla build precedente, quando si installa una nuova. La durata - fino alla prossima build, poi sostituirla. Questo non annulla il trattamento attento dei file client quando si installa la build. È per il caso di forza maggiore (come descritto sopra) + per salvare le versioni client della libreria standard.
Recovery Factor- questo indicatore mostra la rischiosità della strategia, quanto l'Expert Advisor sta rischiando per guadagnare il profitto. Si calcola come il rapporto tra il profitto ottenuto e il drawdown massimo; (non dice quale)
FATTORE DI RECUPERO STATISTICO
Fattore di recupero - rapportoSTAT_PROFIT/STAT_BALANCE_DD
doppio
Print("Factor=",TesterStatistics(STAT_RECOVERY_FACTOR)); // Выводим Фактор ВосстановленияPrint("Profit/BalanceDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_BALANCE_DD)); // Отношение профита к просадке по балансуPrint("Profit/EquityDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_EQUITY_DD)); // Отношение профита к просадке по средствам
Abbiamo stabilito sperimentalmente che il fattore di recupero è calcolato come il rapporto tra l'utile e il prelievo per il patrimonio netto, non per il saldo.
Non è questa la domanda. Non è una domanda, è un sospiro di dolore...
Se scelgosolo il mese di giugnoper il test (30 giorni X 1440 < 50.000), cosa dovrei vedere sul grafico per motivo? Agosto??
Scrivere al service-desk. Inoltre non capisco perché il numero di barre sul grafico conta _sempre_ dal reale e non dalla data finale impostata nel tester.
KG 0 prp4 (EURJPY,M15) 02:23:25 <><><><><73200011000 RR 0 prp4 (EURJPY,M15) 02:23:25 <<<<<<<<<<<<<<<<<<<<<732 magic_num=732 <-поидее числа равны и условие не должно срабатывать
MH 0 prp4 (EURJPY,M15) 02:28:11 <><><><73200011000 PE 0 prp4 (EURJPY,M15) 02:28:11 92233720368 <- e questo numero non so da dove venga, apparentemente nel primo calcolo "(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000" di questo, qualcosa di strano conta
<-condizione non ha tenuto, la stampa non ha stampato, quindi i numeri erano uguali.
Fino all'1 di notte circa, non c'è stato alcun problema.
P.S. Ho provato sul mio portatile, la build 687 è ancora lì, stessa torta.
Buon pomeriggio. Potete consigliarmi, ho scritto un semplice indicatore... e quando arriva una nuova barra, ecco come si comporta la linea dell'indicatore. Quale può essere il problema?
Sembra che durante l'aggiornamento della nuova versione di Terminal, la cartella Program Files\Meta Trader 5\MQL5 sia completamente copiata in C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5 (è Win7, anche se altri OS probabilmente hanno la stessa cartella + forse anche altre). Altrimenti non posso spiegare, dove è la coppia di ore di lavoro, fatto pochi giorni fa e che frutta testato con successo.
Il fatto è che ho l'abitudine di formattare le classi attraverso .mqh-file, e poi collegarle. Senza saperlo, ho buttato i miei mqh e mq5 in Program Files\Meta Trader 5\MQL5, ho visto che non appaiono in Navigator e li ho spostati nella cartella di lavoro (C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5). Tutto andava bene, fino a quando il terminale è stato aggiornato - ho eseguito l'Expert Advisor per testare ulteriormente, e poi ho voluto modificare qualcos'altro e ho visto un vecchio codice, una copia di quello in Program Files\Meta Trader 5\MQL5. La versione corretta è stata ottimizzata, perché mq5 non è cambiato e il terminale non ha indovinato che sono stati fatti cambiamenti in mqh. La ricompilazione ha portato a un ritorno alla vecchia versione.
Come risultato sono molto seccato e dovrò spendere una o due ore per quello che ho già fatto.
Le vie d'uscita da questa situazione che vedo sono.
1) copiare l'intera cartella, ma solo l'elenco dei file inclusi nel pacchetto standard;
2) in qualche modo avvertire l'utente che verrà sovrascritto (anche se, se si cambiano molti file nella libreria standard, sarà un dolore);
3) determinare in qualche modo (calcolare il crc, per esempio) che la cartella mql5 in Program Files è cambiata, e prima di installare una nuova versione, emettere un avviso in modo da poter salvare i propri dati;
4) fare una copia del vecchio MQL5 in Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\ (aggiungere, per esempio, la versione MQL5.384) - la più semplice.
Il problema è raro, ma dannazione, è brutto.
Sembra che durante l'aggiornamento della nuova versione del terminale, ci sia una copia COMPLETA della cartella.................................
........................... ......................
.............................
In conclusione - molto incazzato, dovrà spendere un'ora o due di nuovo su qualcosa che ho già fatto.
Vedo una via d'uscita da questa situazione - ................
....................È un problema raro, ma dannazione, è un brutto problema.
Recovery Factor- questo indicatore mostra la rischiosità della strategia, quanto l'Expert Advisor sta rischiando per guadagnare il profitto. Si calcola come il rapporto tra il profitto ottenuto e il drawdown massimo; (non dice quale)
FATTORE DI RECUPERO STATISTICO
Fattore di recupero - rapportoSTAT_PROFIT/STAT_BALANCE_DD
doppio
Abbiamo stabilito sperimentalmente che il fattore di recupero è calcolato come il rapporto tra l'utile e il prelievo per il patrimonio netto, non per il saldo.
C'è un errore nel riferimento?
Bene, è vero, vi sono stati mostrati gli ultimi 50.000. Ci sono 1440 barre nel giorno.
Grazie, uh...
Non è questa la domanda. Non è una domanda, è un sospiro di dolore...
Se scelgo solo il mese di giugno per il test (30 giorni X 1440 < 50.000), cosa dovrei vedere sul grafico per motivo? Agosto??
A proposito, i timpicker nel tester hanno la sgradevole proprietà di chiudersi dopo un secondo - l'altro...
Non è fatale - si può comunque scegliere una data più velocemente con le mani, ma...
Non capisco perché OnTick viene attivato anche se il prezzo non cambia?????
2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000
Grazie, uh...
Non è questa la domanda. Non è una domanda, è un sospiro di dolore...
Se scelgo solo il mese di giugno per il test (30 giorni X 1440 < 50.000), cosa dovrei vedere sul grafico per motivo? Agosto??
Volume - può cambiare, e c'è di più)
potete vedere che il volume non cambia!!!
potete vedere che il volume non cambia!!!
Non capisco come funziona o non funziona)
Print("<><><><><",request_action.magic);//Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}
KG 0 prp4 (EURJPY,M15) 02:23:25 <><><><><73200011000
RR 0 prp4 (EURJPY,M15) 02:23:25 <<<<<<<<<<<<<<<<<<<<<732 magic_num=732 <-поидее числа равны и условие не должно срабатывать
Stampa commentata
Print("<><><><><",request_action.magic);Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}
MH 0 prp4 (EURJPY,M15) 02:28:11 <><><><73200011000
PE 0 prp4 (EURJPY,M15) 02:28:11 92233720368 <- e questo numero non so da dove venga, apparentemente nel primo calcolo "(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000" di questo, qualcosa di strano conta
<-condizione non ha tenuto, la stampa non ha stampato, quindi i numeri erano uguali.
Fino all'1 di notte circa, non c'è stato alcun problema.
P.S. Ho provato sul mio portatile, la build 687 è ancora lì, stessa torta.