Stop al di sotto del minimo della candela precedente
24 risposte
lentamentesicura
10 anni fa #112031
Ciao
Qualcuno può aiutarmi a capire come dire a EA Wizard di piazzare uno stop loss sotto il minimo della seconda candela?
Grazie
Mark Fric
10 anni fa #124111
Salve,
il problema è effettivamente nei pip e nelle funzioni che li circondano.
Avete definito
PipDistance = (Apertura[1] - Chiusura[1])
e poi si ha in condizione (non esattamente nello stesso modo, ma con lo stesso effetto):
SE (PipDistance > 15)
Questo non sarà mai vero, perché la PipDistance è in pip "reali".
Open[1] è ad esempio 1,6234, Close[1] potrebbe essere 1,6111.
Quindi PipDistance = 1,6234 - 1,6111 = 0,0123, e 0,0123 non sarà mai superiore a 15.
Esistono due possibilità, entrambe corrette:
1, utilizzare la funzione ConvertToPips() per PipDistance, ad esempio
SE ConvertToPips(PipDistance) > 15
questo funzionerà, perché la funzione convertirà il valore "reale" dei pip 0,0123 in 123 pip, quindi confronterà 123 > 15
2. utilizzare la funzione ConvertToRealPips() per il lato destro del confronto, ad esempio:
SE PipDistance > ConvertToRealPips(15)
anche questo funzionerà, perché in questo caso 15 pips saranno convertiti nel valore "reale" dei pips, che è 0,0015. Quindi confronterà 0,0123 > 0,0015
Spero che ora sia chiaro come funziona con i pip e i prezzi.
.
Marchio
Architetto StrategyQuant
lentamentesicura
10 anni fa #124115
Sono solo un po' confuso. Potresti sistemare il file che ho caricato e poi vedrò cosa hai fatto.
Grazie
Mark Fric
10 anni fa #124117
Salve,
Sto postando una strategia corretta, ma dovreste cercare di capire la mia spiegazione nel post precedente, altrimenti non sarete in grado di utilizzare il programma.
Marchio
Architetto StrategyQuant
lentamentesicura
10 anni fa #124120
Grazie, voglio capirlo. Tuttavia, la versione che hai fornito non inserisce ancora nessuna operazione.
lentamentesicura
10 anni fa #124121
Nella prima regola, avete convertito in pips, e nella seconda convertito in pips reali. Potrebbe essere questo il problema?
lentamentesicura
10 anni fa #124144
Mark, presto partirò e vorrei davvero fare questo prima di farlo, se hai tempo di rispondere. grazie.
Mark Fric
10 anni fa #124174
Salve,
Nella strategia non ho controllato la logica, ma solo il modo in cui si utilizzano i valori dei pip.
Ho riscontrato diversi problemi nella strategia:
1. problema con i tipi di variabile - ho aggiunto la funzione ConvertToPips alla variabile di assegnazione PipDistance, perché essendo di tipo int, non può contenere la differenza di prezzo che è decimale.
2. c'era una condizione High[0] > High[0] che non è mai vera, l'ho cancellata.
3. avevi anche PipDistance = Open[1] - Close[1], ma nella condizione IF lo computi solo se Close[1] > Open[1], quindi questa differenza è sempre un numero negativo, che non sarebbe mai maggiore di 15.
Quindi ho cambiato l'ordine nella sottrazione in PipDistance = Close[1] - Open[1]
Marchio
Architetto StrategyQuant
mantadiver
9 anni fa #124699
Sto cercando di fare una cosa simile ma applicando un buffer al prezzo di entrata piuttosto che uno stoploss.
L'esempio mostra come lavorare con una variabile e posso vedere come farlo con un ordine stop o limite, ma voglio codificarlo in modo che la strategia entri (diciamo) all'ultimo massimo + 1 pip. Questo sarà probabilmente troppo vicino allo spread per piazzare un ordine di stop, quindi ho bisogno di un modo per dire - entra a mercato quando il prezzo raggiunge l'ultimo massimo + 1 pip.
Non riesco a capire come farlo nell'area THEN con un ordine di mercato, quindi presumo che debba essere un'istruzione IF.
Sono sicuro che sia molto semplice, ma gradirei che mi venisse indicato il percorso da seguire.
Molte grazie.
Mark Fric
9 anni fa #124732
Salve,
vedere l'esempio allegato. Se si desidera entrare a mercato, è necessario creare una condizione che verifichi se il prezzo ha raggiunto l'ultimo massimo + 1 pip.
Marchio
Architetto StrategyQuant