Strategi Perdagangan Stokastik MACD Ganda


Tanggal Pembuatan: 2023-09-22 16:55:55 Akhirnya memodifikasi: 2023-09-22 16:55:55
menyalin: 0 Jumlah klik: 806
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggabungkan indikator MACD ganda dengan indikator StochRSI acak untuk menilai sinyal perdagangan. MACD ganda menggunakan pengaturan parameter yang berbeda untuk mencapai efek cepat dan lambat, StochRSI digunakan untuk memverifikasi backlink kuat. Strategi ini juga menambahkan penilaian tren dan risiko pengendalian kondisi stop loss.

Prinsip Strategi

Strategi ini menilai sinyal perdagangan berdasarkan indikator berikut:

  • Dual MACD: MACD cepat menggunakan parameter siklus pendek, MACD lambat menggunakan parameter siklus panjang, untuk mencapai efek halus yang berbeda.

  • StochRSI: Menghitung nilai tertinggi dan terendah RSI dalam periode tertentu untuk menentukan apakah RSI berada dalam keadaan overbought atau oversold.

Peraturan untuk menilai sinyal perdagangan:

  • Lakukan lebih banyak: MACD cepat melewati nol dan MACD lambat melewati nol, StochRSI oversold dan K-line melewati D-line, dan dalam tren naik.

  • Keringan: MACD cepat melewati nol dan MACD lambat melewati nol, StochRSI berada dalam kondisi overbought dan melewati garis K di bawah garis D, dan berada dalam tren menurun.

Keunggulan Strategis

  • Verifikasi MACD ganda mencegah penembusan palsu dan meningkatkan kualitas sinyal.

  • StochRSI menilai kondisi overbought dan oversold, menghindari kebocoran dan penurunan.

  • Mengingat arah tren besar, mengurangi kerugian perdagangan yang berlawanan.

  • Implementasi multi-frame verifikasi indikator untuk meningkatkan efektivitas sinyal.

  • Setting Stop Loss Condition Control Risk.

Analisis risiko

  • MACD dapat menghasilkan sinyal palsu yang memerlukan verifikasi filter lebih lanjut.

  • Jika parameter StochRSI tidak disetel dengan benar, peluang perdagangan bisa terlewatkan.

  • Pengaturan titik tolak yang tidak masuk akal mungkin terlalu konservatif atau radikal.

  • Kurangnya strategi manajemen kepemilikan, tidak dapat menghentikan kerugian secara dinamis.

Hal ini dapat dioptimalkan dengan:

  1. Kondisi penyaringan seperti peningkatan volume transaksi atau sudut rata-rata.

  2. Optimalkan parameter StochRSI atau masukkan indikator acak lainnya.

  3. Dinamis menyesuaikan titik berhenti, melacak stop loss.

  4. Menambahkan modul manajemen posisi, menyesuaikan posisi secara dinamis sesuai dengan kinerja strategi.

Arah optimasi strategi

Strategi ini bertujuan untuk mengoptimalkan:

  1. Optimalkan parameter indikator untuk meningkatkan efektivitas indikator.

  2. Menambahkan kriteria penyaringan, memfilter sinyal palsu.

  3. Mengoptimalkan strategi stop loss, untuk mencapai stop loss yang dinamis.

  4. Memperkenalkan manajemen posisi, menyesuaikan posisi sesuai dengan efek strategi.

  5. Menambahkan modul pembelajaran mesin untuk mengoptimalkan otomatisasi data besar.

Meringkaskan

Strategi ini mempertimbangkan berbagai indikator untuk membentuk sinyal perdagangan yang lebih kuat. Namun, tetap perlu mengoptimalkan pengaturan parameter, memfilter lebih lanjut sinyal, dan stop loss dinamis, untuk mengurangi perdagangan yang tidak perlu, dan meningkatkan probabilitas keuntungan. Secara keseluruhan, strategi ini masuk akal, dan ada ruang untuk pengoptimalan yang baik.

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