Strategi dagangan mingguan sokongan dan rintangan berbilang peringkat berdasarkan pengembalian min

Pivot SR MR SMA RSI ATR MA VOL
Tarikh penciptaan: 2025-02-18 18:04:15 Akhirnya diubah suai: 2025-02-18 18:04:15
Salin: 2 Bilangan klik: 441
1
fokus pada
1617
Pengikut

Strategi dagangan mingguan sokongan dan rintangan berbilang peringkat berdasarkan pengembalian min

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan berbalik rata-rata berdasarkan pivot point. Ia menentukan titik masuk dan keluar dagangan dengan mengira tahap sokongan setiap minggu (S1-S4) dan tahap rintangan (R1-R4). Strategi ini menggunakan kaedah pembinaan kedudukan secara beransur-ansur, membeli beberapa kali di tahap sokongan yang berbeza dan mengambil keuntungan dari tahap rintangan yang sesuai.

Prinsip Strategi

Inti strategi ini adalah dengan mengira titik-titik pusat minggu ini dengan harga tertinggi, terendah dan harga penutupan minggu sebelumnya, dan kemudian menentukan pelbagai tahap sokongan dan rintangan berdasarkan jarak titik yang telah ditetapkan. Apabila harga menyentuh tahap sokongan, belilah dan tetapkan sasaran keuntungan pada tahap rintangan yang sesuai. Titik pusat = (harga tertinggi minggu lepas + harga terendah minggu lepas + harga penutupan minggu lepas) / 3 Strategi ini membenarkan maksimum 4 kedudukan yang dipegang pada masa yang sama, setiap kedudukan yang sesuai dengan tahap sokongan dan rintangan yang berbeza. Semua kedudukan akan dikira semula tahap perdagangan baru pada awal setiap minggu. Reka bentuk ini memastikan kesinambungan perdagangan dan dapat menyesuaikan diri dengan perubahan pasaran.

Kelebihan Strategik

  1. Logik transaksi adalah jelas, mudah difahami dan dilaksanakan
  2. Mengambil langkah-langkah untuk membina simpanan, mengurangkan risiko transaksi tunggal
  3. Menggunakan kedudukan rintangan sokongan pada paras garis pusingan untuk mengurangkan kesan bunyi dalam sehari
  4. Strategi boleh menyesuaikan parameter secara fleksibel mengikut ciri-ciri pasaran yang berbeza
  5. Mengendalikan risiko dengan peratusan pegangan
  6. Tidak ada masa untuk memaksakan penutupan kedudukan kosong, memberi ruang yang mencukupi untuk keuntungan

Risiko Strategik

  1. Tiada set stop loss yang boleh menyebabkan penarikan balik yang lebih besar di pasaran yang sedang trend kuat
  2. Beberapa kedudukan mungkin mengambil lebih banyak wang
  3. Isyarat palsu mungkin muncul dalam pasaran yang bergolak
  4. Penetapan sokongan yang tidak betul boleh menyebabkan kedudukan gudang yang tidak munasabah Untuk mengurangkan risiko, penapis trend disarankan untuk ditambahkan, hanya membuka kedudukan dalam trend menaik; di samping itu, anda boleh menetapkan stop loss dinamik berdasarkan ATR.

Arah pengoptimuman strategi

  1. Menambah mekanisme pengesahan jumlah pesanan dan meningkatkan kebolehpercayaan isyarat masuk
  2. Memperkenalkan penapis overbought dan oversold dalam RSI dan lain-lain
  3. Membangunkan mekanisme pengesahan berbilang kitaran masa untuk mengurangkan isyarat palsu
  4. Mengoptimumkan sistem pengurusan kedudukan, menyesuaikan jumlah gudang yang dibina mengikut pergerakan pasaran
  5. Menambah analisis relevansi untuk mengelakkan penempatan simultan di pasaran yang sangat relevan

ringkaskan

Ini adalah strategi pulangan nilai rata-rata berdasarkan teori analisis teknikal klasik, menangkap peluang perdagangan dengan pulangan pecah di tempat rintangan yang disokong oleh garis pusingan. Reka bentuk strategi ringkas dan fleksibel, sesuai untuk digunakan di pasaran yang bergelombang. Dengan pengoptimuman parameter yang munasabah dan pengurusan risiko, strategi ini dapat mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza.

Kod sumber strategi
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ViZiV

