Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
OK Grazie FMIC.
In effetti il mio problema riguardava l'esperto che ho condiviso nel forum. Il tuo script funziona bene, molte grazie per questo, ma fondamentalmente ne ho bisogno sotto forma di esperto che possa lavorare anche in modalità quasi in tempo reale.
Le tue domande originali su questo thread erano:
Il mio script ti ha fornito il codice di esempio e le conoscenze per rispondere ad entrambe queste domande, in modo che tu possa ora applicare queste conoscenze ad altri usi come un EA che desideri sviluppare. Tutto quello che devi fare è usare il mio codice per l'uso di iCustom() e il test dei punti alti e bassi a ZigZag e applicarlo al tuo codice EA.
Tuttavia, l'altra domanda, che hai menzionato più tardi, di come utilizzare i dati ZigZag in un EA specifico per le esigenze di ottimizzazione di una strategia che hai già in funzione in un altro EA, non è stato presentato o descritto in modo sufficientemente dettagliato qui su questo thread. Quindi, in sostanza, non sono in grado di darti consigli o aiutarti perché non so di cosa hai bisogno.
Se leggi l'articolo che accompagna il mio indicatore ZigZagZug nel codebase, vedrai che usare lo ZigZag nelle strategie e negli EA non è facile a causa della costante riverniciatura, e richiede un'attenta comprensione di come funziona e come può essere utilizzato in diverse strategie ed EA.
In altre parole, il matrimonio tra i dati di ZigZag e una strategia EA è complesso e deve essere ben definito. Quindi, senza sapere nulla della tua attuale strategia o di come deve essere ottimizzata, non posso offrirti altro aiuto o consiglio.
Poiché è comprensibile che tu non voglia essere più disponibile pubblicamente, ti ho anche offerto la possibilità di farlo in privato, e senza alcun costo. Sono uno sviluppatore di software e normalmente mi faccio pagare per questi servizi.
Oltre a quello che ti ho già offerto, non posso fare di più o offrirti altri consigli senza capire la natura del problema che vuoi risolvere.
Ciao,
Sono riuscito a correggere il mio codice. C'era un errore nella logica dei cicli, ora funziona bene per quanto ho testato.
Chi è interessato può usarlo. È progettato per essere utilizzato come esperto e utilizza l'indicatore ZigZag standard di metaquotes.
Cosa fa fondamentalmente trova i veri punti alti e bassi nell'indicatore zigzag. Può essere usato per trovare i punti bassi e alti nei dati storici anche per l'analisi del periodo e dell'ampiezza.
Non è in tempo reale! Va indietro agli ultimi valori alti e bassi, quindi a seconda dell'ultima lunghezza del trend, potrebbe tornare indietro e correggere i valori. Non usarlo prima di un test veloce in strategy tester.
FMIC, grazie per i tuoi sforzi e il tuo aiuto.
Ciao aed71,
Ciao aed71,
Grazie ancora per i tuoi commenti;
Non sono un buon programmatore quindi il codice potrebbe non essere perfetto :-) Comunque lasciami provare a spiegare la mia logica;
1-) La parte del commento potrebbe essere cambiata in "ogni nuova barra".
2-) 4-) 5-) La logica dell'utilizzo di grandi array è che dopo con un nuovo processo conterò le barre con valore zero tra i massimi o tra i massimi e i minimi per trovare il periodo, l'ampiezza ecc. Quindi ho bisogno di inizializzare l'array prima di usarlo e non ho bisogno di occuparmi dell'indice temporale ecc. Solo più buffer che non è un grosso problema per il mio progetto attualmente.
3-) Ho tracciato lo zigzag e lo zigzagzug diverse volte. nello zigzag anche se hai dei veri alti e bassi alla fine, se metti quei valori in un array, vedrai che ci sono dei bassi o alti intermedi. Non è possibile evitarli e che si usi la combinazione mode0 e mode1/mode2. Ci sono sempre dei bassi e degli alti intermedi. In zigzagzug si possono vedere chiaramente questi punti. Oltre a questo vedo che ci sono casi in cui mode0 è zero ma mode1 o mode2 sono maggiori di zero, che sono punti errati. Così ho deciso di mettere del codice extra per evitare questi punti.
Come ho detto, questo potrebbe non essere il miglior codice per trovare i punti a zigzag, tuttavia il codice stesso funziona correttamente nei miei test. Ho testato diverse volte. Raccomando sempre a chi vuole usarlo di testarlo prima.
L'hai testato? Non dà i punti corretti. Quando dici che non è robusto o non è corretto, presumo che i tuoi test siano falliti, è così?
Grazie.
Grazie ancora per i vostri commenti;
Non sono un buon programmatore quindi il codice potrebbe non essere perfetto :-) Comunque lasciatemi provare a spiegare la mia logica;
1-) La parte del commento potrebbe essere cambiata in "ogni nuova barra".
2-) 4-) 5-) La logica dell'utilizzo di grandi array è che dopo con un nuovo processo conterò le barre con valore zero tra i massimi o tra i massimi e i minimi per trovare il periodo, l'ampiezza ecc. Quindi ho bisogno di inizializzare l'array prima di usarlo e non ho bisogno di occuparmi dell'indice temporale ecc. Solo più buffer che non è un grosso problema per il mio progetto attualmente.
3-) Ho tracciato lo zigzag e lo zigzagzug diverse volte. nello zigzag anche se hai dei veri alti e bassi alla fine, se metti quei valori in un array, vedrai che ci sono dei bassi o alti intermedi. Non è possibile evitarli e che si usi la combinazione mode0 e mode1/mode2. Ci sono sempre dei bassi e degli alti intermedi. In zigzagzug si possono vedere chiaramente questi punti. Oltre a questo vedo che ci sono casi in cui mode0 è zero ma mode1 o mode2 sono maggiori di zero, che sono punti errati. Così ho deciso di mettere del codice extra per evitare questi punti.
Come ho detto, questo potrebbe non essere il miglior codice per trovare i punti a zigzag, tuttavia il codice stesso funziona correttamente nei miei test. Ho testato diverse volte. Raccomando sempre a chi vuole usarlo di testarlo prima.
L'hai testato? Non dà i punti corretti. Quando dici che non è robusto o non è corretto, presumo che i tuoi test siano falliti, è così?
Grazie.
Non hai capito il punto! Il codice che ho fornito ti mostra come identificare correttamente i punti di ZigZag Alto/Basso; eppure tu scegli di ignorarlo e di farlo a modo tuo che rende il codice più difficile da capire e più lento, oltre a usare più risorse del necessario. Perché?
Stai usando lo ZigZag in modo sbagliato nel tuo esempio iCustom. Lo ZigZag standard di MetQuotes ha TRE (non due) buffer (Mode o Line Index in iCustom)
Dovrai confrontare il primo buffer (Modo 0) con gli altri 2 buffer per decidere se è un Punto Alto o un Punto Basso (per esempio, se sia il Buffer 1 che il Buffer 3 hanno lo stesso valore, allora è un punto ZigZag Basso, e se sia il Buffer 1 che il Buffer 2 sono uguali, allora è un Punto Alto).
Inoltre, per capire meglio come funziona uno ZigZag e come si ridisegna, suggerisco di giocare con il mio indicatore ZigZagZug. Tuttavia, nel tuo codice usa lo ZigZag di MetaQuotes, perché è più veloce. La mia versione fa più elaborazione a causa delle caratteristiche extra ed è quindi più lenta.
PS! Se il Buffer 1 (Mode = 0) ha un valore di 0.0, ma gli altri buffer hanno valori non nulli, allora sono vecchi punti di ridipintura e NON punti ZigZag.
Nel tuo codice stai usando il Buffer Mode 0 come Low e il Buffer Mode 1 come High. Questo è totalmente scorretto.