Autore - pagina 3

 
ivandurak:
Sono nella fase di scrittura di uno Strategy Tester, e mi trovo di fronte a un dilemma: se prendiamo il 4 come base, otteniamo uno strumento semplice e molto efficace in termini di analisi del TS basato sui risultati del trading. Se prendiamo 5, allora la comodità della portabilità del codice. Finora, il mio imho è incline alla prima opzione, come si dice in check or go.

Quihttps://www.mql5.com/ru/forum/4956/page46#comment_117097 ehttps://www.mql5.com/ru/forum/4956/page47#comment_118646, potete dare un'occhiata per cominciare.

Prima i controlli e i trattini, poi le corse. imho.

 
Bene_Nota:
E secondo le mie osservazioni la storia non si ripete, quindi non sarei d'accordo sul primo punto.

Argomentare.

Non stiamo dicendo che il movimento attuale sarà esattamente un pip più vicino a quello che era. Se prendiamo alcuni segni di un piatto, alcuni segni di una tendenza, mettiamo tutto in una neuronet, otterremo un numero limitato di cluster (queste non sono le mie conclusioni, ho visto una nota dove non riesco a trovarla). Possiamo costruire un TS adeguato per qualsiasi pezzo di storia o un cluster non ha bisogno di prove. Quindi, dovremmo riconoscere tempestivamente in quale cluster siamo, per avere il tempo di raccogliere qualche briciola. Fare statistiche, tempo per trovare, pensare a possibili traiettorie delle caratteristiche del mercato per selezionare preventivamente il TS .........

Quello.umano

Darò un'occhiata. Il fatto è che se accettiamo la filosofia dell'ordine e della posizione in esecuzione per 5 . Penso che il migliore degli Expert Advisors multitemporali sia complicato dalla posizione netta, senza alcuna equazione aggiuntiva è impossibile dire quale TS su un'ora o un minuto è più preferibile, e se avete una strategia multitemporale non so come affrontare un tale compito se non per la creazione di un insieme di oggetti e la loro gestione. Tutto è molto più semplice su 4 in termini di comodità di programmazione. Basta creare un array di strutture che descrivono l'ordine, ognuna delle quali ha una vita propria, tutti i dati di apertura, chiusura, profitti, perdite sono salvati. L'ho già fatto, e si è rivelata una soluzione abbastanza accettabile.

 
ivandurak:

A lei.umana

Grazie.

1) Il fatto è che se accettiamo la filosofia dell'ordine e della posizione del 5. Non so come risolvere questo problema, a parte la creazione di molti oggetti e la loro gestione.

2) In 4, tutto è molto più facile dal punto di vista della comodità di programmazione. Basta creare un array di strutture che descrivono l'ordine, ognuna delle quali ha una vita propria, tutti i dati di apertura, chiusura, profitti, perdite sono salvati. L'ho già fatto, si è rivelata una soluzione abbastanza accettabile.

1) Il punto è che se si fa un giornale virtuale (tester) di gestione e contabilizzazione delle posizioni in MT5, tutti i problemi di test simultaneo di più strategie e di blocco (legati all'uso di più strategie), scompaiono. Inoltre, è possibile condurre un commercio virtuale e, sulla base dell'analisi del commercio virtuale, fare conclusioni per il commercio reale, e portare la posizione totale al mercato.

Ho fatto una cosa simile in MT5, ma non come libreria separata (classe), non vedo alcun problema.

2) In MT4 non ci sonostrutture di array . In MT4, si può fare lo stesso senza problemi, ma usando un array bidimensionale invece dell'array di strutture.

Forse qualcosa è confuso tra MT4 e MT5?

 
her.human:

1) Questo è il punto, se si fa un giornale virtuale (tester) di gestione e contabilità delle posizioni in МТ5, tutti i problemi con il test simultaneo di più strategie e il blocco (legato all'uso di più strategie) scompaiono. Inoltre, è possibile condurre un commercio virtuale e, sulla base dell'analisi del commercio virtuale, fare conclusioni per il commercio reale, e portare la posizione totale al mercato.

Ho fatto una cosa simile in MT5, ma non come libreria separata (classe), non vedo alcun problema.

2) In MT4 non ci sonostrutture di array . In MT4, si può fare lo stesso senza problemi, ma usando un array bidimensionale invece dell'array di strutture.

Forse qualcosa è confuso MT4 - MT5?

Stiamo parlando della stessa cosa con parole diverse. Uso solo le funzioni di trading della copia MT4 come minimo necessario e sufficiente.

Ho un altro problema qui, come sincronizzare gli strumenti di trading per il tester multicurrency. Passerò in rassegna gli articoli.

Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
ivandurak:

