Strategi dorongan berganda berasaskan SMA

Penulis:ChaoZhang, Tarikh: 2023-11-22 15:42:29
Tag:

img

Ringkasan

Strategi ini membina strategi dorongan berganda yang mudah berdasarkan penunjuk SMA. Ia pergi lama apabila harga melintasi di atas SMA tertinggi 20 tempoh dan pergi pendek apabila harga melintasi di bawah SMA terendah 20 tempoh.

Logika Strategi

Strategi ini menggunakan SMA 20 tempoh harga tertinggi dan harga terendah untuk menentukan hala tuju perdagangan. Apabila harga melintasi di atas SMA tertinggi, ia dianggap sebagai trend menaik, jadi pergi panjang. Apabila harga melintasi di bawah SMA terendah, ia dianggap sebagai trend menurun, jadi pergi pendek.

Secara khusus, strategi ini mula-mula mengira SMA 20 tempoh harga tertinggi tertinggi dan terendah terendah, dan merangka garis penunjuk. Logik perdagangan berikut kemudian ditetapkan:

Masuk panjang: Harga penutupan melintasi di atas SMA tertinggi
Keluar panjang: Harga penutupan melintasi di bawah 0.99 * SMA tertinggi

Pendaftaran pendek: Harga penutupan melintasi di bawah SMA terendah
Keluar pendek: Harga penutupan melintasi di atas 1.01 * SMA terendah

Jadi trend mengikuti strategi dorongan berganda dibina.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan SMA untuk menentukan arah trend adalah mudah dan praktikal
  2. SMA tertinggi dan SMA terendah bertindak sebagai garis sokongan / rintangan
  3. Reka bentuk stop loss yang munasabah untuk memaksimumkan perlindungan daripada kerugian besar
  4. Kemudahan penyesuaian yang baik, boleh digunakan pada produk dan jangka masa yang berbeza

Analisis Risiko

Terdapat juga beberapa risiko dengan strategi ini:

  1. SMA mempunyai kesan kelewatan, mungkin terlepas titik perubahan trend
  2. Tiada perlindungan daripada peristiwa pasaran yang tiba-tiba
  3. Kesan kos dagangan tidak dipertimbangkan

Risiko ini boleh dikawal dan dikurangkan dengan cara seperti menggabungkan penunjuk lain, menetapkan stop loss, penyesuaian parameter dan lain-lain.

Arahan Penambahbaikan

Strategi ini juga boleh ditingkatkan dalam aspek berikut:

  1. Gabungkan penunjuk lain seperti MACD, KDJ untuk menentukan trend
  2. Tambah perlindungan untuk kejadian tiba-tiba seperti penangguhan, had harga dan lain-lain
  3. Mengoptimumkan tempoh SMA, mencari kombinasi parameter terbaik
  4. Cari parameter terbaik untuk produk dan jangka masa yang berbeza
  5. Menganggarkan kesan kos dagangan, menetapkan stop loss yang optimum dan mengambil keuntungan

Kesimpulan

Logik keseluruhan strategi ini jelas dan mudah dilaksanakan. Dengan menggunakan SMA untuk menentukan arah trend, dan menetapkan peraturan kemasukan / keluar yang munasabah, hasil yang baik dapat dicapai. Terdapat ruang untuk pengoptimuman lanjut, dan dengan digabungkan dengan teknik lain, ia boleh menjadi strategi yang menjanjikan yang bernilai penjejakan jangka panjang.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 10m
basePeriod: 1m
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/
// © AlanAntony

//@version=4


strategy("ma 20 high-low",overlay=true)

//compute the indicators

smaH = sma(high, 20)
smaL = sma(low, 20)


//plot the indicators
plot(smaH,title="smaHigh", color=color.green, linewidth=2)


plot(smaL,title="smaLow", color=color.red, linewidth=2)


//trading logic
enterlong = crossover(close,smaH) //positive ema crossover
exitlong = crossunder(close,0.99*smaH)  //exiting long


entershort = crossunder(close,smaL) //negative EMA Crossover
exitshort = crossover(close,1.01*smaH) //exiting shorts


notintrade = strategy.position_size<=0
bgcolor(notintrade ? color.red:color.green)

//execution logic

start = timestamp(2015,6,1,0,0)
//end = timestamp(2022,6,1,0,0)

if time >= start
    strategy.entry( "long", strategy.long,1, when = enterlong)
    strategy.entry( "short", strategy.short,1, when = entershort) 
    
    strategy.close("long", when = exitlong)
    strategy.close("short", when = exitshort)

//if time >= end
   // strategy.close_all()

Lebih lanjut