SMMA dinamik dan Strategi Crossover SMA


Tarikh penciptaan: 2024-02-02 11:38:08 Akhirnya diubah suai: 2024-02-02 11:38:08
Salin: 0 Bilangan klik: 788
1
fokus pada
1617
Pengikut

SMMA dinamik dan Strategi Crossover SMA

Gambaran keseluruhan

Strategi ini menggunakan 50 kitaran rata-rata bergerak licin ((SMMA) dan 20 kitaran rata-rata bergerak mudah ((SMA) untuk menentukan masa membeli dan menjual. Ia menghasilkan isyarat membeli apabila SMA cepat naik menembusi SMMA perlahan; ia menghasilkan isyarat menjual apabila SMA turun menembusi SMMA. Ia juga menetapkan kedudukan berhenti tetap dan kedudukan berhenti dinamik untuk mengunci keuntungan dan mengawal risiko.

Prinsip Strategi

  1. Hitung dan lukis 50 kitaran SMMA dan 20 kitaran SMA.
  2. Apabila SMA menembusi SMMA dari bawah ke atas, ia menghasilkan isyarat beli; sebaliknya, apabila SMA menembusi SMMA dari atas ke bawah, ia menghasilkan isyarat jual.
  3. Posisi “Buy” dan “Sell” diletakkan apabila isyarat beli dan jual berlaku.
  4. Terdapat 150 titik penangguhan yang ditetapkan untuk setiap kedudukan.
  5. Tetapkan stop loss dinamik pada harga penutupan K baris seterusnya yang menghasilkan isyarat.
  6. Jika harga menyentuh titik berhenti, ia berhenti; jika ia menyentuh titik berhenti, ia berhenti.

Analisis kelebihan

  1. Strategi ini mudah digunakan, asasnya mudah, dan mudah difahami.
  2. SMMA adalah penambahbaikan kepada SMA yang lebih baik untuk menangkap trend.
  3. Gabungan antara SMA dan SMMA yang berbeza kitaran, boleh menangkap trend pada masa yang sama ketika gelombang surut.
  4. Menggunakan Hentian Dinamik boleh menyesuaikan kedudukan Hentian mengikut perubahan keadaan, mengawal risiko dengan berkesan.
  5. Penetapan terdahulu akan membantu untuk mengunci keuntungan.

Analisis risiko

  1. Strategi dua garis seimbang mudah menghasilkan isyarat palsu, dan boleh dirunding. Isyarat boleh disaring dengan betul, dan perdagangan yang terlalu kerap dapat dielakkan.
  2. Hentian tetap mudah terlewatkan. Anda boleh menetapkan Hentian bergerak atau Hentian kadar keuntungan.
  3. Hentian dinamik boleh menjadi terlalu dekat semasa turun naik pasaran yang teruk, dan anda harus melepaskan Hentian Hentian dengan tepat.
  4. Perhatikan perbezaan dalam varieti dan parameter kitaran.

Arah pengoptimuman

  1. boleh menguji kombinasi parameter yang berbeza (bilangan kitaran, keadaan penapisan dan sebagainya) untuk mencari parameter terbaik;

  2. boleh digabungkan dengan faktor-faktor lain untuk memfilter isyarat, seperti peningkatan jumlah pelanggan;

  3. Alat pengoptimuman parameter boleh digunakan untuk mencari parameter optimum;

  4. Penghentian lain boleh dipertimbangkan, seperti penghentian bergerak dan penghentian perkadaran;

  5. Stop loss dinamik boleh dikira dengan turun naik pasaran.

ringkaskan

Strategi ini beroperasi secara keseluruhan dengan mudah, menangkap arah trend melalui dua garis rata; penggunaan yang fleksibel dari stop-loss tetap dan stop-loss dinamik untuk mengunci keuntungan dan mengawal risiko, risiko dan keuntungan yang boleh dikatakan. Strategi ini dapat disesuaikan dengan keadaan pasaran yang lebih luas melalui pengoptimuman parameter dan peraturan.

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

//@version=4
strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true)

// Define 50 SMMA
smma50 = sma(close, 50)

// Define 20 SMA
sma20 = sma(close, 20)

// Plotting the SMMA and SMA
plot(smma50, color=color.blue, title="50 SMMA")
plot(sma20, color=color.red, title="20 SMA")

// Initialize TP and SL variables
tp = 150
var float sl_price = na

// Buy Signal
buySignal = crossover(sma20, smma50)
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price)

// Sell Signal
sellSignal = crossunder(sma20, smma50)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price)

// Update stop loss level on every crossover
if (buySignal or sellSignal)
    sl_price := close[bar_index + 1]

// Plot Stop Loss level
plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)