
Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan harga rata-rata bobot pips (GWAP) dan analisis momentum. Strategi ini memperkirakan pergerakan harga dengan menggunakan bobot pips pada data harga historis dan digabungkan dengan indikator momentum jangka pendek. Inti dari strategi ini adalah menggunakan faktor pips untuk memberikan bobot yang lebih tinggi pada harga jangka pendek, sehingga meningkatkan sensitivitas terhadap pergerakan pasar jangka pendek.
Strategi ini didasarkan pada dua teori psikologis utama: efek momentum dan harga tertimbang Puma. Dalam aspek momentum, strategi ini memanfaatkan karakteristik kelanjutan tren harga di pasar keuangan; dalam aspek berat, dengan faktor Puma (rentang pengukuran 0,5-1.5) untuk menurunkan indeks harga historis. Dalam pelaksanaan konkret, strategi ini menggunakan perhitungan GWAP sebagai harga acuan, membuka posisi over atau sebaliknya ketika harga berada di atas GWAP dan menunjukkan tren naik selama tiga siklus berturut-turut.
Strategi ini memungkinkan pelacakan yang cerdas terhadap tren pasar dengan menggabungkan analisis bobot dan momentum. Keunggulan utamanya adalah kemampuan untuk menyesuaikan alokasi bobot sesuai dengan dinamika pasar, sambil mempertahankan efisiensi komputasi yang tinggi. Meskipun ada risiko pasar tertentu dan masalah sensitivitas parameter, strategi ini memiliki prospek penerapan yang baik dengan optimasi dan perbaikan berkelanjutan.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-16 08:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("BTC Future Gamma-Weighted Momentum Model (BGMM)", shorttitle="BGMM", overlay=true,
default_qty_type=strategy.cash, default_qty_value=50000,
slippage=1, commission_value=0.01)
// Inputs
length = input.int(60, "Length for GWAP Calculation")
gamma_factor = input.float(0.75, "Gamma Weight Factor", minval=0.5, maxval=1.5, step=0.01)
// Helper Functions
var float cumulative_weighted_price = na
var float cumulative_weight = na
price = (high + low + close) / 3 // Typical price as a baseline
gamma_weights = array.new_float(length, 0.0)
price_series = array.new_float(length, na)
// Populate Arrays for Calculation
if bar_index >= length
for i = 0 to length - 1
weighted_gamma = math.pow(gamma_factor, i)
array.set(gamma_weights, i, weighted_gamma)
array.set(price_series, i, close[i])
// Compute GWAP
weighted_sum = 0.0
weight_total = 0.0
for i = 0 to length - 1
w = array.get(gamma_weights, i)
p = array.get(price_series, i)
weighted_sum := weighted_sum + p * w
weight_total := weight_total + w
GWAP = weight_total != 0 ? weighted_sum / weight_total : na
plot(GWAP, color=color.red, title="Gamma Weighted Average Price")
// Conditions for Trade Signals
long_condition = close > GWAP and close[1] > close[2] and close[2] > close[3]
short_condition = close < GWAP and close[1] < close[2] and close[2] < close[3]
// Strategy Logic
if long_condition
strategy.entry("Long", strategy.long)
if short_condition
strategy.entry("Short", strategy.short)