Terobosan dengan arah aliran - Strategi henti kerugian momentum


Tarikh penciptaan: 2023-11-13 17:20:51 Akhirnya diubah suai: 2023-11-13 17:20:51
Salin: 0 Bilangan klik: 847
1
fokus pada
1617
Pengikut

Terobosan dengan arah aliran - Strategi henti kerugian momentum

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend garis tengah yang direka berdasarkan penembusan dan parameter berhenti dinamik. Strategi ini menggunakan harga untuk memecahkan garis berhenti dinamik untuk menentukan arah trend, masuk ke dalam medan apabila harga memecahkan garis berhenti, dan kemudian menggunakan garis berhenti untuk mengesan trend dan mengunci keuntungan. Strategi ini bertujuan untuk menangkap trend garis tengah yang panjang, sambil menggunakan berhenti dinamik untuk mengawal risiko.

Prinsip Strategi

Strategi ini menggunakan penunjuk berhenti dinamik Volatility Stop untuk menentukan arah trend dan menjejaki berhenti. Stop Volatility Stop mengira garis berhenti dinamik berdasarkan jangkauan turun naik harga.

  1. ATR (Average True Rate of Volatility) untuk mengira harga
  2. Ganti nilai ATR dengan faktor stop loss untuk mendapatkan garis stop loss
  3. Apabila harga naik, catat harga tertinggi, garis hentian adalah harga tertinggi tolak ATR kali faktor
  4. Apabila harga turun, catat harga terendah, garis hentikan sebagai harga terendah ditambah ATR kali faktor

Dengan cara ini, garis hentian akan bergerak ke atas dan ke bawah mengikut pergerakan harga, membentuk saluran yang dinamik.

Strategi ini akan membuka kedudukan apabila harga melepasi garis stop-loss, yang menunjukkan bahawa trend telah berbalik, seperti:

  • Strategi ini akan membuka lebih banyak kedudukan apabila harga melepasi garis stop loss dari bawah ke atas
  • Strategi ini akan membuka kedudukan kosong apabila harga melepasi garis stop loss dari atas ke bawah

Selepas kedudukan dibuka, strategi akan menggunakan garis hentian untuk menjejaki hentian:

  • Garis hentian pelbagai kedudukan adalah harga tertinggi tolak ATR kali faktor
  • Hentian kerugian untuk kedudukan kosong adalah harga minimum ditambah ATR kali faktor

Apabila harga menyentuh semula garisan stop loss, strategi ini akan menghentikan kerugian.

Dengan cara ini, strategi boleh berjalan lancar, dan trend dapat ditukar pada masa yang tepat, sambil menggunakan stop loss untuk mengawal risiko.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Ia adalah satu peluang yang tidak boleh dilewatkan untuk mengambil peluang yang ada untuk bertukar trend.
  2. Menggunakan Hentian Dinamis, anda boleh menyesuaikan kedudukan Hentian anda mengikut turun naik pasaran, menjadikan Hentian anda lebih munasabah
  3. Kedudukan Stop Loss dikemas kini mengikut pergerakan, untuk memaksimumkan keuntungan.
  4. Berkali-kali menang dalam trend, anda boleh mendapatkan keuntungan trend yang lebih besar
  5. Mengendalikan risiko dan mengelakkan kerugian yang berlebihan

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Dalam kes gegaran, mungkin terdapat kes di mana kemusnahan sering diaktifkan
  2. Anda perlu menetapkan faktor hentian yang munasabah, terlalu kecil akan menjadi terlalu sensitif, terlalu besar akan kehilangan makna hentian
  3. Perhatian perlu diberikan kepada kesan bayaran pemprosesan transaksi, yang sering memakan keuntungan.
  4. Mungkin kehilangan sebahagian daripada keuntungan awal trend
  5. Berhati-hatilah dengan risiko yang mungkin timbul apabila harga anda jauh dari garis hentian anda.

Kaedah pencegahan:

  1. Anda boleh mencari parameter terbaik dengan mengkaji semula untuk mengoptimumkan faktor hentian
  2. Memperpanjang kitaran masa dagangan dan mengurangkan kekerapan dagangan
  3. Anda boleh mempertimbangkan penapis filtrter untuk mengelakkan perdagangan yang terlalu kerap
  4. Jarak garis henti boleh dikurangkan, tetapi tidak terlalu jauh.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara:

  1. Mengoptimumkan pembahagian stop loss untuk mencari kombinasi parameter yang optimum
  2. Penambahbaikan penapis untuk mengelakkan terkurung dalam keadaan gegaran
  3. Menggabungkan beberapa tempoh masa untuk mengesahkan dan meningkatkan kualiti isyarat
  4. Pengurusan Posisi Optimum dan Peningkatan Posisi Beransur-ansur
  5. Pertimbangkan perubahan dinamik dalam kitaran masa dagangan
  6. Meneroka trend utama dengan memilih saham asas

ringkaskan

Strategi penembusan trend-daya berhenti adalah satu strategi trend yang sangat praktikal secara keseluruhan. Ia boleh merebut peluang untuk membalikkan trend, dan dengan itu, ia boleh digunakan untuk mengawal risiko dengan berkesan. Jika parameter dioptimumkan dengan betul, anda boleh mendapatkan keuntungan yang lebih baik dalam keadaan trend. Tetapi strategi ini juga perlu berhati-hati dengan beberapa masalah, seperti terlalu sensitif, terlalu tinggi frekuensi perdagangan.

Kod sumber strategi
/*backtest
start: 2023-11-11 00:00:00
end: 2023-11-12 00:00:00
period: 3m
basePeriod: 1m
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/
//@version=4
strategy(shorttitle='Volatility Stop Strategy',title='Volatility Stop Strategy (by Coinrule)', overlay=true, initial_capital = 100, 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)

// Works better on 3h, 1h, 2h, 4h
// Best time frame 2H

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "vStop Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)


//Entry 


strategy.entry(id="long", long = true, when = crossover(close, vStop) and window())

//Exit
strategy.close("long", when = crossunder(close, vStop))

plot(vStop,"Vstop", color.black, linewidth=2)