Strategi mengikut arah aliran berdasarkan purata bergerak


Tarikh penciptaan: 2024-01-18 12:23:59 Akhirnya diubah suai: 2024-01-18 12:23:59
Salin: 1 Bilangan klik: 347
1
fokus pada
1212
Pengikut

Strategi mengikut arah aliran berdasarkan purata bergerak

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend berdasarkan garis rata. Ia menggunakan EMA rata-rata dari pelbagai kitaran untuk membina beberapa set isyarat perdagangan, mewujudkan perdagangan trend. Apabila harga jatuh ke arah garis rata-rata jangka panjang, anda harus mengambil lebih banyak kedudukan secara beransur-ansur, mengurangkan kos purata harga.

Prinsip Strategi

Strategi ini menggunakan 5 garis rata-rata EMA yang berbeza untuk membina isyarat perdagangan. Mereka adalah garis 10, 20, 50, 100 dan 200. Strategi ini menetapkan 4 set syarat pembelian berdasarkan hubungan harga dengan garis rata-rata ini, untuk mewujudkan kenaikan piramid.

Apabila harga berada di bawah garis 20 dan di atas garis 50 hari, mencetuskan pembelian kumpulan pertama; apabila harga berada di bawah garis 50 hari dan di atas garis 100 hari, mencetuskan pembelian kumpulan kedua; apabila harga berada di bawah garis 100 hari dan di atas garis 200 hari, mencetuskan pembelian kumpulan ketiga; apabila harga berada di bawah garis 200 hari, mencetuskan pembelian kumpulan keempat. Jumlah pembelian juga meningkat secara beransur-ansur, iaitu qt1, qt2, qt3 dan qt4

Dalam aspek menjual, strategi menggunakan dua set syarat berhenti pada masa yang sama. Kumpulan pertama adalah apabila harga lebih tinggi daripada garis 10 hari dan garis 10 hari lebih tinggi daripada garis rata-rata lain; kumpulan kedua adalah apabila harga lebih rendah daripada garis 10 hari hari sebelumnya dan garis 10 hari lebih tinggi daripada garis rata-rata lain. Kedua-dua set syarat ini dapat mengunci keuntungan garis pendek di tengah dengan berkesan.

Analisis kelebihan

Kelebihan terbesar strategi ini adalah bahawa ia dapat mengikuti trend pasaran secara automatik untuk memegang garis panjang. Dengan pelbagai syarat pembelian dan kenaikan saham secara berturut-turut, kos pembelian dapat terus dikurangkan dan keuntungan tambahan dapat diperoleh. Pada masa yang sama, ia juga mengelakkan risiko harga yang dibawa oleh satu titik pembelian.

Strategi juga telah dioptimumkan untuk menghentikan kerugian. Dengan menjejaki titik perubahan rata-rata jangka pendek ke atas, anda boleh menghentikan kerugian dengan cepat dan mengunci keuntungan. Ini mengelakkan risiko kerugian yang lebih meluas.

Analisis risiko

Risiko terbesar yang dihadapi oleh strategi ini adalah terjebak dalam keadaan penyesuaian garis panjang. Isyarat garis lurus tidak boleh dipercayai apabila pasaran utama berada di saluran yang bergolak atau turun. Ia mungkin untuk terus membeli dan memegang kedudukan, menanggung kerugian yang lebih besar.

Satu lagi titik risiko ialah garis purata tidak selalu tepat. Harga dalam jangka pendek melompat atau pergerakan ekspansi boleh menyebabkan garis purata menghantar isyarat yang salah. Ini perlu disahkan dan dioptimumkan bersama-sama dengan petunjuk teknikal lain.

Arah pengoptimuman

Anda boleh mempertimbangkan untuk menambah penilaian indikator teknikal lain dalam syarat pembelian, seperti indikator kuantiti transaksi, isyarat Bollinger Bands, dan sebagainya. Ini dapat meningkatkan lagi kadar kejayaan pembelian.

Anda juga boleh memasukkan Boll atas landasan atau sokongan utama sebagai garisan penangguhan lapisan kedua dalam keadaan menjual. Ini dapat mengurangkan penangguhan kecil yang tidak perlu. Atau anda boleh memasukkan fungsi penangguhan bergerak untuk menyesuaikan garisan penangguhan dalam masa nyata, yang juga dapat mengunci keuntungan lebih lanjut.

ringkaskan

Strategi ini menggunakan sistem garis lurus untuk mengikuti trend. Dengan menaikkan saham secara berturut-turut, anda dapat memperoleh keuntungan maksimum dari trend. Pada masa yang sama, anda juga menetapkan syarat berhenti berganda untuk melindungi keselamatan dana. Ini adalah strategi yang bernilai dijejaki dan disahkan dalam jangka masa panjang.

Kod sumber strategi
/*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)