Williams %R secara dinamis menyesuaikan strategi stop-profit dan stop-loss

EMA TP SL
Tanggal Pembuatan: 2024-06-07 15:52:55 Akhirnya memodifikasi: 2024-06-07 15:52:55
menyalin: 10 Jumlah klik: 783
1
fokus pada
1617
Pengikut

Williams %R secara dinamis menyesuaikan strategi stop-profit dan stop-loss

Ringkasan

Strategi ini didasarkan pada indikator Williams %R untuk mengoptimalkan kinerja perdagangan dengan secara dinamis menyesuaikan tingkat stop loss. Strategi ini menghasilkan sinyal beli ketika Williams %R melintasi zona oversold (-80), dan menghasilkan sinyal jual ketika melewati zona oversold (-20). Strategi ini juga menggunakan indeks moving average (EMA) untuk meratakan nilai Williams %R untuk mengurangi kebisingan. Strategi ini menyediakan pengaturan parameter yang fleksibel, termasuk siklus indikator, tingkat stop loss (TP / SL), waktu perdagangan, dan pilihan arah perdagangan, untuk menyesuaikan dengan lingkungan pasar yang berbeda dan preferensi pedagang.

Prinsip Strategi

  1. Hitung nilai indikator Williams %R untuk periode tertentu.
  2. Hitung rata-rata bergerak indeks Williams %R (EMA)
  3. Ketika Williams %R melintasi level 80 dari bawah ke atas, memicu sinyal beli; ketika melintasi level 20 dari atas ke bawah, memicu sinyal jual.
  4. Setelah Anda membeli, Anda dapat mengatur stop loss dan level stop loss untuk melunasi posisi Anda sampai Anda mencapai harga stop loss atau Williams %R memicu sinyal mundur.
  5. Setelah menjual, tetapkan stop loss dan level stop loss sampai mencapai harga stop/stop loss atau Williams %R memicu sinyal mundur.
  6. Anda dapat memilih untuk berdagang dalam rentang waktu yang ditentukan (misalnya, 9:00-11:00) dan apakah berdagang di sekitar titik bulat (misalnya, X menit sebelum dan Y menit setelah).
  7. Anda dapat memilih untuk melakukan perdagangan hanya dengan melakukan lebih banyak, hanya dengan melakukan lebih sedikit, atau perdagangan dua arah.

Analisis Keunggulan

  1. Stop Loss Dinamis: Tingkat Stop Loss dapat disesuaikan secara dinamis dengan pengaturan pengguna untuk melindungi keuntungan dan mengendalikan risiko.
  2. Fleksibilitas parameter: Pengguna dapat mengatur berbagai parameter sesuai dengan preferensi mereka sendiri, seperti siklus indikator, tingkat stop loss, waktu perdagangan, dan sebagainya, untuk menyesuaikan dengan kondisi pasar yang berbeda.
  3. Indikator kelancaran: Masukkan nilai EMA kelancaran Williams %R, yang dapat secara efektif mengurangi noise indikator dan meningkatkan keandalan sinyal.
  4. Pembatasan waktu perdagangan: Anda dapat memilih untuk berdagang dalam jangka waktu tertentu, menghindari saat pasar bergejolak, dan mengurangi risiko.
  5. Anda dapat memilih untuk melakukan perdagangan hanya dalam jumlah yang lebih, hanya dalam posisi kosong, atau perdagangan dua arah.

Analisis risiko

  1. Parameter yang tidak tepat: Jika Stop Loss diatur terlalu longgar atau terlalu ketat, dapat menyebabkan kerugian keuntungan atau sering stop loss.
  2. Kesalahan pengidentifikasi tren: Indikator Williams %R berkinerja buruk di pasar yang bergejolak dan dapat menghasilkan sinyal yang salah.
  3. Pembatasan waktu terbatas: pembatasan waktu perdagangan dapat membuat strategi kehilangan beberapa peluang perdagangan yang baik.
  4. Overoptimisasi: Parameter yang terlalu dioptimalkan dapat menyebabkan strategi tidak berkinerja baik dalam transaksi nyata di masa depan.

Arah optimasi

  1. Kombinasi dengan indikator lain: seperti indikator tren, indikator volatilitas, dan lain-lain, meningkatkan akurasi pengakuan sinyal.
  2. Optimasi parameter dinamis: menyesuaikan parameter secara real-time sesuai dengan kondisi pasar, seperti menggunakan pengaturan parameter yang berbeda di pasar tren dan pasar goyah.
  3. Peningkatan metode stop loss, seperti stop loss tracking, partial stop, dan lain-lain, untuk lebih melindungi keuntungan dan mengendalikan risiko.
  4. Menambahkan manajemen dana: ukuran posisi setiap transaksi secara dinamis sesuai dengan saldo akun dan preferensi risiko.

