Strategi Dagangan Stokastik MACD Dwi


Tarikh penciptaan: 2023-09-22 16:55:55 Akhirnya diubah suai: 2023-09-22 16:55:55
Salin: 0 Bilangan klik: 806
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggabungkan penunjuk MACD berganda dan penunjuk StochRSI secara rawak untuk membuat keputusan isyarat perdagangan. MACD berganda menggunakan tetapan parameter yang berbeza untuk mencapai kesan perlahan-lahan, dan StochRSI digunakan untuk mengesahkan belakang yang kuat. Strategi ini juga memasukkan penilaian trend dan kawalan risiko keadaan berhenti.

Prinsip Strategi

Strategi ini menilai isyarat dagangan berdasarkan indikator berikut:

  • Dual MACD: MACD pantas menggunakan parameter kitaran pendek, MACD perlahan menggunakan parameter kitaran panjang, untuk mencapai kesan halus yang berbeza.

  • StochRSI: Mengira nilai tertinggi dan rendah RSI dalam tempoh tertentu untuk menentukan sama ada RSI berada dalam keadaan overbought dan oversold.

Peraturan untuk menilai isyarat dagangan:

  • Buat lebih: MACD cepat melalui 0 dan MACD lambat melalui 0 SttochRSI berada dalam keadaan oversold dan K melalui D dan dalam trend naik.

  • Belah: MACD pantas melalui 0 dan MACD perlahan melalui 0 dan StochRSI berada dalam keadaan overbought dan melalui D di bawah K dan dalam trend menurun.

Kelebihan Strategik

  • Pengesahan MACD berganda dapat mengelakkan penembusan palsu dan meningkatkan kualiti isyarat.

  • StochRSI menilai keadaan overbought dan oversold, mengelakkan daripada mengejar kejatuhan.

  • Mengambil kira arah trend besar, mengurangkan kerugian perdagangan yang berlawanan.

  • Menerapkan pengesahan pelbagai kerangka masa untuk meningkatkan keberkesanan isyarat.

  • Tetapkan risiko kawalan terhad kepada syarat-syarat Hentikan Kerosakan

Analisis risiko

  • MACD mudah menghasilkan isyarat palsu yang memerlukan pengesahan penapisan lanjut.

  • StochRSI parameter yang tidak betul boleh kehilangan peluang perdagangan.

  • Penetapan titik henti yang tidak munasabah mungkin terlalu konservatif atau radikal.

  • Tidak ada strategi pengurusan pegangan dan tidak dapat menghentikan kerugian secara dinamik.

Ia boleh dioptimumkan dengan:

  1. Syarat penapis seperti peningkatan jumlah transaksi atau sudut rata-rata.

  2. Optimumkan parameter StochRSI atau masukkan penunjuk rawak lain.

  3. Dinamika penyesuaian titik hentian, jejak hentian.

  4. Tambah modul pengurusan kedudukan, menyesuaikan kedudukan secara dinamik mengikut prestasi strategi.

Arah pengoptimuman strategi

Strategi ini bertujuan untuk mengoptimumkan:

  1. Mengoptimumkan parameter penunjuk dan meningkatkan kesan penunjuk.

  2. Menambah syarat penyaringan untuk menyaring isyarat palsu.

  3. Mengoptimumkan strategi hentian kerugian, mewujudkan hentian kerugian dinamik.

  4. Memperkenalkan pengurusan kedudukan, menyesuaikan kedudukan mengikut kesan strategi.

  5. Menambah modul pembelajaran mesin untuk mengoptimumkan secara automatik menggunakan data besar.

ringkaskan

Strategi ini mengambil kira pelbagai indikator untuk membentuk isyarat perdagangan yang lebih kuat. Tetapi masih perlu mengoptimumkan parameter, penapisan isyarat, dan stop loss dinamik untuk mengurangkan perdagangan yang tidak perlu dan meningkatkan kebarangkalian keuntungan. Secara keseluruhan, strategi ini masuk akal dan ada ruang untuk pengoptimuman yang baik.