Stiamo parlando della stessa cosa con parole diverse.

1) Uso solo le funzioni di trading della copia MT-4 come minimo necessario e sufficiente.

2) Ho un altro problema, come sincronizzare gli strumenti di trading in un tester multivaluta. Andrò a vedere gli articoli.

1) Sono d'accordo. Il mio punto è lo stesso.

2) Non abbiamo bisogno della sincronizzazione per il tester. Alimentare le citazioni nel tester è un'altra questione.

Qual è il problema della sincronizzazione? Forse ti darò un indizio.

 
her.human:

1) Sono d'accordo. Questo è quello che voglio dire.

2) La sincronizzazione non è necessaria per un tester. Alimentare le citazioni nel tester è un altro argomento.

Qual è il problema della sincronizzazione? Forse ti darò un indizio.

Io stesso non ho ancora formulato completamente il compito.

Per i test multivaluta, tutte le barre dei simboli selezionati dovrebbero essere sincronizzate ad un segmento di ottimizzazione selezionato, altrimenti, se c'è un gap, potrebbe risultare nel guardare nel futuro (graal del tester su 4, i segnali per uno strumento possono aprire posizioni per un altro).

Fondamentalmente, possiamo lavorare sui dettagli della sincronizzazione delle barre, formando il nostro array di quotazioni sincronizzate che sarà usato dal tester.

Il problema è nella costruzione degli indicatori, su cui si basano le strategie nella maggior parte dei casi, perché il valore dell'indicatore è calcolato per un numero di barra specifico. Se possiamo correggere i file con la storia in 4, non possiamo farlo qui.

In alternativa, eseguiamo l'EA in modalità multicurrency, il terminale sincronizza la storia stessa, ora scriviamo il file della storia insieme ai valori degli indicatori, e se necessario ci immergiamo in esso, ma è grattare l'orecchio destro con la mano sinistra.

 
ivandurak:

Ho un altro problema qui, come sincronizzare gli strumenti di trading se faccio un tester multivaluta. Vado a dare un'occhiata agli articoli.

C'è una soluzione di problemi di sincronizzazione per l'account realequi . Forse vi darà qualche idea sulla sincronizzazione per il vostro tester.
 

La cosa migliore finora è aggiungere un metodo.

bool  HoleHistory(int Bar,string Simb) ;//метод возвращает признак дыры в истории если выбранный бар выбранного символа
      //моложе одноименного бара хотя бы одного из выбранных символов возвращaем фальсе расчеты на этом баре не производятся  
Tuttavia, c'è ancora un legame con lo strumento finanziario che viene testato.
 
ivandurak:

Non ho ancora formulato il compito.

Per i test multivaluta, tutte le barre dei simboli selezionati dovrebbero essere sincronizzate ad un segmento di ottimizzazione selezionato. Altrimenti, se c'è un gap, potremmo avere una sbirciata nel futuro (il graal del tester su 4 - segnali per un simbolo aprono posizioni per un altro).

Fondamentalmente, possiamo lavorare sui dettagli della sincronizzazione delle barre, formando il nostro array di quotazioni sincronizzate che sarà usato dal tester.

Il problema è nella costruzione degli indicatori, su cui si basano le strategie nella maggior parte dei casi, perché il valore dell'indicatore è calcolato per un numero di barra specifico. Se possiamo correggere i file con la storia in 4, non possiamo farlo qui.

In alternativa, eseguiamo l'EA in modalità multicurrency, il terminale sincronizza la storia stessa, ora scriviamo il file della storia insieme ai valori degli indicatori e ci immergiamo in esso quando necessario.

Se ho capito bene il problema.

//=============================================================================================
// Подготавливаем массивы цен с синхронизацией по времени 
void PrepareQuotes()
{
 CopyTime("EURUSD",0,0,Количество_Баров,Time);
 CopyOpen("EURUSD",0,0,Количество_Баров,OpenEU);
 for(int i=0; i<Количество_Баров; i++)
    {
     CopyOpen("EURJPY",0,Time[i],1,OpenEJ);
     CopyOpen("EURGBP",0,Time[i],1,OpenEG);
    }
}
//=============================================================================================
// Получаем значение индикатора по времени    
CopyBuffer(handle,0,Time[i],1,Buffer);

L'indicatore non dovrebbe essere calcolato in base al numero della barra, ma in base al tempo. Oppure calcolatelo voi stessi, ci sono abbastanza librerie nella base.

 
Se c'è un salto prima della barra per uno strumento, è meglio non fare nulla. È facile identificare il gap, basta confrontare il tempo di apertura della barra con il tempo di apertura della barra su altri strumenti.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5