Le regole del Go Long e del Go Short sono le stesse, ma con risultati diversi
7 risposte
deweymcg
8 anni fa #113717
Ho cercato di codificare un semplice EA che imposti gli ordini pendenti per andare long o short quando il prezzo rompe il massimo o il minimo dell'intervallo durante una specifica ora del giorno. Quando ho testato la mia prima bozza prima di aggiungere qualsiasi altra cosa, le operazioni short venivano eseguite correttamente quando il prezzo rompeva il minimo, ma gli ordini pendenti long non si avvicinavano affatto, nonostante le istruzioni per ciascuno di essi fossero le stesse.
Mi sfugge qualcosa? Dal PIC si vede che i long e gli short sono uguali. c'è un modo migliore per farlo?
Inoltre, voglio aggiungere una condizione per la quale non si accetta un'operazione se la differenza tra il valore più alto e quello più basso dell'intervallo è superiore a un certo numero o inferiore a un certo numero. Suppongo di poter utilizzare l'indicatore PRICE_DIFF, ma devo anche utilizzare convertitorealpips o qualcos'altro. Per esempio, se l'intervallo è superiore a 50 pips o inferiore a 10 pips, passeremo.
tomas262
8 anni fa #130546
Ciao deweymcg,
Ho provato questo in MetaTrader e sembra che prenda long e short correttamente (come le regole sono impostate). Se non vi sembra che funzioni correttamente, vi preghiamo di fornire quante più informazioni possibili (screenshot, dettagli su come avete effettuato il test) in modo da poter identificare rapidamente il problema, se esiste.
A tal fine è sufficiente utilizzare la funzione ConvertToPips + Subtraction nella propria regola. Ho modificato il tuo esempio e lo allego qui.
deweymcg
8 anni fa #130552
Ciao deweymcg,
Ho provato questo in MetaTrader e sembra che prenda long e short correttamente (come le regole sono impostate). Se non vi sembra che funzioni correttamente, vi preghiamo di fornire quante più informazioni possibili (screenshot, dettagli su come avete effettuato il test) in modo da poter identificare rapidamente il problema, se esiste.
A tal fine è sufficiente utilizzare la funzione ConvertToPips + Subtraction nella propria regola. Ho modificato il tuo esempio e lo allego qui.
Grazie. Ho fatto altri test e ho capito perché erano diversi, ma non sono sicuro di come risolvere il problema. Se nell'ultima sessione c'è stato un acquisto ma non una vendita, ha mantenuto lo stop di vendita precedente anche se l'ordine in sospeso era valido per un numero di barre X. Ho provato a cambiare Replace Existing Order (Sostituisci ordine esistente) in true, ma questo ha rallentato enormemente il processo e il giornale ha mostrato un ordine in sospeso dopo l'altro come se ripetesse il processo ad ogni tick. Se riuscissi a trovare un modo semplice per eliminare l'ordine pendente dopo un certo tempo o una certa condizione, penso che potrei farlo funzionare correttamente, ma vedo solo comandi per la chiusura degli ordini, non per l'eliminazione degli ordini pendenti.
tomas262
8 anni fa #130585
Ciao deweymcg,
Esiste una funzione in EA Wizard - Chiudi posizione (numero magico dell'ordine) - che dovrebbe chiudere qualsiasi ordine, cioè una posizione aperta OPPURE annullare l'ordine in sospeso anche
Avete pensato di utilizzare gli ordini di mercato invece degli ordini di stop? Ad esempio, se (Bid > HighestInRange(03:00, 07:00)) entra nel mercato long. Anche questo potrebbe funzionare bene
deweymcg
8 anni fa #130610
Per quanto mi riguarda, non riesco a capire perché ora non si possano fare scambi. Ecco un'immagine di ciò che sto cercando di fare e la mia ultima versione che incorpora i suggerimenti, ma non riesco a capire dove sia l'errore. Se qualcuno potesse dare un'occhiata e aiutarmi sarebbe molto apprezzato.
jcf
8 anni fa #132972
Controllare la magia dell'#
tomas262
8 anni fa #132998
Cercherò di verificare dove sia il problema. Magics sembra essere a posto
tomas262
8 anni fa #133030
Credo che il problema sia il tempo di BoxStart che non può essere maggiore del valore di BoxEnd. Quindi all'una la strategia cerca la candela delle 21:00 che non è disponibile per quella data specifica e MT4 esegue l'errore = "Orario non trovato da".
Se ad esempio imposto BoxStart a 01:00, BoxEnd a 02:00 e HourBegin a 03:00, funziona perché Start < End
La soluzione potrebbe essere l'utilizzo delle funzioni Lowest e Highest per N barre indietro, dato che si sa sempre quante barre ci sono in quell'intervallo di tempo.
Stai visualizzando 7 risposte - da 1 a 7 (di 7 totali)