Strategi dagangan purata bergerak tempoh berbilang masa


Tarikh penciptaan: 2023-10-09 15:05:47 Akhirnya diubah suai: 2023-10-09 15:05:47
Salin: 0 Bilangan klik: 671
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggabungkan EMA rata-rata dengan pelbagai parameter yang berbeza dan penunjuk tenaga kuantitatif EOM, untuk membuat keputusan trend dalam tempoh masa yang berbilang, membina garis panjang dan garis pendek. Strategi ini bertujuan untuk menggunakan resonansi jangka masa yang berbilang dari garis rata-rata berkala untuk mencari pergerakan trend yang lebih berkesan.

Prinsip Strategi

Strategi ini menggunakan empat kumpulan EMA purata parameter untuk tempoh yang berbeza, iaitu 13 kitaran, 21 kitaran, 50 kitaran dan 180 kitaran EMA. Empat kumpulan EMA purata ini membina pelbagai dimensi masa untuk menilai trend harga dan mencari corak trend yang lebih berkesan.

Strategi menggunakan EOM kuantitatif untuk mengesahkan trend. EOM yang digabungkan dengan jumlah dagangan dan harga turun naik, dapat menentukan arah jual beli. Strategi menilai EOM lebih besar daripada 0 sebagai pasaran bertopeng, EOM kurang daripada 0 sebagai pasaran kosong.

Strategi menetapkan dua pilihan, pilihan 1 adalah apabila EMA jangka pendek melakukan lebih banyak semasa EMA jangka panjang, dan EMA jangka pendek melambatkan EMA jangka panjang. Pilihan 2 adalah apabila EMA jangka pendek melakukan lebih banyak semasa EMA jangka menengah, dan EMA jangka pendek melambatkan EMA jangka menengah semasa EMA jangka pendek. Kedua-dua pilihan dapat menghakimi lebih menyeluruh pengesahan trend.

Kelebihan Strategik

  • Menggunakan EMA jangka masa untuk menilai trend, corak trend yang lebih panjang dapat dikesan
  • Indeks Kuantiti EOM memberi penilaian yang lebih baik mengenai arah jual beli dan mengelakkan salah arah untuk penyesuaian sementara
  • Dua pilihan untuk masuk, untuk mengesan trend dengan lebih jelas
  • Mengambil langkah berturut-turut untuk mengurangkan kerugian tunggal

Risiko Strategik

  • EMA rata-rata mempunyai keterlambatan dan mungkin terlepas perubahan cepat
  • Indeks tenaga boleh memberi isyarat yang salah
  • Penghakiman berbilang syarat menyebabkan kemasukan tidak jelas
  • Kemusnahan ganti tangan berlapis mungkin terlalu mekanikal

Arah pengoptimuman

  • Lebih banyak kombinasi parameter boleh diuji EMA kitaran, mencari parameter yang optimum
  • Indeks lain boleh ditambah untuk pengesahan kemasukan, seperti MACD dan sebagainya
  • Stop loss bergerak boleh digunakan untuk menjejaki trend
  • Peratusan kedudukan kedudukan yang boleh disesuaikan dengan keadaan pasaran

ringkaskan

Strategi ini menggabungkan penilaian EMA jangka masa dan penapisan penunjuk kuantitatif untuk trend dan penghapusan Noise. Terdapat banyak ruang untuk pengoptimuman, dan kestabilan strategi dapat ditingkatkan lagi dengan menguji kombinasi parameter yang berbeza dan menambahkan lebih banyak penunjuk.

Kod sumber strategi
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 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/
// © SoftKill21

//@version=4
strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

//ema x 4
ema1l=input(13)
ema2l=input(21)
ema3l=input(50)
ema4l=input(180)

ema1=ema(close,ema1l)
ema2=ema(close,ema2l)
ema3=ema(close,ema3l)
ema4=ema(close,ema4l)

long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4
long2 = crossover(ema1,ema2) and crossover(ema1,ema3)

short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4
short2= crossunder(ema1,ema2) and crossunder(ema1,ema3)


//eom
length = input(14, minval=1)
div = input(10000, title="Divisor", minval=1)
eom = sma(div * change(hl2) * (high - low) / volume, length)


option1=input(true)
option2=input(false)

if(option1)
    strategy.entry("long",1,when=long1 and eom>0)
    strategy.close("long",when=short1 and eom<0)
 
if(option2)
    strategy.entry("long",1,when=long2 and eom>0)
    strategy.close("long",when=short2 and eom<0)