
Idea utama strategi ini adalah untuk mencapai stop loss yang automatik dengan menggabungkan masa dan penunjuk ATR. Strategi ini akan membuka kedudukan untuk membeli atau menjual pada titik masa yang tetap, dan menggabungkan penunjuk ATR untuk mengira harga stop loss yang munasabah. Ini dapat mencapai perdagangan yang automatik dengan cekap, mengurangkan frekuensi operasi manual, dan pada masa yang sama dapat mengawal risiko dengan berkesan melalui penunjuk ATR.
Strategi ini menggunakan hour dan minute variabel gabungan jika syarat penilaian, pada masa yang ditetapkan oleh parameter strategi tradeTime mencetuskan operasi pembukaan kedudukan. Sebagai contoh, set ke 0700, yang bermaksud bahawa 7 pagi waktu Beijing akan mencetuskan pembukaan kedudukan.
Selepas membuka kedudukan, strategi akan menggunakan fungsi ta.atr () untuk mengira nilai penunjuk ATR dalam 5 minit terakhir, dan menggunakan ini sebagai asas untuk menghentikan kerugian. Sebagai contoh, selepas membeli, harga berhenti = harga beli + nilai ATR; selepas menjual, harga berhenti = harga jual - nilai ATR.
Ini membolehkan pembukaan kedudukan automatik berdasarkan titik waktu, dan penutupan kerugian berdasarkan indikator ATR. Ini mengurangkan frekuensi operasi manual dan mengawal risiko dengan berkesan.
Strategi ini mempunyai kelebihan berikut:
Tingkat automasi yang tinggi. Pesanan boleh dijaga secara automatik pada waktu yang ditetapkan, mengurangkan frekuensi operasi manual.
Penangguhan kerugian yang berasaskan ATR dapat mengawal kerugian tunggal dengan berkesan. ATR dapat secara dinamik menangkap tahap turun naik pasaran, dan dengan itu menetapkan jarak penghentian yang wajar.
Skala yang kuat. Ia boleh digabungkan dengan mudah dengan lebih banyak petunjuk atau algoritma pembelajaran mesin untuk membantu membuat keputusan. Sebagai contoh, ia digabungkan dengan trend penghakiman rata-rata.
Arbitrage berbilang jenis mudah dilaksanakan. Strategi arbitrage terbuka dengan mudah boleh dilaksanakan dengan menetapkan masa perdagangan yang sama untuk pelbagai jenis.
Mudah diintegrasikan ke dalam sistem perdagangan automatik. Bersama dengan pengurusan tugas tetap, anda boleh menjalankan program strategi tanpa pengawal 24 jam, untuk mencapai perdagangan automatik sepenuhnya.
Strategi ini juga mempunyai risiko:
Risiko peristiwa kejutan pasaran. Kejadian swap hitam utama boleh menyebabkan turun naik harga yang melampau, mencetuskan hentian dan menyebabkan kerugian yang lebih besar.
Risiko kecairan tanda. Beberapa jenis kecairan yang kurang, tidak dapat berdagang sepenuhnya pada titik penutupan harga terhad, tidak dapat menghentikan penutupan.
Risiko pengoptimuman parameter ATR. Parameter ATR memerlukan pengoptimuman ujian berulang, jika ditetapkan terlalu besar atau terlalu kecil, ia akan menjejaskan kesan strategi.
Risiko pengoptimuman masa. Masa yang ditetapkan untuk membuka kedudukan mungkin kehilangan peluang pasaran dan memerlukan penyesuaian masa dengan lebih banyak petunjuk.
Kaedah ini boleh dioptimumkan dari segi berikut:
Menggunakan lebih banyak indikator untuk menilai keadaan pasaran, dan mengelakkan kedudukan dalam persekitaran pasaran yang tidak menguntungkan.
Menggunakan algoritma pembelajaran mesin untuk meramalkan masa terbaik untuk membuka gudang. Lebih banyak data sejarah boleh dikumpulkan, dan latihan model boleh dilakukan menggunakan LSTM dan sebagainya.
Menggunakan platform seperti Heartbeat untuk meluaskan kepada pelbagai jenis lelang.
Mengoptimumkan parameter ATR dan tetapan stop loss. Parameter terbaik boleh didapati dengan lebih banyak pengulangan.
Menjalankan strategi di pelayan, mengintegrasikan tugas berkala, menjalankan sepenuhnya automatik 7x24 jam.
Strategi ini mengintegrasikan titik waktu dan ATR untuk mencapai perdagangan stop loss yang automatik dan cekap. Dengan pengoptimuman parameter, alpha yang stabil dapat diperoleh. Ia juga mempunyai kemampuan penskalaan dan integrasi yang kuat, dan merupakan salah satu strategi kuantitatif yang disyorkan.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true)
// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na
// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")
// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))
// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders
// if (buyCondition)
// strategy.entry("Buy", strategy.long)
// buyprice := close
// takeProfitLevel := buyprice + atrValue
// strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
sellprice := close
takeProfitLevelForSell := sellprice -atrValue
strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)
// Plot horizontal lines for take profit levels
plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")