Sumber dimuat naik... memuat...

Williams %R Strategi Penyesuaian TP/SL Dinamik

Penulis:ChaoZhang, Tarikh: 2024-06-07 15:52:55
Tag:EMATPSL

img

Ringkasan

Strategi ini adalah berdasarkan kepada penunjuk Williams %R dan mengoptimumkan prestasi perdagangan dengan menyesuaikan secara dinamik mengambil keuntungan dan berhenti kehilangan tahap. isyarat beli dihasilkan apabila Williams %R melintasi di atas kawasan oversold (-80), dan isyarat jual dihasilkan apabila ia melintasi di bawah kawasan overbought (-20).

Prinsip Strategi

  1. Mengira nilai penunjuk Williams %R untuk tempoh tertentu.
  2. Mengira purata bergerak eksponen (EMA) Williams %R.
  3. Apabila Williams %R melintasi di atas tahap -80 dari bawah, ia mencetuskan isyarat beli; apabila ia melintasi di bawah tahap -20 dari atas, ia mencetuskan isyarat jual.
  4. Perdagangan ditutup apabila tahap harga TP / SL dicapai atau apabila Williams % R mencetuskan isyarat terbalik.
  5. Perdagangan ditutup apabila tahap harga TP/SL dicapai atau apabila Williams %R mencetuskan isyarat terbalik.
  6. Pilihan, berdagang dalam julat masa yang ditentukan (contohnya, 9:00-11:00) dan memilih sama ada untuk berdagang berhampiran bahagian atas jam (X minit sebelum hingga Y minit selepas).
  7. Pilihan, pilih arah perdagangan hanya panjang, pendek sahaja, atau kedua-duanya.

Analisis Kelebihan

  1. TP / SL dinamik: Sesuaikan secara dinamik tahap mengambil keuntungan dan menghentikan kerugian berdasarkan tetapan pengguna, yang dapat melindungi keuntungan dan mengawal risiko dengan lebih baik.
  2. Parameter yang fleksibel: Pengguna boleh menetapkan pelbagai parameter mengikut pilihan mereka, seperti tempoh penunjuk, tahap TP / SL, jam dagangan, dll., untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Penunjuk yang halus: Memperkenalkan EMA untuk nilai Williams % R yang halus dapat mengurangkan bunyi penunjuk dengan berkesan dan meningkatkan kebolehpercayaan isyarat.
  4. Tempoh dagangan yang terhad: Pilihan dagangan dalam julat masa tertentu untuk mengelakkan tempoh pasaran yang sangat tidak menentu dan mengurangkan risiko.
  5. Arah perdagangan yang boleh disesuaikan: Pilih untuk pergi panjang sahaja, pendek sahaja, atau berdagang dalam kedua-dua arah berdasarkan trend pasaran dan penilaian peribadi.

Analisis Risiko

  1. Tetapan parameter yang tidak betul: Jika tetapan TP/SL terlalu longgar atau terlalu ketat, ia boleh menyebabkan kerugian keuntungan atau sering berhenti.
  2. Kesalahan pengenalan trend: Penunjuk Williams %R berkinerja buruk dalam pasaran yang bergolak dan boleh menghasilkan isyarat palsu.
  3. Kesan terhad sekatan masa: Mengehadkan masa dagangan boleh menyebabkan strategi kehilangan beberapa peluang dagangan yang baik.
  4. Peningkatan yang berlebihan: Parameter yang terlalu optimum boleh menyebabkan prestasi strategi yang buruk dalam perdagangan sebenar masa depan.

Arahan pengoptimuman

  1. Gabungkan dengan penunjuk lain: Seperti penunjuk trend, penunjuk turun naik, dan lain-lain, untuk meningkatkan ketepatan pengesahan isyarat.
  2. Pengoptimuman parameter dinamik: Sesuaikan parameter dalam masa nyata mengikut keadaan pasaran, seperti menggunakan tetapan parameter yang berbeza dalam pasaran trend dan berkisar.
  3. Memperbaiki kaedah TP/SL: Seperti menggunakan stop loss, mengambil keuntungan separa, dll, untuk melindungi keuntungan dan mengawal risiko dengan lebih baik.
  4. Menggabungkan pengurusan wang: Sesuaikan saiz kedudukan setiap perdagangan secara dinamik berdasarkan baki akaun dan keutamaan risiko.

Ringkasan

Strategi Penyesuaian TP / SL Dinamik Williams % R menangkap keadaan harga terlalu banyak dan terlalu banyak dengan cara yang mudah dan berkesan sambil menyediakan tetapan parameter yang fleksibel untuk menyesuaikan diri dengan persekitaran pasaran dan gaya perdagangan yang berbeza. Strategi secara dinamik menyesuaikan tahap mengambil keuntungan dan menghentikan kerugian, yang dapat mengawal risiko dan melindungi keuntungan dengan lebih baik. Walau bagaimanapun, ketika menerapkan strategi dalam amalan, perhatian masih harus diberikan kepada faktor-faktor seperti tetapan parameter, pengesahan isyarat, dan pemilihan masa perdagangan untuk meningkatkan lagi ketahanan dan keuntungan 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)

Berkaitan

Lebih lanjut