Berdasarkan strategi salib emas purata bergerak berganda dan salib kematian


Tarikh penciptaan: 2024-02-27 16:21:02 Akhirnya diubah suai: 2024-02-27 16:21:02
Salin: 0 Bilangan klik: 686
1
fokus pada
1617
Pengikut

Berdasarkan strategi salib emas purata bergerak berganda dan salib kematian

Gambaran keseluruhan

Strategi ini adalah strategi persilangan rata-rata bergerak yang tipikal, yang menggunakan dua kumpulan rata-rata, satu kumpulan rata-rata cepat, dan satu kumpulan rata-rata perlahan pada masa yang sama. Ia menghasilkan isyarat beli apabila ia melintasi rata-rata perlahan di atas rata-rata pantas; ia menghasilkan isyarat menjual apabila ia melintasi rata-rata perlahan di bawah rata-rata pantas.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan pada persilangan dua kumpulan garis rata-rata pantas untuk menilai masa masuk dan keluar.

Pertama, kita mengira dua set garis purata perlahan:

  • Kumpulan pertama EMA pantas, tempoh 8 hari
  • Kumpulan kedua EMA pantas, tempoh 21 hari
  • Kumpulan pertama, SMA perlahan, 50 hari
  • Kumpulan kedua, SMA perlahan, 200 hari

Kemudian, tentukan sama ada EMA pantas adalah EMA emas atau EMA lambat adalah EMA mati:

  • Jika EMA pada hari ke-8 melebihi SMA pada hari ke-50, ia adalah isyarat garpu emas.
  • Jika 8 hari EMA di bawah 50 hari SMA, untuk isyarat dead fork

Untuk menyaring isyarat palsu, kumpulan kedua EMA ditambah dengan pengesahan SMA:

  • Sinyal perdagangan hanya akan dikeluarkan apabila EMA 21 hari juga telah naik atau turun melalui SMA 50 hari

Oleh itu, dengan dua set pengesahan garis lurus yang cepat dan perlahan, banyak isyarat palsu dapat disaring, yang meningkatkan kebolehpercayaan isyarat.

Apabila keputusan menghasilkan isyarat beli, masuk lebih banyak; apabila keputusan menghasilkan isyarat jual, masuk kosong.

Selain itu, strategi ini juga menetapkan logik stop stop loss. Apabila memegang kedudukan, harga stop dan stop loss akan dikesan berdasarkan peratusan keuntungan dan kerugian yang ditetapkan.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Menggunakan gabungan dua hala yang sama, ia boleh menapis isyarat palsu dengan berkesan, meningkatkan ketepatan isyarat
  2. Menggunakan gabungan EMA dan SMA, menggabungkan sensitiviti EMA terhadap perubahan harga terkini dan kehalusan SMA
  3. Tetapkan Stop Loss untuk mengunci keuntungan dan mengawal risiko
  4. Prinsip-prinsip yang mudah difahami dan diubah suai
  5. Parameter yang boleh disesuaikan untuk persekitaran pasaran yang berbeza

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Strategi garis rata mudah menghasilkan lebih banyak keuntungan kecil dan kerugian kecil yang bergolak
  2. Ia boleh menyebabkan kerugian yang lebih besar apabila trend berubah secara mendadak.
  3. Penetapan parameter yang tidak betul juga boleh menjejaskan hasil keuntungan

Untuk mengawal risiko, disarankan untuk:

  1. Menyesuaikan set parameter yang sesuai dengan keadaan pasaran yang berbeza
  2. Parameter pengoptimuman berdasarkan hasil tinjauan semula untuk menjadikan strategi lebih sesuai dengan pasaran sasaran
  3. Tetapan stop loss untuk mengawal saiz kerugian tunggal

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Uji lebih banyak kombinasi garis rata-rata perlahan untuk mencari kombinasi parameter terbaik
  2. Menggunakan pembelajaran mesin atau algoritma genetik untuk mencari parameter keunggulan secara automatik
  3. Meningkatkan Indeks Trend dan Elakkan Perdagangan Berlawanan
  4. Tambah Stop Loss atau Stop Loss untuk lebih baik mengunci keuntungan
  5. Peningkatan kebolehpercayaan isyarat yang digabungkan dengan jumlah dagangan atau indikator turun naik
  6. Kombinasi pelbagai strategi / pelbagai jenis, menggunakan risiko penyebaran yang tidak berkaitan

ringkaskan

Secara keseluruhannya, strategi binari ini mempunyai ciri-ciri yang sederhana, intuitif, mudah dilaksanakan, dan mempunyai ciri-ciri seperti signal perdagangan yang dibentuk oleh persilangan garis lurus yang cepat dan perlahan, menetapkan risiko kawalan hentikan dan hentikan. Strategi ini dapat dioptimumkan mengikut parameter pasaran dan permintaan, dan juga boleh digunakan dengan indikator teknikal atau kombinasi strategi lain, dan mempunyai kegunaan yang baik dalam perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JMLSlop

//@version=4

src = close
strategy("Crossover moving averages", shorttitle="Cross MA-EMA", overlay=true, calc_on_order_fills=false)

// first fast EMA
len = input(8, "Length", type=input.integer, minval=1)
doma1 = input(true, title="EMA")
out1 = ema(src, len) 

//Second fast EMA
len2 = input(21, minval=1, title="Length")
doma2 = input(true, title="EMA")
out2 = ema(src, len2)

//First slow MA
len3 = input(50, minval=1, title="Length")
doma3 = input(true, title="SMA")
out3 = sma(src, len3)

//Second slow MA
len4 = input(200, minval=1, title="Length")
doma4 = input(true, title="SMA")
out4 = sma(src, len4)

// Profit
profit = input(8, "Profit/lost %", type=input.float, minval=1) * 0.01


plot(doma1 and out1 ? out1: na, color=color.blue, linewidth=1, title="1st EMA")
plot(doma2 and out2 ? out2: na, color=color.red, linewidth=1, title="2nd EMA")
plot(doma3 and out3 ? out3: na, color=color.green, linewidth=2, title="1st MA")
plot(doma4 and out4 ? out4: na, color=color.orange, linewidth=3, title="2nd MA")

// Orders config
takeProfitPrice =
     (strategy.position_size > 0) ? strategy.position_avg_price + open*profit : (strategy.position_size < 0) ? strategy.position_avg_price - (open*profit) : na

longStopPrice  = strategy.position_avg_price * (1 - profit)
shortStopPrice = strategy.position_avg_price * (1 + profit)

longCondition2 = (out2>out3 and (crossover(out1, out4) or crossover(out1[1], out4[1]) or crossover(out1[2], out4[2]) or (crossover(out1[3], out4[3]))) or (out2>out3 and (crossover(out1, out3) or crossover(out1[1], out3[1]) or crossover(out1[2], out3[2]) or crossover(out1[3], out3[3]))))
if (longCondition2)
    strategy.entry("Enter L", strategy.long)

shortCondition2 = (out2<out3 and (crossunder(out1, out4) or crossunder(out1[1], out4[1]) or crossunder(out1[2], out4[2]) or crossunder(out1[3], out4[3]))) or (out2<out3 and (crossunder(out1, out3) or crossunder(out1[1], out3[1]) or crossunder(out1[2], out3[2]) or crossunder(out1[3], out3[3])))
if (shortCondition2)
    strategy.entry("Enter S", strategy.short)


if (strategy.position_size > 0)
    strategy.exit("Exit L", limit=takeProfitPrice, stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit("Exit S", limit=takeProfitPrice, stop=shortStopPrice)