//@version=5
strategy("Weekly Pivot Strategy, Created by ViZiV", overlay=true, pyramiding=50, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, dynamic_requests=true)

// This is my first COMPLETED strategy, go easy on me :) - Feel free to imrprove upon this script by adding more features if you feel up to the task. Im 100% confiedent there are better coders than me :) I'm still learning.

// This is a LONG ONLY SWING STRATEGY (Patience REQUIRED) that being said, you can go short at you're own discretion. I prefer to use on NQ / US100 / USTech 100 but not limited to it. Im sure it can work in most markets. "You'll need to change settings to suit you're market".

// IMPORTANT NOTE: "default_qty_type=strategy.percent_of_equity" Can be changed to "Contacts" within the properties tab which allow you to see backtest of other markets. Reccomend 1 contract but it comes to preference.

// Inputs for support/resistance distances (Defined by Points). // IMPORTANT NOTE: Completely user Defined. Figure out best settings for what you're trading. Each market is different with different characteristics. Up to you to figure out YOU'RE market volatility for better results. 
s1_offset = input.float(155, "S1 Distance", step=1)
s2_offset = input.float(310, "S2 Distance", step=1)
s3_offset = input.float(465, "S3 Distance", step=1)
s4_offset = input.float(775, "S4 Distance", step=1)
r1_offset = input.float(155, "R1 Distance", step=1)
r2_offset = input.float(310, "R2 Distance", step=1)
r3_offset = input.float(465, "R3 Distance", step=1)
r4_offset = input.float(775, "R4 Distance", step=1)

// Weekly pivot calculation
var float pivot = na
var float s1 = na
var float s2 = na
var float s3 = na
var float s4 = na
var float r1 = na
var float r2 = na
var float r3 = na
var float r4 = na

// Get weekly data (Pivot Calculation)
prevWeekHigh = request.security(syminfo.tickerid, "W", high[1], lookahead=barmerge.lookahead_on)
prevWeekLow = request.security(syminfo.tickerid, "W", low[1], lookahead=barmerge.lookahead_on)
prevWeekClose = request.security(syminfo.tickerid, "W", close[1], lookahead=barmerge.lookahead_on)

// Track active trades
var array<string> entry_ids = array.new<string>(0)
var array<float> profit_targets = array.new<float>(0)

// Update weekly levels
isNewWeek = ta.change(time("W")) != 0
if isNewWeek or na(pivot)
    pivot := (prevWeekHigh + prevWeekLow + prevWeekClose) / 3
    s1 := pivot - s1_offset
    s2 := pivot - s2_offset
    s3 := pivot - s3_offset
    s4 := pivot - s4_offset
    r1 := pivot + r1_offset
    r2 := pivot + r2_offset
    r3 := pivot + r3_offset
    r4 := pivot + r4_offset

// Plot current week's levels
plot(pivot, "Pivot", color=color.gray, linewidth=2)
plot(s1, "S1", color=color.blue, linewidth=1)
plot(s2, "S2", color=color.blue, linewidth=1)
plot(s3, "S3", color=color.blue, linewidth=1)
plot(s4, "S4", color=color.blue, linewidth=1)
plot(r1, "R1", color=color.red, linewidth=1)
plot(r2, "R2", color=color.red, linewidth=1)
plot(r3, "R3", color=color.red, linewidth=1)
plot(r4, "R4", color=color.red, linewidth=1)

// Function to create unique trade entries
checkEntry(level, target, entryNumber) =>
    currentWeek = str.tostring(year(time)) + "_" + str.tostring(weekofyear(time))
    entryId = "Entry" + str.tostring(entryNumber) + "_W" + currentWeek
    
    if low <= level and not array.includes(entry_ids, entryId)
        array.push(entry_ids, entryId)
        array.push(profit_targets, target)
        strategy.entry(entryId, strategy.long)
        strategy.exit("Exit" + entryId, entryId, limit=target)

// Check all entry levels
checkEntry(s1, r1, 1)
checkEntry(s2, r2, 2)
checkEntry(s3, r3, 3)
checkEntry(s4, r4, 4)

// Clean up completed trades using while loop
i = array.size(entry_ids) - 1
while i >= 0
    entryId = array.get(entry_ids, i)
    target = array.get(profit_targets, i)
    
    if high >= target
        array.remove(entry_ids, i)
        array.remove(profit_targets, i)
    i := i - 1