Strategi merentas tempoh berdasarkan AlphaTrend


Tarikh penciptaan: 2023-09-28 11:05:27 Akhirnya diubah suai: 2023-09-28 11:05:27
Salin: 0 Bilangan klik: 903
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini berdasarkan kepada penunjuk AlphaTrend, yang menggabungkan kelebihan kedua-dua penunjuk RSI dan MFI, untuk mendapatkan kesan strategi yang lebih baik di pasaran yang sedang tren. Strategi ini terutamanya menilai sama ada harga menembusi kurva AlphaTrend untuk menangkap arah trend.

Prinsip Strategi

  1. Mengira Indeks ATR untuk mengukur kadar turun naik pasaran
  2. Jika tidak ada data jumlah dagangan, gunakan RSI untuk menentukan pasaran kosong; jika ada jumlah dagangan, gunakan MFI untuk menentukan pasaran kosong
  3. Pengiraan atas dan bawah landasan berdasarkan ATR dan penilaian ruang kosong
  4. Hitung kurva AlphaTrend yang menggabungkan perubahan dinamik di atas dan di bawah
  5. Sinyal beli dan jual dikeluarkan apabila harga naik dan turun melalui kurva AlphaTrend

Strategi ini bergantung kepada arah trend harga berdasarkan kurva AlphaTrend, yang mempertimbangkan secara menyeluruh metrik turun naik pasaran ATR, RSI dan indikator MFI yang terbuka, yang dapat mengesan trend harga dengan berkesan. Apabila harga menembusi kurva, menunjukkan bahawa trend berubah, dan ini adalah masa masuk.

Kelebihan Strategik

  1. Penunjuk AlphaTrend menggabungkan kelebihan kedua-dua penunjuk RSI dan MFI, yang dapat menyesuaikan diri dengan keadaan kosong
  2. Tetapan atas dan bawah yang dinamik boleh disesuaikan secara automatik mengikut turun naik pasaran
  3. Maklumat mengenai harga dan jumlah dagangan yang dipertimbangkan secara menyeluruh, tidak mudah disesatkan oleh isyarat yang salah
  4. Menggunakan pendekatan terobosan untuk menangkap arah trend baru
  5. Logik yang jelas, mudah difahami dan mudah dilaksanakan

Keseluruhannya, strategi ini boleh digunakan untuk pelbagai keadaan, menyaring kebisingan pasaran dengan berkesan, mengenal pasti trend dengan lebih tepat, dan merupakan strategi mengikuti trend yang tepat dan cekap.

Risiko Strategik

  1. AlphaTrend mungkin berlaku dalam keadaan yang salah, perlu divalidasi dengan kombinasi dengan penunjuk lain
  2. Beberapa isyarat tidak berkesan mungkin berlaku dalam keadaan gegaran besar
  3. Penetapan parameter penunjuk yang tidak betul juga boleh menjejaskan kesan strategi
  4. Dalam keadaan ribut, penangguhan kerugian boleh ditembusi, jadi berhati-hatilah dengan kerugian besar.

Untuk risiko, anda boleh menetapkan stop loss untuk mengawal kerugian tunggal; optimum kombinasi parameter, yang digunakan dengan kombinasi indikator lain untuk mengurangkan isyarat yang tidak sah; menyesuaikan parameter mengikut pasaran yang berbeza.

Pengoptimuman Strategi

  1. Anda boleh mencuba kombinasi parameter yang berbeza untuk mencari parameter yang optimum.
  2. Ia boleh digabungkan dengan petunjuk lain untuk membentuk syarat tambahan yang membantu membuat keputusan
  3. Anda boleh menetapkan hentian dinamik atau menjejaki hentian untuk mengawal risiko
  4. Anda boleh menggunakan frekuensi dagangan yang berbeza mengikut keadaan pasaran (seperti 5 minit, 15 minit dan sebagainya)
  5. Anda boleh mengoptimumkan masa kemasukan dan menetapkan syarat kemasukan yang lebih tepat.

Dengan menguji pasaran dan parameter yang berbeza, anda boleh terus mengoptimumkan strategi ini agar dapat disesuaikan dengan lebih banyak jenis situasi.

ringkaskan

Strategi AlphaTrend secara keseluruhannya adalah strategi trend yang mudah dan berkesan. Ia menggabungkan harga dan jumlah transaksi, dapat menyesuaikan diri dengan keadaan kosong. Dengan cara operasi terobosan, masa masuk yang jelas. Dengan syarat kawalan risiko yang baik, kesan strategi yang baik dapat diperoleh.

Kod sumber strategi
/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 30m
basePeriod: 15m
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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
// pv additions, simplification and strategy conversion @ treigen
//@version=5
strategy('AlphaTrend For ProfitView', overlay=true, calc_on_every_tick=true, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, initial_capital=1000)
coeff = input.float(1.5, 'Multiplier', step=0.1)
AP = input(15, 'Common Period')
ATR = ta.sma(ta.tr, AP)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)

i_startTime = input(defval = timestamp("01 Jan 2014 00:00 +0000"), title = "Backtesting Start Time", inline="timestart", group='Backtesting')
i_endTime = input(defval = timestamp("01 Jan 2100 23:59 +0000"), title = "Backtesting End Time", inline="timeend", group='Backtesting')
timeCond = true

pv_ex = input.string('', title='Exchange', tooltip='Leave empty to use the chart ticker instead (Warning: May differ from actual market name in some instances)', group='PV Settings')
pv_sym = input.string('', title='Symbol', tooltip='Leave empty to use the chart ticker instead (Warning: May differ from actual market name in some instances)', group='PV Settings')
pv_acc = input.string("", title="Account", group='PV Settings')
pv_alert_long = input.string("", title="PV Alert Name Longs", group='PV Settings')
pv_alert_short = input.string("", title="PV Alert Name Shorts", group='PV Settings')
pv_alert_test = input.bool(false, title="Test Alerts", tooltip="Will immediately execute the alerts, so you may see what it sends. The first line on these test alerts will be excluded from any real alert triggers" ,group='PV Settings')

upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(close, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT


k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])

var exsym = ""
if barstate.isfirst
    exsym := pv_ex == "" ? "" : "ex=" + pv_ex + ","
    exsym := pv_sym == "" ? exsym : exsym + "sym=" + pv_sym + ","


if barstate.isconfirmed and timeCond 
    if strategy.position_size <= 0 and buySignalk
        strategy.entry("Buy", strategy.long)
        alert(pv_alert_long + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar_close)
    if strategy.position_size >= 0 and sellSignalk
        strategy.entry("Sell", strategy.short)
        alert(pv_alert_short + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar_close)


//  Only used for testing/debugging alert messages
if pv_alert_test
    alert("<![Alert Test]!>\n" + pv_alert_long + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar)
    alert("<![Alert Test]!>\n" + pv_alert_short + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar)