Berdasarkan strategi rata-rata pergerakan ganda


Tanggal Pembuatan: 2024-02-21 14:43:26 Akhirnya memodifikasi: 2024-02-21 14:43:26
menyalin: 0 Jumlah klik: 606
1
fokus pada
1617
Pengikut

Berdasarkan strategi rata-rata pergerakan ganda

Ringkasan

Strategi ini menggunakan dua rata-rata bergerak untuk membentuk saluran untuk menangkap arah tren. Ini menghasilkan sinyal perdagangan ketika harga menembus saluran. Ini digabungkan dengan RSI untuk memfilter penembusan palsu.

Prinsip Strategi

Strategi ini menggunakan dua moving average dengan panjang 5, satu dari harga tertinggi dan satu dari harga terendah, untuk membentuk sebuah saluran harga. Jika harga penutupan menembus saluran di atas, maka Anda akan melakukan over dan jika Anda menembus saluran di bawah, maka Anda akan melakukan over.

Untuk memfilter terobosan palsu, juga diperkenalkan indikator RSI untuk menilai overbought dan oversold. Hanya melakukan overbought jika RSI lebih tinggi dari 80, dan melakukan shorting jika lebih rendah dari 20.

Selain itu, strategi ini hanya diperdagangkan pada jam perdagangan London (3am - 11am) dengan maksimal 5 pesanan per hari dan kerugian maksimum tidak lebih dari 2% dari ekuitas saham.

Analisis Keunggulan

Menangkap Tren

Dua rata-rata bergerak membangun saluran tren, dapat lebih baik menilai arah tren harga. Ketika harga naik menerobos saluran, menangkap tren naik harga; Ketika harga turun menerobos saluran, menangkap tren turun harga.

Mengurangi Penembusan Palsu

Kombinasi indikator RSI untuk menilai zona overbought dan oversold dapat mengurangi sebagian dari false breakout yang disebabkan oleh pergerakan harga.

Pengendalian Risiko yang Efektif

Strategi hanya melakukan perdagangan pada periode perdagangan aktif utama, dengan maksimal 5 pesanan per hari dapat secara efektif mengontrol frekuensi perdagangan; pengaturan kerugian maksimum 2% dapat mengontrol kerugian maksimum dalam satu hari dalam kisaran yang dapat diterima.

Analisis risiko

Risiko terobosan palsu saat harga bergejolak

Ketika harga bergejolak besar, mungkin ada beberapa sinyal false breakout, yang dapat menyebabkan kerugian perdagangan yang tidak perlu. Risiko ini dapat dikurangi dengan mengoptimalkan pengaturan parameter, atau menambahkan kondisi penyaringan.

Stop loss tetap untuk menghindari risiko

Strategi ini menggunakan stop loss dengan jumlah titik tetap. Jika harga mengalami fluktuasi besar, stop loss dengan jumlah titik tetap dapat ditutup. Untuk mengatasi hal ini, gunakan stop loss persentase atau stop loss dinamis.

Risiko yang terbatas pada waktu transaksi

Strategi hanya membuka posisi pada saat perdagangan tetap, jika tidak ada sinyal pada saat itu, peluang perdagangan potensial pada saat-saat lain akan terlewatkan. Anda dapat mempertimbangkan untuk memperpanjang waktu perdagangan secara tepat atau menyesuaikan secara dinamis sesuai dengan situasi waktu nyata.

Arah optimasi

Optimasi parameter

Anda dapat mengoptimalkan panjang rata-rata bergerak, parameter RSI, dan jumlah stop loss tetap untuk menemukan kombinasi parameter yang optimal.

Menambahkan kondisi filter

Indikator atau kondisi lain dapat ditambahkan untuk menguji ulang sinyal terobosan, seperti meningkatkan volume transaksi, mengurangi saluran Blink, dll, untuk mengurangi terobosan palsu.

Dinamika Stop Loss

Persentabilitas stop loss atau strategi stop loss dinamis dapat digunakan, bukan hanya stop loss dengan jumlah titik tetap, yang lebih baik untuk melindungi risiko perdagangan sepihak.

Dengan penilaian buatan.

Periksa sinyal secara manual, atau masuk hanya setelah konfirmasi penembusan, untuk menghindari penangkapan.

Meringkaskan

Strategi ini secara umum relatif sederhana dan praktis, dengan membangun saluran untuk menentukan arah tren melalui rata-rata bergerak ganda; Sementara indikator RSI dapat secara efektif memfilter beberapa false breakout. Dalam hal pengendalian risiko, membatasi waktu perdagangan dan kerugian maksimum dapat mengontrol risiko keseluruhan. Ruang optimasi relatif besar, dapat ditingkatkan dari pengoptimalan parameter, peningkatan mekanisme stop loss, dll.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-16 23:59:59
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/
// © SoftKill21
//@version=4
strategy(title="Moving Average", shorttitle="MA", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
len = input(5, minval=1, title="Length")
src = input(high, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = sma(src, len)
plot(out, color=color.white, title="MA", offset=offset)

len2 = input(5, minval=1, title="Length")
src2 = input(low, title="Source")
offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out2 = sma(src2, len2)
plot(out2, color=color.white, title="MA", offset=offset2)

length = input( 5 )
overSold = input( 10 )
overBought = input( 80 )
price = input(close, title="Source RSI")

vrsi = rsi(price, length)

longcond= close > out and close > out2 and vrsi > overBought
shortcont = close < out and close < out2 and vrsi < overSold
tp=input(150,title="tp")
sl=input(80,title="sl")


strategy.entry("long",1,when=longcond)
//strategy.close("long",when= close < out2)
strategy.exit("long_exit","long",profit=tp,loss=sl)

strategy.entry("short",1,when=shortcont)
//strategy.close("short",when=close >out)
strategy.exit("short_exit","short",profit=tp,loss=sl)

// maxOrder = input(6, title="max trades per day")
// maxRisk = input(2,type=input.float, title="maxrisk per day")
// strategy.risk.max_intraday_filled_orders(maxOrder)

// strategy.risk.max_intraday_loss(maxRisk, strategy.percent_of_equity)


// strategy.close_all(when =not timeinrange(timeframe.period, "0300-1100"))