
Gagasan utama strategi ini adalah untuk berdagang pulangan pendek ke arah trend jangka panjang. Khususnya, menggunakan purata bergerak sederhana 200 hari untuk menentukan arah trend jangka panjang, menggunakan purata bergerak sederhana 10 hari untuk menentukan arah trend jangka pendek.
Strategi ini menggunakan 200 hari sederhana bergerak rata-rata dan 10 hari sederhana bergerak rata-rata untuk menilai trend pasaran. Apabila harga di atas melintasi garis 200 hari dianggap memasuki pasaran bermulut, dan apabila harga di bawah garis 200 hari dianggap memasuki pasaran kosong. Dalam pasaran bermulut, jika harga jatuh di sekitar garis 10 hari, menunjukkan ada penyesuaian jangka pendek, ketika ini melakukan lebih banyak, matlamatnya adalah untuk mengikuti trend bermulut jangka panjang terus naik. Dalam pasaran kosong, jika harga naik di sekitar garis 10 hari, menunjukkan ada pantulan balik jangka pendek, ketika ini melakukan kosong, matlamatnya adalah untuk mengikuti tren kosong jangka panjang terus turun.
Khususnya, apabila memenuhi syarat-syarat berikut, masuk ke dalam permainan dengan lebih banyak: harga lebih tinggi daripada garis 200 hari, harga lebih rendah daripada garis 10 hari, sebelum ini tidak memegang kedudukan. Apabila memenuhi syarat-syarat berikut, keluar dari kedudukan kosong: harga lebih tinggi daripada garis 10 hari, sebelum ini memegang kedudukan berbilang kepala. Untuk mengelakkan kerugian besar, penutupan FAILSAFE telah ditetapkan, jika penarikan balik dari titik tertinggi melebihi 10%, penutupan langsung dikeluarkan.
Seperti yang dapat dilihat, logik perdagangan strategi ini adalah berdasarkan pada garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang garisan mata wang.
Kelebihan utama strategi ini adalah untuk mengikuti trend dengan kos modal yang rendah dan mengejar keuntungan tambahan. Kelebihan khusus adalah seperti berikut:
Menggunakan gabungan garis rata-rata jangka pendek untuk menentukan arah trend di peringkat utama, anda boleh mengunci peluang trend garis panjang dan menengah dengan berkesan, dan mengelakkan diri anda daripada disesatkan oleh tren jangka pendek.
Menggunakan kaedah pemotongan balik jangka pendek, anda boleh meminimumkan kos pembelian dan dengan itu mendapatkan ruang keuntungan yang lebih tinggi.
Menetapkan mekanisme penangguhan FAILSAFE, anda dapat mengawal kerugian individu dengan berkesan dan melindungi keselamatan dana akaun.
Ia membolehkan pelacakan penarikan hentian, memanfaatkan peluang trend garis tengah dan panjang, dan memperoleh Alpha tambahan.
Menggunakan kaedah perdagangan mekanisasi semata-mata, mengelakkan pengaruh emosi subjektif, menjadikan strategi lebih mudah untuk dilaksanakan.
Strategi ini mempunyai risiko utama:
Risiko penyesuaian data retrospektif. Keadaan pasaran sebenar mungkin berbeza dengan data sejarah, yang menyebabkan diskaun dalam kesan perdagangan cakera.
Risiko pecah palsu. Jika harga hanya menyentuh garis purata, kemungkinan besar untuk membalikkan penyesuaian, mudah menyebabkan kerugian kecil berkumpul.
Risiko trend reversal. Keadaan yang biasa berlaku ialah perubahan trend yang tiba-tiba pada garis tengah dan panjang, yang boleh menyebabkan kerugian yang lebih besar.
Langkah-langkah yang diambil adalah seperti berikut:
Meningkatkan jumlah sampel, menggunakan lebih banyak data sejarah untuk mengesahkan keberkesanan, memastikan keputusan boleh dipercayai.
Optimumkan parameter, sesuaikan kombinasi parameter sistem rata-rata untuk memastikan kualiti isyarat perdagangan.
Melepaskan garis hentian yang sesuai, memberi ruang untuk harga untuk kembali, dan mengelakkan hentian yang terlalu sensitif.
Strategi ini boleh dioptimumkan dengan cara:
Menambah syarat penapisan, seperti penapisan jumlah transaksi, dapat mengurangkan transaksi yang tidak perlu yang disebabkan oleh penembusan palsu.
Gabungan dengan penunjuk lain, seperti KDJ, MACD, dan lain-lain, membentuk gabungan penunjuk, yang dapat meningkatkan kualiti isyarat perdagangan.
Uji tempoh pegangan yang berbeza, optimumkan strategi hentian dan hentian kerugian, dan teruskan meningkatkan kadar Sharp.
Mengubah parameter secara dinamik mengikut keadaan pasaran, membentuk mekanisme pengoptimuman parameter yang menyesuaikan diri, menjadikan strategi lebih kasar.
Menambah modul perdagangan algoritma, menggunakan pembelajaran mesin dan lain-lain untuk menghasilkan isyarat perdagangan secara automatik, mengurangkan campur tangan manusia.
Strategi ini jelas, mudah dilaksanakan, dan dapat memperoleh Alpha yang stabil dengan mengikuti trend garis panjang dengan kos rendah. Tetapi terdapat risiko tertentu untuk melakukan penipuan, dan perlu dioptimumkan lebih lanjut untuk meningkatkan kestabilan. Secara keseluruhan, strategi ini direka dari sudut trend, dan patut diteliti dan digunakan.
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © irfanp056
// @version=5
strategy("Simple Pullback Strategy",
overlay=true,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=1000, // 100% of balance invested on each trade
commission_type=strategy.commission.cash_per_contract,
commission_value=0.005) // Interactive Brokers rate
// Get user input
i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)
// Check filter(s)
f_dateFilter = true
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)