Strategi perdagangan kuantitatif komposit berdasarkan MACD


Tarikh penciptaan: 2023-12-13 16:44:46 Akhirnya diubah suai: 2023-12-13 16:44:46
Salin: 0 Bilangan klik: 921
1
fokus pada
1621
Pengikut

Strategi perdagangan kuantitatif komposit berdasarkan MACD

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan kuantitatif komposit berdasarkan indikator MACD. Ia menggunakan pelbagai indikator seperti MACD, KDJ, dan lain-lain untuk menghasilkan isyarat perdagangan melalui kombinasi antara indikator.

Prinsip Strategi

Penunjuk utama strategi ini ialah MACD. MACD melambangkan purata bergerak indeks, sebuah penunjuk trend. Ia terdiri daripada purata bergerak cepat (EMA) dan purata bergerak perlahan (EMA). Parameter lalai garis cepat ialah 12, parameter lalai garis perlahan ialah 26. Strategi ini mengira perbezaan antara dua garis EMA, iaitu DIF.

Strategi ini juga memperkenalkan penunjuk KDJ. Penunjuk KDJ merangkumi nilai K, nilai D dan nilai J. Di antaranya, nilai K merujuk kepada nilai rawak, nilai D adalah purata bergerak nilai K, dan nilai J merujuk kepada nilai kepastian. Penunjuk KDJ mencerminkan keadaan pasaran yang terlalu banyak membeli dan terlalu banyak menjual. Apabila nilai J lebih besar daripada 100 mewakili terlalu banyak membeli, dan lebih kecil daripada 10 mewakili terlalu banyak menjual.

Kelebihan Strategik

Strategi ini menggunakan pelbagai indikator seperti MACD dan KDJ secara komprehensif untuk menyaring bunyi pasaran dengan berkesan dan mengenal pasti arah trend. Indeks MACD dapat menangkap perubahan harga jangka pendek tepat pada masanya, dan indikator KDJ dapat mengkonfirmasi trend jangka panjang. Gabungan kedua-duanya dapat mengimbangi hubungan antara mengejar ketangkasan dan kestabilan.

Di samping itu, strategi telah menambah pilihan masa, yang membolehkan anda memilih sendiri jangka masa yang akan diukur. Ini memberikan fleksibiliti yang lebih besar untuk menilai prestasi strategi.

Risiko strategi dan penyelesaian

  • Apabila pasaran bergoyang untuk jangka masa yang panjang, MACD akan muncul beberapa kali. Dalam kes ini, parameter garis EMA boleh disesuaikan dengan betul, untuk menyaring kebisingan.

  • Tetapan parameter penunjuk KDJ yang tidak betul juga boleh mempengaruhi hasilnya. Anda boleh menguji lebih banyak set parameter dan memilih kombinasi parameter yang lebih stabil.

  • Waktu pengesanan yang tidak tepat boleh menganggarkan atau menganggarkan hasil strategi. Julat masa yang mewakili harus dipilih untuk ujian.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Meningkatkan mekanisme penangguhan kerugian. Memaksa penangguhan kedudukan kosong apabila harga mencetuskan garis penangguhan kerugian.

  2. Tambah lebih banyak penapis indikator. Gabungan dengan RSI, Blink, dan lain-lain indikator dapat meningkatkan ketepatan isyarat.

  3. Mengoptimumkan parameter penunjuk. Ubah kombinasi parameter EMA dan KDJ untuk mencari parameter optimum.

  4. Menggunakan teknologi pembelajaran mesin untuk mengoptimumkan secara automatik. Menggunakan rangkaian saraf untuk melatih dan mengoptimumkan parameter strategi.

ringkaskan

Strategi ini adalah strategi kuantitatif yang mengutamakan trend, ditambah dengan kawalan overbought dan oversold. Ia menggabungkan kelebihan pelbagai indikator, yang dapat mengimbangi kestabilan dan kepekaan dengan berkesan. Dengan pengoptimuman dan penyesuaian yang berterusan, strategi ini dapat digunakan untuk memperluaskan lagi senario penggunaan, untuk mendapatkan keuntungan yang stabil dalam jangka panjang.

Kod sumber strategi
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="New Renaissance", shorttitle="New Renaissance", overlay=true,initial_capital=10000)

source = close

fastlength=input(12, minval=1)
slowlength=input(26,minval=1)
signallength=input(9,minval=1)

// === Defining the MACD oscillator
fastMA=ema(source,fastlength)
slowMA=ema(source,slowlength)
MACD=fastMA-slowMA
signal=sma(MACD,signallength)
delta=MACD-signal

// === Buy and Sell Signals ===
buy=crossover(MACD, signal)
sell=crossunder(MACD, signal)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2018, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 12,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 31,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2020, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy)    // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell)                   // exit long when "within window of time" AND crossunder