Chiến lược này được gọi là
Chỉ số OBV đánh giá xu hướng giá dựa trên sự thay đổi khối lượng giao dịch, vì sự thay đổi khối lượng phản ánh thái độ của người tham gia thị trường. Khi đường OBV vượt trên 0, nó cho thấy sức mua tăng và hình thành xu hướng tăng. Khi vượt dưới 0, nó báo hiệu tăng áp lực bán hàng và xu hướng giảm.
Chiến lược này xác nhận xu hướng tăng khi OBV vượt qua trên 0. Khi xu hướng tăng hình, các quy tắc vị trí tăng kim tự tháp được thiết lập, cho phép thêm 7 lần mua. Nó nhằm mục đích kiếm lợi nhuận từ xu hướng trong khi thiết lập lấy lợi nhuận và dừng lỗ.
Lợi thế lớn nhất của chiến lược này là bắt được xu hướng sử dụng phương pháp tiếp cận kim tự tháp để theo dõi xu hướng và lợi nhuận từ chúng.
Cụ thể, những lợi thế chính là:
Những rủi ro chính xuất phát từ hai khía cạnh:
Giải pháp:
Các hướng tối ưu hóa chính:
Điều này có thể làm cho chiến lược ổn định hơn, có thể kiểm soát và mở rộng.
Nói chung đây là một chiến lược rất thực tế. Nó sử dụng OBV để xác định hướng xu hướng, sau đó kim tự tháp vào xu hướng để kiếm lợi nhuận. Logic đơn giản và rõ ràng để dễ dàng kiểm tra lại. Nó có giá trị ứng dụng và với các thông số, rủi ro và tối ưu hóa quản lý tiền hơn nữa, hiệu suất có thể được cải thiện hơn nữa, đảm bảo nghiên cứu bổ sung.
/*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)