Strategi Panjang-Pendek Berdasarkan SMA


Tarikh penciptaan: 2023-11-22 15:42:29 Akhirnya diubah suai: 2023-11-22 15:42:29
Salin: 2 Bilangan klik: 596
1
fokus pada
1617
Pengikut

Strategi Panjang-Pendek Berdasarkan SMA

Gambaran keseluruhan

Strategi ini membina strategi berlubang yang mudah berdasarkan indikator SMA. Apabila harga melangkaui SMA 20 kitaran tinggi, dan apabila harga melanggar SMA 20 kitaran rendah, ia kosong. Di samping itu, terdapat mekanisme penarikan diri dari kerugian.

Prinsip Strategi

Strategi ini menggunakan SMA tertinggi dan terendah dalam tempoh 20 kitaran sebagai penunjuk untuk menentukan banyak ruang. Apabila harga melintasi SMA tertinggi, ia dianggap sedang dalam trend menaik, dan ia adalah lebih banyak. Apabila harga melanggar SMA terendah, ia dianggap sedang dalam trend menurun, dan ia adalah kosong.

Khususnya, strategi pertama mengira SMA 20 kitaran harga tertinggi dan harga terendah, dan melukis garis petunjuk. Kemudian, setkan logik perdagangan seperti berikut:

Memasuki harga penutupan dengan SMA tertinggi Permulaan berganda: harga ditutup apabila harga melepasi 0.99 kali SMA tertinggi

Permulaan kosong: harga penutupan apabila penutupan melampaui SMA terendah
Permulaan kosong: harga penutupan pada 1.01x SMA terendah

Dengan cara ini, anda boleh membina strategi multiroom yang mengikut trend.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Menggunakan penunjuk SMA untuk menentukan arah trend mudah dan praktikal
    1. HIGHEST SMA dan LOWEST SMA berperanan penting dalam penunjuk sebagai garis rintangan sokongan
    2. reka bentuk yang berpatutan untuk mengelakkan kerugian yang besar
    3. Sangat bersesuaian, boleh digunakan dalam pelbagai tempoh masa dan jenis

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Indeks SMA terlewat, mungkin terlepas titik perubahan trend
  2. Langkah-langkah berjaga-jaga terhadap kejadian kejutan pasaran yang tidak berkaitan
  3. Kesan kos urus niaga

Risiko-risiko ini boleh dikawal dan dikurangkan dengan cara-cara yang berpasangan dengan penunjuk-penunjuk lain, menetapkan parameter-parameter berhenti dan pengoptimuman.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Menggabungkan trend dengan penunjuk lain, seperti MACD, KDJ dan sebagainya
  2. Menambah mekanisme perlindungan terhadap kejadian yang tidak dijangka, seperti penangguhan kad, pengendalian keadaan luar biasa seperti had harga
  3. Mengoptimumkan parameter kitaran SMA untuk mencari kombinasi parameter terbaik
  4. Mengambil kira parameter terbaik untuk pelbagai jenis dan tempoh masa yang berbeza
  5. Menilai kesan kos dagangan, menetapkan paras paras dan penangguhan yang optimum

ringkaskan

Strategi ini jelas dan mudah dilaksanakan, dengan menilai trend kosong melalui indikator SMA, menetapkan mekanisme masuk dan keluar yang munasabah, dapat memperoleh kesan yang baik. Terdapat ruang untuk pengoptimuman lanjut, jika dikombinasikan dengan petunjuk dan teknik lain, dapat menjadi strategi yang bernilai untuk dijejaki jangka panjang.

Kod sumber strategi
/*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()