Trend Mengikut Strategi Berdasarkan Peratusan Retracement

Penulis:ChaoZhang, Tarikh: 2023-09-14 19:49:14
Tag:

Artikel ini menerangkan secara terperinci strategi perdagangan kuantitatif yang mengikuti trend berdasarkan retracement peratusan dari paras tertinggi tempatan.

I. Logik Strategi

Logik teras strategi ini adalah mengenal pasti paras tertinggi tempatan dalam tempoh tertentu, dan memasuki retracements peratusan tetap.

  1. Mula-mula kira tinggi tertinggi selama 90 bar terakhir sebagai puncak tempatan.

  2. Apabila harga menyusul peratusan tetap (contohnya 3%) dari puncak itu, pergi panjang untuk mengikuti trend.

  3. Tetapkan sasaran mengambil keuntungan pada peratusan tertentu (contohnya 6%) di atas harga kemasukan.

  4. Tiada stop loss digunakan, memberi tumpuan kepada trend berikut.

Dengan menentukan kemasukan berdasarkan pulback peratusan dari puncak tempatan, pengesahan trend dapat dicapai dengan berkesan menapis penyatuan.

II. Kelebihan Strategi

Kelebihan terbesar strategi ini adalah menggunakan retracement peratusan untuk mengukur trend, menapis sejumlah besar bunyi bising. berbanding dengan memasuki titik giliran secara langsung, ia mengurangkan kebarangkalian entri yang salah.

Satu lagi kelebihan adalah logika mengambil keuntungan. Ini memastikan keuntungan dan kerugian yang terkawal setiap perdagangan, sejajar dengan prinsip pengurusan wang yang baik.

Akhirnya, sasaran mengambil keuntungan yang lebih besar daripada peratusan retracement juga memberikan dinamika ganjaran risiko tertentu.

III. Kelemahan Potensial

Walaupun strategi ini mempunyai kelebihan, risiko berikut harus diperhatikan dalam perdagangan sebenar:

Pertama, peratusan retracement perlu ditetapkan dengan bijak. retracement yang terlalu mendalam atau cetek boleh menjejaskan potensi keuntungan.

Kedua, kekurangan stop loss mendedahkan strategi kepada risiko perdagangan tunggal yang besar.

Akhirnya, pengoptimuman parameter yang tidak betul juga boleh membawa kepada masalah pemasangan berlebihan dan merosot kualiti isyarat.

IV. Ringkasan

Ringkasnya, artikel ini telah menerangkan secara terperinci strategi trend berikut kuantitatif berdasarkan retracement peratusan. Ia boleh mengenal pasti arah trend dengan berkesan dan memasuki pullbacks. Pengurusan mengambil keuntungan juga menyediakan mekanisme kawalan risiko tertentu. Secara keseluruhan, dengan membina peraturan berdasarkan retracements puncak tempatan, strategi ini boleh berfungsi sebagai sistem trend berikut yang kukuh selepas pengoptimuman yang sesuai.


/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © luboremenar

//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
     default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)

// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)

// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)

if (longCondition1)
    strategy.entry("Long1", strategy.long, qty = strategy.equity/close)

strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
     when= crossover(strategy.position_size, 0))


// plot
plot(strategy.equity)

// for testing, debugging
//test=0.0  
//if(crossover(strategy.position_size, 0))
//    test := (close*1.06-close)*basis_points
//plot(test)

Lebih lanjut