グリーディ・ストラテジー
定義
グリーディ・ストラテジーは、現在の始値と1つ前のバーの高値または安値との間にギャップがある場合に初回の注文を出します。始値が1つ前のバーの高値を上回っている場合はロングポジション、始値が1つ前のバーの安値を下回っていればショートポジションを建てます。ポジションが建てられた後は、ローソク足の色が示す方向と現在のポジションの方向が一致している限り、同じ方向に注文を入れ続けます。現在のポジションがロングであれば、その後に連続して緑色のローソク足が出現するたびにロングの注文が新しく作成されます。ショートの場合も同様です。これは別の色のローソク足が出現するか、1日の注文数が上限に達するまで続けられます。
注文数の上限は、パラメーター設定のMax Intraday Filled Ordersの値を編集することによって変更が可能です。TpとSlの設定では、損切りと利益確定の設定ができます。この値は、ポジション価格からTPとSLの位置までの上/下の間を最小ティック数によって表したものです。
計算
Pineスクリプト
//@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)
サマリー
グリーディ・ストラテジーは、上下方向のギャップを利用するために考案されたものです。こうしたギャップに上昇または下降の勢いが加えられてストラテジー自体が加速されます。このストラテジーでは、現在の始値と1つ前のバーの高値または安値との間にギャップがある場合に初回の注文を出します。始値が1つ前のバーの高値を上回っている場合はロングポジション、始値が1つ前のバーの安値を下回っていればショートポジションを建てます。ポジションが建てられた後は、ローソク足の色が示す方向と現在のポジションの方向が一致している限り、同じ方向に注文を入れ続けます。