Purata Pergerakan, Purata Pergerakan Mudah, Cerun Purata Pergerakan, Hentian Jejak, Masuk semula

MA SMA MA
Tarikh penciptaan: 2024-06-07 16:41:53 Akhirnya diubah suai: 2024-06-07 16:41:53
Salin: 0 Bilangan klik: 891
1
fokus pada
1617
Pengikut

Purata Pergerakan, Purata Pergerakan Mudah, Cerun Purata Pergerakan, Hentian Jejak, Masuk semula

Gambaran keseluruhan

Strategi ini membuat keputusan dagangan berdasarkan kemerosotan dan harga MA berbanding dengan kedudukan MA. Strategi ini membeli apabila kemerosotan MA lebih besar daripada penurunan kemerosotan minimum dan harga lebih tinggi daripada MA. Strategi ini juga menggunakan Trailing Stop Loss untuk menguruskan risiko dan memasuki semula dalam keadaan tertentu. Strategi ini bertujuan untuk menangkap peluang dalam trend menaik, sambil mengoptimumkan keuntungan dan risiko melalui mekanisme berhenti dan masuk semula yang dinamik.

Prinsip Strategi

  1. Hitung purata bergerak mudah (SMA) untuk tempoh yang ditetapkan sebagai penunjuk trend utama.
  2. Hitung kemerosotan SMA dalam tempoh tetingkap yang ditetapkan untuk menilai kekuatan trend semasa.
  3. Apabila SMA lebih besar daripada nilai terendah dan harga lebih tinggi daripada SMA, anda menganggap pasaran berada dalam trend menaik, dan anda melakukan pembelian.
  4. Apabila masuk ke dalam pasaran, strategi menggunakan mekanisme pengesanan kerugian dan secara dinamik menyesuaikan harga stop loss berdasarkan harga semasa dan peratusan yang ditetapkan.
  5. Jika harga menyentuh harga hentian pengesanan, strategi untuk melonggarkan dan menandakan hentian berlaku.
  6. Apabila penutupan berlaku, strategi akan kembali ke dalam permainan jika harga kembali ke bawah peratusan tertentu di bawah SMA.
  7. Jika harga jatuh di bawah SMA, strategi adalah untuk menebus kedudukan.

Analisis kelebihan

  1. Pengesanan trend: menilai trend melalui kemerosotan SMA dan kedudukan harga berbanding SMA, membantu strategi untuk mendapat keuntungan dalam trend menaik.
  2. Hentian dinamik: Menggunakan mekanisme hentian yang mengesan, menyesuaikan kedudukan hentian mengikut perubahan harga yang dinamik, dapat melindungi keuntungan dengan lebih baik dan membatasi kerugian.
  3. Kembali masuk: Selepas penangguhan berlaku, strategi ini akan kembali masuk apabila harga kembali ke peratusan tertentu di bawah SMA untuk menangkap peluang rebound yang berpotensi.
  4. Fleksibiliti parameter: Strategi ini menyediakan beberapa parameter yang boleh disesuaikan, seperti kitaran SMA, margin paling rendah, peratusan hentian pengesanan, dan sebagainya, yang boleh dioptimumkan mengikut keadaan pasaran yang berbeza.

Analisis risiko

  1. Sensitiviti parameter: Prestasi strategi mungkin lebih sensitif kepada tetapan parameter, dan pilihan parameter yang tidak tepat boleh menyebabkan prestasi strategi yang buruk.
  2. Pengesanan Trend: Strategi ini bergantung kepada kemerosotan SMA dan kedudukan harga berbanding SMA untuk menilai trend, yang mungkin menunjukkan isyarat yang salah dalam keadaan pasaran tertentu.
  3. Frekuensi Stop Loss: Mekanisme Tracking Stop Loss boleh menyebabkan stop loss yang kerap, terutamanya dalam keadaan turun naik pasaran yang besar, yang mempengaruhi prestasi keseluruhan strategi.
  4. Risiko masuk semula: mekanisme masuk semula mungkin dalam beberapa keadaan menyebabkan strategi masuk semula mengalami penurunan lebih lanjut, meningkatkan kerugian.

Arah pengoptimuman

  1. Pengesahan trend: Pengesahan trend boleh dikombinasikan dengan petunjuk teknikal lain atau pola tingkah laku harga untuk meningkatkan ketepatan pengenalan trend.
  2. Pengoptimuman Hentikan Kerosakan: Kaedah hentikan lain boleh diterokai, seperti hentikan berdasarkan kadar turun naik atau kedudukan sokongan / rintangan, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Syarat kemasukan semula: Syarat kemasukan semula boleh dioptimumkan dengan mempertimbangkan faktor-faktor seperti ketinggian dan jangka masa penarikan semula harga untuk menyaring beberapa isyarat kemasukan semula yang tidak baik.
  4. Pengurusan kedudukan: Memperkenalkan mekanisme pengurusan kedudukan, menyesuaikan saiz kedudukan setiap perdagangan berdasarkan turun naik pasaran atau petunjuk risiko lain untuk mengawal risiko keseluruhan.

ringkaskan

Strategi ini menilai trend melalui kemerosotan rata-rata bergerak dan kedudukan harga berbanding rata-rata bergerak, dan menggunakan mekanisme untuk mengesan berhenti dan masuk semula dengan syarat untuk menguruskan perdagangan. Kelebihan strategi adalah keupayaan untuk mengikuti trend, perlindungan berhenti dan peluang masuk semula secara dinamik. Walau bagaimanapun, strategi ini juga mempunyai isu-isu yang berpotensi seperti sensitiviti parameter, kesilapan pengenalan trend, frekuensi berhenti dan risiko masuk semula.

Kod sumber strategi
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA Incline Strategy with Trailing Stop-Loss and Conditional Re-Entry", overlay=true, calc_on_every_tick=true)

// Input parameters
windowSize = input.int(10, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.001, title="Minimum Slope")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100
reEntryPercentage = input.float(4.2, title="Re-Entry Percentage Above MA (%)") / 100

// Calculate the moving average
ma = ta.sma(close, maLength)

// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize

// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma

// Variables to track stop loss and re-entry condition
var bool stopLossOccurred = false
var float trailStopPrice = na
// Buy condition
buyCondition = isAboveMinSlope and isAboveMa and ((not stopLossOccurred) or (stopLossOccurred and low < ma * (1 + reEntryPercentage)))

// Execute strategy
if (buyCondition and strategy.opentrades == 0)
    if (stopLossOccurred and close < ma * (1 + reEntryPercentage))
        strategy.entry("Long", strategy.long)
        stopLossOccurred := false
    else if (not stopLossOccurred)
        strategy.entry("Long", strategy.long)

// Trailing stop-loss
if (strategy.opentrades == 1)
    // Calculate the trailing stop price
    trailStopPrice := close * (1 - trailingStopPercentage)
    // Use the built-in strategy.exit function with the trailing stop
    strategy.exit("Trail Stop", "Long", stop=close * (1 - trailingStopPercentage))

// Exit condition
sellCondition = ta.crossunder(close, ma)
if (sellCondition and strategy.opentrades == 1)
    strategy.close("Long")

// Check if stop loss occurred
if (strategy.closedtrades > 0)
    lastExitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
    if (not na(trailStopPrice) and lastExitPrice <= trailStopPrice)
        stopLossOccurred := true

// Reset stop loss flag if the price crosses below the MA
if (ta.crossunder(close, ma))
    stopLossOccurred := false