Strategi Perdagangan Golden Cross dan Death Cross


Tanggal Pembuatan: 2023-10-31 14:37:38 Akhirnya memodifikasi: 2023-10-31 14:37:38
menyalin: 0 Jumlah klik: 810
1
fokus pada
1617
Pengikut

Strategi Perdagangan Golden Cross dan Death Cross

Ringkasan

Gagasan utama dari strategi ini adalah menggunakan sinyal forks emas dan forks mati dari indikator EMA untuk melakukan operasi beli dan jual. Ini secara bersamaan memetakan beberapa set EMA cepat dan lambat, dan menggunakan persimpangan mereka untuk menilai sinyal perdagangan.

Prinsip Strategi

Strategi ini pertama-tama mendefinisikan beberapa set rata-rata EMA, termasuk rata-rata EMA cepat dari ema1 ke ema6 dan rata-rata EMA lambat dari ema7 ke ema12. Kemudian didefinisikan sinyal beli buy_signal dan sinyal jual sell_signal:

  • Buy_signal dibuat ketika ema1 ditimpa ema3
  • SELL_SIGNAL dihasilkan saat melewati EMA3 di bawah EMA1

Dengan demikian, ketika EMA jangka pendek melewati EMA jangka panjang, berarti pasar berada dalam tren naik, membeli; ketika EMA jangka pendek melewati EMA jangka panjang, berarti pasar berada dalam tren turun, menjual.

Strategi untuk menentukan arah tren dengan memantau persimpangan garis rata-rata EMA untuk membuat keputusan pembelian dan penjualan.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Menggunakan indikator EMA rata-rata untuk menilai tren, EMA rata-rata lebih halus terhadap perubahan harga, dapat menyaring kebisingan pasar jangka pendek, membuat sinyal perdagangan lebih dapat diandalkan.

  2. Menggambar beberapa set garis rata-rata EMA pada saat yang sama dapat memberikan penilaian yang lebih akurat tentang perubahan tren. Perpotongan garis EMA yang cepat dan lambat dapat menghindari kehilangan titik perubahan tren yang penting.

  3. Strategi sederhana dan jelas, sinyal perdagangan melalui EMA cross, mudah dipahami dan diterapkan, cocok untuk perdagangan kuantitatif.

  4. Parameter siklus EMA yang dapat disesuaikan, dapat disesuaikan dengan varietas dan pasar yang berbeda, dan fleksibel dalam menanggapi perubahan pasar.

Analisis risiko

Strategi ini juga memiliki risiko sebagai berikut:

  1. EMA rata-rata memiliki keterlambatan dan dapat menunda sinyal perdagangan.

  2. Pilihan kombinasi parameter EMA yang salah dapat menghasilkan sinyal perdagangan yang salah.

  3. EMA tidak dapat secara efektif menyaring sinyal palsu yang disebabkan oleh zona getaran.

  4. Ada risiko overadaptasi, dan parameter EMA memiliki ruang yang terbatas untuk dioptimalkan.

Tanggapan:

  1. Filtrasi dilakukan dengan kombinasi indikator lain untuk menghindari sinyal yang salah di area getaran.

  2. Uji stabilitas parameter dari berbagai siklus untuk mencegah overfitting.

  3. Menyesuaikan portofolio parameter strategi atau menambah mekanisme Exit, untuk mengendalikan risiko.

Arah optimasi

Strategi ini juga dapat dioptimalkan dalam beberapa hal:

  1. Meningkatkan strategi stop loss, stop loss keluar setelah kerugian mencapai tingkat tertentu.

  2. Menambahkan mekanisme untuk masuk kembali ke pasar, yaitu mengatur sinyal untuk membeli dan menjual kembali.

  3. Mengoptimalkan kombinasi parameter EMA lintas siklus untuk membeli dan menjual, mencari parameter optimal.

  4. Menambahkan penilaian indikator lainnya, melakukan verifikasi multi faktor, meningkatkan kualitas sinyal.

  5. Uji optimasi parameter dari berbagai varietas untuk mencari ruang lingkup yang optimal.

  6. Mempertimbangkan faktor slippage dalam perdagangan disk, melakukan pengukuran dan penyesuaian.

Meringkaskan

Strategi ini menggunakan EMA rata-rata untuk menentukan arah tren, membeli dan menjual berdasarkan sinyal silang, dan merupakan strategi pelacakan tren yang lebih sederhana. Ini memiliki keuntungan dalam menentukan perubahan tren, tetapi juga memiliki risiko keterlambatan dan interval getaran.

