Greedy Strategy

Definizione

La Greedy Strategy apre un ordine iniziale se c'è un gap tra l'apertura corrente e il massimo o il minimo della barra precedente. Se l'apertura è superiore al massimo precedente, la strategia va long, mentre se l'apertura è inferiore al minimo della barra precedente, apre una posizione short. Dopo l'apertura di una posizione, la strategia continuerà a riempire gli ordini nella stessa direzione finché il colore della candela sarà coerente con la posizione aperta. Se la posizione corrente è long, verranno creati nuovi ordini long per ogni candela verde successiva e viceversa. Questa procedura andrà avanti fino alla candela di colore diverso o fino al raggiungimento del limite di ordini evasi per un giorno. 

Il limite può essere modificato nelle impostazioni modificando il valore di Massimi ordini intraday inviabili. Le impostazioni di Sl e Tp consentono di impostare lo Stop Loss e il Take Profit. Il valore rappresenta il numero di tick al di sopra o al di sotto del prezzo della posizione in cui si troveranno lo Stop loss e il Take profit.

Calcoli

Pine Script
//@version=5 
strategy("Greedy Strategy", pyramiding = 100, calc_on_order_fills=false, overlay=true) 
tp = input(10) 
sl = input(10) 
maxidf = input(title="Max Intraday Filled Orders", defval=5) strategy.risk.max_intraday_filled_orders(maxidf) 
upGap = open > high[1] 
dnGap = open < low[1] 
dn = strategy.position_size < 0 and open > close 
up = strategy.position_size > 0 and open < close 
strategy.entry("GapUp", strategy.long, stop = high[1], when = upGap) 
strategy.entry("Dn", strategy.short, stop = close,  when =  dn) 
strategy.entry("GapDn", strategy.short, stop = low[1], when = dnGap) 
strategy.entry("Up", strategy.long, stop = close,  when =  up) 
strategy.cancel("GapUp", not upGap) 
strategy.cancel("GapDn", not dnGap) 
strategy.cancel("Up", not up) 
strategy.cancel("Dn", not dn) 
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size 
dir = strategy.position_size < 0 ? -1 : 1 
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick 
slP = strategy.position_avg_price - dir*sl*syminfo.mintick 
float nav = na 
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false), strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  strategy.oca.reduce, "TPSL", when=  not revCond and XQty > 0) strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL",  strategy.oca.reduce, "TPSL", when= not revCond and XQty > 0) strategy.cancel("TP", XQty == 0 or revCond) 
strategy.cancel("SL", XQty == 0 or revCond) 
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Riassumendo

La Greedy Strategy è stata creata per sfruttare i gap in entrambe le direzioni. Accelera quindi su tali gap sfruttando il momentum al rialzo o al ribasso. La strategia apre un ordine iniziale se c'è un gap tra l'apertura corrente e il massimo o il minimo della barra precedente. Se l'apertura è superiore al massimo precedente, la strategia va long e se l'apertura è inferiore al minimo della barra precedente, apre una posizione short. Dopo l'apertura di una posizione, la strategia continuerà a riempire gli ordini nella stessa direzione finché il colore della candela sarà coerente con la posizione aperta.