Williams %R melaraskan strategi henti untung dan henti rugi secara dinamik

EMA TP SL
Tarikh penciptaan: 2024-06-07 15:52:55 Akhirnya diubah suai: 2024-06-07 15:52:55
Salin: 10 Bilangan klik: 783
1
fokus pada
1617
Pengikut

Williams %R melaraskan strategi henti untung dan henti rugi secara dinamik

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada penunjuk Williams %R, untuk mengoptimumkan prestasi dagangan dengan menyesuaikan tahap stop loss secara dinamik. Ia menghasilkan isyarat beli apabila Williams %R melintasi kawasan oversold (-80), dan menghasilkan isyarat jual apabila ia melintasi kawasan oversold (-20). Ia juga menggunakan purata bergerak indeks (EMA) untuk meluruskan nilai Williams %R untuk mengurangkan kebisingan.

Prinsip Strategi

  1. Hitung nilai penunjuk Williams %R untuk kitaran yang diberikan.
  2. Hitung purata bergerak indeks Williams %R ((EMA) }}.
  3. Apabila Williams %R dari bawah ke atas melintasi tahap 80, ia akan mencetuskan isyarat beli; apabila dari atas ke bawah melintasi tahap 20, ia akan mencetuskan isyarat jual.
  4. Selepas membeli, setkan tahap berhenti dan hentikan sehingga anda mencapai harga berhenti / hentikan atau Williams % R yang mencetuskan isyarat pembalikan.
  5. Selepas menjual, setkan tahap stop dan stop loss dan tutupkan sehingga anda mencapai harga stop / stop loss atau Williams % R yang mencetuskan isyarat pembalikan.
  6. Anda boleh memilih untuk berdagang dalam julat masa yang ditentukan (seperti 9: 00-11: 00) dan sama ada berdagang di sekitar titik bulat (dari minit X ke minit Y).
  7. Anda boleh memilih untuk berdagang dengan hanya melakukan lebih, hanya melakukan lebih atau berdagang dua arah.

Analisis kelebihan

  1. Stop Loss Dinamik: Tingkat Stop Loss boleh disesuaikan secara dinamik mengikut tetapan pengguna untuk melindungi keuntungan dan mengawal risiko.
  2. Fleksibiliti parameter: Pengguna boleh menetapkan pelbagai parameter mengikut keutamaan mereka sendiri, seperti kitaran penunjuk, tahap stop loss, masa perdagangan, dan lain-lain, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Penunjuk kelancaran: Masukkan nilai EMA Williams % R yang lancar, yang dapat mengurangkan bunyi penunjuk dengan berkesan dan meningkatkan kebolehpercayaan isyarat.
  4. Hadkan masa dagangan: Anda boleh memilih untuk berdagang dalam jangka masa tertentu, mengelakkan pergerakan pasaran yang tinggi, dan mengurangkan risiko.
  5. Arah perdagangan tersuai: boleh dipilih berdasarkan trend pasaran dan penilaian peribadi, hanya melakukan lebih banyak, hanya melakukan perdagangan kosong atau perdagangan dua hala.

Analisis risiko

  1. Tetapan parameter yang tidak betul: Jika tetapan Stop Loss terlalu longgar atau terlalu ketat, ia boleh menyebabkan kerugian keuntungan atau sering berhenti.
  2. Kesalahan pengiktirafan trend: Indikator Williams %R tidak berfungsi dengan baik di pasaran yang bergolak, dan mungkin menghasilkan isyarat yang salah.
  3. Pembatasan masa adalah terhad: pembatasan masa perdagangan boleh menyebabkan strategi terlepas peluang perdagangan yang baik.
  4. Kelebihan pengoptimuman: Parameter pengoptimuman berlebihan boleh menyebabkan strategi tidak berfungsi dengan baik dalam perdagangan sebenar masa depan.

Arah pengoptimuman

  1. Gabungan dengan penunjuk lain: seperti penunjuk trend, penunjuk kadar turun naik, dan sebagainya, meningkatkan ketepatan pengiktirafan isyarat.
  2. Pengoptimuman parameter dinamik: menyesuaikan parameter dalam masa nyata mengikut keadaan pasaran, seperti menggunakan tetapan parameter yang berbeza di pasaran tren dan pasaran goyah.
  3. Peningkatan kaedah hentikan kerugian: seperti menggunakan kaedah hentikan kerugian yang dijejaki, hentikan sebahagian untuk melindungi keuntungan dan mengawal risiko dengan lebih baik.
  4. Menambah pengurusan wang: saiz kedudukan setiap perdagangan disesuaikan secara dinamik mengikut baki akaun dan pilihan risiko.

ringkaskan

Strategi Williams %R untuk penyesuaian dinamik berhenti berhenti mengambil harga dengan cara yang mudah dan berkesan untuk menangkap keadaan harga yang lebih baik, sambil menyediakan tetapan parameter yang fleksibel untuk menyesuaikan diri dengan keadaan pasaran dan gaya perdagangan yang berbeza. Strategi ini secara dinamik menyesuaikan tahap berhenti berhenti untuk mengawal risiko dan melindungi keuntungan. Tetapi dalam aplikasi praktikal, anda masih perlu memperhatikan parameter yang ditetapkan, pengesahan isyarat, pilihan masa perdagangan dan sebagainya untuk meningkatkan kestabilan dan keuntungan strategi.

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