Strategi keuntungan yang berkesan

Penulis:ChaoZhang, Tarikh: 2023-11-02 15:02:05
Tag:

img

Ringkasan

Strategi Keuntungan Efektif Swing Momentum adalah strategi perdagangan kuantitatif yang direka untuk menangkap peluang yang menguntungkan di pasaran kewangan jangka menengah dengan mengintegrasikan prinsip perdagangan swing dan penunjuk momentum. Strategi ini menggunakan gabungan penunjuk teknikal termasuk purata bergerak, isyarat silang, dan analisis jumlah untuk menjana isyarat beli dan jual. Matlamatnya adalah untuk mengenal pasti trend pasaran dan memanfaatkan momentum harga untuk keuntungan.

Logika Strategi

Isyarat beli ditentukan oleh pelbagai faktor termasuk A1, A2, A3, XG dan WeeklySlope.

A1 Keadaan: Pemeriksaan untuk hubungan harga tertentu, mengesahkan nisbah harga tertinggi kepada harga penutupan adalah kurang daripada 1.03, nisbah harga pembukaan kepada harga terendah adalah kurang daripada 1.03, dan nisbah harga tertinggi kepada harga penutupan sebelumnya adalah lebih daripada 1.06. Keadaan ini mencari corak tertentu yang menunjukkan potensi momentum kenaikan.

A2 Keadaan: Pemeriksaan untuk hubungan harga yang berkaitan dengan harga penutupan, mengesahkan nisbah harga penutupan kepada harga pembukaan lebih besar daripada 1.05 atau nisbah harga penutupan kepada harga penutupan sebelumnya lebih besar daripada 1.05. Keadaan ini mencari tanda-tanda pergerakan harga dan momentum menaik.

A3 Keadaan: Memfokuskan pada jumlah, memeriksa sama ada jumlah semasa melintasi jumlah tertinggi dalam 60 tempoh terakhir.

Keadaan XG: Menggabungkan keadaan A1 dan A2 dan memeriksa sama ada ia benar untuk kedua-dua bar semasa dan sebelumnya. Ia juga mengesahkan nisbah harga penutupan kepada salib EMA 5 tempoh di atas SMA 9 tempoh nisbah yang sama. Keadaan ini membantu mengenal pasti isyarat beli berpotensi apabila beberapa faktor sejajar, menunjukkan momentum menaik yang kuat dan titik kemasukan yang berpotensi.

Faktor Trend Mingguan: Mengira kemiringan SMA 50-periode pada jangka masa mingguan. Ia memeriksa sama ada kemiringan adalah positif, menunjukkan trend menaik secara keseluruhan setiap minggu. Keadaan ini memberikan pengesahan tambahan bahawa stok berada dalam trend menaik.

Apabila semua syarat-syarat ini dipenuhi, syarat beli dicetuskan, menunjukkan masa yang baik untuk memasuki kedudukan panjang.

Syarat jualannya agak mudah dalam strategi:

Isyarat Jual: Syarat jual hanya memeriksa jika harga penutupan melintasi di bawah EMA 10 tempoh. Apabila syarat ini dipenuhi, ia menunjukkan pembalikan atau melemahnya momentum harga menaik, dan isyarat jual dihasilkan.

Analisis Kelebihan

  • Menggabungkan perdagangan ayunan dan penunjuk momentum, mengintegrasikan idea strategi yang berbeza
  • Mengoptimumkan gabungan pelbagai penunjuk teknikal untuk mengenal pasti peluang perdagangan yang berkemungkinan tinggi
  • Menggunakan saiz kedudukan dan teknik stop loss untuk pengurusan risiko
  • Hasil backtest yang baik dengan keuntungan bersih yang besar dan kadar kemenangan

Analisis Risiko

  • Lebih berkesan dalam pasaran lembu, tidak dapat menyesuaikan diri dengan pasaran beruang
  • Pengecualian palsu boleh membawa kepada perdagangan yang salah
  • Ukuran kedudukan yang tidak betul dan tetapan stop loss boleh memperkuat kerugian
  • Parameter memerlukan penyesuaian yang betul untuk persekitaran pasaran yang berbeza

Pengoptimuman

  • Tambah penapis untuk meningkatkan kualiti isyarat
  • Mengoptimumkan kaedah stop loss seperti trailing stop loss
  • Sesuaikan saiz kedudukan secara dinamik
  • Menggabungkan pembelajaran mesin untuk meningkatkan pengoptimuman parameter

Kesimpulan

Strategi Keuntungan Efektif Swing Momentum mengintegrasikan prinsip perdagangan swing dan penunjuk momentum melalui pengoptimuman parameter dan integrasi keadaan, mencapai keuntungan yang cukup besar dalam backtest. Ia menangkap trend jangka pertengahan dengan baik tetapi harus menyedari risiko pembalikan trend. Pengoptimuman lanjut boleh meningkatkan ketahanan dan prestasi langsung.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © fzj20020403
//@version=5
strategy("Slight Swing Momentum Strategy.", overlay=true)

// Position Status Definition
var inPosition = false

// Moving Average Definition
ma60 = ta.sma(close, 60)

// A1 Condition Definition
A1 = high / close < 1.03 and open / low < 1.03 and high / close[1] > 1.06

// A2 Condition Definition
A2 = close / open > 1.05 or close / close[1] > 1.05

// A3 Condition Definition
highestVol = ta.highest(volume, 60)
A3 = ta.crossover(volume, highestVol[1])

// B1 Condition Definition
ema5 = ta.ema(close, 5)
B1 = close / ema5

// XG Condition Definition
A1andA2 = (A1 and A2) and (A1[1] and A2[1])
XG = ta.crossover(B1, ta.sma(B1, 9))

// Weekly Trend Factor Definition
weeklyMa = ta.sma(close, 50)
weeklySlope = (weeklyMa - weeklyMa[4]) / 4 > 0

// Buy Signal using XG Condition
buySignal = A1 and close > ma60 or A2 and A3 and XG and close > ma60 and weeklySlope 

// Sell Signal Condition
sellSignal = close < ta.ema(close, 10)

// Buy and Sell Conditions
buyCondition = buySignal and not inPosition
sellCondition = sellSignal and inPosition

// Execute Buy and Sell Operations
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    inPosition := true
if (sellCondition)
    strategy.close("Buy")
    inPosition := false

// Stop Loss and Take Profit Levels
stopLoss = strategy.position_avg_price * 0.5
takeProfit = strategy.position_avg_price * 1.30

// Apply Stop Loss and Take Profit Levels
if inPosition
    strategy.exit("Long Stop Loss", "Buy", stop=stopLoss)
    strategy.exit("Long Take Profit", "Buy", limit=takeProfit)

// Plot Buy and Sell Signal Shapes
plotshape(buyCondition, style=shape.arrowdown, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellCondition, style=shape.arrowup, location=location.abovebar, color=color.red, size=size.small)

// EMA Variable Definition
ema = ta.ema(close, 5)

// Plot Indicator Line
plot(ema, color=color.green, title="EMA")


Lebih lanjut