
Strategi ini menggunakan indikator RSI untuk mengenal pasti isyarat overbought dan oversold, Brinks untuk menilai harga yang pecah, dan bentuk Gold Fork Dead Fork yang selaras, untuk menilai pasaran pada tahap yang berbeza dalam trend, dan menghasilkan keuntungan.
Strategi ini terdiri daripada beberapa bahagian utama:
Indeks RSI: Apabila garis indikator RSI melintasi garis overbuy yang ditetapkan atau melintasi garis oversell, lakukan operasi overdo atau short sesuai.
Boll band: Apabila harga menembusi Boll band, lakukan pengendalian kosong; Apabila harga jatuh di Boll band, lakukan pengendalian lebih banyak.
Garis purata: mengira harga tertinggi dan terendah dalam tempoh tertentu (seperti 5 kitaran), apabila harga lebih tinggi daripada titik tertinggi dalam 5 kitaran terakhir, buat lebih banyak; apabila harga lebih rendah daripada titik terendah dalam 5 kitaran terakhir, buat kosong.
MACD: Mengira garisan pantas, garisan perlahan dan garisan mati garisan emas MACD, sebagai penunjuk penilaian tambahan.
Antara indikator-indikator ini digabungkan, dalam keadaan trend, menggunakan Brin Belt untuk menentukan titik waktu penembusan harga dan pulangan ke arah sumbu tengah; dalam keadaan penumpuan, menggunakan penembusan garis rata untuk menangkap titik peralihan trend; dalam keadaan overbought oversold, menggunakan penghakiman kawasan nilai teratas RSI untuk mencapai operasi terbalik.
Strategi ini mempunyai beberapa kelebihan:
Kombinasi pelbagai petunjuk, penilaian tepat. RSI, Brin Belt, Garis Rata-rata dan lain-lain indikator saling mengesahkan, menjadikan isyarat perdagangan lebih dipercayai.
Ia sesuai untuk pelbagai situasi. Pergerakan trend menggunakan jalur Brin, perdagangan menyeluruh menggunakan garis rata-rata, perdagangan overbought dan oversold menggunakan RSI, pelbagai situasi dapat ditangani.
Frekuensi operasi sederhana. Tetapan parameter penunjuk lebih berhati-hati, mengelakkan perdagangan yang terlalu kerap.
Struktur program jelas. Kod ditulis mengikut spesifikasi, mudah dibaca dan digunakan semula.
Strategi ini mempunyai beberapa risiko:
Pengaturan parameter berisiko. Pengaturan parameter penunjuk yang tidak betul boleh menyebabkan ralat isyarat perdagangan. Parameter pengoptimuman perlu diuji berulang.
Risiko pertukaran kosong berbilang kepala. Pertukaran kosong berbilang kepala mungkin lebih kerap pada titik perubahan pasaran, dan kos urus niaga akan meningkat. Anda boleh menyesuaikan masa memegang dengan sewajarnya.
Programming Implementation Risk. Mungkin terdapat beberapa kesilapan logik yang sukar dikesan dalam kod, yang menyebabkan transaksi yang tidak normal. Perlu untuk menyelesaikan pemprosesan yang tidak normal dan log.
Strategi ini juga boleh dioptimumkan dalam beberapa arah:
Tambah strategi henti rugi untuk mengunci keuntungan dan mengurangkan kerugian.
Gabungan dengan penunjuk jumlah urus niaga, untuk mengelakkan isyarat palsu. Sebagai contoh, semak jumlah urus niaga semasa menembusi Brin.
Menambah algoritma pembelajaran mesin, menggunakan latihan data sejarah, parameter pengoptimuman automatik.
Tambahan persembahan grafik untuk menunjukkan prestasi strategi secara langsung.
Mengoptimumkan pengulangan dan memilih kombinasi parameter terbaik.
Strategi ini menggunakan pelbagai indikator seperti garis rata, Brinband, RSI, dan lain-lain untuk membuat keputusan melalui kombinasi indikator untuk membentuk isyarat perdagangan. Kelebihan strategi adalah kemampuan beradaptasi yang kuat, penilaian yang tepat; risiko terutamanya dalam parameter dan prosedur yang dilaksanakan, yang memerlukan pengujian yang terus dioptimumkan.
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("MD strategy", overlay=true)
lengthrsi = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
source = close
lengthbb = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
direction = input(0, title = "Strategy Direction",minval=-1, maxval=1)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
consecutiveBarsUp = input(3)
consecutiveBarsDown = input(3)
lengthch = input( minval=1, maxval=1000, defval=5)
upBound = highest(high, lengthch)
downBound = lowest(low, lengthch)
ups = price > price[1] ? nz(ups[1]) + 1 : 0
dns = price < price[1] ? nz(dns[1]) + 1 : 0
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
basis = sma(source, lengthbb)
dev = mult * stdev(source, lengthbb)
upper = basis + dev
lower = basis - dev
vrsi = rsi(price, lengthrsi)
if (not na(vrsi))
if (crossover(vrsi, overSold))
strategy.entry("RsiLE", strategy.long, comment="RsiLE")
if (crossunder(vrsi, overBought))
strategy.entry("RsiSE", strategy.short, comment="RsiSE")
if (crossover(source, lower))
strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if (crossunder(source, upper))
strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
if (not na(close[lengthch]))
strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)