Strategi Pemecahan Purata Berbilang Bergerak


Tarikh penciptaan: 2023-11-22 13:41:38 Akhirnya diubah suai: 2023-11-22 13:41:38
Salin: 0 Bilangan klik: 607
1
fokus pada
1617
Pengikut

Strategi Pemecahan Purata Berbilang Bergerak

Gambaran keseluruhan

Strategi ini menggunakan beberapa pergerakan rata-rata untuk menghasilkan isyarat dagangan. Apabila harga melampaui garis rata-rata yang naik, buatlah lebih banyak; apabila harga melampaui garis rata-rata yang turun, buatlah lebih sedikit.

Prinsip Strategi

Kode menggunakan 4 garis purata bergerak dengan tempoh yang berlainan iaitu 21 hari, 50 hari, 100 hari dan 200 hari. Apabila harga menembusi garis rata-rata ini, anda masuk lebih banyak, dan apabila harga jatuh ke bawah garis rata-rata ini, masuk kosong.

Idea teras strategi ini adalah menggunakan purata bergerak untuk menilai trend harga. Apabila harga melanggar garis purata naik, menunjukkan bahawa ia sedang dalam trend naik, lebih banyak harus dilakukan; apabila harga jatuh ke bawah garis purata turun, menunjukkan bahawa ia sedang dalam trend menurun, harus dihentikan. Menggunakan garis purata yang berbeza untuk tempoh yang berbeza, trend dapat ditentukan dengan lebih tepat, dan juga dapat mengesahkan isyarat perdagangan melalui keserasian trend.

Analisis kelebihan

Keuntungan utama dari strategi ini ialah:

  1. Menggunakan penilaian garis rata-rata berbilang, anda boleh menyaring isyarat palsu dengan berkesan
  2. Tetapkan strategi stop loss untuk mengehadkan kerugian tunggal
  3. Operasi mudah dan mudah dilaksanakan

Analisis risiko

Risiko utama strategi ini ialah:

  1. Strategi purata bergerak yang mudah menyebabkan kesilapan dan kehilangan titik perubahan harga
  2. Menembusi isyarat palsu boleh menyebabkan kerugian
  3. Penetapan yang tidak betul boleh meningkatkan kerugian

Risiko ini boleh dikurangkan dengan menyesuaikan parameter garis purata dan mengoptimumkan strategi stop loss.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji kombinasi garis rata dengan lebih banyak kitaran untuk mencari parameter terbaik
  2. Menambah penilaian untuk mengelakkan penembusan palsu
  3. Mengoptimumkan strategi Hentikan Kerosakan dan Hadkan Rasio Risiko-Penghasilan yang Lebih Baik
  4. Menyesuaikan parameter dalam keadaan pasaran yang berbeza untuk menjadikan strategi lebih kasar

ringkaskan

Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang tipikal. Kelebihannya adalah idea yang jelas, mudah difahami dan dilaksanakan; Kelemahannya adalah mudah menghasilkan isyarat yang salah.

Kod sumber strategi
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)