Strategi Henti Kerugian Pekeliling Penembusan Rintangan


Tarikh penciptaan: 2023-12-11 11:44:49 Akhirnya diubah suai: 2023-12-11 11:44:49
Salin: 1 Bilangan klik: 573
1
fokus pada
1621
Pengikut

Strategi Henti Kerugian Pekeliling Penembusan Rintangan

Gambaran keseluruhan

Strategi ini menggunakan isyarat bentuk harga untuk penembusan rintangan dan mekanisme kawalan risiko untuk penghentian gelung. Ia akan membuat lebih banyak kedudukan selepas penembusan titik rintangan dan kosongkan kedudukan selepas penembusan sokongan.

Prinsip Strategi

Strategi ini berdasarkan kepada beberapa perkara:

  1. Menggunakan garis rata untuk menentukan arah trend. Strategi menetapkan garis rata cepat dan perlahan, melintasi garis perlahan pada garis cepat mewakili garis panjang yang naik, dan melintasi garis panjang yang turun.

  2. Melewati rintangan membuat banyak isyarat. Apabila harga naik menembusi paras tertinggi baru-baru ini, dianggap sebagai isyarat untuk menembusi tahap rintangan, membuat lebih banyak masuk.

  3. Sinyal penembusan sokongan. Apabila harga turun dan menembusi paras terendah baru-baru ini, ia dianggap sebagai isyarat penembusan sokongan, dan penembusan masuk.

  4. Tetapkan hentian gelung. Tetapkan garis hentian selepas masuk, dan sesuaikan dengan turun naik harga, untuk menjalankan harga di sekitar garis hentian.

  5. Hentikan kerugian dan hentikan penarikan diri. Hentikan kerugian dan penarikan diri dapat mengawal risiko dengan berkesan, dan hentikan penarikan diri dapat mengunci keuntungan.

Khususnya, strategi ini menggunakan nilai purata harga tinggi dan rendah sebagai sumber harga, mengira EMA perlahan untuk menentukan arah trend. Lakukan lebih banyak apabila melintasi garis perlahan dengan isyarat penembusan rintangan pada garis cepat, dan kosong apabila melintasi garis perlahan di bawah garis cepat dengan isyarat penembusan sokongan.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Pendapatan yang stabil. Beroperasi mengikut trend, boleh mendapat keuntungan dalam trend garis panjang di peringkat indeks.

  2. Pengendalian risiko yang baik. Tetapan loop stop loss dan stop loss, dapat menghentikan kerugian dan keluar tepat pada masanya.

  3. Isyarat tepat. Penembusan kedudukan rintangan dilakukan lebih dan penembusan kedudukan sokongan dibuat kosong, isyarat tepat dan boleh dipercayai.

  4. Mudah dan mudah dioperasikan. Arahan dan peraturan isyarat mudah dan jelas, dan parameter yang ditetapkan tidak rumit.

  5. Adaptasi pasaran. Ia boleh beroperasi dalam pelbagai jenis dan dalam apa-apa keadaan pasaran.

Analisis risiko

Strategi ini juga mempunyai risiko yang perlu diperhatikan:

  1. Risiko kegagalan penembusan. Selepas penembusan sokongan rintangan, mungkin terdapat penyesuaian dan percubaan semula, yang menyebabkan kemusnahan.

  2. Risiko pengoptimuman parameter. Pengaturan parameter yang tidak betul boleh menyebabkan isyarat yang kerap atau tidak mencukupi. Proses pengoptimuman perlu berhati-hati.

  3. Risiko kegagalan penunjuk. Dalam keadaan pasaran tertentu, penunjuk EMA mungkin gagal atau tertunda.

  4. Risiko trend reversal. Kerugian boleh meningkat apabila lebih banyak shorting berlaku di luar arah pasaran.

Risiko ini boleh dikawal dan dikurangkan dengan banyak cara seperti pengoptimuman parameter, pelepasan kerugian yang sesuai, dan mematuhi isyarat dengan ketat.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Pengoptimuman kitaran masa. Menyesuaikan parameter kitaran masa untuk mengira garis purata dan bentuk harga, mencari kombinasi terbaik.

  2. Pengoptimuman kesesuaian varieti. Sesuaikan parameter mengikut ciri-ciri varieti yang berbeza.

  3. Optimumkan strategi hentian kerugian. Gunakan cara hentian yang lebih stabil dan tepat, seperti hentian bergerak, hentian bergoyang, dan sebagainya.

  4. Optimumkan strategi penangguhan. Tetapkan penangguhan bergerak atau penangguhan indeks untuk meningkatkan keuntungan.

  5. Menambah syarat penapisan. Menambah syarat penapisan seperti jumlah dagangan, kadar turun naik, dan mengecualikan penembusan palsu.

  6. Meningkatkan isyarat masuk. Menambah lebih banyak petunjuk atau bentuk sebagai pengesahan isyarat masuk.

