Artikel ini terutamanya memperkenalkan strategi perdagangan kuantitatif yang dipanggil
Logik perdagangan strategi ini sangat mudah dan jelas.
Gunakan persilangan SMA 14 tempoh dan SMA 28 tempoh sebagai isyarat untuk panjang dan pendek. Apabila SMA 14 tempoh melebihi SMA 28 tempoh, pergi panjang. Apabila SMA 14 tempoh turun di bawah SMA 28 tempoh, pergi pendek.
Mengira penunjuk ATR dan mengalikannya dengan faktor untuk mendapatkan kedudukan mengambil keuntungan dinamik. Sebagai contoh, tetapkan panjang ATR kepada 7, pengganda kepada 1.5, maka lebar saluran mengambil keuntungan dinamik adalah 1.5 kali 7-periode ATR.
Apabila arah kedudukan adalah panjang, tambah harga tinggi dan lebar saluran mengambil keuntungan dinamik untuk mendapatkan garis mengambil keuntungan yang panjang. Apabila arah kedudukan pendek, tolak lebar saluran mengambil keuntungan dinamik dari harga rendah untuk mendapatkan garis mengambil keuntungan yang pendek.
Sebaik sahaja harga melebihi garis keuntungan mengambil dinamik ini, mengambil keuntungan untuk keluar dengan segera.
Melalui langkah-langkah di atas, strategi ini mencapai kesan yang mudah tetapi cekap untuk mengikuti keuntungan dan mengambil keuntungan dengan cepat. Saluran ATR menyediakan keupayaan penyesuaian dinamik untuk garis keuntungan, sementara syarat 1 bar yang baru ditambah memastikan bahawa garis keuntungan hanya dicetuskan di bawah keadaan pasaran yang menguntungkan secara tiba-tiba. Ini dapat mengurangkan secara berkesan keluar awal kerana mengambil keuntungan.
Idea ini mudah dan jelas, mudah difahami dan dilaksanakan, sesuai untuk pemula belajar.
Dinamis ATR mengambil keuntungan boleh secara automatik menyusul keuntungan dan mengelakkan meninggalkan keuntungan di atas meja.
Menambah 1 bar keadaan tinggi / rendah menghalang mengambil keuntungan daripada mencetuskan pada pergerakan yang lebih kecil.
Panjang ATR dan pengganda boleh diselaraskan untuk menyesuaikan tahap mengambil keuntungan.
Boleh keluar dengan cepat untuk menangkap pergerakan harga yang menguntungkan.
Sangat boleh diperluaskan, mudah untuk melaksanakan strategi stop loss / mengambil keuntungan lain berdasarkan rangka kerja ini.
Terdapat juga beberapa risiko dengan strategi ini:
Peningkatan tiba-tiba ATR boleh menyebabkan keluar keuntungan mengambil awal.
Tidak dapat menapis bunyi pasaran dengan berkesan, cenderung kepada isyarat palsu.
Hanya bergantung kepada silang SMA untuk membuat keputusan, tidak berkesan untuk situasi pasaran yang kompleks.
Tiada mekanisme stop loss untuk mengehadkan kerugian secara berkesan.
Parameter lalai mungkin tidak sesuai dengan semua produk, pengoptimuman diperlukan.
Untuk mengurangkan risiko di atas, kita boleh mengoptimumkan dari aspek berikut:
Tambah peraturan penapis berdasarkan penunjuk lain untuk menghilangkan isyarat palsu.
Tambah strategi stop loss untuk mengawal kerugian secara ketat setiap perdagangan.
Mengoptimumkan parameter menggunakan Walk Forward Analysis.
Secara berasingan mengoptimumkan parameter untuk produk yang berbeza.
Meningkatkan model pembelajaran mesin untuk keputusan yang lebih bijak.
Berdasarkan analisis risiko, arah pengoptimuman terutamanya termasuk:
Tambah penapis isyarat: Tambah peraturan penapis berdasarkan penunjuk seperti MACD, Bollinger Band dll selepas isyarat untuk mengelakkan bunyi bising.
Tambah barisan stop loss: Tambah garis stop loss berdasarkan ATR atau trailing stop kepada kawalan setiap kerugian perdagangan.
Pengoptimuman Parameter: Mengoptimumkan parameter seperti Panjang ATR, ATR Multiplier menggunakan pembelajaran mesin.
Penyesuaian risiko: Penyesuaian saiz kedudukan, parameter risiko berdasarkan produk yang berbeza.
Model penggabungan: Gabungkan strategi ini dengan pembelajaran mesin, rangkaian saraf untuk meningkatkan ketepatan.
Intervensi manual: Membolehkan penyesuaian manual tahap mengambil keuntungan / berhenti kerugian pada saat kritikal.
Dengan pengoptimuman dalam arah di atas, keuntungan dan kestabilan strategi dapat ditingkatkan dengan besar.
Ringkasnya,
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 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/ // © Peter_O //@version=5 strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100) longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) if longCondition strategy.entry("Long", strategy.long, comment="long", alert_message="long") if shortCondition strategy.entry("Short", strategy.short, comment="short", alert_message="short") atr_length=input.int(7, title="ATR Length") atr_multiplier = input.float(1.5, title="ATR Multiplier") atr_multiplied = atr_multiplier * ta.atr(atr_length) ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1) plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1) strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong") strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort") // var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black) // if barstate.islastconfirmedhistory // table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white) // table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white) // table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white) // table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white) // table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)