MA Strategi Dagangan Crossover Berdasarkan Crossover Purata Bergerak Jangka Pendek dan Jangka Panjang

Penulis:ChaoZhang, Tarikh: 2024-02-22 15:36:49
Tag:

img

Ringkasan

Strategi ini adalah strategi perdagangan crossover purata bergerak yang mudah berdasarkan crossover purata bergerak jangka pendek dan jangka panjang. Ia menggunakan purata bergerak 34 tempoh dan 89 tempoh untuk memerhatikan crossover mereka semasa sesi pagi sebagai isyarat beli dan jual. Apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang dari bawah, isyarat beli dihasilkan. Apabila melintasi di bawah dari atas, isyarat jual dihasilkan.

Logika Strategi

Logik teras strategi ini adalah berdasarkan persilangan antara purata bergerak jangka pendek dan jangka panjang sebagai isyarat perdagangan. Khususnya, strategi mendefinisikan purata bergerak sederhana jangka pendek dan jangka panjang (SMA) jangka pendek 34 dan 89 tempoh. Ia hanya memerhatikan persilangan antara kedua-dua SMA ini semasa sesi pagi (08:00 - 10:00). Apabila SMA jangka pendek melintasi di atas SMA jangka panjang dari bawah, pasaran dianggap berada dalam trend menaik, sehingga menghasilkan isyarat beli. Apabila SMA jangka pendek melintasi di bawah SMA jangka panjang dari atas, pasaran dianggap berada dalam trend menurun, sehingga menghasilkan isyarat jual.

Apabila menerima isyarat beli atau jual, strategi akan memasuki kedudukan dan menetapkan syarat untuk keluar dari kedudukan, iaitu mengambil keuntungan selepas memegang untuk sebilangan tertentu lilin (default adalah 3 lilin) sejak masuk. Ini membolehkan kunci dalam keuntungan separa dan mengelakkan kerugian lanjut.

Perlu diingat bahawa strategi ini hanya mengenal pasti isyarat silang semasa sesi pagi. Ini kerana bingkai masa ini mempunyai jumlah dagangan yang lebih tinggi dan isyarat perubahan trend lebih boleh dipercayai. Bingkai masa lain mempunyai turun naik harga yang lebih besar dan lebih mudah menghasilkan isyarat palsu.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan peraturan silang purata bergerak yang mudah dan universal, mudah difahami, sesuai untuk pemula

  2. Hanya mengenal pasti isyarat semasa sesi pagi di mana isyarat kualiti berlimpah, yang menapis isyarat palsu semasa bingkai masa lain

  3. Mempunyai keadaan stop loss yang membolehkan stop loss tepat pada masanya, mengunci keuntungan separa dan mengurangkan risiko kerugian

  4. Banyak parameter yang boleh disesuaikan yang boleh diselaraskan berdasarkan keadaan pasaran dan gaya perdagangan peribadi

  5. Mudah diperluaskan untuk digabungkan dengan penunjuk lain untuk merancang strategi yang lebih kompleks

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko, terutamanya dari aspek berikut:

  1. Purata bergerak sendiri mempunyai sifat yang lebih ketinggalan, mungkin terlepas titik pembalikan harga jangka pendek

  2. Bergantung hanya pada penunjuk mudah, terdedah kepada kegagalan dalam persekitaran pasaran tertentu (godaan trend, terhad julat, dll.)

  3. Penempatan stop loss yang tidak betul boleh menyebabkan kerugian yang tidak perlu

  4. Tetapan parameter yang tidak betul (periode purata bergerak, tempoh penahan, dll.) juga boleh menjejaskan prestasi strategi

Penyelesaian yang sepadan:

  1. Menggabungkan penunjuk utama lain untuk meningkatkan kepekaan terhadap perubahan jangka pendek

  2. Tambah keadaan penapisan untuk mengelakkan terjejas oleh isyarat palsu semasa kejutan dan pasaran terhad julat

  3. Mengoptimumkan logik stop loss dan menyesuaikan julat stop loss secara dinamik berdasarkan turun naik pasaran

  4. Pengoptimuman pelbagai parameter untuk mencari tetapan parameter optimum

Arahan pengoptimuman

Strategi ini juga mempunyai potensi yang besar untuk pengoptimuman, terutamanya dari aspek berikut:

  1. Tambah keadaan penapisan lain untuk mengelakkan isyarat palsu semasa kejutan dan pasaran terhad julat

  2. Menggabungkan penunjuk momentum untuk mengenal pasti isyarat pecah yang lebih kuat

  3. Mengoptimumkan parameter tempoh purata bergerak untuk mencari kombinasi parameter terbaik

  4. Mengoptimumkan julat stop loss secara automatik berdasarkan turun naik pasaran

  5. Cuba untuk mengoptimumkan keseluruhan strategi secara automatik berdasarkan teknik pembelajaran mesin

  6. Cuba digabungkan dengan strategi lain untuk merancang sistem pelbagai strategi yang lebih kompleks

Kesimpulan

Secara umum, strategi ini agak mudah dan praktikal, sesuai untuk pemula untuk belajar. Ia mewujudkan corak khas strategi crossover purata bergerak dan menggunakan berhenti untuk mengawal risiko. Walau bagaimanapun, pengoptimuman lanjut boleh dibuat untuk meningkatkan prestasi untuk lebih banyak keadaan pasaran. Pelabur boleh memanfaatkan rangka kerja asas ini untuk merancang strategi perdagangan kuantitatif yang lebih maju.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)

// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")

// Define morning session
morning_session = input("0800-1000", "Morning Session")

// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)

// Function to check if current time is within specified session
in_session(session) =>
    session_start = na(time(timeframe.period, "0800-1000")) ? na : true
    session_start

// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)

// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)

// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
    trade_entry_bar := bar_index
if (not na(trade_entry_bar))
    trade_exit_bar := trade_entry_bar + exit_candles

// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)
if (exit_condition)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)


Lebih lanjut