Strategi mengikuti tren berdasarkan rata-rata pergerakan


Tanggal Pembuatan: 2024-01-18 12:23:59 Akhirnya memodifikasi: 2024-01-18 12:23:59
menyalin: 1 Jumlah klik: 344
1
fokus pada
1212
Pengikut

Strategi mengikuti tren berdasarkan rata-rata pergerakan

Ringkasan

Strategi ini adalah strategi pelacakan tren berdasarkan rata-rata. Ini menggunakan rata-rata EMA dari periode yang berbeda untuk membangun beberapa sinyal perdagangan dan memungkinkan perdagangan pelacakan tren.

Prinsip Strategi

Strategi ini menggunakan 5 garis rata-rata EMA yang berbeda untuk membangun sinyal perdagangan. Mereka adalah garis 10, 20, 50, 100 dan 200. Strategi ini menetapkan 4 set kondisi pembelian berdasarkan hubungan harga dengan garis rata-rata ini, untuk mencapai kenaikan piramida.

Ketika harga di bawah garis 20 dan di atas garis 50, memicu pembelian kelompok pertama; Ketika harga di bawah garis 50 dan di atas garis 100 memicu pembelian kelompok kedua; Ketika harga di bawah garis 100 dan di atas garis 200 memicu pembelian kelompok ketiga; Ketika harga di bawah garis 200 memicu pembelian kelompok keempat. Jumlah pembelian juga meningkat secara bertahap, masing-masing qt1, qt2, qt3 dan qt4.

Dalam hal menjual, strategi ini menggunakan dua set kondisi stop loss secara bersamaan. Set pertama adalah ketika harga lebih tinggi dari garis 10 hari dan garis 10 hari lebih tinggi dari rata-rata lainnya; Set kedua adalah ketika harga lebih rendah dari garis 10 hari sebelumnya dan garis 10 hari lebih tinggi dari rata-rata lainnya.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah dapat secara otomatis melacak tren pasar untuk mencapai kepemilikan garis panjang. Melalui beberapa kelompok membeli kondisi dan batch penambahan posisi, dapat terus-menerus mengurangi biaya pembelian, untuk mendapatkan keuntungan tambahan.

Dalam hal stop loss, strategi juga dirancang secara optimal. Turning point, yang melacak rata-rata jangka pendek ke atas, dapat berhenti dengan cepat dan mengunci keuntungan. Ini menghindari risiko peningkatan kerugian lebih lanjut.

Analisis risiko

Risiko terbesar yang dihadapi oleh strategi ini adalah terjebak dalam kondisi penyesuaian garis panjang. Sinyal garis rata tidak dapat diandalkan ketika pasar besar berada di saluran yang bergoyang atau turun. Ini memungkinkan untuk terus membeli dan memegang posisi, menanggung kerugian yang lebih besar.

Risiko lain adalah bahwa garis rata-rata tidak selalu akurat. Pertumbuhan harga dalam jangka pendek atau ekspansinya dapat menyebabkan garis rata-rata mengirimkan sinyal yang salah. Ini perlu diverifikasi dan dioptimalkan dalam kombinasi dengan indikator teknis lainnya.

Arah optimasi

Anda dapat mempertimbangkan untuk menambahkan indikator teknis lainnya dalam kondisi pembelian, seperti indikator volume transaksi, sinyal Bollinger Bands, dan lain-lain. Ini dapat meningkatkan tingkat keberhasilan pembelian lebih lanjut.

Anda juga dapat menambahkan Boll up-track atau key-support sebagai stop-loss kedua. Ini dapat mengurangi stop-loss kecil yang tidak perlu. Atau Anda dapat menambahkan stop-loss mobile yang dapat menyesuaikan stop-loss secara real-time, yang juga dapat mengunci keuntungan lebih lanjut.

Meringkaskan

Strategi ini menggunakan sistem linier untuk melakukan perdagangan pelacakan tren. Dengan menaikkan posisi secara piramida, Anda dapat memaksimalkan keuntungan dari tren. Pada saat yang sama, Anda juga dapat mengatur kondisi berhenti ganda untuk melindungi keamanan dana Anda. Ini adalah strategi yang layak untuk dilacak dan divalidasi dalam jangka panjang. Parameter dan model dapat terus disesuaikan dengan kondisi aktual.

Kode 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)