Buongiorno,
Avrei bisogno di aiuto per creare un codice con le seguenti condizioni:
Condizioni, BUY se:
– 7 o più chiusure giornaliere consecutive maggiori di sma5
– chiusura minore di sma5
La posizione si chiude nel momento in cui il prezzo raggiunge la sma5, o dopo 2 giorni.
Grazie in anticipo per l’aiuto!
Ecco il codice:
Barre = 2
Sma5 = average[5,0](close)
c1 = (summation[7](close > Sma5) = 7)
c2 = close < Sma5
NR7 = c1[1] AND c2 AND Not OnMarket
IF NR7 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF OnMarket THEN
IF (close >= Sma5) OR ((BarIndex - TradeIndex) = (Barre -1)) THEN
SELL AT MARKET
ENDIF
ENDIF
Grazie mille Roberto.
E’ possibile impostare il target quando il prezzo semplicemente tocca la sma5, invece che a chiusura?
Provo con SET TARGET PRICE sma5 ma mi da un risultato sbagliato
Questo esce al valore che aveva Sma5 al momento dell’entrata:
Barre = 2
Sma5 = average[5,0](close)
c1 = (summation[7](close > Sma5) = 7)
c2 = close < Sma5
NR7 = c1[1] AND c2 AND Not OnMarket
IF NR7 THEN
BUY 1 CONTRACT AT MARKET
TargetSMA = Sma5
ENDIF
IF OnMarket THEN
SET TARGET PRICE TargetSMA
ENDIF
Questo invece esce al valore della Sma5 aggiornato barra dopo barra:
Barre = 2
Sma5 = average[5,0](close)
c1 = (summation[7](close > Sma5) = 7)
c2 = close < Sma5
NR7 = c1[1] AND c2 AND Not OnMarket
IF NR7 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF OnMarket THEN
SET TARGET PRICE Sma5
ENDIF
Ciao Roberto,
Col secondo codice il backtest apre e chiude la posizione nello stesso momento
Segue la media.
Tieni presente che le strategie vengono eseguite solo alla chiusura della barra, quindi esce al valore che la media aveva alla chiusara della barra precedente a quella dove vedi il simbolo di uscita.
Capito, credo di poter risolvere calcolando il primo TARGET PRICE a partire dalla barra successiva e non quella attuale, o utilizzando il momento in cui si apre la posizione. In questo modo la barra non è già sulla media. Successivamente dovrebbe aggiornarsi ad ogni nuova chiusura seguendo la media. E’ possibile?