
Gagasan utama dari strategi ini adalah kombinasi waktu dan indikator ATR untuk mencapai stop loss otomatis. Strategi ini akan membuka posisi untuk membeli atau menjual pada titik waktu yang tetap, dan digabungkan dengan indikator ATR untuk menghitung harga stop loss yang masuk akal. Dengan demikian, perdagangan otomatis yang efisien dapat dicapai, mengurangi frekuensi operasi manual, sementara risiko dapat dikontrol secara efektif melalui indikator ATR.
Strategi ini menggunakan variabel hour dan minute untuk menentukan kondisi if, dan memicu operasi trading pada waktu yang ditentukan oleh parameter strategi tradeTime. Misalnya, pengaturan ke 0700, berarti bahwa seluruh pertemuan akan memicu trading pada pukul 7 pagi waktu Beijing.
Setelah membuka posisi, strategi akan menggunakan fungsi ta.atr () untuk menghitung nilai indikator ATR dalam 5 menit terakhir, dan menggunakan ini sebagai dasar untuk menghentikan stop loss. Misalnya, setelah membeli, harga stop = harga beli + nilai ATR; setelah menjual, harga stop = harga jual - nilai ATR.
Hal ini memungkinkan untuk membuka posisi otomatis berdasarkan titik waktu, dan stop loss berdasarkan indikator ATR. Dengan demikian, mengurangi frekuensi operasi manual, dan secara efektif mengendalikan risiko.
Strategi ini memiliki keuntungan sebagai berikut:
Tingkat otomatisasi yang tinggi. Anda dapat memesan secara otomatis tanpa penjaga pada waktu yang ditentukan, mengurangi frekuensi operasi manual secara signifikan.
Stop loss yang didasarkan pada indikator ATR dapat secara efektif mengendalikan kerugian tunggal. Indikator ATR dapat secara dinamis menangkap tingkat fluktuasi pasar, sehingga mengatur jarak stop loss yang wajar.
Skalabilitas yang kuat. Dapat dengan mudah digabungkan dengan lebih banyak indikator atau algoritma pembelajaran mesin untuk membantu pengambilan keputusan.
Arbitrage multi-varietas dapat dilakukan dengan mudah. Strategi arbitrage terbuka dapat dengan mudah dilakukan dengan mengatur waktu perdagangan yang sama untuk berbagai varietas.
Mudah diintegrasikan ke dalam sistem perdagangan otomatis. Digabungkan dengan manajemen tugas yang tepat waktu, program strategi dapat dijalankan 24 jam tanpa pengawasan, untuk mencapai perdagangan otomatis sepenuhnya.
Strategi ini juga memiliki beberapa risiko:
Risiko terjadinya kejutan pasar. Kejadian Black Swan besar dapat menyebabkan pergerakan harga yang ekstrem, memicu stop loss dan menghasilkan kerugian yang lebih besar.
Risiko likuiditas. Beberapa varietas likuiditas yang lebih buruk, tidak dapat sepenuhnya bertransaksi pada titik akhir harga, tidak dapat melakukan stop loss.
Risiko optimasi parameter ATR. Parameter ATR memerlukan pengoptimalan tes berulang, jika terlalu besar atau terlalu kecil akan mempengaruhi efek strategi.
Optimalisasi risiko titik waktu. Waktu pembukaan posisi tetap dapat kehilangan peluang pasar, yang perlu digabungkan dengan lebih banyak indikator untuk menyesuaikan titik waktu.
Strategi ini dapat dioptimalkan lebih lanjut dari dimensi-dimensi berikut:
Menggunakan lebih banyak indikator untuk menilai kondisi pasar, dan menghindari posisi di lingkungan pasar yang tidak menguntungkan, seperti MACD, RSI, dll.
Menggunakan algoritma pembelajaran mesin untuk memprediksi kapan waktu terbaik untuk membuka gudang. Dapat mengumpulkan lebih banyak data historis, menggunakan LSTM dan lain-lain untuk melatih model.
Menggunakan platform seperti Heartbeat untuk memperluas berbagai jenis arbitrage.
Optimalkan parameter ATR dan pengaturan stop loss. Parameter optimal dapat ditemukan dengan lebih banyak pengulangan.
Strategi berjalan di server, mengintegrasikan tugas-tugas yang dijadwalkan, dan beroperasi secara otomatis selama 7x24 jam.
Strategi ini mengintegrasikan titik waktu dan indikator ATR, untuk mencapai otomatisasi stop loss dan stop loss yang efisien. Dengan optimasi parameter, dapat diperoleh stabilitas alpha. Selain itu, memiliki kemampuan skalabilitas dan integrasi yang kuat, adalah salah satu strategi kuantitatif yang disarankan.
/*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)")