Bande di Bollinger e Medie mobili: strategie con codice
Nell’articolo di oggi forniremo due strategie con codice da applicare a Tradingview con il linguaggio di programmazione di PineScript.
In entrambi gli esempi applicheremo il codice a EUR/USD su un timeframe daily.
Vedremo, nel primo caso, una strategia con le Bande di Bollinger mentre nel secondo applicheremo le medie mobili.
Strategia con le Bande di Bollinger

La strategia in sé è molto semplice e si basa sulle chiusure delle candele al di sopra della banda superiore o al di sotto della banda inferiore.
Infatti, per un’entrata LONG, il trading system aspetterà che la chiusura della candela avvenga sopra la Upper Band (che capiterà molto probabilmente all’interno di un trend bullish, anche di breve periodo).
L’uscita dal trade è settata alla chiusura della candela successiva, che corrisponde quindi all’apertura della 2° candela dopo quella di entrata.
Al contrario, per un’entrata SHORT, il trading system aprirà la posizione in vendita quando avverrà una chiusura sotto la Lower Band (questa volta in un trend bearish).
Come nel caso precedente, l’uscita è settata alla chiusura della candela successiva (apertura della 2° dopo quella di entrata).
Codice:
//@version=5 strategy("BACKTEST", overlay=true, margin_long=100, margin_short=100) [middle, upper, lower] = ta.bb(close, 20, 2) BarsSinceLastEntry() => bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) barsSinceLast = BarsSinceLastEntry() longCondition = close > upper if (longCondition) strategy.entry("long", strategy.long) strategy.close("long", when= barsSinceLast >= 1) shortCondition = close = 1)
Strategia con l’incrocio delle medie mobili

La strategia dell’incrocio delle medie mobili è una delle più famose quando si parla di trading automatico.
In questo caso abbiamo applicato due medie, una veloce (SMA 20 periodi) e una lenta (SMA 50 periodi).
L’entrata LONG avverrà quando la media veloce (SMA 20) incrocerà al rialzo la lenta (SMA 50); il trading system chiuderà la posizione quando la media veloce incrocerà al ribasso quella a 50 periodi.
L’entrata SHORT verrà aperta invece quando si presenterà la situazione opposta: crossunder della media veloce su quella lenta e chiusura con il loro incrocio al rialzo.
Codice:
//@version=5 strategy("BACKTEST_MA", overlay=true, margin_long=100, margin_short=100) ma_veloce = ta.sma(close, 20) ma_lenta = ta.sma(close, 50) plot(ma_veloce) plot(ma_lenta) longCondition = ta.crossover(ma_veloce, ma_lenta) if (longCondition) strategy.entry("long", strategy.long) strategy.close("long", when= ta.crossunder(ma_veloce, ma_lenta)) shortCondition = ta.crossunder(ma_veloce, ma_lenta) if (shortCondition) strategy.entry("short", strategy.short) strategy.close("short", when= ta.crossover(ma_veloce, ma_lenta))
Queste due strategie sono molto utili in caso di mercati tendenziali, al rialzo o ribasso, mentre faticano di più all’interno di scenari laterali.
Rimani sempre aggiornato/a con il blog della Quant Trader Academy e seguici su Instagram.