Estrategia de codicia

Definición

La Estrategia de codicia abre una orden inicial si existe un gap entre la apertura actual y el máximo o mínimo de la barra anterior. Si la apertura es mayor que el máximo anterior, la estrategia se pone larga, si la apertura está por debajo del mínimo de la barra anterior, abre una posición corta. Una vez abierta una posición, seguirá cumplimentando órdenes en la misma dirección siempre que el color de la vela coincida con la posición abierta. Si la posición actual es larga, se crearán nuevas órdenes largas para cada vela verde consecuente y viceversa. Así se procederá hasta la vela de otro color o hasta que se alcance el límite de órdenes ejecutadas para un día.

El límite puede modificarse en los ajustes editando el valor Max Intraday Filled Orders. Los ajustes Tp y Sl permiten establecer el Stop Loss y el Take Profit. El valor representa el número de mínimos por encima/por debajo del precio de la posición donde se situarán el TP y el SL.

Cálculos

Pine Script
//@version=5
strategy("Estrategia de codicia", 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)

Resumen

La estrategia de codicia se creó para aprovechar los gaps en cualquier dirección. A continuación, acelera en esos gaps jugando con el momentum al alza o a la baja. La estrategia abre una orden inicial si hay un gap entre la apertura actual y el máximo o mínimo de la barra anterior. Si la apertura es mayor que el máximo anterior, la estrategia se pone larga y si la apertura está por debajo del mínimo de la barra anterior, abre una posición corta. Una vez abierta una posición, seguirá cumplimentando órdenes en la misma dirección siempre que el color de la vela coincida con la posición abierta.