
Strategi perdagangan pelacakan momentum adalah strategi perdagangan otomatisasi yang melacak tren dinamika pasar sebagai garis utama, digabungkan dengan berbagai indikator teknis sebagai penilaian tambahan. Strategi ini menganalisis informasi K-line, menilai arah dan intensitas dana utama pasar saat ini, dan kemudian digabungkan dengan indikator teknis seperti indikator harga kuantitatif, rata-rata bergerak, dan lain-lain untuk mengirimkan sinyal perdagangan, untuk mencapai pelacakan tren.
Secara keseluruhan, strategi ini cocok untuk perdagangan tren lini tengah dan panjang, mampu menangkap tren pasar secara efektif, mengurangi frekuensi perdagangan, dan mengejar keuntungan tunggal yang lebih tinggi. Selain itu, setelah parameter strategi dioptimalkan, strategi ini juga dapat digunakan untuk perdagangan lini pendek.
Inti dari strategi pelacakan kekuatan adalah untuk menilai arah mata uang utama di pasar. Strategi ini memantau volatilitas pasar secara real-time dengan menghitung indikator ATR. Strategi ini akan keluar dari pasar sementara untuk menghindari periode waktu di mana dominasi beroperasi.
Ketika fluktuasi mereda, yang mewakili akumulasi atau alokasi dominasi selesai, strategi akan kembali ke permainan, menilai arah tertentu dari dominasi. Penentuan dilakukan dengan menghitung posisi tekanan pendukung pasar, melihat apakah ada tanda-tanda terobosan. Jika ada terobosan yang jelas, maka menegaskan bahwa dominasi memilih arah tersebut.
Setelah menentukan arah kekuatan utama, strategi ini juga akan memperkenalkan berbagai indikator teknis tambahan untuk verifikasi lagi, untuk menghindari kesalahan penilaian. Secara khusus, indikator MACD, KDJ dan lain-lain akan dihitung untuk menentukan apakah itu sesuai dengan arah kekuatan utama.
Strategi ini hanya akan membuka posisi pembentukan posisi ketika kedua arah utama dan indikator tambahan mengirimkan sinyal yang sama. Ini secara efektif mengontrol frekuensi perdagangan dan hanya masuk dalam situasi probabilitas yang tinggi.
Setelah posisi dibuat, strategi pelacakan kekuatan akan melacak perubahan harga secara real time dan memperluas nilai ATR sebagai sinyal stop loss. Ini berarti bahwa pasar kembali ke tahap operasi utama dan harus segera keluar ke kas untuk menghindari penarikan.
Selain itu, jika harga berjalan di atas batas tertentu, maka penyesuaian akan berhenti. Ini adalah penyesuaian teknis normal, dan pengendalian risiko harus segera berhenti.
Keuntungan terbesar dari strategi pelacakan kekuatan adalah sistematisasi dan normalisasi yang tinggi. Logika transaksi yang jelas, setiap masuk dan keluar memiliki prinsip dan aturan yang jelas, tidak ada transaksi acak.
Hal ini membuat strategi ini sangat replikabel, sehingga pengguna dapat mengkonfigurasi aplikasi jangka panjang tanpa intervensi manusia.
Strategi ini memiliki mekanisme pengendalian risiko multi-level, seperti penilaian utama, verifikasi tambahan, dan pembentukan garis penghentian, yang dapat secara efektif mengendalikan risiko tidak sistematis.
Secara khusus, strategi hanya membuka posisi dalam situasi probabilitas tinggi, dan mengatur stop loss ilmiah, untuk menghindari kerugian yang meluas. Ini menjamin pertumbuhan dana yang stabil.
Dibandingkan dengan strategi garis pendek, strategi pelacakan momentum memiliki periode kepemilikan yang lebih lama dan keuntungan yang lebih tinggi per kali. Ini membuat keuntungan keseluruhan strategi lebih stabil dan berkelanjutan.
Selain itu, strategi untuk melacak tren garis tengah dan panjang dapat menangkap fluktuasi tren, yang terutama terlihat pada tren tren besar.
Strategi pelacakan kekuatan melibatkan lebih banyak parameter, seperti parameter ATR, parameter penembusan, parameter stop loss, dan lain-lain. Ada beberapa hubungan antara parameter ini, yang perlu diuji berulang kali untuk menemukan kombinasi parameter yang optimal.
Jika parameter tidak dikonfigurasi dengan benar, kemungkinan besar akan menyebabkan frekuensi perdagangan yang terlalu tinggi atau kurangnya kontrol risiko. Ini membutuhkan pengalaman pengguna dalam pengoptimalan strategi.
Strategi untuk menilai dominasi dan sinyal indikator bergantung pada terobosan harga untuk dikonfirmasi. Namun, dalam operasi terobosan, kemungkinan terobosan palsu dapat terjadi, yang dapat menyebabkan kemungkinan besar untuk terikat.
Jika sebuah terobosan penting gagal, kemungkinan besar akan menimbulkan kerugian besar. Ini adalah kelemahan internal dari strategi tersebut.
Algoritma pembelajaran mesin dapat secara otomatis mendeteksi hubungan antara parameter untuk mencari kombinasi parameter yang optimal. Ini jauh lebih efisien daripada pengujian manual.
Secara khusus, algoritma EnvironmentError dapat digunakan untuk memaksimalkan keuntungan dari strategi berdasarkan parameter iterasi berkelanjutan yang dipelajari secara intensif.
Bisa di atas dasar indikator yang ada, memperkenalkan lebih banyak filter tambahan, seperti indikator volume transaksi, indikator aliran dana, dan lain-lain, untuk melakukan verifikasi tiga atau empat kali terhadap sinyal terobosan, lebih dapat diandalkan.
Tetapi terlalu banyak filter juga dapat menyebabkan peluang yang terlewatkan, dan perlu menyeimbangkan intensitas filter. Selain itu, filter itu sendiri juga harus menghindari korelasi.
Menggunakan strategi pelacakan momentum dengan kombinasi strategi lain dapat memanfaatkan keunggulan dari strategi yang berbeda untuk mencapai posisi positif dan meningkatkan stabilitas secara keseluruhan.
Misalnya, menggabungkan strategi reversal jangka pendek, membuka reversal setelah terobosan, dapat mengunci lebih banyak keuntungan.
Strategi perdagangan pelacakan momentum secara keseluruhan adalah strategi pelacakan tren sistematis yang disarankan. Logika perdagangan yang jelas, pengendalian risiko, dan pengembalian investasi yang stabil dan efisien bagi pengguna.
Tetapi strategi itu sendiri juga memiliki kekurangan yang melekat, yang membutuhkan kemampuan pengguna untuk mengoptimalkan parameter dan menggabungkan strategi untuk mendapatkan manfaat maksimal dari strategi tersebut. Secara keseluruhan, strategi pelacakan dorongan adalah produk kuantitatif yang cocok untuk digunakan oleh penggemar strategi dengan basis kuantitatif tertentu.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-15 01:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Created by frasmac2k Strategy credit to Alex Morris
//@version=5
strategy("Mechanical", shorttitle="MECH", overlay=true)
// Get the current date and time
currentYear = year
currentMonth = month
currentDay = dayofmonth
// Create a timestamp for the present date and time
currentTimestamp = timestamp(currentYear, currentMonth, currentDay)
// Define time interval for backtesting
dStart = input(timestamp('2023-07-01'), title='Set Start date', tooltip='Select a start date to run the script from')
// Define direction of strategy
direction = input.string('Forward',title='Direction', tooltip='Forward will go LONG on a Green anchor candle. Inverse will go short on a Green anchor candle and vice versa for Red candle', options=['Forward', 'Inverse'])
// Define the anchor hour as user input with a range of 0 to 23
anchorHour = input.int(11, title="Anchor Hour", tooltip='Set the hour to trade', minval=0, maxval=23)
// Define the take profit and stop loss in pips
takeProfitPips = input.int(10, title='Define TP Pips', tooltip='How many pips do you want to set TP. Choose a sensible value related to the instrument', minval=5)
stopLossPips = input.int(10,'Define SL Pips', tooltip='How many pips do you want to set SL. Choose a sensible value related to the instrument', minval=5)
// Define Tick size
tick10p = input.int(100, title='tick size', tooltip='Choose how many ticks equal 10 pips. This can vary by broker so measure 10 pips on the chart and select how many ticks that equates to. Forex is typically 100. Some instruments such as indices can be 1000', options=[100,1000])
// Declare TP/SL variables
var float takeProfit = na
var float stopLoss = na
// Calculate take profit and stop loss levels in ticks
if tick10p == 100
takeProfit := takeProfitPips * 10
stopLoss := stopLossPips * 10
if tick10p == 1000
takeProfit := takeProfitPips * 100
stopLoss := stopLossPips * 100
// Declare offset time
var int offset = na
if currentTimestamp > timestamp('2023-10-29')
offset := 4
else
offset := 5
//adjust for exchange time
anchorHour := anchorHour - offset
// Define the anchor hour as user input with a range of 0 to 23
tradeHour = anchorHour
// Define logical check for strategy date range
isStratTime = true
// Calculate the time condition for placing the order at the user-defined hour (start of the next hour)
isTradeTime = true
// Logic condition for forwards or inverse
isForward = direction == 'Forward'
isInverse = direction == 'Inverse'
// Declare entry condition variables
var bool longCondition = na
var bool shortCondition = na
// Declare and initialize variables for anchorCandle open and close prices
var float anchorOpen = na
var float anchorClose = na
var float tradeOpen = na
var float tradeClose = na
// Set logic by direction
if isForward
// Strategy logic
if isTradeTime and isStratTime
//Obtain candle open/close
anchorOpen := open
anchorClose := close
// Define entry conditions
longCondition := anchorClose > anchorOpen
shortCondition := anchorClose < anchorOpen
// Entry logic
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
if isInverse
// Strategy logic
if isTradeTime and isStratTime
//Obtain candle open/close
anchorOpen := open
anchorClose := close
// Define entry conditions
shortCondition := anchorClose > anchorOpen
longCondition := anchorClose < anchorOpen
// Entry logic
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
// Define the time range for the background shade
startHour = anchorHour
startMinute = 0
endHour = anchorHour
endMinute = 0
// Check if the current time is within the specified range
isInTimeRange = (hour == startHour and minute >= startMinute) or (hour == endHour and minute <= endMinute) or (hour > startHour and hour < endHour)
// Define the background color for the shade
backgroundColor = color.new(color.red, 90)
// Apply the background shade
bgcolor(isInTimeRange ? backgroundColor : na)