Strategi ini menghasilkan sinyal perdagangan berdasarkan salib emas rata-rata bergerak jangka pendek dan jangka panjang untuk menentukan titik masuk, dan menetapkan titik stop loss untuk posisi keluar. Ini adalah strategi trend berikut yang khas. Ini cocok untuk pasar dengan tren naik yang jelas, yang memungkinkan untuk mengikuti tren dan mendapatkan keuntungan dari momentum naik, dan keluar segera ketika tren berbalik.
Strategi ini terutama menggunakan persilangan rata-rata bergerak jangka pendek dan jangka panjang untuk menentukan tren pasar.
Hitung rata-rata bergerak sederhana 3 hari short_ma sebagai rata-rata bergerak jangka pendek.
Hitung rata-rata bergerak sederhana 19 hari long_ma sebagai rata-rata bergerak jangka panjang.
Ketika short_ma melintasi di atas long_ma, sinyal panjang dihasilkan.
Ketika harga naik di atas harga masuk * (1 + stop loss %), tutup semua posisi.
Ketika short_ma melintasi di bawah long_ma, sinyal pendek dihasilkan.
Backtest dalam rentang waktu tertentu untuk membatasi periode operasi strategi.
Perdagangan hanya ketika trend_ma rata-rata bergerak 100 hari menunjukkan tren naik.
Strategi ini memanfaatkan salib emas dari moving average. Selama tren naik yang berkelanjutan, sinyal panjang yang dihasilkan ketika short_ma melintasi di atas long_ma memungkinkan untuk menangkap peluang. Sinyal pendek ketika short_ma melintasi di bawah long_ma membantu mengelola risiko.
Keuntungan dari strategi ini:
Logika yang sederhana dan mudah dimengerti berdasarkan crossover rata-rata bergerak.
Aturan masuk dan keluar yang jelas yang mengikuti tren dan mengelola risiko.
Hentikan kerugian untuk mengunci keuntungan ketika tren berbalik.
Hanya berdagang ketika tren keseluruhan naik untuk menghindari sinyal palsu.
Periode rata-rata bergerak yang dapat disesuaikan dengan pasar yang berbeda.
Backtest selama periode tertentu memungkinkan validasi.
Risiko dari strategi ini:
Sensitif terhadap pengaturan parameter, pengaturan yang berbeda mempengaruhi kinerja.
Kurva yang disesuaikan dengan data historis, tidak efektif dalam anomali.
Tidak dapat menangani kesenjangan harga, risiko melebihi stop loss.
Cenderung untuk dicambuk di berbagai pasar.
Hanya bekerja di pasar tren yang jelas, tidak untuk sisi.
Pemilihan periode backtest mempengaruhi hasil.
Strategi ini dapat ditingkatkan dalam hal berikut:
Uji set parameter yang berbeda untuk menemukan nilai optimal.
Menggabungkan indikator lain seperti MACD, Bollinger Bands untuk meningkatkan keputusan.
Gunakan stop loss trailing dinamis untuk mengontrol risiko dengan lebih baik.
Mengoptimalkan masuk, logis keluar, seperti masuk kabur.
Uji ketahanan dalam kondisi pasar yang berbeda.
Jelajahi pembelajaran mesin untuk pengaturan parameter dan generasi sinyal.
Tambahkan penanganan kesenjangan harga dan skenario stop loss whipsaw.
Strategi yang sederhana dan efektif ini menangkap tren naik menggunakan penyeberangan rata-rata bergerak dan mengelola risiko melalui stop loss. Ini berkinerja baik di pasar tren yang kuat tetapi memiliki keterbatasan. Optimasi dan pengujian lebih lanjut diperlukan untuk meningkatkan ketahanan. Secara keseluruhan memiliki logika yang jelas, mudah dimengerti dan diimplementasikan, cocok untuk pemula untuk belajar.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m 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/ // © Ta3MooChi //@version=5 strategy("전략", overlay=true,process_orders_on_close = true, pyramiding = 100) short_ma = ta.sma(close,input.int(3, "단기 이평", minval = 1)) long_ma = ta.sma(close, input.int(19,"장기 이평", minval = 1)) trend_ma = ta.sma(close, input.int(100," 추세 이평", minval = 20, group = "추세 이평")) up_trend = (trend_ma > trend_ma[1]) use_trend_ma = input.bool(true, title = "추세용 이평 사용", group = "추세 이평" ) inTrendMa = not use_trend_ma or up_trend useDateFilter = input.bool(true, title = "특정 기간 백테스트", group = "기간 백테스트") backtestStartDate = input(timestamp("1 Jan 2021"), title = "시작날짜", group = "기간 백테스트") backtestEndDate = input(timestamp("1 Jan 2022"), title = "종료날짜", group = "기간 백테스트") inTradeWindow = true longStopPerc = 1 + input.float(3, "최소수익률%", minval = 1)*0.01 longcondition = ta.crossover(short_ma, long_ma) shortcondition = ta.crossunder(short_ma, long_ma) if (longcondition) and inTradeWindow and inTrendMa strategy.entry("long", strategy.long) if (shortcondition) and (close > strategy.position_avg_price*longStopPerc) and inTradeWindow strategy.close_all() if not inTradeWindow and inTradeWindow[1] strategy.cancel_all() strategy.close_all(comment = "매매 종료") plot(short_ma,color = color.yellow) plot(long_ma,color = color.blue) plot(trend_ma,color = color.gray)