Duplicare questo EA con l'aggiornamento automatico del numero magico.
5 risposte
Conte-Roy
10 anni fa #113370
Sarebbe bello poter disporre di una funzione che consenta di duplicare l'EA con una sola pressione del pulsante e che faccia scalare automaticamente i numeri magici.
Supponiamo di avere un EA con 20 numeri magici diversi e di voler avere due o più EA con lo stesso set di regole in esecuzione simultaneamente. In questo caso basterebbe premere il pulsante (duplica/copia) dell'EA e l'EA Wizard riconoscerebbe i numeri magici correnti e replicherebbe l'EA ma con la successiva sequenza di numeri normalmente ricorrente; in questo caso 21 - 40 ecc.
saluti,
Roy

Mark Fric
10 anni fa #128940
Grazie per il suggerimento, sono d'accordo che a volte sarebbe utile.
Marchio
Architetto StrategyQuant
beniko
10 anni fa #129607
Ciao Conte-Roy,
A questo punto, è possibile creare tutte le variabili che verranno utilizzate per i numeri magici e quindi creare una nuova regola che faccia quanto segue:
Se
il bar è aperto
Allora
assegnare i valori
Numero magico2=Numero magico1+1
Numero magico3=Numero magico2+1
Numero magico4=Numero magico3+1
ecc.
In altre parole, l'utente deve configurare il primo MagicNumber e tutti gli altri verranno calcolati in base a quello.
Mark, come ho suggerito nel mio ultimo topic, sarebbe utile una tabella di inizializzazione. Questo è un buon esempio per il quale qualcuno potrebbe usarla, dato che l'EA non farebbe i calcoli di cui sopra dopo la creazione di ogni nuova barra.
Saluti
Conte-Roy
10 anni fa #129654
come si presenta questo in un file sqw? potresti condividere il modello? per favore.
beniko
10 anni fa #129655
Ecco a voi. Ho anche aggiunto una regola che scrive i numeri magici sul grafico.
D0NKbet
10 anni fa #129757
Nei miei EA sviluppati autonomamente utilizzo un po' di codice che genera un numero magico unico basato su...
- Tempistica
- Simbolo
- Nome EA
// creare un numero magico uniq per la coppia di valute e il timeframe int MNSymbol,MNSymbolCalc; //trasforma Symbol() in una stringa ASCII e aggiunge ogni carattere a MNSymbol for(int a=0;a<StringLen(Symbol());a++){ MNSymbolCalc=StringGetChar(Symbol(), a); MNSymbolCalc=((MNSymbolCalc-64)*(MathPow(10,(a))));//sottrae 64 perché i caratteri ASCII iniziano a 65, moltiplica il risultato per la potenza a-esima per motivi di ordine (non è comunque necessario) MNSymbol = MNSymbol+MNSymbolCalc; } int MNPeriod=Period(); // trasformiamo il nome dell'EA in una stringa ASCII int MNExpert,MNExpertCalc; for(int a=0;a<StringLen(WindowExpertName());a++){ MNExpertCalc=StringGetChar(WindowExpertName(), a); MNExpertCalc=((MNExpertCalc-64)*(MathPow(10,(a))));//sottrarre 64 b/c i caratteri ASCII iniziano a 65, moltiplicare il risultato per la potenza a-esima per motivi di ordine (non è necessario però) MNExpert = MNExpert+MNExpertCalc; } // calcola il numero magico unico MagicUnique=MathAbs(MNExpert + MNSymbol + MNPeriod); Comment("Numero magico unico: " + IntegerToString(MagicUnique));
Non è perfetto e dovrebbe essere modificato per creare posizioni diverse per BUY / SELL, ma in questo modo è sicuro che il numero sia unico anche se si collega lo stesso EA su coppie di valute o timeframe diversi.
Forse si potrebbe aggiungere qualcosa del genere nell'EA Wizard! Diciamo che il codice di cui sopra + la differenza per gli ordini di acquisto e di vendita + un contatore in funzione del numero di regole per la creazione di ordini. Così nessuno dovrebbe più preoccuparsi dei numeri magici.
Stai visualizzando 5 risposte - da 1 a 5 (di 5 totali)