Meringkaskan

Williams %R Strategi stop loss yang disesuaikan secara dinamis menangkap keadaan harga yang lebih baik dan lebih baik dengan cara yang sederhana dan efektif, sambil memberikan pengaturan parameter yang fleksibel untuk menyesuaikan dengan lingkungan pasar dan gaya perdagangan yang berbeda. Strategi ini secara dinamis menyesuaikan tingkat stop loss untuk mengendalikan risiko dan melindungi keuntungan dengan lebih baik. Namun, dalam penerapan praktis, tetap perlu memperhatikan pengaturan parameter, konfirmasi sinyal, pilihan waktu perdagangan, dan faktor-faktor lainnya untuk meningkatkan stabilitas dan profitabilitas strategi.

Kode Sumber Strategi
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Williams %R Strategy defined buy/sell criteria with TP / SL", overlay=true)

// User inputs for TP and SL levels
tp_level = input.int(defval=60, title="Take Profit (ticks)", minval=10, maxval=500, step=10)
sl_level = input.int(defval=60, title="Stop Loss (ticks)", minval=10, maxval=200, step=10)

// Williams %R calculation
length = input.int(defval=21, title="Length", minval=5, maxval=50, step=1)
willy = 100 * (close - ta.highest(length)) / (ta.highest(length) - ta.lowest(length))

// Exponential Moving Average (EMA) of Williams %R
ema_length = input.int(defval=13, title="EMA Length", minval=5, maxval=50, step=1)
ema_willy = ta.ema(willy, ema_length)

// User inputs for Williams %R thresholds
buy_threshold = -80
sell_threshold = -20

// User input to enable/disable specific trading hours
use_specific_hours = input.bool(defval=false, title="Use Specific Trading Hours")
start_hour = input(defval=timestamp("0000-01-01 09:00:00"), title="Start Hour")
end_hour = input(defval=timestamp("0000-01-01 11:00:00"), title="End Hour")

// User input to choose trade direction
trade_direction = input.string(defval="Both", title="Trade Direction", options=["Buy Only", "Sell Only", "Both"])

// User input to enable/disable "Minutes Before" and "Minutes After" options
enable_minutes_before_after = input.bool(defval=true, title="Enable Minutes Before/After Options")
minutes_before = enable_minutes_before_after ? input.int(defval=10, title="Minutes Before the Top of the Hour", minval=0, maxval=59, step=1) : 0
minutes_after = enable_minutes_before_after ? input.int(defval=10, title="Minutes After the Top of the Hour", minval=0, maxval=59, step=1) : 0

// Condition to check if the current minute is within the user-defined time window around the top of the hour
is_top_of_hour_range = (minute(time) >= (60 - minutes_before) and minute(time) <= 59) or (minute(time) >= 0 and minute(time) <= minutes_after)

// Condition to check if the current time is within the user-defined specific trading hours
in_specific_hours = true
if use_specific_hours
    in_specific_hours := (hour(time) * 60 + minute(time)) >= (hour(start_hour) * 60 + minute(start_hour)) and (hour(time) * 60 + minute(time)) <= (hour(end_hour) * 60 + minute(end_hour))

// Buy and Sell conditions with time-based restriction
buy_condition = ta.crossover(willy, buy_threshold) and is_top_of_hour_range and in_specific_hours
sell_condition = ta.crossunder(willy, sell_threshold) and is_top_of_hour_range and in_specific_hours

// Strategy entry and exit with TP and SL
if (trade_direction == "Buy Only" or trade_direction == "Both") and buy_condition
    strategy.entry("Buy", strategy.long)

if (trade_direction == "Sell Only" or trade_direction == "Both") and sell_condition
    strategy.entry("Sell", strategy.short)

// If a buy entry was taken, allow the trade to be closed after reaching TP and SL or if conditions for a sell entry are true
if (strategy.opentrades > 0)
    strategy.exit("TP/SL", profit=tp_level, loss=sl_level)

// Plot Williams %R and thresholds for visualization
hline(-20, "Upper Band", color=color.red)
hline(-80, "Lower Band", color=color.green)
plot(willy, title="%R", color=color.yellow, linewidth=2)
plot(ema_willy, title="EMA", color=color.aqua, linewidth=2)