貪婪策略

定義

如果當前開盤價與前一根K線的高點或低點之間存在差距,貪婪策略會打開一個初始訂單。如果開盤價大於前一個高點,則策略做多,如果開盤價低於前一根K線的低點,則開空倉。開倉後,只要K線的顏色與開倉一致,就會繼續向同一方向填單。如果當前部位是多頭,將為後續的每個綠色K線建立新的多頭訂單,反之亦然。這將持續進行,直到出現不同顏色的K線,或達到一天的已執行訂單數量限制。

可以透過編輯“最大日內已執行訂單”值在設定中更改限制。Tp和Sl允許您設定停損和停利。該值表示高於/低於TP和SL所在的部位價格的分鐘數。

計算

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)

總結

貪婪策略的建立是為了利用任一方向的差距。然後透過上行或下行的勢頭加速進入這些差距。如果當前開盤價與前一根K線的高點或低點之間存在差距,則該策略會打開一個初始訂單。如果開盤價高於前一個高點,則策略做多,如果開盤價低於前一個K線的低點,則開空頭部位。開倉後,只要K線的顏色與開倉一致,就會繼續向同一方向填單。