Strategi pembelian kemasukan semula dinamik


Tarikh penciptaan: 2023-12-19 13:56:55 Akhirnya diubah suai: 2023-12-19 13:56:55
Salin: 0 Bilangan klik: 644
1
fokus pada
1621
Pengikut

Strategi pembelian kemasukan semula dinamik

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan beli-hanya, yang menghasilkan isyarat beli berdasarkan crossover rata-rata bergerak dan indeks saluran komoditi kitaran ((CCI) atau indeks arah rata-rata kitaran ((ADX)). Isyarat beli dihasilkan apabila rata-rata bergerak bergerak perlahan melintasi rata-rata bergerak cepat dan CCI kitaran dan / atau ADX kitaran memenuhi syarat tertentu.

Strategi ini juga membenarkan kemasukan semula dinamik, yang bermaksud bahawa kedudukan bermulut baru boleh dibuka jika harga melewati tiga purata bergerak sekali lagi. Walau bagaimanapun, strategi ini akan meratakan kedudukan bermulut jika harga menutup harga di bawah purata bergerak ketiga.

Prinsip Strategi

Skrip mentakrifkan syarat untuk menghasilkan isyarat beli. Ia memeriksa dua syarat untuk menentukan isyarat beli yang sah:

  • Rata-rata bergerak laju melalui rata-rata bergerak perlahan
  • Pengguna boleh memilih untuk menggunakan penapis: CCI kitaran atau ADX kitaran

“Saya tidak tahu apa yang berlaku.Jika tiada kedudukan berganda yang belum dihapuskan dan harganya lebih tinggi daripada tiga purata bergerak, buka kedudukan berganda baru.

Syarat untuk keluar:Jika harga penutupan jatuh di bawah purata bergerak ketiga, strategi ini akan melonggarkan kedudukan berlebih.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan pelbagai teknologi penapisan isyarat indikator untuk mengurangkan isyarat salah
  2. Mekanisme kemasukan semula dinamik dapat menangkap trend maksimum
  3. Buat lebih dan elakkan risiko kekurangan.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Terdapat risiko untuk bertukar.
  2. Pendapatan yang tidak dapat dikurangkan oleh pelabur mungkin terlalu lama dan perlu dihentikan.
  3. Tetapan parameter yang tidak betul boleh menyebabkan terlalu banyak dagangan

Penyelesaian:

  1. Penapisan gelombang dengan kombinasi parameter dan penunjuk teknikal yang lebih baik
  2. Menetapkan Stop Loss yang Bermakna
  3. Menyesuaikan parameter untuk memastikan parameter stabil

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji gabungan lebih banyak petunjuk teknologi untuk mencari peluang pembelian yang lebih baik
  2. Mengoptimumkan parameter untuk mencari kombinasi parameter yang terbaik
  3. Meningkatkan mekanisme penangguhan kerugian dan mengawal kerugian tunggal
  4. Meningkatkan pengurusan kedudukan, meningkatkan atau mengurangkan kedudukan mengikut keadaan pasaran

ringkaskan

Strategi pembelian masuk semula dinamik ini mengintegrasikan pelbagai petunjuk teknikal untuk menentukan masa pembelian dan menggunakan reka bentuk masuk semula dinamik, yang dapat mengesan trend dalam masa nyata; dan hanya melakukan lebih banyak untuk mengelakkan risiko tambahan yang dibawa oleh shorting. Dengan pengoptimuman parameter, tetapan berhenti dan pengurusan kedudukan, strategi ini dapat digunakan dalam perdagangan saham, mendapatkan keuntungan tambahan sambil mengawal risiko.

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

//@version=5
strategy("Buy Only Strategy with Dynamic Re-Entry and Exit", overlay=true)

// Input Parameters
fast_length = input(20, title="Fast Moving Average Length")
slow_length = input(30, title="Slow Moving Average Length")
third_ma_length = input(100, title="Third Moving Average Length")
cci_period = input(14, title="CCI Period for Weekly CCI")
use_cci = input(true, title="Use CCI for Entry")
use_adx = input(true, title="Use ADX for Entry")
adx_length = input(14, title="ADX Length")
adx_threshold = input(25, title="ADX Threshold")

// Calculate Moving Averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
third_ma = ta.sma(close, third_ma_length)

// Weekly Commodity Channel Index (CCI) with user-defined period
weekly_cci = request.security(syminfo.tickerid, "W", ta.cci(close,  cci_period))

// Weekly Average Directional Index (ADX)
dirmov = hlc3
plus = ta.change(dirmov) > 0 ? ta.change(dirmov) : 0
minus = ta.change(dirmov) < 0 ? -ta.change(dirmov) : 0
trur = ta.rma(ta.tr, adx_length)
plusDI = ta.rma(plus, adx_length) / trur * 100
minusDI = ta.rma(minus, adx_length) / trur * 100
sum = plusDI + minusDI
DX = sum == 0 ? 0 : math.abs(plusDI - minusDI) / sum * 100
ADX = ta.rma(DX, adx_length)

// Entry Conditions (Buy Only and Weekly CCI > 100 and/or Weekly ADX > 25)
cci_condition = use_cci ? (weekly_cci > 100) : false
adx_condition = use_adx ? (ADX > adx_threshold) : false
long_condition = ta.crossover(fast_ma, slow_ma) and (cci_condition or adx_condition)

// Exit Condition and Dynamic Re-Entry
exit_condition = close < third_ma
re_entry_condition = close > fast_ma and close > slow_ma and close > third_ma and weekly_cci > 100

// Entry and Exit Signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.close("Long", when=exit_condition)

// Dynamic Re-Entry and Exit
if strategy.position_size == 0 and re_entry_condition
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and close < third_ma
    strategy.close("Long")

// Plot Weekly CCI and ADX for reference
plot(weekly_cci, title="Weekly CCI", color=color.orange)
plot(ADX, title="Weekly ADX", color=color.blue)