Strategi Palang Kematian Golden Cross


Tarikh penciptaan: 2023-10-11 16:33:18 Akhirnya diubah suai: 2023-10-11 16:33:18
Salin: 0 Bilangan klik: 676
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggunakan prinsip persilangan emas dan garpu mati rata-rata bergerak yang mudah untuk mewujudkan kedudukan panjang dan pendek saham. Apabila garis cepat menembusi garis perlahan dari arah bawah, lakukan lebih banyak; apabila garis cepat jatuh dari arah atas dan menembusi garis perlahan, lakukan kosong.

Prinsip Strategi

Strategi ini mula-mula menentukan masa permulaan dan akhir pengukuran dan kemudian menetapkan parameter pengiraan dua rata-rata, termasuk jenis rata-rata dan panjang kitaran.

Hitung nilai dua purata melalui fungsi getMAType (). Di mana fastMA adalah purata jangka pendek, dan slowMA adalah purata jangka panjang.

Strategi ini berbunyi:

  • Apabila fastMA diletakkan di atas slowMA, ia akan mengeluarkan isyarat long;

  • Apabila fastMA melalui slowMA, ia akan mengeluarkan isyarat short.

Akhirnya, dalam tempoh pengkajian semula, mengambil strategi kedudukan panjang apabila terdapat isyarat melakukan lebih banyak; mengambil strategi kedudukan kosong apabila terdapat isyarat melakukan lebih sedikit.

Analisis kelebihan

  • Strategi ini jelas dan mudah difahami.
  • Prinsip persilangan linear yang meluas digunakan untuk kebanyakan jenis saham.
  • Jenis dan parameter purata yang boleh disesuaikan.
  • Menggunakan struktur strategi kerucut, setiap bahagian berfungsi dengan jelas, memudahkan pengoptimuman kemudian.

Analisis risiko

  • Persaingan rata-rata mempunyai kemunduran dan mungkin kehilangan beberapa peluang perdagangan.
  • Ia tidak dapat menyaring pasaran yang bergolak dengan berkesan, dan ia mudah disekat.
  • Pengoptimuman parameter tidak mencukupi untuk menyeluruh sistem, memerlukan bantuan pengalaman tangan.
  • Tidak dapat mengawal risiko dan kerugian transaksi tunggal dengan berkesan.

Ia boleh dioptimumkan dengan lebih lanjut untuk risiko:

  1. Menambah penapis untuk petunjuk teknikal lain untuk mengenal pasti trend.

  2. Tambah strategi hentikan kerugian dan kawal kerugian tunggal.

  3. Memperkenalkan indikator kuantitatif dan lain-lain untuk mengelakkan pasaran yang bergolak.

  4. Membangunkan mekanisme pengoptimuman parameter untuk mencari kombinasi parameter terbaik secara automatik.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Tambah strategi berhenti kerugian, seperti menetapkan titik berhenti tetap atau mengesan berhenti kerugian, mengawal kerugian.

  2. Menambah strategi pengurusan kedudukan, seperti kedudukan tetap, kedudukan dinamik, mengawal risiko perdagangan.

  3. Menambah penapis, menggabungkannya dengan penunjuk teknikal lain untuk mengenal pasti trend dan meningkatkan kadar kemenangan.

  4. Pengaturan parameter yang dioptimumkan, mencari parameter optimum melalui grid search, regresi linear dan sebagainya.

  5. Kembangkan strategi perdagangan yang lebih kaya dengan melakukan lebih banyak strategi shorting, seperti berpatah balik, dan berpelbagai-pelbagai.

  6. Meningkatkan penunjuk tenaga untuk mengelakkan terjebak dalam gegaran.

  7. Berkembangnya pelbagai jenis dagangan, termasuk indeks saham, mata wang asing, mata wang digital dan lain-lain.

ringkaskan

Strategi ini berdasarkan prinsip persilangan rata-rata bergerak untuk mewujudkan pilihan saham yang panjang dan pendek. Idea strategi mudah difahami, digunakan secara meluas, beradaptasi, dan mempunyai nilai praktikal tertentu. Tetapi strategi ini juga mempunyai kelemahan tertentu, tidak dapat menapis guncangan dengan berkesan.

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

//@version=4
//strategy("Golden X BF Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2010, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() =>  true

///////////// MA Params /////////////
source1 = input(title="MA Source 1", defval=close)
maType1 = input(title="MA Type 1", defval="sma", options=["sma", "ema", "swma", "wma"])
length1 = input(title="MA Length 1", defval=50)

source2 = input(title="MA Source 2", defval=close)
maType2 = input(title="MA Type 2", defval="sma", options=["sma", "ema", "swma", "wma"])
length2 = input(title="MA Length 2", defval=200)

///////////// Get MA Function /////////////
getMAType(maType, sourceType, maLen) => 
    res = sma(close, 1)
    
    if maType == "ema"
        res := ema(sourceType, maLen)
    if maType == "sma"
        res := sma(sourceType, maLen)
    if maType == "swma"
        res := swma(sourceType)
    if maType == "wma"
        res := wma(sourceType, maLen)
    res
    
///////////// MA /////////////
fastMA = getMAType(maType1, source1, length1)
slowMA = getMAType(maType2, source2, length2)

long = crossover(fastMA, slowMA)
short = crossunder(fastMA, slowMA)

/////////////// Plotting /////////////// 
checkColor() => fastMA > slowMA
colCheck = checkColor() ? color.lime : color.red
p1 = plot(fastMA, color = colCheck, linewidth=1)
p2 = plot(slowMA, color = colCheck, linewidth=1)
fill(p1, p2, color = checkColor() ? color.lime : color.red)
bgcolor(long ? color.lime : short ? color.red : na, transp=20)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long", strategy.long, when=long)
    strategy.entry("Short", strategy.short, when=short)