Strategi Panah Crossover Rata-rata Bergerak Ganda


Tanggal Pembuatan: 2023-11-21 17:00:49 Akhirnya memodifikasi: 2023-11-21 17:00:49
menyalin: 0 Jumlah klik: 604
1
fokus pada
1617
Pengikut

Strategi Panah Crossover Rata-rata Bergerak Ganda

Ringkasan

Strategi ini menentukan kapan harus membeli dan menjual dengan menghitung crossover MACD. Strategi ini memetakan bentuk panah pada grafik untuk memberi sinyal perdagangan.

Prinsip

Strategi ini pertama-tama menghitung garis cepat (EMA 12), garis lambat (EMA 26), dan MACD. Kemudian, berdasarkan garis cepat dan garis lambat, dan nilai positif-negatif dari MACD untuk menentukan waktu beli dan jual:

  1. Ketika garis cepat melewati garis lambat (goldfork) dan MACD diferensial melewati 0 sebagai sinyal beli
  2. Sinyal jual saat garis cepat melewati garis lambat (dead fork) dan MACD di bawah nilai 0

Untuk menyaring sinyal palsu, kode juga menilai status sinyal dari K-line sebelumnya. Hanya jika K-line saat ini adalah sinyal terbalik (atau membeli untuk menjual atau menjual untuk membeli), sinyal saat ini akan dipicu.

Selain itu, kode ini juga memetakan gambar panah di K-Line untuk menginstruksikan waktu pembelian dan penjualan.

Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan penilaian crossover dua garis sejajar, dapat secara efektif menyaring kebisingan pasar dan mengidentifikasi tren
  2. Pengukuran MACD dapat mencegah kesalahan dalam pengukuran
  3. Dengan menggunakan panah, Anda bisa memperingatkan waktu untuk membeli dan menjual dengan lebih jelas.
  4. Peraturan sederhana dan jelas, mudah dipahami dan disalin

Risiko dan Solusi

Strategi ini juga memiliki beberapa risiko:

  1. Garis rata ganda mudah menghasilkan sinyal palsu, yang dapat menyebabkan overtrading. Parameter garis rata dapat disesuaikan dengan tepat atau menambahkan kondisi penyaringan lainnya untuk mengurangi sinyal palsu
  2. Tidak dapat menilai tren yang bergoyang, kemungkinan kerugian. Hal ini dapat dihindari dengan indikator tren seperti ADX
  3. Kondisi pembelian dan penjualan yang tetap membuat strategi menjadi mekanis, tidak dapat beradaptasi dengan perubahan pasar. Anda dapat mencoba metode adaptasi seperti pembelajaran mesin untuk mengoptimalkannya.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Uji kombinasi parameter yang berbeda untuk menemukan garis cepat, lambat, dan parameter MACD terbaik
  2. Menambahkan persyaratan masuk, seperti volume transaksi yang menerobos untuk memfilter sinyal
  3. Menambahkan mekanisme stop loss untuk mengendalikan kerugian tunggal
  4. Indikator volatilitas seperti VIX untuk menilai preferensi risiko
  5. Mencoba model pembelajaran mesin untuk menggantikan aturan tetap, untuk mengoptimalkan strategi yang beradaptasi

Meringkaskan

Strategi cross arrow ini secara keseluruhan relatif sederhana dan praktis, dengan penilaian cross cross dan penyaringan MACD, Anda dapat mengidentifikasi titik jual beli dalam tren garis tengah dan panjang, dan menghindari perubahan harga yang terlewat. Petunjuk panah juga membuat operasi lebih jelas dan jelas.

Kode Sumber Strategi
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Daniels stolen code
strategy(shorttitle="Daniels Stolen Code", title="Daniels Stolen Code", overlay=true, calc_on_order_fills=true, pyramiding=0)

//Define MACD Variables
fast = 12, slow = 26
fastMACD = ema(hlc3, fast)
slowMACD = ema(hlc3, slow)
macd = fastMACD - slowMACD
signal = sma(macd, 9)
hist = macd - signal
currMacd = hist[0]
prevMacd = hist[1]
currPrice = hl2[0]
prevPrice = hl2[1]

buy = currPrice > prevPrice and currMacd > prevMacd
sell = currPrice < prevPrice and currMacd < prevMacd
neutral = (currPrice < prevPrice and currMacd > prevMacd) or (currPrice > prevPrice and currMacd < prevMacd)
//Plot Arrows

timetobuy = buy==1 and (sell[1]==1 or (neutral[1]==1 and sell[2]==1) or (neutral[1]==1 and neutral[2]==1 and sell[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and sell[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and sell[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and sell[6]==1))
timetosell = sell==1 and (buy[1]==1 or (neutral[1]==1 and buy[2]==1) or (neutral[1]==1 and neutral[2]==1 and buy[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and buy[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and buy[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and buy[6]==1))

plotshape(timetobuy, color=blue, location=location.belowbar, style=shape.arrowup)
plotshape(timetosell, color=red, location=location.abovebar, style=shape.arrowdown)
//plotshape(neutral, color=black, location=location.belowbar, style=shape.circle)


//Test Strategy
// strategy.entry("long", true, 1, when = timetobuy and time > timestamp(2017, 01, 01, 01, 01)) // buy by market if current open great then previous high
// strategy.close("long", when = timetosell and time > timestamp(2017, 01, 01, 01, 01))

strategy.order("buy", true, 1, when=timetobuy==1 and time > timestamp(2019, 01, 01, 01, 01))
strategy.order("sell", false, 1, when=timetosell==1 and time > timestamp(2019, 01, 01, 01, 01))



// strategy.entry(id = "Short", long = false, when = enterShort())
// strategy.close(id = "Short", when = exitShort())

//strategy.entry("long", true, 1, when = open > high[1]) // enter long by market if current open great then previous high
// strategy.exit("exit", "long", profit = 10, loss = 5) // ge