
Strategi ini, yang dikenal dengan sebutan piramida OBV, dirancang untuk membuka posisi berdasarkan indikator OBV, dan menggunakan metode penambahan posisi piramida, setelah munculnya tren, penambahan posisi dilakukan secara bertahap dan mengikuti tren untuk mendapatkan keuntungan.
Strategi ini menggunakan indikator OBV untuk menentukan arah tren. Indikator OBV didasarkan pada perubahan volume transaksi untuk menentukan tren harga, dan perubahan volume transaksi mencerminkan sikap para peserta pasar. Ketika melewati 0 di OBV menunjukkan peningkatan daya beli, tren multihead terbentuk; Ketika melewati 0 di bawah OBV menunjukkan peningkatan daya beli, tren kosong terbentuk.
Strategi ini mengkonfirmasi pembentukan tren multihead dengan menilai apakah OBV naik melalui sumbu 0. Saat tren multihead terbentuk, atur aturan kenaikan posisi piramida, maksimal 7 kali. Buat keuntungan dengan melacak tren, atur mekanisme penarikan stop-loss.
Keuntungan terbesar dari strategi ini adalah bahwa strategi ini dapat menangkap tren, melacak tren dengan cara menaikkan posisi piramida, dan memiliki potensi keuntungan yang besar. Selain itu, strategi ini memiliki kontrol risiko dan pengaturan stop loss.
Secara khusus, keunggulan yang ditampilkan adalah:
Strategi ini memiliki dua risiko utama:
Solusi yang sesuai:
Strategi ini dapat dioptimalkan dengan cara:
Dengan mengoptimalkan konten ini, strategi dapat dibuat lebih stabil, lebih terkontrol, dan lebih terukur.
Strategi ini secara keseluruhan sangat praktis. Ia menggunakan indikator OBV untuk menentukan arah tren, lalu melacak tren melalui piramida penambahan posisi. Logika strategi ringkas dan jelas, mudah dipahami dan diukur kembali.
/*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)