ringkaskan

Strategi ini berfungsi dengan lancar secara keseluruhan, idea terasnya jelas, mempunyai kestabilan dan keuntungan yang kuat. Pengendalian risiko dan penggunaan indikator juga lebih sesuai, merupakan strategi pengkategorian terobosan yang patut digunakan.

Kod sumber strategi
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 30m
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/
// © EduardoMattje

//@version=4
strategy("Reversal closing price", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

src = input(hl2, "Price source")
order_direction = input("Both", "Order direction", options=["Both", "Long", "Short"])

// EMA calculation and plot

ema_long_period = input(80, "EMA long period")
ema_short_period = input(8, "EMA short period")
ema_long = ema(src, ema_long_period)
ema_short = ema(src, ema_short_period)
ema_bull = ema_short > ema_long
ema_bear = ema_short < ema_long
plot(ema_long, "EMA long", ema_bull ? color.green : color.red, 3)
plot(ema_short, "EMA short", ema_bull ? color.green : color.red, 3)

// Settings

risk_reward_ratio = input(2.0, "Risk to reward ratio", minval=1.0, step=0.1)
stop_lookback = input(3, "Stoploss candle lookback", minval=1)
ema_cross_stop = input(true, "Close if EMA crosses in oposite direction")
allow_retracing = input(true, "Allow price retracing")

// RCP calculation

rcp_bull = low[0] < low[1] and low[0] < low[2] and close[0] > close[1]
rcp_bear = high[0] > high[1] and high[0] > high[2] and close[0] < close[1]

// Order placement

in_market = strategy.position_size != 0

long_condition = rcp_bull and ema_bull and not in_market and order_direction != "Short"
short_condition = rcp_bear and ema_bear and not in_market and order_direction != "Long"

bought = strategy.position_size[0] > strategy.position_size[1] and strategy.position_size[1] == 0
sold = strategy.position_size[0] < strategy.position_size[1] and strategy.position_size[1] == 0
closed = not in_market and in_market[1]

long_position = strategy.position_size > 0
short_position = strategy.position_size < 0

buy_price = high + syminfo.mintick
sell_price = low - syminfo.mintick

if long_condition
    strategy.entry("Long", true, stop=buy_price)
if short_condition
    strategy.entry("Short", false, stop=sell_price)
    
if allow_retracing
    better_price_long = barssince(closed) > barssince(long_condition) and barssince(long_condition) >= 1 and not in_market and ema_bull and buy_price < valuewhen(long_condition, buy_price, 0) and buy_price[0] < buy_price[1]
    if better_price_long
        strategy.cancel("Long")
        strategy.entry("Long", true, stop=buy_price)
    
    better_price_short = barssince(closed) > barssince(short_condition) and barssince(short_condition) >= 1 and not in_market and ema_bear and sell_price > valuewhen(short_condition, sell_price, 0) and sell_price[0] > sell_price[1]
    if better_price_short
        strategy.cancel("Short")
        strategy.entry("Short", false, stop=sell_price)

// Stoploss orders

stop_price = long_position ? valuewhen(bought, lowest(stop_lookback)[1] - syminfo.mintick, 0) : short_position ? valuewhen(sold, highest(3)[1] + syminfo.mintick, 0) : na
stop_comment = "Stoploss triggered"
strategy.close("Long", low <= stop_price, stop_comment)
strategy.close("Short", high >= stop_price, stop_comment)
plot(stop_price, "Stop price", color.red, 2, plot.style_linebr)

// EMA cross close orders

if ema_cross_stop
    if long_position and ema_bear
        strategy.close("Long", comment=stop_comment)
    if short_position and ema_bull
        strategy.close("Short", comment=stop_comment)

// Take profit orders

stop_ticks = abs(strategy.position_avg_price - stop_price)
take_profit_price = long_position ? valuewhen(bought, strategy.position_avg_price + stop_ticks * risk_reward_ratio, 0) : short_position ? valuewhen(sold, strategy.position_avg_price  - (stop_ticks * risk_reward_ratio), 0) : na
target_comment = "Take profit"
strategy.close("Long", high >= take_profit_price, target_comment)
strategy.close("Short", low <= take_profit_price, target_comment)
plot(take_profit_price, "Target price", color.green, 2, plot.style_linebr)