Per scrivere il codice , utilizza il pulsante <> “insert PRT code“, in modo da rendere il codice più chiaro e comprensibile. Grazie.
Per prima cosa devi salvare il prezzo di entrata che desideri al verificarsi delle condizioni da te desiderate, nel tuo caso CLOSE; devi anche salvare il numero della relativa candela o barra, quindi dovresti aggiungere, tra le righe 11 e 12 e tra 22 e 23 le seguenti righe:
PrezzoEntrata = CLOSE
NumeroBarra = BARINDEX
devi anche salvare l’indicazione se entrare a rialzo oppure al ribasso perché le condizioni C1-C2-C3-C4 potrebbero anche variare temporaneamente nel corso di 10 candele, per cui aggiungi, tra le righe 12 e 13:
Rialzo = 1
Ribasso = 0
e tra tra le righe 23 e 24:
Rialzo = 0
Ribasso = 1
però questo prezzo potrebbe variare tra una candela e l’altra, a causa delle mutate condizioni, per cui dovresti aggiungere, alla righe 11 e 22 la condizione:
AND Not OnMarket
che ti consiglio di usare SEMPRE, a meno che tu non desideri entrare più volte accumulando posizioni.
A questo punto non resta altro che verificare che, se non sei già a mercato, tu sia ancora entro le 10 barre per continuare ad inserire l’ordine pendente:
IF Not OnMarket AND ((BarIndex - NumeroBarra) <= 10) THEN
IF Rialzo THEN
BUY 1 CONTRACT AT PrezzoEntrata – 10 * pipsize LIMIT //oppure STOP
ELSIF Ribasso THEN
SELLSHORT 1 CONTRACT AT PrezzoEntrata + 10 * pipsize LIMIT //oppure STOP
ENDIF
devi anche, all’inizio della strategia, azzerare tutte le variabili quando sei a mercato:
IF OnMarket THEN
PrezzoEntrata = 0
NumeroBarra = 0
Rialzo = 0
Ribasso = 0
ENDIF
Questo è il codice completo:
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
IF OnMarket THEN
PrezzoEntrata = 0
NumeroBarra = 0
Rialzo = 0
Ribasso = 0
ENDIF
IF Not OnMarket AND ((BarIndex - NumeroBarra) <= 10) THEN
IF Rialzo THEN
BUY 1 CONTRACT AT PrezzoEntrata – 10 * pipsize LIMIT //oppure STOP
ELSIF Ribasso THEN
SELLSHORT 1 CONTRACT AT PrezzoEntrata + 10 * pipsize LIMIT //oppure STOP
ENDIF
ENDIF
// Condizioni per entrare su posizioni long
indicator1 = Stochastic[100,10](close)
indicator2 = Average[10](indicator1)
c1 = (indicator1 CROSSES UNDER indicator2)
indicator3 = Stochastic[100,10](close)
c2 = (indicator3 <= 20)
IF c1 AND c2 AND Not OnMarket THEN
PrezzoEntrata = CLOSE
NumeroBarra = BARINDEX
BUY 1 CONTRACT AT PrezzoEntrata – 10 * pipsize LIMIT
Rialzo = 1
Ribasso = 0
ENDIF
// Condizioni per entrare su posizioni short
indicator4 = Stochastic[100,10](close)
indicator5 = Average[10](indicator4)
c3 = (indicator4 CROSSES OVER indicator5)
indicator6 = Stochastic[100,10](close)
c4 = (indicator6 >= 80)
IF c3 AND c4 AND Not OnMarket THEN
PrezzoEntrata = CLOSE
NumeroBarra = BARINDEX
SELLSHORT 1 CONTRACT AT PrezzoEntrata + 10 * pipsize LIMIT
Rialzo = 0
Ribasso = 1
ENDIF
// Stop e target
SET STOP pLOSS 100
SET TARGET pPROFIT 100