Greedy Strategie
Definition
Die „Greedy Strategie“ eröffnet eine Order, wenn es eine Lücke zwischen dem aktuellen Eröffnungspreis und dem Hoch oder Tief des vorherigen Balkens gibt. Wenn der Eröffnungspreis über dem vorherigen Hoch liegt, dann wird die Strategie Long-Gehen; und wenn er unter dem Tief des vorherigen Balkens liegt, dann wird eine Short-Position eröffnet. Nachdem die Position eröffnet wurde, wird die Strategie weitere gleichwertige Order eröffnen, solange die Kerzenfarbe konsistent mit der Eröffnungsposition verbleibt. Wenn die aktuelle Position eine Long-Position ist, dann werden weitere Long-Order für jede nachfolgende grüne Kerze eröffnet, und vice versa. Dies wird fortgesetzt, bis eine Kerze in einer anderen Farbe erscheint (oder das Limit für die ausgefüllten Order pro Tag erreicht wurde).
Sie können dieses Limit in den Einstellungen verändern, indem Sie den Wert für „Max. ausgefüllte Intraday-Order“ verändern. Die Einstellungen für TP und SL können verwendet werden, um das Stop Loss und Take Profit zu bestimmen. Der Wert stellt die Anzahl von Minimalticks über/unter dem Positionspreis dar, wo sich TP und SL befinden.
Berechnung:
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)
Fazit
Die „Greedy Strategie“ wurde entwickelt, um einen Vorteil aus entstehenden Lücken zu ziehen (unabhängig von der Richtung). Sie beschleunigt dann in diese Lücken hinein und spielt das Momentum nach oben oder unten aus. Die Strategie eröffnet eine anfängliche Order, wenn es eine Lücke zwischen dem aktuellen Eröffnungspreis und dem Hoch oder Tief des vorherigen Balkens gibt. Wenn der Eröffnungspreis über dem vorherigen Hoch liegt, dann eröffnet die Strategie eine Long-Position, und wenn er unter dem Tief des vorherigen Balkens liegt, dann wird eine Short-Position eröffnet. Nachdem diese Position eröffnet wurde, werden weitere Order ausgefüllt (in dieselbe Richtung), solange die Kerzenfarbe konsistent mit der Eröffnungsposition verbleibt.