Strategi Penasihat Ahli 3 Menit Singkat

Penulis:ChaoZhangTanggal: 2023-11-24 15:58:01
Tag:

img

Gambaran umum

Ini adalah strategi penasihat ahli jangka pendek 3 menit untuk E-mini S&P500 futures (ES). Ini menghasilkan sinyal perdagangan dengan menghitung serangkaian moving average eksponensial dan menggabungkan kondisi pola tertentu.

Prinsip-prinsip

Indikator inti dari strategi ini adalah garis rata-rata T3. T3 pertama menghitung seperangkat rata-rata bergerak eksponensial xe1 ~ x6 berdasarkan parameter T3 yang didefinisikan pengguna. Kemudian menghitung rata-rata tertimbang dari EMA ini menggunakan koefisien tertentu sebagai garis rata-rata T3 akhir.

Ketika harga penutupan berada di bawah garis rata-rata T3, sinyal beli dihasilkan. Ketika harga penutupan berada di atas garis rata-rata T3, sinyal jual dihasilkan. Selain itu, strategi juga menilai pola lilin tertentu sebagai kondisi masuk tambahan.

Kekuatan

Kekuatan terbesar dari strategi ini terletak pada desain multi-filter dan optimasi parameter. Di satu sisi, menggabungkan aksi harga dan filter pola grafik dapat mengurangi perdagangan kebisingan. Di sisi lain, parameter kunci seperti T3 dan aturan penilaian pola dapat dioptimalkan untuk beradaptasi dengan pasar yang berbeda dan meningkatkan akurasi masuk.

Dibandingkan dengan rata-rata bergerak sederhana, mekanisme triple smoothing dari indikator T3 efektif dalam menyaring kebisingan pasar dan mengidentifikasi titik pembalikan tren.

Risiko & Solusi

Risiko utama dari strategi ini berasal dari penyesuaian parameter yang tidak tepat dan periode pemegang yang terlalu besar. Jika parameter T3 diatur terlalu besar, indikator akan tertinggal di belakang pasar; jika diatur terlalu kecil, itu meningkatkan probabilitas perdagangan kebisingan. Selain itu, operasi 3 menit dapat menghadapi kerugian besar tanpa stop loss yang tepat waktu.

Untuk mengendalikan risiko, hal pertama adalah untuk berulang kali backtest untuk menentukan rentang parameter optimal untuk produk yang berbeda. Kedua, strategi stop loss yang ketat harus dilaksanakan untuk keluar posisi dengan persentase kerugian yang dapat diterima per perdagangan.

Peningkatan

Ada beberapa arah untuk meningkatkan strategi:

  1. Mengoptimalkan parameter T3 untuk menemukan kisaran optimal untuk instrumen perdagangan yang berbeda

  2. Meningkatkan logika penilaian pola untuk meningkatkan akurasi pengenalan pola

  3. Tambahkan mekanisme stop loss yang lebih canggih seperti trailing stop loss

  4. Tambahkan modul pengelolaan uang berdasarkan faktor keuntungan atau penarikan maksimum

  5. Tambahkan modul akses yang dibantu pembelajaran mesin

Melalui perbaikan ini, stabilitas dan profitabilitas strategi dapat ditingkatkan secara bertahap.

Kesimpulan

Sebagai strategi perdagangan intraday jangka pendek, strategi ini memiliki keuntungan seperti ruang optimasi yang besar, beberapa filter dan eksekusi order yang cepat.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-23 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ES 3m Short Only (Triple RED)", overlay=true)
// Alert Message '{{strategy.order.alert_message}}'
//3min
T3 = input(150)//to 600

xPrice3 = close
xe1 = ta.ema(xPrice3, T3)
xe2 = ta.ema(xe1, T3)
xe3 = ta.ema(xe2, T3)
xe4 = ta.ema(xe3, T3)
xe5 = ta.ema(xe4, T3)
xe6 = ta.ema(xe5, T3)

b3 = 0.7
c1 = -b3*b3*b3
c2 = 3*b3*b3+3*b3*b3*b3
c3 = -6*b3*b3-3*b3-3*b3*b3*b3
c4 = 1+3*b3+b3*b3*b3+3*b3*b3
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3

// Buy Signal - Price is below T3 Average
buySignal3 = xPrice3 < nT3Average
sellSignal3 = xPrice3 > nT3Average

//NinjaTrader Settings.
acct = "Sim101"
ticker = "ES 12-23"
qty = 1
takeProfitTicks = 4
stopLossTicks = 16
tickSize = 0.25

takeProfitShort = close - takeProfitTicks * tickSize
stopLossShort = close + stopLossTicks * tickSize

OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }'
CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }'

IsUp = close > open
IsDown = close < open
PatternPlot = IsDown[2] and IsDown[1] and IsDown and close[1] <= high[0] and close[1] > close[0] and low[1] > low[0] and high[2] > high[1] and low[2] <= low[1]
if (PatternPlot and sellSignal3)
    strategy.entry('Short', strategy.short, alert_message=OCOMarketShort)
    strategy.exit('Close Short', 'Short', profit=takeProfitTicks, loss=stopLossTicks, alert_message=CloseAll)

//plotshape(PatternPlot, title="Custom Pattern", style=shape.circle, location=location.abovebar, color=color.red, size=size.small)


Lebih banyak