Strategi Penasihat Pakar Hanya 3 Minit Pendek

Penulis:ChaoZhang, Tarikh: 2023-11-24 15:58:01
Tag:

img

Ringkasan

Ini adalah strategi penasihat pakar jangka pendek 3 minit untuk niaga hadapan E-mini S&P500 (ES). Ia menghasilkan isyarat perdagangan dengan mengira satu siri purata bergerak eksponensial dan menggabungkan keadaan corak tertentu.

Prinsip-prinsip

Indikator teras strategi ini adalah garis purata T3. T3 pertama mengira satu set purata bergerak eksponensial xe1 ~ x6 berdasarkan parameter T3 yang ditakrifkan pengguna. Kemudian ia mengira purata tertimbang EMA ini menggunakan pekali tertentu sebagai garis purata T3 akhir.

Apabila harga penutupan di bawah garis purata T3, isyarat beli dihasilkan. Apabila harga penutupan di atas garis purata T3, isyarat jual dihasilkan. Di samping itu, strategi ini juga menilai corak lilin tertentu sebagai syarat masuk tambahan. Perintah dagangan hanya akan dihantar apabila kedua-dua keadaan corak dan isyarat T3 muncul pada masa yang sama.

Kelebihan

Kemahiran terbesar strategi ini terletak pada reka bentuk pelbagai penapis dan pengoptimuman parameter. Di satu pihak, menggabungkan tindakan harga dan penapis corak carta dapat mengurangkan perdagangan bunyi bising. Di sisi lain, parameter utama seperti T3 dan peraturan penghakiman corak dapat dioptimumkan untuk menyesuaikan diri dengan pasaran yang berbeza dan meningkatkan ketepatan kemasukan.

Berbanding dengan purata bergerak yang mudah, mekanisme penghalusan tiga kali ganda penunjuk T3 adalah berkesan dalam menapis bising pasaran dan mengenal pasti titik pembalikan trend.

Risiko & Penyelesaian

Risiko utama strategi ini berasal dari penyesuaian parameter yang tidak sesuai dan tempoh penahan yang terlalu besar. Jika parameter T3 ditetapkan terlalu besar, penunjuk akan tertinggal di belakang pasaran; jika ditetapkan terlalu kecil, ia meningkatkan kebarangkalian perdagangan bunyi bising. Di samping itu, operasi 3 minit boleh menghadapi kerugian besar tanpa kehilangan berhenti tepat pada masanya.

Untuk mengawal risiko, perkara pertama adalah untuk berulang kali backtest untuk menentukan julat parameter optimum untuk produk yang berbeza. Kedua, strategi stop loss yang ketat harus dilaksanakan untuk keluar kedudukan dengan peratusan kerugian yang boleh diterima setiap perdagangan.

Peningkatan

Terdapat beberapa arah untuk meningkatkan strategi:

  1. Mengoptimumkan parameter T3 untuk mencari julat optimum untuk instrumen dagangan yang berbeza

  2. Meningkatkan logik penilaian corak untuk meningkatkan ketepatan pengenalan corak

  3. Tambah mekanisme stop loss yang lebih maju seperti kehilangan stop trailing

  4. Tambah modul pengurusan wang berdasarkan faktor keuntungan atau pengeluaran maksimum

  5. Tambah modul kemasukan dibantu pembelajaran mesin

Melalui penambahbaikan ini, kestabilan dan keuntungan strategi dapat ditingkatkan secara beransur-ansur.

Kesimpulan

Sebagai strategi perdagangan intraday jangka pendek, strategi ini mempunyai kelebihan seperti ruang pengoptimuman yang besar, pelbagai penapis dan pelaksanaan pesanan 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 lanjut