Strategi mengikut arah aliran berdasarkan purata bergerak dan purata turun naik sebenar


Tarikh penciptaan: 2024-01-12 11:14:01 Akhirnya diubah suai: 2024-01-12 11:14:01
Salin: 1 Bilangan klik: 539
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan purata bergerak dan purata turun naik sebenar

Gambaran keseluruhan

Strategi ini menggunakan purata bergerak dan purata kadar turun naik sebenar untuk menilai arah trend pasaran, dan mengikuti perdagangan mengikut arah trend.

Prinsip Strategi

Strategi ini menggunakan purata bergerak masa len dan rata-rata pergerakan sebenar masa len 2 kaliatr untuk menilai trend pasaran. Peraturan penilaian khusus adalah:

Apabila harga terendah lebih besar daripada purata bergerak ditambah rata-rata kadar turun naik sebenar, ia dianggap sebagai trend naik.
Apabila harga tertinggi lebih kecil daripada purata bergerak tolak purata kadar pergerakan sebenar ((high < ma - atr), dinilai sebagai trend menurun。

Dalam kes-kes lain, keputusan yang dibuat sebelum ini akan kekal.

Dalam menilai trend naik, apabila dibenarkan untuk melakukan lebih banyak, lakukan lebih banyak mengikut perkadaran tertentu.
Dalam menilai trend menurun, apabila dibenarkan untuk melakukan blanja, lakukan blanja mengikut perkadaran tertentu.

Syarat setar adalah untuk mencapai tarikh akhir dagangan yang ditetapkan.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan purata bergerak untuk menilai arah trend secara kasar, dan mengelakkan tertipu oleh turun naik jangka pendek pasaran.
  2. Menggunakan purata kadar turun naik sebenar untuk menetapkan hentian dinamik, yang membantu mengawal risiko.
  3. Ia adalah satu peluang yang besar untuk mendapatkan keuntungan yang lebih besar dengan mengambil peluang trend secara berkala.
  4. Peraturan-peraturan ini agak mudah digunakan.

Analisis risiko

Strategi ini mempunyai risiko utama:

  1. Dalam pasaran yang bergolak, kerugian boleh berlaku berulang kali.
  2. Tidak dapat menentukan titik balik trend dengan tepat, dan mungkin ada risiko untuk mengejar kenaikan atau penurunan.
  3. Tetapan parameter rata-rata kadar turun naik sebenar yang tidak betul boleh menyebabkan titik keluar terlalu longgar atau terlalu ketat.

Penyelesaian:

  1. Sesuai menyesuaikan parameter purata bergerak, menggunakan parameter yang lebih stabil.
  2. Bergabung dengan isyarat pengesahan indikator lain, mengelakkan mengejar tinggi dan rendah.
  3. Uji optimum parameter rata-rata kadar turun naik sebenar, set parameter yang sesuai.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji sistem purata yang berbeza untuk mencari kombinasi parameter yang lebih stabil.
  2. Menambah kebolehpercayaan isyarat dengan penunjuk lain.
  3. Uji parameter rata-rata kadar turun naik sebenar untuk mencari parameter terbaik.
  4. Mengoptimumkan penggunaan dana dan meningkatkan kadar pulangan melalui pengaruh.
  5. Pengoptimuman dinamik parameter yang digabungkan dengan kaedah pembelajaran mesin dan lain-lain

ringkaskan

Strategi ini secara keseluruhan jelas dan mudah difahami, menggunakan purata bergerak untuk menentukan arah trend, dan menggunakan purata kadar turun naik sebenar untuk menetapkan hentian, dapat mengesan trend dengan berkesan. Tetapi terdapat risiko tertentu, perlu menetapkan parameter yang lebih baik dan menambah indikator penghakiman lain.

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

//2019
//Noro

//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
//     strategy.close_all()