
RAHA Quantitative Dynamic Weighted Average Short-Line Trend Strategy adalah sistem perdagangan short-line yang berdasarkan pada penunjuk Roni’s Adjusted Hybrid Average (RAHA). Strategi ini dibangunkan oleh Aharon Roni Pesach, dan terasnya adalah menggunakan kaedah pengiraan rata-rata khas yang memberi berat yang berbeza kepada nilai yang tidak normal, menjadikan nilai yang melampau (terutamanya tinggi atau sangat rendah) mendapat berat yang lebih rendah. Pengiraan RAHA didasarkan pada standard dan perbezaan rata-rata data, sehingga menghasilkan persamaan yang lebih sensitif tetapi lebih stabil, yang tidak mengabaikan nilai yang tidak normal, tetapi mempertimbangkannya secara perkadaran.
RAHA mengukur dinamika berat rata-rata strategi trend garis pendek terletak pada cara yang unik untuk mengira rata-rata. Rata-rata tradisional memberikan berat yang sama kepada setiap titik harga, sementara RAHA menyesuaikan berat secara dinamik mengikut tahap penyimpangan titik harga dari nilai rata-rata.
Strategi ini menggunakan garis rata-rata RAHA dalam tempoh yang berbeza (5, 10, 20, dan 40) untuk menangkap trend pasaran. Isyarat masuk berdasarkan syarat berikut:
Selepas masuk, strategi untuk menguruskan kedudukan menggunakan peraturan berikut:
RAHA kuantitatif dinamik berat rata-rata garis pendek trend strategi mempunyai banyak kelebihan:
Keseimbangan berat dinamikIndeks RAHA mencipta sistem garis rata yang lebih sensitif tetapi lebih stabil dengan memberi berat yang lebih rendah kepada nilai yang melampau. Ini membantu mengurangkan isyarat palsu sambil mengekalkan kepekaan terhadap perubahan pasaran yang sebenar.
Pengesahan trend pelbagai peringkatStrategi: Menggunakan indikator RAHA dengan beberapa kitaran ((5, 10, 20 dan 40) untuk pengesahan trend, mekanisme pengesahan berganda ini membantu mengurangkan kadar isyarat palsu.
Pengurusan risiko penyesuaianUkuran kedudukan: Sesuaikan secara automatik berdasarkan jarak berhenti untuk memastikan risiko setiap dagangan terkawal dalam 1% dari dana. Mekanisme ini membolehkan strategi menyesuaikan diri dengan persekitaran kadar turun naik yang berbeza.
Penyesuaian Stop Loss DinamikStrategi ini adalah untuk menyesuaikan stop loss mengikut keadaan pasaran semasa berdagang, meningkatkan kedudukan stop loss apabila terdapat 3 buah merah berturut-turut, yang membantu mengunci keuntungan dan mengurangkan penarikan balik.
Mekanisme keluar yang fleksibelStrategi ini menggabungkan mekanisme berbilang keluar yang dicetuskan oleh pembalikan petunjuk teknikal dan hentikan kerugian, fleksibiliti ini membantu mengoptimumkan masa keluar dalam keadaan pasaran yang berbeza.
Menangkap Keadaan Luar BiasaStrategi ini memberi tumpuan kepada isyarat jual beli di atas BRI, yang membantu menangkap peluang untuk kembali selepas pasaran meluas, yang sering membawa keuntungan yang ketara.
Penglihatan yang jelasStrategi: Menandai titik masuk dan keluar pada carta, membolehkan peniaga memahami logik perdagangan secara intuitif, memudahkan analisis dan penambahbaikan selanjutnya.
Walaupun RAHA mempunyai banyak kelebihan, terdapat risiko berikut:
Ancaman perubahan trendStrategi ini bergantung kepada trend yang berterusan, yang boleh menyebabkan kerugian yang lebih besar jika trend tiba-tiba berbalik. Penyelesaian adalah dengan mempertimbangkan untuk menambah indikator reversal yang lebih sensitif atau indikator sentimen pasaran sebagai tambahan.
Kepekaan ParameterParameter sensitiviti dalam pengiraan RAHA ((sekarang ditetapkan sebagai 1.5) mempunyai kesan yang ketara terhadap prestasi strategi. Peraturan parameter yang berbeza mungkin diperlukan untuk pasaran yang berbeza atau untuk tempoh yang berbeza.
Risiko kerugian berterusanDalam pasaran yang sangat tidak menentu atau berlainan arah, strategi mungkin mencetuskan hentian berturut-turut yang menyebabkan kurva modal turun. Anda boleh mempertimbangkan untuk menambah penapis keadaan pasaran dan menangguhkan perdagangan dalam keadaan pasaran yang tidak sesuai.
Kerumitan pengiraanPengiraan penunjuk RAHA agak rumit dan memerlukan pemprosesan data berulang, yang mungkin menyebabkan kelewatan kecil dalam perdagangan masa nyata. Kecekapan pengiraan harus dinilai dalam persekitaran perdagangan frekuensi tinggi.
Risiko kedudukanWalaupun strategi ini mengehadkan risiko bagi setiap perdagangan, ia tidak mengambil kira risiko kedudukan keseluruhan. Dalam kes perdagangan berganda, risiko keseluruhan mungkin melebihi jangkaan. Ia disyorkan untuk meningkatkan mekanisme kawalan risiko keseluruhan.
Brin Berhadapan Kemunculan Luar BiasaPendaftaran berasaskan Brin Belt di atas mungkin terlalu awal dalam keadaan yang melampau. Anda boleh mempertimbangkan untuk menambah syarat penapisan tambahan, seperti pengesahan jumlah pesanan atau penilaian penyokong penunjuk teknikal lain.
Risiko penghentian pengganda tetapStrategi menggunakan jarak berhenti 3 kali ganda yang tetap sebagai sasaran keuntungan, yang mungkin tidak cukup fleksibel dalam keadaan pasaran yang berbeza. Pertimbangkan untuk menyesuaikan sasaran keuntungan berdasarkan turun naik pasaran atau pergerakan rintangan sokongan.
Berdasarkan analisis mendalam mengenai strategi ini, berikut adalah arah yang mungkin untuk dioptimumkan:
Parameter sensitiviti yang disesuaikanStrategi semasa menggunakan parameter sensitiviti tetap ((1.5)). Anda boleh mempertimbangkan untuk menyesuaikan sensitiviti secara automatik mengikut turun naik pasaran, menggunakan nilai yang lebih tinggi untuk meningkatkan sensitiviti di pasaran turun naik yang rendah, dan menggunakan nilai yang lebih rendah di pasaran turun naik yang tinggi untuk meningkatkan kestabilan.
Tambah penapis persekitaran pasaranMemperkenalkan mekanisme penilaian keadaan pasaran, seperti penunjuk kekuatan trend ((ADX) atau penunjuk kadar turun naik ((ATR), untuk mengurangkan atau mengelakkan perdagangan dalam keadaan pasaran yang tidak sesuai untuk strategi garis pendek.
Optimumkan mekanisme keluar: Perlawanan strategi semasa adalah berdasarkan pada pembalikan dan hentian indikator teknikal. Anda boleh mempertimbangkan untuk menambah mekanisme penguncian keuntungan separa yang lebih fleksibel, seperti memindahkan hentian ke tempat kos apabila mencapai perbandingan ganjaran risiko 1: 1, atau menetapkan sasaran keuntungan berganda berdasarkan pada tempat rintangan sokongan.
Pengesahan jumlah urus niaga: Menambah pengesahan jumlah transaksi apabila isyarat masuk dihasilkan, dapat mengurangkan penembusan palsu dan isyarat palsu. Pengesahan jumlah transaksi sangat penting, terutamanya untuk keadaan masuk khas di atas Brin Belt.
Penapis masaAnalisis prestasi dagangan pada masa yang berlainan, mungkin mendapati bahawa beberapa masa (seperti sebelum pasaran dibuka atau ditutup) lebih baik daripada strategi. Menambah penapis masa dapat meningkatkan kecekapan keseluruhan strategi.
Menambah penapis asasUntuk saham atau komoditi tertentu, anda boleh mempertimbangkan untuk menambah syarat penapisan asas, seperti mengecualikan masa data penting yang akan diterbitkan atau tempoh yang dipengaruhi oleh faktor bermusim tertentu.
Pengoptimuman Pembelajaran Mesin: Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan set parameter strategi, atau untuk meningkatkan keputusan masuk dan keluar melalui pengenalan corak sejarah. Ini boleh dilakukan dengan menganalisis data sejarah secara mendalam untuk mencari corak yang mungkin tidak dipertimbangkan dalam analisis teknikal tradisional.
Mekanisme Keseimbangan RisikoMenambah mekanisme penyesuaian risiko dinamik berdasarkan nilai bersih akaun dan kedudukan yang dibuka untuk memastikan risiko keseluruhan tidak melebihi had yang ditetapkan, terutamanya dalam kes kedudukan yang dibuka secara berturut-turut.
RAHA Quantitative Dynamic Weighted Average Short Line Trend Strategy adalah satu sistem perdagangan kuantitatif yang inovatif, yang terasnya adalah memproses data harga dengan menggunakan kaedah pengiraan yang unik, memberi berat yang berbeza kepada nilai yang tidak normal, dan dengan itu mewujudkan satu indikator garis rata yang lebih sensitif tetapi lebih stabil. Strategi ini membentuk satu sistem keputusan perdagangan yang lengkap melalui penilaian gabungan indikator RAHA berkala, digabungkan dengan penolong seperti Brin Belt.
Kelebihan utama strategi ini adalah pengurusan risiko yang beradaptasi dan mekanisme penyesuaian stop loss yang dinamik, yang membolehkan ia mengekalkan kawalan risiko yang stabil dalam pelbagai keadaan pasaran. Di samping itu, pengesahan trend bertingkat dan mekanisme keluar yang fleksibel juga meningkatkan ketahanan strategi.
Walau bagaimanapun, strategi juga menghadapi beberapa cabaran, seperti sensitiviti parameter, risiko pembalikan trend dan risiko kerugian berturut-turut. Dengan memperkenalkan parameter penyesuaian, penapis keadaan pasaran, mengoptimumkan mekanisme keluar, dan meningkatkan pengesahan jumlah perdagangan, strategi dapat meningkatkan prestasi strategi.
Secara keseluruhannya, RAHA menunjukkan potensi untuk menggabungkan indikator teknologi inovatif dengan falsafah perdagangan tradisional. Dengan terus mengoptimumkan dan menyesuaikan diri dengan keadaan pasaran yang berbeza, strategi ini dijangka menjadi alat yang kuat untuk peniaga pendek untuk membantu peniaga mendapatkan keuntungan yang lebih stabil di pasaran.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-10 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("RAHA Strategy - Short", overlay=true)
// === RAHA Weighted Average Function ===
raha_weighted(src, len, sensitivity) =>
mean = ta.sma(src, len)
dev = ta.stdev(src, len)
sumWeighted = 0.0
sumWeights = 0.0
for i = 0 to len - 1
val = nz(src[i])
weight = 1 / (1 + sensitivity * math.abs(val - mean) / dev)
sumWeighted += val * weight
sumWeights += weight
sumWeights > 0 ? sumWeighted / sumWeights : na
// === RAHA Calculations ===
sensitivity = 1.5
raha5 = raha_weighted(close, 5, sensitivity)
raha10 = raha_weighted(close, 10, sensitivity)
raha20 = raha_weighted(close, 20, sensitivity)
raha40 = raha_weighted(close, 40, sensitivity)
// === Upper Bollinger Band on RAHA 20 ===
bbDev = ta.stdev(raha20, 20)
bbUpper = raha20 + 2.0 * bbDev
// === Short Entry Conditions ===
raha40SlopeDown = raha40 < raha40[1]
crossoverDownRAHA = ta.crossunder(raha10, raha20) or raha10 < raha20
raha5SlopeDown = raha5 < raha5[1]
bearishOutsideBollinger = high > bbUpper and low > bbUpper and close < open
// === Position Management Variables ===
var float entryHigh = na
var float entryPrice = na
var float stop = na
var float tp = na
var int redCount = 0
var int lastEntryBar = na
// === Enter Only When No Open Trade ===
canEnter = strategy.position_size == 0 and ((raha40SlopeDown and crossoverDownRAHA and raha5SlopeDown) or bearishOutsideBollinger)
canEnterFiltered = canEnter and (na(lastEntryBar) or strategy.opentrades == 0 or bar_index > lastEntryBar)
// === Enter Position ===
if canEnterFiltered
entryHigh := high
entryPrice := close
stop := entryHigh
if stop > entryPrice
tp := entryPrice - 3 * (stop - entryPrice)
capital = strategy.equity
stopPct = math.max(0.0001, (stop - entryPrice) / entryPrice)
positionValue = 0.01 * capital / stopPct
// 计算理想仓位
idealQty = (0.01 * capital / stopPct) / entryPrice
// 计算资金限制下的最大仓位
maxAffordableQty = capital / entryPrice
// 取两者较小值
finalQty = math.min(idealQty, maxAffordableQty)
if finalQty > 0 and finalQty < 1e12
strategy.entry("RAHA Short", strategy.short, qty=finalQty)
redCount := 0
lastEntryBar := bar_index
// === Manage Open Position ===
if strategy.position_size < 0
redCount := close < open ? redCount + 1 : 0
if redCount >= 3
stop := high[1]
redCount := 0
// === Exit Conditions ===
exit1 = close > raha10 and open < raha10
exit2 = ta.crossover(raha10, raha20)
exit3 = close > stop
if low <= tp and (exit1 or exit2)
strategy.close("RAHA Short")
if exit3
strategy.close("RAHA Short")
// === Plot Entry and Exit Arrows ===
inPosition = strategy.position_size < 0
exitCondition = inPosition and ((low <= tp and (exit1 or exit2)) or exit3)
plotshape(canEnterFiltered, title="Short Entry", location=location.abovebar, style=shape.labeldown, text="Short", color=color.red, textcolor=color.white)
plotshape(exitCondition, title="Close Position", location=location.belowbar, style=shape.labelup, text="Close", color=color.green, textcolor=color.white)