Dinamis Re-entry Strategi Hanya Beli

Penulis:ChaoZhang, Tanggal: 2023-12-19 13:56:55
Tag:

img

Gambaran umum

Strategi ini adalah sistem perdagangan buy-only yang menghasilkan sinyal beli berdasarkan crossover rata-rata bergerak dan Indeks Saluran Komoditas Mingguan (CCI) atau Indeks Arah Rata-rata Mingguan (ADX).

Strategi ini juga memungkinkan untuk re-entry dinamis, yang berarti dapat membuka posisi panjang baru jika harga naik di atas tiga moving average setelah keluar.

Prinsip Strategi

Skrip ini mendefinisikan kondisi untuk menghasilkan sinyal beli.

  • Rata-rata bergerak cepat melintasi di atas rata-rata bergerak lambat
  • Pengguna dapat memilih untuk menyaring perdagangan menggunakan Weekly CCI atau Weekly ADX

Dinamis Re-entry:Jika tidak ada posisi panjang yang aktif dan harga di atas ketiga rata-rata bergerak, posisi panjang baru dibuka.

Kondisi keluar:Jika harga penutupan turun di bawah rata-rata bergerak ketiga, skrip menutup posisi panjang.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Menggunakan beberapa indikator teknis untuk menyaring sinyal mengurangi sinyal palsu
  2. Mekanisme re-entry dinamis memaksimalkan penangkapan tren
  3. Menjadi hanya panjang menghindari risiko shorting

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Ada beberapa risiko whipsaws
  2. Waktu tunggu yang lama bisa terlalu lama, membutuhkan pemberhentian
  3. Pengaturan parameter yang buruk dapat menyebabkan perdagangan yang terlalu sering

Solusi:

  1. Gunakan kombinasi parameter dan kombinasi indikator yang lebih baik untuk menyaring
  2. Tentukan stop loss yang wajar
  3. Sesuaikan parameter untuk memastikan stabilitas

Arahan Optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Mencoba lebih banyak kombinasi indikator teknis untuk menemukan waktu masuk yang lebih baik
  2. Mengoptimalkan parameter untuk menemukan kombinasi parameter terbaik
  3. Menambahkan mekanisme stop loss untuk mengendalikan kerugian tunggal
  4. Menambahkan ukuran posisi untuk meningkatkan/mengurangi posisi berdasarkan kondisi pasar

Ringkasan

Strategi re-entry buy-only ini mengintegrasikan beberapa indikator teknis untuk menentukan waktu masuk dan mengadopsi desain re-entry dinamis untuk melacak tren secara real-time.


/*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)


Lebih banyak