Strategi perdagangan rata-rata pergerakan ganda berdasarkan indikator MACD


Tanggal Pembuatan: 2023-12-18 12:25:13 Akhirnya memodifikasi: 2023-12-18 12:25:13
menyalin: 1 Jumlah klik: 806
1
fokus pada
1621
Pengikut

Strategi perdagangan rata-rata pergerakan ganda berdasarkan indikator MACD

Ringkasan

Strategi ini disebutStrategi pelacakan MACD, Menggunakan indikator MACD biner linear Gold Fork Dead Fork sebagai sinyal perdagangan, digabungkan dengan harga terendah kemarin sebagai titik stop loss, melacak pergerakan garis pendek harga saham.

Prinsip Strategi

  1. Hitung garis cepat EMA ((close, 5), garis lambat EMA ((close, 8) dan garis sinyal SMA ((MACD, 3)
  2. Mendefinisikan sinyal multihead: melakukan lebih banyak ketika melewati jalur lambat pada jalur cepat
  3. Definisi sinyal kosong: cepat di bawah garis melewati garis lambat atau kosong saat harga tutup hari berada di bawah harga terendah kemarin
  4. Posisi yang dipegang sebesar modal awal $2000 dibagi dengan harga penutupan
  5. Stop loss multihead menggunakan sinyal kosong

Analisis Keunggulan

  1. Menggunakan indikator MACD untuk menilai area overbought dan oversold di pasar, bekerja sama dengan sinyal perdagangan yang dibentuk oleh garis ganda, untuk menghindari terobosan palsu
  2. Pelacakan Tren Jangka Pendek, Hentikan Kerugian
  3. Ada beberapa hal yang perlu diperhatikan dalam melakukan investasi.

Analisis risiko

  1. Indikator MACD terlambat, mungkin kehilangan kesempatan untuk short-line
  2. Sinyal perdagangan biner dapat menghasilkan sinyal palsu
  3. Stop loss terlalu radikal, kemungkinan stop loss terlalu sering

Arah optimasi

  1. Optimalkan kombinasi parameter MACD untuk meningkatkan sensitivitas indikator
  2. Meningkatkan penilaian tren untuk menghindari sinyal palsu yang dihasilkan oleh pasar yang bergoyang
  3. Mengukur volatilitas pasar dengan Indeks Volatilitas, dan menyesuaikan stop loss

Meringkaskan

Strategi ini menggunakan indikator kombinasi MACD klasik untuk menilai periode overbought dan oversold, menghasilkan sinyal perdagangan, serta memperkenalkan desain stop loss dari jumlah kepemilikan dinamis dan harga terendah hari sebelumnya, menangkap karakteristik pergerakan garis pendek harga saham, dan ide strategi keseluruhan jelas dan mudah dipahami, layak untuk diuji dan dioptimalkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-13 02:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// macd/cam v1 strategizing Chris Moody Macd indicator https://www.tradingview.com/script/OQx7vju0-MacD-Custom-Indicator-Multiple-Time-Frame-All-Available-Options/
// macd/cam v2 changing to macd 5,8,3
// macd/cam v2.1 
//      Sell when lower than previous day low. 
//      Initial capital of $2k. Buy/sell quantity of initial capital / close price
//      Quitar short action
//      Note: custom 1-week resolution seems to put AMD at 80% profitable

strategy(title="MACD/CAM 2.1", shorttitle="MACD/CAM 2.1") //
source = close
//get inputs from options
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
venderLowerPrev = input(true,title="Vender cuando closing price < previous day low?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(5, minval=1), slowLength=input(8,minval=1)
signalLength=input(3,minval=1)

// find exponential moving average of price as x and fastLength var as y
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
// simple moving average
signal = sma(macd, signalLength)
hist = macd - signal

outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime

circleYPosition = outSignal
 
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)

circleCondition = sd and cross(outMacD, outSignal)

// Determine long and short conditions
longCondition  = circleCondition and macd_color == lime

redCircle = circleCondition and macd_color == red
redCirclePrevLow = redCircle or low<low[1]
shortCondition = redCircle
if (venderLowerPrev)
    shortCondition = redCirclePrevLow

strategy.initial_capital = 20000
// Set quantity to initial capital / closing price
cantidad = strategy.initial_capital/close

// Submit orders
strategy.entry(id="long", long=true, qty=cantidad, when=longCondition)
strategy.close(id="long", when=shortCondition)
plot(circleCondition ? circleYPosition : na, title="Cross", style=cross, linewidth=10, color=macd_color)
// hline(0, '0 Line', linestyle=solid, linewidth=2, color=white)