Aiuto per la strategia EMA

7 risposte

Daviden1

Abbonato, bbp_partecipante, comunità, 14 risposte.

Visita il profilo

11 anni fa #110930

Ciao a tutti ragazzi,

Sto lavorando a una semplice strategia EMA in cui il trade inizia non appena la Fast Ema incrocia la Low EMA.

Ho già impostato il S/L e il Trailing Stop, ma vorrei creare un S/L aggiuntivo che dovrebbe funzionare nel caso seguente:

Long Trade: se la candela si chiude al di sotto della Ma
Short Trade: se la candela si chiude al di sopra della Ma

Ho inserito il seguente codice nella procedura guidata per creare questo S/L ma sembra che abbia sbagliato qualcosa, perché non ho ottenuto quello che speravo:

Se:

OrderPosition(numero magico) is Long
e: isBaropen è Vero
e close[1] <SlowEma

Allora:

Posizione di chiusura (numero magico)

Cosa ho sbagliato esattamente e come posso far funzionare questo S/L?

Grazie in anticipo per il vostro aiuto e buon Natale.

Davide

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

11 anni fa #121067

L'unica cosa che posso pensare possa essere il problema è che hai due regole che competono l'una contro l'altra per mettere uno stop loss a un prezzo quando le condizioni sono soddisfatte e un trailing stop loss dalla regola principale. Quindi, nella vostra regola principale, si dice che lo stop loss dovrebbe essere spostato a 1,5028 per il trailing stop loss e poi un'altra regola in cui la chiusura è < SlowEMA dice che lo stop loss dovrebbe essere a 1,5018.

Suggerirei di rimuovere il trailing stop loss dalla regola principale, creare una regola aggiuntiva che metta il trailing stop loss nel modo desiderato e poi quest'altro trailing stop loss se la chiusura è < slowEma. Quindi sarebbe come:

[u][b]Regola di ingresso principale[/b][/u]
* Rimuovere il Trailing Stop. Far impostare l'obiettivo di profitto e lo stop loss originale.

