Trend Mengikuti Strategi Henti Kerugian


Tarikh penciptaan: 2023-10-30 15:21:54 Akhirnya diubah suai: 2023-10-30 15:21:54
Salin: 0 Bilangan klik: 699
1
fokus pada
1617
Pengikut

Trend Mengikuti Strategi Henti Kerugian

Gambaran keseluruhan

Strategi ini menggabungkan trend tracking stop loss dan stop loss logik keluar, untuk mencapai trend pengesanan berterusan keuntungan. Strategi menggunakan garis rata untuk menentukan arah trend, apabila harga menembusi garis rata menghasilkan isyarat perdagangan. Selepas memasuki kedudukan berbilang, strategi akan menetapkan jarak berhenti berdasarkan nilai ATR, dan menggunakan logik trend tracking stop loss untuk menyesuaikan jarak berhenti, sambil melindungi keuntungan.

Prinsip Strategi

  1. Tetapkan masa permulaan dan penghentian pengesanan mengikut julat masa pengesanan yang dimasukkan oleh pengguna.

  2. Tetapkan harga hentian kerugian untuk kedudukan panjang dan pendek, dan peratusan pengesanan hentian kerugian.

  3. Apabila harga menembusi garis purata menghasilkan isyarat melakukan lebih banyak, lakukan lebih banyak masuk.

  4. Hitung jarak stop loss berdasarkan nilai ATR dan set harga stop loss.

  5. Apabila harga terus meningkat, anda boleh mengesan dan menyesuaikan jarak stop loss anda untuk mengunci keuntungan yang lebih besar.

  6. Apabila harga naik ke paras penutupan yang ditetapkan, penutupan kedudukan kosong sebahagiannya.

  7. Apabila garis rata-rata jatuh menghasilkan isyarat buat-buat, buatlah buat-buat masuk.

  8. Hitung jarak stop loss berdasarkan nilai ATR dan set harga stop loss.

  9. Apabila harga terus turun, anda boleh mengesan dan menyesuaikan jarak stop loss anda untuk mengunci lebih banyak keuntungan.

  10. Apabila harga turun ke paras penangguhan yang ditetapkan, penangguhan kedudukan kosong sebahagiannya dihentikan.

Kelebihan Strategik

  • Menggunakan mekanisme berhenti trend, anda boleh terus mengikuti trend sambil melindungi keuntungan, lebih baik daripada jarak berhenti tetap tradisional.

  • Dengan menggunakan ATR untuk mengira jarak hentian dinamik, ia dapat bertindak balas dengan berkesan terhadap turun naik pasaran dan mengurangkan kebarangkalian hentian yang dicetuskan.

  • Logik penangguhan separa boleh mengunci sebahagian daripada keuntungan dan mengurangkan risiko penarikan balik.

  • Logik strategi mudah difahami, mudah difahami dan mudah dilaksanakan, sesuai untuk pedagang.

Risiko Strategik

  • Apabila trend berbalik secara tiba-tiba, jarak stop loss mungkin terlalu besar untuk dihentikan dalam masa yang tepat, dan mungkin membawa kepada kerugian yang lebih besar.

  • Jarak hentian yang dikira oleh indikator ATR mungkin terlalu fleksibel dan mudah dipicu oleh bunyi pasaran yang kerap.

  • Sesetengah nisbah stop loss ditetapkan dengan tidak betul, yang boleh menyebabkan kehilangan peluang trend atau meningkatkan kerugian.

  • Lebih banyak parameter yang perlu dioptimumkan, seperti kitaran ATR, nisbah pengesanan kerugian, nisbah penutupan sebahagian, dan lain-lain, lebih sukar untuk dioptimumkan.

  • Strategi ini hanya berdasarkan pada garis rata-rata dan ATR, yang menyebabkan kesilapan perdagangan apabila mereka memberi isyarat yang salah.

Arah pengoptimuman strategi

  • Ia boleh digabungkan dengan indikator lain untuk menapis isyarat perdagangan, mengelakkan isyarat yang salah. Contohnya MACD, KD dan sebagainya.

  • Anda boleh mempertimbangkan untuk mengubah partial stop yang tetap menjadi stop peratusan yang dinamik, yang disesuaikan dengan kekuatan trend.

  • Ia boleh menguji parameter kitaran ATR yang berbeza, menggunakan parameter yang paling stabil. Ia juga boleh digabungkan dengan petunjuk lain untuk menentukan jarak hentian.

  • Algoritma pembelajaran mesin boleh diperkenalkan untuk mengoptimumkan parameter secara automatik melalui algoritma dan menyesuaikan parameter mengikut pasaran dalam masa nyata.

  • Ia boleh digabungkan dengan algoritma canggih seperti pembelajaran mendalam untuk mengenal pasti trend secara automatik dan menghasilkan isyarat perdagangan melalui latihan model.

ringkaskan

Strategi ini mengintegrasikan trend tracking stop loss, ATR dinamik stop loss dan logik stop partial, boleh terus mengikuti trend untuk stop loss, dan juga mempunyai kelebihan dalam kawalan penarikan balik. Tetapi strategi ini juga mempunyai batasan tertentu, seperti trend penilaian indikator mudah, parameter pengoptimuman sukar.

Kod sumber strategi
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
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/
// © felipefs

//@version=4
strategy("Meu Script", overlay=true)
plot(ohlc4)

//Funçao de Datas
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(6, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false

//Funções de Trailing Stop
long_stop_price = 0.0
short_stop_price = 0.0
long_trail_perc = 0
short_trail_perc = 0

long_stop_price := if (strategy.position_size > 0)
    stopValue = close * (1 - long_trail_perc)
    max(stopValue, long_stop_price[1])
else
    0

short_stop_price := if (strategy.position_size < 0)
    stopValue = close * (1 + short_trail_perc)
    min(stopValue, short_stop_price[1])
else
    999999

//Função de Debug
debug(value) =>
    x = bar_index
    y = close
    label.new(x, y, tostring(value))
    
//Take Profit
profit = close * (1 + 0.12)
strategy.entry("Long", true)
strategy.exit("Take Profit 1 Long", from_entry="Long", limit=profit, qty_percent=50.0)
 
//ATR Stop
 
// xATRTrailingStopLong = 0.0
// xATR = atr(nATRPeriod)
// nLossLong = nATRMultipLong * xATR

// if (strategy.position_size > 0)
//     xATRTrailingStopLong := max(nz(xATRTrailingStopLong[1]), close - nLossLong)