salve sono nuovo in questo forum, e ho un problema di creazione di una strategia.
Voglio creare una strategia dove vado a dire che per aprire una posizione long la prima candela deve aprire sotto la banda superiore di bollinger e chiudere sopra, la seconda candela aprire sopra e chiudere sotto, e la terza chiudere sotto il min della prima, viceversa per una posizione short.
l’entrata viene eseguita a chiusura della 3 candela.
Penso questo possa andare (dovrai aggiustare SL e TP ed eventuali altre condizioni), se ho ben capito il tuo quesito.
Quella che tu chiami “terza candela” è la candela corrente, la cui chiusura si indica con CLOSE[0] o semplicemente CLOSE (così come low, high, open). La seconda è la candela [1], la prima è la candela [2].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
DEFPARAMCumulateOrders=False//No more than 1 trade allowed
BBavg=20//20-period BB
BBdev=2//2-point deviation
BBVal=average[BBavg](close)//BB 20 mean (middle line)
BollUp=BBval+(std[BBavg](close)*BBdev)//Bollinger Up value (20, 2)
BollDn=BBval-(std[BBavg](close)*BBdev)//Bollinger Down value (20, 2)
// Conditions to enter a LONG trade
c1=(open[2]<BollUp)AND(close[2]>BollUp)//First candle opens below and closes above BB up
c2=(open[1]>BollUp)AND(close[1]<BollUp)//Second candle opens above and closes below BB up
c3=(close<low[2])//Third, or current, candle closes below the minimum
// of the first candle
IFc1ANDc2ANDc3THEN
BUY1CONTRACTATMARKET
ENDIF
// Conditions to enter a SHORT trade
c4=(open[2]>BollDn)AND(close[2]<BollDn)//First candle opens above and closes below BB down
c5=(open[1]<BollDn)AND(close[1]>BollDn)//Second candle opens below and closes above BB down
c6=(close>high[2])//Third, or current, candle closes above the maximum
// of the first candle
IFc4ANDc5ANDc6THEN
SELLSHORT1CONTRACTATMARKET
ENDIF
// Stop e target
SET TARGETPPROFIT10
SET STOPPLOSS10
Ho scritto le annotazione in inglese perché sono abutuato a scrivere in inglese ed è facilmente comprensibile anche ad utenti non italiani.