
Strategi ini, yang dinamakan sebagai “Piramida OBV”, merancang strategi pembukaan kedudukan berdasarkan petunjuk OBV, dan menggunakan kaedah penambahan kedudukan piramida, setelah trend muncul, menambah kedudukan berturut-turut dan mengikuti trend untuk mendapatkan keuntungan.
Strategi ini menggunakan indikator OBV untuk menentukan arah trend. Indikator OBV berdasarkan perubahan jumlah transaksi untuk menentukan trend harga, perubahan jumlah transaksi mencerminkan sikap peserta pasaran. Apabila di atas OBV melalui 0 aksen menunjukkan peningkatan daya beli, trend bermulut-mulut terbentuk; Apabila di bawah OBV melalui 0 aksen menunjukkan peningkatan daya beli, trend kosong terbentuk.
Strategi ini mengesahkan pembentukan trend bertopeng dengan menilai sama ada OBV melintasi 0 atau tidak. Apabila trend bertopeng terbentuk, atur peraturan penempatan piramid, maksimum 7 kali penempatan.
Kelebihan utama strategi ini ialah ia dapat menangkap trend, menjejaki trend melalui cara menaikkan kedudukan piramid, dan mempunyai potensi keuntungan yang besar. Di samping itu, strategi ini mempunyai kawalan risiko dan mempunyai tetapan stop loss.
Secara khusus, kelebihan ini dapat dilihat dalam:
Strategi ini mempunyai dua risiko utama:
Penyelesaian:
Strategi ini boleh dioptimumkan dengan:
Dengan mengoptimumkan kandungan ini, anda boleh menjadikan strategi anda lebih stabil, lebih mudah dikawal dan lebih boleh diskalakan.
Strategi ini sangat praktikal secara keseluruhan. Ia menggunakan petunjuk OBV untuk menentukan arah trend, dan kemudian mengikuti trend melalui piramida kenaikan kedudukan. Logik strategi ringkas dan jelas, mudah difahami dan diukur.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni
//@version=4
strategy(title = " OBV Pyr", overlay = true, pyramiding=5,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 20, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//
fastLength = input(250, title="Fast filter length ", minval=1)
slowLength = input(500,title="Slow filter length", minval=1)
source=close
v1=ema(source,fastLength)
v2=ema(source,slowLength)
//
filter=true
src = close
LengthOBV = input(20)
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume
c = cum(nv)
c_tb = c - sma(c,LengthOBV)
// Conditions
longCond = crossover(c_tb,0)
//shortCond =crossunder(cnv_tb,0)
//
longsignal = (v1 > v2 or filter == false ) and longCond
//shortsignal = (v1 < v2 or filter == false ) and shortCond
//set take profit
ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick
//set take profit
LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick
////Order Placing
//
strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)
//
strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)
//
strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)
//
strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)
//
strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)
//
strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)
//
strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)
//
//
//
if strategy.position_size > 0
strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)