Strategi Stop Loss Melingkar Penembusan Resistensi


Tanggal Pembuatan: 2023-12-11 11:44:49 Akhirnya memodifikasi: 2023-12-11 11:44:49
menyalin: 1 Jumlah klik: 573
1
fokus pada
1621
Pengikut

Strategi Stop Loss Melingkar Penembusan Resistensi

Ringkasan

Strategi ini menggunakan sinyal bentuk harga untuk penembusan resistensi dan mekanisme pengendalian risiko penghentian lingkaran. Ini akan melakukan lebih banyak posisi setelah penembusan resistance dan kosong posisi setelah penembusan support.

Prinsip Strategi

Strategi ini didasarkan pada beberapa poin:

  1. Gunakan garis rata-rata untuk menentukan arah tren. Dalam strategi, atur garis rata-rata yang cepat dan lambat, dengan garis cepat yang melewati garis lambat mewakili garis panjang yang naik, dan garis bawah yang melewati garis panjang yang turun.

  2. Resistance breakout melakukan multiple entry. Ketika harga naik melewati titik tertinggi baru-baru ini, dianggap sebagai sinyal untuk menembus resistance level, melakukan multiple entry.

  3. Mendukung sinyal shorting. Ketika harga turun melewati titik terendah baru-baru ini, ini dianggap sebagai sinyal untuk memecahkan support, dan shorting masuk.

  4. Setting loop stop loss. Setting stop loss line after entry and adjusted with price fluctuation, to achieve stop loss line around price operation.

  5. Stop loss dan stop exit. Stop loss dan stop exit dapat mengontrol risiko secara efektif, dan stop stop exit dapat mengunci keuntungan.

Secara khusus, strategi ini menggunakan nilai rata-rata harga tinggi dan rendah sebagai sumber harga, menghitung EMA cepat untuk menentukan arah tren. Lakukan lebih banyak ketika melewati garis lambat di garis cepat dan ada sinyal penembusan resistensi, kosong ketika melewati garis lambat di bawah garis cepat dan ada sinyal penembusan dukungan. Setelah masuk, gunakan harga terendah dalam periode tertentu sebagai stop loss, dan sesuaikan dengan kenaikan harga, atur stop loss untuk mengunci keuntungan.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Stabilitas keuntungan. Beroperasi mengikuti tren, dapat menghasilkan keuntungan dalam tren garis panjang di tingkat indeks.

  2. Pengendalian risiko yang baik. Pengaturan loop stop loss dan stop loss, dapat menghentikan kerugian dan keluar tepat waktu.

  3. Sinyal akurat. Resistance break-out lebih banyak dan support break-out lebih sedikit, sinyal akurat dan dapat diandalkan.

  4. Sederhana dan mudah dioperasikan. Aturan indikator dan sinyal sederhana dan jelas, pengaturan parameter tidak rumit.

  5. Adaptasi pasar. Dapat beroperasi di berbagai varietas dan dalam kondisi pasar apa pun.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Resiko kegagalan penembusan. Resistensi dukungan mungkin terjadi setelah penembusan dan pengujian ulang, yang menyebabkan kerusakan.

  2. Risiko pengoptimalan parameter. Pengaturan parameter yang tidak tepat dapat menyebabkan sinyal sering atau tidak cukup. Proses pengoptimalan perlu berhati-hati.

  3. Risiko kegagalan indikator. Dalam kondisi pasar khusus, indikator EMA mungkin gagal atau tertunda.

  4. Risiko reversal trend. Jika Anda melakukan lebih banyak shorting, kerugian dapat meningkat jika terjadi perpindahan dari pasar.

Risiko-risiko ini dapat dikontrol dan diatasi dengan cara-cara seperti optimasi parameter, toleransi yang tepat, dan pemenuhan sinyal yang ketat.

Arah optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:

  1. Optimalisasi siklus waktu. Menyesuaikan parameter siklus waktu untuk menghitung garis rata-rata dan bentuk harga, mencari kombinasi optimal.

  2. Optimasi adaptasi varietas. Sesuaikan pengaturan parameter sesuai dengan karakteristik varietas yang berbeda.

  3. Optimalkan strategi stop loss. Gunakan cara stop loss yang lebih stabil dan tepat, seperti stop loss bergerak, stop loss bergoyang, dll.

  4. Optimalkan strategi stop-loss. Atur stop-loss bergerak atau stop-loss indeks untuk meningkatkan keuntungan.

  5. Menambahkan kondisi penyaring. Menambahkan kondisi penyaring seperti volume transaksi, volatilitas, dan mengecualikan false breakout.

  6. Meningkatkan sinyal masuk. Menambahkan lebih banyak indikator atau bentuk sebagai konfirmasi sinyal masuk.

Meringkaskan

Strategi ini secara keseluruhan bekerja dengan lancar, ide inti jelas, memiliki stabilitas yang lebih kuat dan kemampuan untuk menghasilkan keuntungan. Pengendalian risiko dan penggunaan indikator juga lebih tepat, adalah strategi kuantitatif terobosan yang layak digunakan. Optimasi selanjutnya melalui parameter dan modul, dapat membuat strategi lebih menyempurnakan, untuk menyesuaikan lebih banyak varietas dan lingkungan pasar yang kompleks.

Kode 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)