Berdasarkan teori gelombang harga dan strategi purata bergerak


Tarikh penciptaan: 2023-11-13 16:39:41 Akhirnya diubah suai: 2023-11-13 16:39:41
Salin: 1 Bilangan klik: 643
1
fokus pada
1621
Pengikut

Berdasarkan teori gelombang harga dan strategi purata bergerak

Gambaran keseluruhan

Strategi ini menggunakan teori gelombang harga yang digabungkan dengan purata bergerak untuk mencari peluang untuk membentuk trend, menetapkan hentian yang munasabah dan mengesan hentian untuk mengawal risiko, dengan tujuan untuk memaksimumkan keuntungan. Strategi ini hanya membuka kedudukan pada masa perdagangan yang ditetapkan, dan mengelakkan turun naik pasaran pada masa tertentu.

Prinsip Strategi

  • Menggunakan purata bergerak SMMA untuk mengira purata harga, penapis bunyi pasaran gelombang, mengenal pasti arah trend
  • Menentukan gelombang harga berdasarkan harga tertinggi dan terendah dalam tempoh tertentu, mengenal pasti titik perubahan trend
  • Pada masa ini, harga saham telah meningkat secara mendadak, tetapi pada masa yang sama, harga saham telah menurun secara mendadak.
  • Tetapkan titik hentian untuk mengawal risiko dengan hentian pengesanan berdasarkan ATR
  • Hanya buka kedudukan pada waktu perdagangan yang ditetapkan, mengelakkan turun naik pasaran pada hujung minggu dan pada waktu tertentu pada hari
  • Hentikan pegangan apabila isyarat berbalik

Analisis kelebihan

  • Menggunakan teori gelombang harga untuk menentukan titik peralihan harga, ditambah dengan arah trend berdasarkan purata bergerak, trend dapat dikenali dengan berkesan
  • Tetapan titik hentian dengan hentian pelacakan dinamik ATR dapat mengawal hentian tunggal dengan berkesan
  • Hanya membuka kedudukan pada waktu perdagangan yang berliquiditi untuk mengelakkan tergelincir yang tidak perlu dan turun naik yang teruk dalam tempoh masa tertentu
  • Mengikuti prinsip berhenti garis paralon secara ketat, berhenti apabila isyarat terbalik muncul, untuk mendapatkan keuntungan maksimum

Analisis risiko

  • Perdagangan berulang mungkin berlaku di kawasan bukan trend apabila penilaian gelombang harga tidak tepat
  • Rata-rata perpindahan yang ketinggalan mungkin terlepas titik perubahan
  • Stop loss yang terlalu kecil mudah dihentikan, yang terlalu besar boleh menyebabkan kerugian yang lebih besar
  • Penangguhan tetap tidak dapat disesuaikan dengan keadaan yang berbeza

Penyelesaian risiko:

  • Optimumkan parameter kitaran gelombang, sesuaikan parameter purata perpindahan
  • Menentukan isyarat pembalikan bersama-sama dengan penunjuk Stochastics
  • Dinamika Optimasi Stop Loss dan Keadaan Hentikan

Arah pengoptimuman

  • Mengoptimumkan parameter kitaran gelombang untuk mencari kitaran purata rata-rata yang optimum
  • Tambah penghakiman indikator Stoch berbalik, penapis isyarat set palsu pecah
  • Cuba secara dinamik menyesuaikan titik hentian dengan kedudukan hentian
  • Memperluaskan bandwidth titik henti anda untuk mengelakkan terhalang
  • Parameter pengoptimuman mengikut varieti dan masa dagangan

ringkaskan

Strategi ini mengintegrasikan teori gelombang harga dengan penunjuk rata-rata bergerak, mengawal risiko dengan menilai arah gelombang harga dan pengesahan trend setelah mengelakkan zon waktu perdagangan yang ditetapkan, menetapkan hentian dan mengesan hentian untuk mengawal risiko, berhenti ketika isyarat terbalik muncul. Strategi ini dapat meningkatkan kestabilan dan kadar keuntungan dengan penambahan parameter dan penambahan penunjuk tambahan.

Kod sumber strategi
/*backtest
start: 2022-11-12 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("FX Strategy Based on Fractals and SMMA", overlay=true)

// パラメータ
SMMAPeriod1 = input(30, title="SMMA Period")
StopLoss1 = input(7, title="Stop Loss %")
TrailingStopCoef1 = input(2.7, title="Trailing Stop Coefficient")
fractalPeriod = input(5, title="Fractal Period")

// SMMAの計算関数
smma(src, length) =>
    var float smma = na
    if na(smma[1])
        smma := sma(src, length)
    else
        smma := (smma[1] * (length - 1) + src) / length
    smma

// フラクタルの近似
highFractal = high[2] > high[1] and high[2] > high[3] and high[2] > high[4] and high[2] > high
lowFractal = low[2] < low[1] and low[2] < low[3] and low[2] < low[4] and low[2] < low

// エントリー条件
longEntrySignal = lowFractal and close[1] < smma(close, SMMAPeriod1)
shortEntrySignal = highFractal and close[1] > smma(close, SMMAPeriod1)

// エントリー実行
if (longEntrySignal)
    strategy.entry("Long", strategy.long)

if (shortEntrySignal)
    strategy.entry("Short", strategy.short)

// トレーリングストップの計算
atrValue = atr(10)
longStopPrice = close - atrValue * TrailingStopCoef1
shortStopPrice = close + atrValue * TrailingStopCoef1

// トレーリングストップの設定
strategy.exit("Exit Long", "Long", stop=longStopPrice)
strategy.exit("Exit Short", "Short", stop=shortStopPrice)

// バックテスト期間の設定(MetaTraderのバックテストと同じ期間)
startYear = 2007
startMonth = 05
startDay = 01
endYear = 2022
endMonth = 04
endDay = 01

startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// バックテスト期間内でのみトレードを実行
if (time >= startDate and time <= endDate)
    if (longEntrySignal)
        strategy.entry("Long", strategy.long)
    if (shortEntrySignal)
        strategy.entry("Short", strategy.short)