Sumber dimuat naik... memuat...

Strategi Crossover Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-04-30 17:33:09
Tag:MASMA

img

Ringkasan

Strategi ini menggunakan dua purata bergerak (MA) untuk menjana isyarat dagangan. Apabila MA jangka pendek melintasi di atas MA jangka panjang, isyarat beli dihasilkan; apabila MA jangka pendek melintasi di bawah MA jangka panjang, isyarat jual dihasilkan. Strategi ini juga menetapkan tempoh masa dagangan (8 AM hingga 20 PM UTC) dan sasaran keuntungan (150 mata).

Prinsip Strategi

  1. Mengira dua purata bergerak dengan tempoh yang berbeza (default adalah 5 dan 20 tempoh).
  2. Tentukan sama ada MA jangka pendek melintasi di atas/di bawah MA jangka panjang, yang berfungsi sebagai isyarat beli/jual.
  3. Tetapkan tempoh masa perdagangan dari 8 AM hingga 20 PM UTC, dan hanya berdagang dalam tempoh masa ini.
  4. Tentukan sama ada 4 lilin terakhir telah ditutup di atas/di bawah MA untuk mengesahkan trend.
  5. Jika syarat beli/jual dipenuhi, buka kedudukan dan tetapkan sasaran keuntungan 150 mata.

Kelebihan Strategi

  1. Menggunakan dua MAs dengan tempoh yang berbeza dapat menangkap trend dengan berkesan, sesuai untuk pasaran trend.
  2. Menetapkan tempoh masa dagangan dapat mengelakkan dagangan pada masa kecairan yang rendah, mengurangkan risiko.
  3. Memastikan trend dengan memeriksa sama ada 4 lilin terakhir telah ditutup di atas / di bawah MA boleh meningkatkan kebolehpercayaan isyarat.
  4. Menetapkan sasaran keuntungan tetap dapat mengunci keuntungan dan mengawal risiko dengan berkesan.

Risiko Strategi

  1. Dalam pasaran yang berbelit-belit, strategi ini boleh menghasilkan isyarat palsu yang kerap, yang membawa kepada kerugian.
  2. Sasaran keuntungan tetap boleh mengehadkan potensi keuntungan strategi.
  3. Strategi ini tidak menetapkan stop loss, yang mungkin menghadapi risiko yang besar apabila pasaran berbalik dengan cepat.

Arahan Pengoptimuman Strategi

  1. Pertimbangkan untuk memasukkan lebih banyak penunjuk teknikal, seperti RSI dan MACD, untuk meningkatkan kebolehpercayaan isyarat.
  2. Mengoptimumkan penetapan sasaran keuntungan dan hentian kerugian, seperti menggunakan sasaran keuntungan dinamik dan hentian kerugian atau sasaran keuntungan berasaskan ATR dan hentian kerugian.
  3. Menggabungkan maklumat struktur mikro pasaran, seperti aliran pesanan, untuk pengesahan kedua isyarat perdagangan.
  4. Mengambil tetapan parameter yang berbeza untuk keadaan pasaran yang berbeza (trend/cacat) untuk meningkatkan kebolehsesuaian strategi.

Ringkasan

Strategi ini menghasilkan isyarat perdagangan berdasarkan persilangan dua purata bergerak dengan tempoh yang berbeza, sesuai untuk pasaran yang sedang berkembang. Dengan menetapkan tempoh perdagangan dan sasaran keuntungan tetap, ia dapat mengawal risiko hingga tahap tertentu. Walau bagaimanapun, strategi mungkin tidak berfungsi dengan baik di pasaran yang bergolak, dan sasaran keuntungan tetap mungkin mengehadkan potensi keuntungan strategi. Pada masa akan datang, seseorang boleh mempertimbangkan memasukkan lebih banyak penunjuk teknikal, mengoptimumkan penetapan sasaran keuntungan dan stop loss, menggabungkan maklumat struktur mikro pasaran, dan mengamalkan tetapan parameter yang berbeza untuk keadaan pasaran yang berbeza untuk mengoptimumkan strategi ini.


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

//@version=4
strategy("Moving Average Crossover Strategy", overlay=true)

// User-defined moving average periods
ma1Periods = input(5, title="First Moving Average Periods")
ma2Periods = input(20, title="Second Moving Average Periods")

// Calculate moving averages
ma1 = sma(close, ma1Periods)
ma2 = sma(close, ma2Periods)

// Plot moving averages
plot(ma1, color=color.red, linewidth=2, title="First Moving Average")
plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average")

// Detect crossovers and crossunders
bullishCross = crossover(ma1, ma2)
bearishCross = crossunder(ma1, ma2)

// Define trading hours (8 AM to 2 PM UTC)
startHour = 8
endHour = 20
utcHour = hour(time, "UTC")
isMarketOpen = true

// Define profit target
profitTarget = 150

// Check if the price has closed above/below the MA for the past 4 bars
aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1]
belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1]

// Create buy and sell signals
if (bullishCross and isMarketOpen and aboveMa)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", profit=profitTarget)
if (bearishCross and isMarketOpen and belowMa)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", profit=profitTarget)

// Plot shapes on crossovers
plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")


Berkaitan

Lebih lanjut