Strategi Purata Bergerak Poligon

Penulis:ChaoZhang, Tarikh: 2023-10-31 14:53:50
Tag:

img

Ringkasan

Strategi Purata Bergerak Poligon membina poligon dengan pelbagai purata bergerak dari tempoh yang berbeza dan menggunakan terobosan poligon sebagai isyarat perdagangan. Strategi trend berikut ini menggabungkan beberapa bingkai masa dan dapat menapis bunyi pasaran dengan berkesan dan menangkap trend utama.

Logika Strategi

Strategi ini merangkumi beberapa EMA, seperti EMA 3-periode, 7-periode dan 13-periode, untuk membentuk saluran poligon. Apabila harga memecahkan di atas EMA, isyarat panjang dihasilkan. Apabila harga memecahkan di bawah EMA, isyarat pendek dihasilkan. Ini membantu mengelakkan banyak pecah palsu.

Kod ini menentukan isyarat terobosan dengan membandingkan harga penutupan dengan EMA menggunakan syarat seperti close>ema1 dan ema1>ema2 dan ema2>ema3.

Kelebihan

Kelebihan terbesar strategi ini adalah keupayaannya untuk menangkap arah trend utama dengan berkesan dengan menggunakan pelbagai purata bergerak sebagai penapis untuk mengelakkan bunyi bising.

Risiko dan Penyelesaian

Risiko utama adalah bahawa strategi ini gagal mengenal pasti titik pembalikan trend dan boleh membawa kepada kerugian semasa pembalikan trend. Tetapan tempoh MA yang tidak sesuai juga boleh mengakibatkan overtrading atau isyarat tertinggal. Risiko dapat dikurangkan dengan mengoptimumkan kombinasi MA, menambah penunjuk pembalikan, memperluaskan julat stop loss, dll.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan tempoh MA untuk mencari kombinasi yang terbaik.

  2. Tambah penunjuk pembalikan seperti RSI dan MACD untuk keluar perdagangan tepat pada masanya.

  3. Mengoptimumkan julat stop loss dan offset untuk mengurangkan stop loss awal.

  4. Mengoptimumkan parameter untuk produk yang berbeza untuk meningkatkan kebolehsesuaian.

Ringkasan

Strategi purata bergerak poligon umumnya merupakan sistem trend berikut yang boleh dipercayai dan berkesan. Kekuatannya yang terbesar adalah menangkap trend utama sambil menapis bunyi bising dengan ketara. Tetapi ia mempunyai beberapa batasan dalam mengenal pasti pembalikan. Kita boleh memperbaikinya dengan pengoptimuman parameter, menambah penunjuk tambahan, dll. Ia sesuai untuk pasaran dengan trend yang jelas dan boleh menjana keuntungan yang stabil jika digunakan dengan betul.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Crypto-Oli

//@version=4
strategy("BLANK Strategy + TSL", initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, pyramiding=1, commission_value=0.075, overlay=true)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////


/// YOUR INPUTS BELOW - DELET EXAPLES ///


ema1=ema(close,input(3))
ema2=ema(close,input(7))
ema3=ema(close,input(13))


/// PLOTS IF YOU NEED BELOW - DELET EXAPLES ///


plot(ema1, "EMA1", color.yellow)
plot(ema2, "EMA2", color.white)
plot(ema3, "EMA3", color.blue)


/// YOUR CONDITIONS BELOW - DELET EXAPLES ///


longCondition = close>ema1 and ema1>ema2 and ema2>ema3 and time_cond
shortCondition = close<ema1 and ema1<ema2 and ema2<ema3 and time_cond

/// EXECUTION ///


if (longCondition)
    strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)

if (shortCondition)
    strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)

Lebih lanjut