[u][b]Trailing Stop 1[/b][/u]
* Mettere le condizioni di come si vuole gestire il trailing stop. Ciò che appare è che potrebbe assomigliare a:
SE
[indent=1][color=#282828][font=helvetica, arial, sans-serif]OrderPosition(Magic Number) is Long[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]and: isBaropen is True[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]e chiudere[1] > SlowEma[/font][/color][/indent]
Allora
[indent=1]Inserite il vostro trailing stop loss[/indent]

[u][b]Trailing Stop 2[/b][/u]
SE
[indent=1][color=#282828][font=helvetica, arial, sans-serif]OrderPosition(Magic Number) is Long[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]and: isBaropen is True[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]e chiudere[1] < SlowEma[/font][/color][/indent]
Allora
[indent=1]Inserite il vostro trailing stop loss[/indent]

Ora penso che non avrete uno stop loss concorrente e che una regola controllerà il trailing stop alla volta a seconda delle condizioni soddisfatte. Potreste provare questa soluzione e vedere se risolve il problema.

0

Daviden1

Abbonato, bbp_partecipante, comunità, 14 risposte.

Visita il profilo

11 anni fa #121069

Grazie Stearno,

Il fatto è che non ho il trailing stop nelle mie regole di entrata principali, anzi, nelle mie regole di entrata ho solo lo stop loss.
Poi, ho aggiunto un'ulteriore regola, come da te suggerito, con nuove regole per il Trailing stop e quindi, ora, sto cercando di creare questo nuovo Stop Loss che dovrebbe funzionare quando la chiusura incrocia o è al di sotto della slowMA.

Se il codice che sto usando non è sbagliato, probabilmente, come hai detto tu, qualche altra regola compete con questa nuova regola per la S/L.

C'è qualche codice che posso aggiungere a quelli sopra citati per evitare il conflitto di regole.

Grazie ancora

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

11 anni fa #121070

Ok, bene. Ora disponete di due regole che eseguono il trailing stop. Permettetemi di dare loro un nome per semplificare le cose.

Quello che ho capito da voi finora è che la regola 2 di TS è:
[color=#282828][font=helvetica, arial, sans-serif]SE[/font][/color]

[indent=1]OrderPosition(numero magico) è lungo
e: isBaropen è Vero
e close[1] > SlowEma[/indent]
[color=#282828][font=helvetica, arial, sans-serif]Poi[/font][/color]

[indent=1][color=#282828][font=helvetica, arial, sans-serif]Inserite il vostro trailing stop loss[/font][/color][/indent]

[color=#282828][font=helvetica, arial, sans-serif][color=#282828][font=helvetica, arial, sans-serif]Regola TS 1[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]? - Non conosco le dichiarazioni utilizzate in questo caso.[/font][/color]

[b][color=#282828][font=helvetica, arial, sans-serif]2 pensieri:[/font][/color][/b]
[color=#282828][font=helvetica, arial, sans-serif]1. È necessario che l'istruzione THEN per queste regole sia effettivamente "Sposta lo SL a" invece di fare un Trailing stop come si vede nell'allegato. [/font][/color][/font][/color]In realtà state solo cambiando lo stop loss a ogni barra quando le condizioni elencate sono soddisfatte invece di usare il campo chiamato Trailing Stop.

[font=”helvetica, arial, sans-serif”][color=”#282828″]2. Regola TS 1 - deve avere una condizione che la separi dalla Regola TS 2. Quindi, se la Regola TS 2 dice "close[1] > SlowEma", suggerirei che la Regola TS 1 dica [/color][/font][color=#282828][font=helvetica, arial, sans-serif]"close[1] < SlowEma". In questo modo si applicherà una sola regola alla volta. [/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]Una di queste soluzioni risolve il problema? In caso contrario, inviate il file SQW e potremo esaminare il codice effettivo.[/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]-Stearno[/font][/color]

0

Daviden1

Abbonato, bbp_partecipante, comunità, 14 risposte.

Visita il profilo

11 anni fa #121074

Grazie Stearno, ma credo di non essere stato troppo chiaro nello spiegarti il mio programma.

Ho le seguenti regole:

1) Regole principali di inserimento con solo la S/L nella "sezione THEN".

2) Regola TS dinamica che si basa su un indicatore personalizzato con "move S/L to" nella "sezione THEN", ovvero:

Se:
La posizione di mercato è lunga
e: Ordine S/L (MagicLong) < icustom..............

Allora:

Spostare S/L a:

Numero magico: magicLong
Prezzo: icustom.................

Ovviamente ho un TS con regole opposte per i trade Short.

3) Ora voglio creare un S/L (sia per le operazioni Long che Short) che chiuda immediatamente l'operazione se la chiusura della barra attraversa la SlowMA verso il basso per le operazioni Long e verso l'alto per le operazioni Short.

Ho pensato a qualcosa di simile, ma non funziona:

Per le operazioni lunghe:

Se:

La posizione di mercato è lunga
e: isBarOpen è Vero
e: OrdineS/L(MagicLong) <-20
e: Chiudi[1] < SlowMA

Allora:

ChiudiPosizione

MagicNumber: MagicLong

Lo stesso vale per la regola opposta, per i trade corti.

Per favore, fatemi sapere cosa ne pensate, se non trovate nulla di sbagliato vi allego il .mq4

Grazie ancora

0

Daviden1

Abbonato, bbp_partecipante, comunità, 14 risposte.

Visita il profilo

11 anni fa #121075

Scusa Stearno,

Nelle nuove regole per chiudere l'operazione, ho commesso un errore, la seguente è la regola giusta:

Per le operazioni lunghe:

Se:

La posizione di mercato è lunga
e: isBarOpen è Vero
e: OpenS/L(MagicLong) <-20 (non OrderS/L come sopra)
e: Chiudi[1] < SlowMA

Ad ogni modo, vi allego il file .sqw, in modo che possiate vederlo voi stessi.

Grazie

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

11 anni fa #121077

Una cosa che ho notato è che l'EA fa riferimento a S/R (Barry) v1 e v2. Si tratta di un errore?

File: v1.jpgv1.jpg

La seconda cosa, una buona notizia, è che le vostre regole non sono in conflitto tra loro come avevo discusso inizialmente. Avete una regola che sposta lo stop loss e poi uno stop loss di emergenza che prevede la chiusura dell'ordine se -20 (Mark dovrà verificare se il formato e l'uso di questa regola sono corretti, dato che non ho mai usato -20; se il test va bene, allora va bene).

Un'altra cosa che ho notato è che Barry S/R si muove. Quindi, se lo si utilizza come Trailing Stop Loss, lo stop loss si sposterà continuamente, anche al ribasso. Se questo è ciò che volete, allora va bene.

Ad esempio,

In questo momento S/R Barry dice di mettere il livello a 1,60778. Quindi l'EA mette lo stop x pips sotto quel livello. Poi il prezzo è sceso (ma non abbastanza da colpire il vostro stop loss perché lo avete messo x pips sotto il supporto), ora S/R Barry dice di mettere una linea di supporto a 1,60749. Quindi ora l'EA sposterà lo stop loss x pips sotto quel livello. Questo continua fino a quando il prezzo non si muove abbastanza da colpire il vostro stop loss o colpisce la vostra emergenza di -20 loss.

Un esempio è qui:

Come si può notare, finché non si verifica una forte oscillazione del prezzo, lo stop loss continuerà a muoversi verso il basso fino a quando non si verificherà una forte oscillazione per colpire il vostro SL o fino a quando il P/L dell'ordine non sarà < -20. Ok, quindi per quanto riguarda la domanda, perché lo SL non funziona come si vede qui:

Credo che Mark abbia detto in un altro post che è necessario utilizzare "Is Bar Open is True" su ogni regola. Si tratta di un trigger che avvia la regola ogni volta che una barra è aperta. Se questo è corretto, ciò spiegherebbe perché lo SL non viene spostato secondo la regola. Capisco cosa state cercando di fare, ovvero far calcolare all'EA ogni Tick invece che l'apertura della barra. Ma non so come farlo nell'EA Wizard e non lo vedo come un'opzione nel software come lo era nell'EA Generator. Questo mi fa supporre che al momento non sia disponibile e che si debba usare la dichiarazione Bar Open in ogni regola. Non ho gli indicatori SR Barry v1 o v2, quindi non posso verificare che questo possa risolvere il problema dell'EA. Quindi provate a farlo e vedete che risultati ottenete.

-Stearno

0

Daviden1

Abbonato, bbp_partecipante, comunità, 14 risposte.

Visita il profilo

11 anni fa #121078

Ciao Stearno,

prima di tutto, grazie mille per aver dedicato del tempo a testare il mio EA... L'ho apprezzato molto.

Risponderò alle vostre domande in ordine sparso:

1) L'uscita V1 nella condizione "IF" e l'uscita V2 nella condizione "THEN", non so se sia un errore, perché Mark mi ha aiutato con questo codice... ma la strategia funziona come volevo, quindi non credo proprio che sia un errore; lo chiederò a Mark.

2) Per quanto riguarda l'Open P/L < - 20, si tratta di una formula che Mark ha scritto nel tutorial nella sezione Utilizzo dei controlli della strategia.

3) Sì, è quello che voglio. Il S/R (Barry) segue il mercato e disegna i livelli di supporto e resistenza non appena le condizioni sono soddisfatte, ed è ottimo come TS.... a listino per la mia strategia.
Non ho il Take Profit per la mia strategia, lascio che il S/L segua il mercato fino a quando il TS viene raggiunto.

4) Il significato di < -20 in realtà non è quello di chiudere l'operazione se il mio S/L raggiunge 20 pips o più. Quello che ho cercato di fare con questo codice è di rendere VERE le altre condizioni nell'Emergenza S/L solo se la mia Open Loss è inferiore a 20 pips.

Questo, che segue, è esattamente ciò che sto cercando di dire all'EA con l'arresto di emergenza:

Quando si apre una nuova barra, verificare se la chiusura della barra precedente è al di sotto della Slow MA (in un trade Long) o al di sopra della Slow MA (in un trade Short).
Se questo è VERO e la mia perdita corrente è inferiore a 20 pips (questo è il motivo per cui ho messo l'Open P/L < - 20) ALLORA chiudo l'operazione.

Correggetemi se sbaglio... In pratica state dicendo che questo S/L di emergenza non funziona perché dovrei inserire il codice isBarOpen anche nelle mie regole MAIN ENTRY?

Grazie ancora

0

Stai visualizzando 7 risposte - da 1 a 7 (di 7 totali)