Strategi mengikuti tren asli berdasarkan rata-rata pergerakan


Tanggal Pembuatan: 2023-11-23 15:54:37 Akhirnya memodifikasi: 2023-11-23 15:54:37
menyalin: 0 Jumlah klik: 581
1
fokus pada
1617
Pengikut

Strategi mengikuti tren asli berdasarkan rata-rata pergerakan

Ringkasan

Strategi ini didasarkan pada bagian entitas dari candle, dikombinasikan dengan indikator EMA untuk menentukan arah tren pasar, untuk mencapai efek ORIGINAL PRIMITIVE TREND TRACKING. Lakukan lebih banyak ketika ada sinar matahari yang lebih besar, dan kosongkan saat ada sinar matahari yang lebih besar, sehingga dapat melacak tren pasar.

Prinsip Strategi

  1. Perhitungkan panjang rata-rata dari entitas candle pada 30 garis K terakhir
  2. Bila garis K terbaru adalah garis yang, panjang entitas lebih besar dari sbody/2, lakukan lebih banyak
  3. Setelah melakukan plus, jika K-line terbaru adalah negatif, panjang entitas lebih besar dari sbody/2, dan posisi saat ini adalah profitabilitas, maka posisi plus rata
  4. Bila garis K terbarunya adalah garis negatif dan panjang entitasnya lebih besar dari sbody/2, kosongkan
  5. Bila telah melakukan shorting, jika K-line terbaru adalah yang, panjang entitas lebih besar dari sbody/2, dan posisi saat ini adalah profitable, maka posisi kosong

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Sederhana, mudah dipahami dan diterapkan
  2. Berdasarkan struktur candle, ada beberapa efek terhadap Trading Breakouts
  3. Mengikuti tren, menangkap tren yang lebih besar
  4. Posisi yang menguntungkan akan cepat berhenti dan menguntungkan untuk mengunci keuntungan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Kegagalan untuk memfilter penembusan palsu yang dapat menyebabkan kerugian yang tidak perlu
  2. Penjelasan berdasarkan candle saja rentan terhadap slip point dan night flying
  3. Tidak mempertimbangkan frekuensi transaksi yang terlalu tinggi

Risiko dapat dikurangi dengan:

  1. Kombinasi sinyal filter dengan indikator lain
  2. Tetapkan strategi stop loss
  3. Parameter optimasi, kontrol frekuensi transaksi

Arah optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Meningkatkan Indikator Penembusan, Menyaring Penembusan Palsu
  2. Meningkatkan strategi stop loss dan mengurangi kerugian tunggal
  3. Menggabungkan indikator tren, memeriksa arah tren
  4. Optimalisasi parameter, menemukan kombinasi parameter yang optimal

Meringkaskan

Strategi ini merupakan strategi pelacakan tren sederhana yang asli. Dengan penilaian struktur candle, Anda dapat secara efektif melacak arah tren. Dengan pengaturan mekanisme stop loss cepat, Anda dapat mengunci keuntungan. Strategi ini dapat melengkapi portofolio pelacakan tren, tetapi masih perlu dioptimalkan untuk mengurangi risiko.

Kode Sumber Strategi
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Primitive Strategy v1.0", shorttitle = "Primitive str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 10)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
useus = input(true, defval = true, title = "Use UUP")
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(01, defval = 01, 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")

//Logic
body = abs(close - open)
sbody = ema(body, 30) / 2
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == -1 and (body > sbody or usebody == false) and (close < strategy.position_avg_price or strategy.position_size <= 0 or useus == false)
dn = bar == 1 and (body > sbody or usebody == false) and (close > strategy.position_avg_price or strategy.position_size >= 0 or useus == false)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00)
    strategy.close_all()