Kode Sumber Strategi
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Companion Strategy script to my Cloud Study. Enjoy! -MP
// study("MP's Cloud Study", overlay=true)
strategy(title="MP's Cloud Strat'", shorttitle="MP's Cloud Strat", overlay=true, precision=6, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity,calc_on_order_fills= false, calc_on_every_tick=false, default_qty_value=100.0, commission_type=strategy.commission.percent, commission_value=0.05)

//bgcolor ( color=black, transp=20, title='Blackground', editable=true)

src = close, len1 = input(2, minval=1, title="Short EMA")
src2 = close, len3 = input(7, minval=1, title="Long EMA")
emaShort = ema(src, len1)
emaLong = ema(src2, len3)


StartYear = input(2018, "Start Year")
StartMonth = input(01, "Start Month")
StartDay = input(18, "Start Day")

 
StopYear = input(2018, "Stop Year")
StopMonth = input(12, "Stop Month")
StopDay = input(26, "Stop Day")
tradeStop = timestamp(StopYear,StopMonth,StopDay,0,0)

//src = close, 
//len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(3, minval=1, title="Fast EMA 2")
//len3 = input(8, minval=1, title="Fast EMA 3")
len4 = input(5, minval=1, title="Fast EMA 4")
len5 = input(8, minval=1, title="Fast EMA 5")
len6 = input(10, minval=1, title="Fast EMA 6")
//Slow EMA
len7 = input(30, minval=1, title="Slow EMA 7")
len8 = input(35, minval=1, title="Slow EMA 8")
len9 = input(40, minval=1, title="Slow EMA 9")
len10 = input(45, minval=1, title="Slow EMA 10")
len11 = input(50, minval=1, title="Slow EMA 11")
len12 = input(60, minval=1, title="Slow EMA 12")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
//Slow EMA
ema7 = ema(src, len7)
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)

//Fast EMA Color Rules
//colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6)
//Slow EMA Color Rules
//colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 
//colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 
//Fast EMA Final Color Rules
//colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
//colFinal2 = colslowL  ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=silver)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=silver)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=silver)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=silver)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=silver)
p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=silver)
fill(p1,p2,color=silver, transp=60)
//Slow EMA Plots
//p3=plot(ema7, title="Slow EMA 7", style=line, linewidth=4, color=colFinal2)
//plot(ema8, title="Slow EMA 8", style=line, linewidth=3, color=colFinal2)
//plot(ema9, title="Slow EMA 9", style=line, linewidth=3, color=colFinal2)
//plot(ema10, title="Slow EMA 10", style=line, linewidth=3, color=colFinal2)
//plot(ema11, title="Slow EMA 11", style=line, linewidth=3, color=colFinal2)
//p4=plot(ema12, title="Slow EMA 12", style=line, linewidth=4, color=colFinal2)
//fill(p3,p4, color=silver, transp=60)



//Plot the Ribbon
ma1=plot( emaShort,color=rising(emaShort,2)?green:red,linewidth=1,join=true,transp=20,title="Short")
ma2=plot( emaLong,color=rising(emaLong,2)?green:red,linewidth=1,join=true,transp=20,title="Long")
fcolor = emaShort>emaLong?green:red
fill(ma1,ma2,color=fcolor,transp=80,title="Ribbon Fill")


//fast = 4, slow = 16
//fastMA = ema(close, fast)
//slowMA = ema(close, slow)
//plot(fastMA, color=green, title = "buy/sell")
//plot(slowMA, color=red, title = "base")


//Conditions
buy_signal = crossover(ema1,ema3)
sell_signal = crossunder(ema1,ema3)

plotshape(sell_signal, style=shape.triangleup, color = red, text="Start Short")
plotshape(buy_signal, style=shape.triangledown, color = green, text="Start Long")

alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01')
alertcondition(buy_signal, title = 'Buy/Long', message =  'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01')

//alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency')
//alertcondition(buy_signal, title = 'Buy/Long', message =  'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency')


testStartYear = input(2018, "From Year") 
testStartMonth = input(1, "From Month")
testStartDay = input(1, "From Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "To Year")
testStopMonth = input(1, "To Month")
testStopDay = input(1, "To Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

if testPeriod()
    if buy_signal
        strategy.entry("Long", true)
    

    if sell_signal
        strategy.close("Long")