Strategi Greedy

Definisi

Strategi Greedy membuka satu pesanan awal jika ada satu jurang di antara bukaan terkini dan tinggi atau rendah untuk bar sebelumnya. Jika bukaan lebih besar dari tinggi sebelumnya, strategi akan membuka posisi panjang, jika bukaan adalah lebih rendah dari rendah bar sebelumnya, ia akan membuka posisi singkat. Selepas satu posisi dibuka, ia akan terus melakukan pesanan dalam arah yang sama dengan syarat warna lilin adalah konsisten dengan posisi buka. Jika posisi semasa adalah panjang, pesanan panjang baru akan dicipta untuk setiap lilin hijau berterusan dan sebaliknya. Proses ini akan berterusan sehinggalah sebatang lilin dengan warna yang berlainan muncul atau sehingga had pesanan dipenuhi untuk hari itu dicapai.

Had boleh diubah di dalam tetapan dengan mengedit nilai Pesanan Maksimum Intrahari Dipenuhi (Max Intraday Filled Orders). Tetapan Tp dan Sl membenarkan anda untuk menetapkan Renti Rugi (SL - Stop Loss) dan Ambil Untung (TP - Take Profit). Nilai ini mewakili tick minimum (mintick) di atas/di bawah posisi harga di mana TP dan SL akan terletak.

Pengiraan

Skrip 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)

Kesimpulan

Strategi Greedy dicipta untuk mengambil peluang adanya jurang di mana-mana arah. Ia kemudiannya memecut ke dalam jurang-jurang tersebut dengan bermain momentum ke bahagian atas atau bawah. Strategi membuka satu pesanan awal jika ada satu jurang di antara bukaan terkini dan tinggi atau rendah bar sebelumnya. Jika bukaan lebih besar dari tinggi sebelumnya, strategi akan membuka posisi panjang, jika bukaan adalah lebih rendah dari rendah bar sebelumnya, ia akan membuka posisi singkat. Selepas satu posisi dibuka, ia akan terus melakukan pesanan dalam arah yang sama dengan syarat warna lilin adalah konsisten dengan posisi buka.