Tren Mengikuti Strategi Berdasarkan Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2024-01-18 12:23:59
Tag:

img

Gambaran umum

Strategi ini menggunakan garis EMA dari periode yang berbeda untuk membangun beberapa set sinyal perdagangan untuk pelacakan tren. Ketika harga pecah di bawah rata-rata bergerak periode yang lebih lama, strategi akan secara progresif membangun posisi panjang untuk menurunkan biaya rata-rata. Strategi ini juga menetapkan kondisi stop loss berdasarkan putaran rata-rata bergerak periode pendek untuk mengamankan keuntungan.

Logika Strategi

Strategi ini menggunakan 5 garis EMA dari periode yang berbeda untuk membangun sinyal perdagangan, yang merupakan EMA 10 hari, 20 hari, 50 hari, 100 hari dan 200 hari. Strategi ini mendefinisikan 4 kondisi pembelian berdasarkan hubungan harga dengan garis EMA ini untuk menerapkan perdagangan piramida.

Saat harga di bawah EMA 20 hari sementara di atas EMA 50 hari, sinyal beli pertama dipicu. Saat di bawah EMA 50 hari sementara di atas EMA 100 hari, sinyal beli kedua dipicu. Sinyal beli ketiga dan keempat dipicu ketika harga turun di bawah EMA 100 hari dan EMA 200 hari masing-masing. Ukuran posisi juga berkembang secara progresif dari qt1 ke qt4.

Pada sisi jual, ada dua kelompok kondisi stop loss. Yang pertama adalah untuk menghentikan kerugian ketika harga melampaui EMA 10 hari sementara EMA 10 hari berada di atas garis EMA lainnya. Yang kedua mirip tetapi keluar ketika harga turun di bawah penutupan sebelumnya dari EMA 10 hari. Kedua kondisi ini adalah untuk mengamankan keuntungan jangka pendek selama tren.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah kemampuan untuk secara otomatis melacak tren pasar untuk memegang jangka panjang. Dengan memanfaatkan beberapa kondisi masuk dan pembangunan posisi progresif, secara konstan mengurangi dasar biaya untuk menghasilkan hasil yang berlebihan.

Di sisi stop loss, strategi ini melacak titik balik rata-rata bergerak jangka pendek untuk dengan cepat mengambil keuntungan dan menghindari kerugian lebih lanjut.

Analisis Risiko

Risiko terbesar yang dihadapi strategi ini adalah terjebak dalam konsolidasi jangka panjang atau tren penurunan. Ketika pasar secara keseluruhan memasuki saluran berkisar atau menurun, sinyal rata-rata bergerak menjadi kurang dapat diandalkan. Ini dapat menyebabkan kerugian berkelanjutan dari konstruksi panjang yang berkelanjutan.

Hal lain yang berisiko adalah bahwa moving average tidak selalu menentukan turn secara akurat. celah harga atau pergerakan eksplosif dapat mengakibatkan sinyal yang salah. hal ini membutuhkan indikator teknis tambahan untuk verifikasi dan optimasi.

Arahan Optimasi

Indikator teknis lainnya seperti volume atau Bollinger Bands dapat dimasukkan ke dalam kondisi pembelian untuk lebih meningkatkan akurasi entri.

Lapisan kedua stop loss berdasarkan Bollinger Upper Band atau area pendukung utama juga dapat ditambahkan. Hal ini membantu menghindari stop loss kecil yang tidak perlu.

Kesimpulan

Strategi ini menerapkan tren setelah perdagangan melalui sistem rata-rata bergerak. Melalui bangunan posisi piramida, itu bertujuan untuk memaksimalkan pengembalian dari tren berkelanjutan sambil mengamankan pelestarian modal dengan mekanisme stop loss ganda. Ini adalah strategi yang layak untuk pelacakan lebih lanjut dan pengujian langsung. Parameter dan model dapat secara bertahap dioptimalkan berdasarkan kinerja praktis.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)

Lebih banyak