Kod sumber strategi
/*backtest
start: 2023-09-14 00:00:00
end: 2023-09-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2



//This strategy is an ongoing work in progress. Last updated 8/6/16.
//Feel free to modify it as you see fit, if you do borrow code then send me a link so I 
//can see and maybe borrow some of your code to improve this.
//Thanks to ChrisMoody who I stole the code for setting custom resolution from.
//
//more info in comments at end of script





strategy("MACDouble & StochRSI w/ safeties v0.3", overlay=true)

source = close
useCurrentRes = input(true, title="Uncheck to use custom res./intrv. for 2nd MACD indicator")
resCustom = input(title="Resolution/interval to use for 2nd MACD:",  defval="45")
res = useCurrentRes ? timeframe.period : resCustom

useCurrentRes2 = input(true, title="Uncheck to use custom res/intrv for StochRSI")
resCustom2 = input(title="Resolution to use for StochRSI indicator:",  defval="45")
res2 = useCurrentRes2 ? timeframe.period : resCustom2


//MACD1
fastLength = input(10, title="MACD fast length")
slowlength = input(21, title="MACD slow length")
sigLength = input(9, title="MACD signal length")

MACD = ema(source, fastLength) - ema(source, slowlength)
signal = sma(MACD, sigLength)
delta = MACD - signal



//MACD2
fastLength2 = input(31, title= "2nd MACD fast length")
slowlength2 = input(63, title= "2nd MACD slow length")
sigLength2 = input(30, title= "2nd MACD signal length")

MACD2 = ema(source, fastLength2) - ema(source, slowlength2)
signal2 = sma(MACD2, sigLength2)
delta2 = MACD2 - signal2

MACDRes = security(syminfo.tickerid, res, MACD2)
signalRes = security(syminfo.tickerid,res, signal2)
deltaRes = security(syminfo.tickerid, res, delta2)


uptrend = (close + high)/(close[1] + high[2])
downtrend = (close + low)/(close[1] + low[2])

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(11, minval=1)
lengthStoch = input(11, minval=1)
src = close

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
RSI_buyTrig = input(90)
RSI_sellTrig = input(20)

kRes = security(syminfo.tickerid, res2, k)
dRes = security(syminfo.tickerid, res2, d)


if (delta > 0) and (year>2012) and (deltaRes > 0) and (uptrend > 1) and (  kRes and dRes < RSI_buyTrig) and (kRes > dRes)
    strategy.entry("buy", strategy.long, comment="buy")
    

if (delta < 0) and (year>2012) and (deltaRes < 0) and (downtrend < 1) and ( kRes and dRes > RSI_sellTrig) and (kRes < dRes)
    strategy.entry("sell", strategy.short, comment="sell")
	strategy.exit("sell", loss = 9000)



//  RELEASE NOTES, ETC
//
// The core starting idea for this backtesting script came from the desire to have two traditional
//MACD indicators: one 'fast' and one 'slow'. The slow one is to pretty much smooth out noisy signals
//so that short term changes in price are ignored (ideally). 
//	A brief version history
//		v0.1 - Basic two MACD indicators script
//      v0.2 - Added StochRSI indicator
//      v0.21- Added primitive uptrend/downtrend safety condition 
//      v0.22- Added changable time resolution for MACDslow
//      v0.23- Added exit safeties conditional on loss threshold   
//      v0.3 - Added changeable resolution for StochRSI
//	Future changes planned for next release:
//		-Fine tuning exit safeties
//      -Major overhaul of trade logic/triggers (may be forked as a different script)
//
//I am more than happy to discuss any difficulties you are having, questions about the script, or improvement suggestions.
//I am not a coder and my background is actually in economics, so feel free to debug ;)
//Feel free to tip me on the indcluded bitcoin address on TV as well
// tradingview.com/u/RyanMartin 
// [email protected]