Strategi Perdagangan Pelacakan Momentum

Penulis:ChaoZhang, Tanggal: 2023-12-20 16:06:26
Tag:

img

Tinjauan Strategi

Momentum Tracking Trading Strategy adalah strategi perdagangan otomatis yang terutama melacak tren momentum pasar dan menggunakan beberapa indikator teknis sebagai penilaian tambahan. Strategi ini menganalisis informasi K-line untuk menentukan arah dan kekuatan dana utama pasar saat ini, dan kemudian mengeluarkan sinyal perdagangan berdasarkan indikator seperti harga volume dan moving average untuk mencapai pelacakan tren.

Secara keseluruhan, strategi ini cocok untuk perdagangan tren jangka menengah dan panjang, dan dapat secara efektif menangkap tren pasar dan mengurangi frekuensi perdagangan untuk mengejar keuntungan tunggal yang lebih tinggi.

Prinsip Strategi

Penghakiman Daya Utama

Inti dari strategi pelacakan momentum adalah untuk menilai arah dana utama pasar. Strategi ini menghitung indikator ATR untuk memantau volatilitas pasar secara real time. Ketika volatilitas meningkat, itu berarti dana utama menumpuk atau mendistribusikan, dan strategi akan keluar sementara dari pasar untuk menghindari periode ketika dana utama beroperasi.

Ketika volatilitas melemah, itu berarti akumulasi atau alokasi kekuatan utama telah selesai, dan strategi akan kembali masuk ke pasar untuk menentukan arah khusus kekuatan utama. Metode penilaian adalah menghitung posisi dukungan dan tekanan pasar untuk melihat apakah ada tanda-tanda terobosan. Jika ada terobosan yang jelas, itu akan membuktikan bahwa dana utama telah memilih arah itu.

Putusan tambahan

Setelah menentukan arah dana utama, strategi juga akan memperkenalkan beberapa indikator teknis tambahan untuk verifikasi lagi untuk menghindari penilaian yang salah. khususnya, MACD, KDJ dan indikator lainnya akan dihitung untuk menentukan apakah mereka konsisten dengan arah dana utama.

Hanya ketika arah dana utama dan indikator tambahan mengeluarkan sinyal ke arah yang sama strategi akan membuka posisi. Ini secara efektif mengontrol frekuensi perdagangan dan hanya masuk dengan probabilitas tinggi.

Stop Loss Exit

Setelah membuka posisi, strategi pelacakan momentum akan melacak perubahan harga secara real time, dan menggunakan ekspansi nilai ATR sebagai sinyal stop loss.

Selain itu, jika pergerakan harga melampaui kisaran tertentu dan kemudian mundur, stop loss juga akan terjadi. Ini adalah retracement teknis normal dan perlu dihentikan segera untuk pengendalian risiko.

Keuntungan dari Strategi

Sistematisitas Tinggi

Keuntungan terbesar dari strategi pelacakan momentum adalah tingkat sistematisasi dan standarisasi yang tinggi. Logika tradingnya jelas, dan setiap entri dan keluar memiliki prinsip dan aturan yang jelas daripada perdagangan sewenang-wenang.

Ini membuat replikabilitas strategi ini sangat kuat. Pengguna dapat menerapkannya untuk penggunaan jangka panjang setelah konfigurasi tanpa intervensi manual.

Pengendalian Risiko yang Matang

Strategi ini memiliki mekanisme pengendalian risiko multi-level, seperti penilaian daya utama, verifikasi tambahan, pengaturan garis stop loss, dll, yang dapat secara efektif mengendalikan risiko non-sistematis.

Secara khusus, strategi hanya membuka posisi dalam situasi kemungkinan tinggi dan menetapkan titik stop loss ilmiah untuk memaksimalkan penghindaran kerugian.

Pengembalian yang relatif berkelanjutan

Dibandingkan dengan strategi jangka pendek, periode kepemilikan strategi pelacakan momentum lebih lama, dan setiap keuntungan lebih tinggi.

Selain itu, strategi ini melacak tren jangka menengah dan panjang, yang dapat sepenuhnya menangkap volatilitas tren.

Peringatan Risiko

Optimasi Parameter yang Sulit

Strategi pelacakan momentum melibatkan beberapa parameter, seperti parameter ATR, parameter penetrasi, parameter stop loss, dll. Ada korelasi tertentu antara parameter ini, yang membutuhkan pengujian berulang untuk menemukan kombinasi parameter yang optimal.

Konfigurasi parameter yang tidak benar dapat dengan mudah menyebabkan frekuensi perdagangan yang berlebihan atau kontrol risiko yang tidak memadai.

Tangkapan Pelarian

Ketika strategi menentukan kekuatan utama dan sinyal indikator, ia bergantung pada terobosan harga untuk mengkonfirmasi.

Jika terobosan kunci gagal, itu bisa menyebabkan kerugian yang lebih besar.

Arahan Optimasi

Memperkenalkan Pembelajaran Mesin

Algoritma pembelajaran mesin dapat digunakan untuk secara otomatis mendeteksi korelasi antara parameter dan menemukan kombinasi parameter optimal.

Secara khusus, algoritma EnvironmentError dapat digunakan untuk terus mengulangi parameter berdasarkan pembelajaran penguatan untuk memaksimalkan pengembalian strategi.

Meningkatkan Filter

Lebih banyak filter tambahan dapat diperkenalkan berdasarkan indikator yang ada, seperti indikator volume perdagangan, indikator arus modal, dll, untuk memverifikasi sinyal terobosan tiga atau empat kali untuk meningkatkan keandalan.

Tapi terlalu banyak filter juga dapat menyebabkan kesempatan yang hilang. Intensitas filter perlu seimbang. Selain itu, filter itu sendiri juga harus menghindari korelasi.

Strategi Fusi

Menggabungkan strategi pelacakan momentum dengan strategi lain untuk memanfaatkan kekuatan strategi yang berbeda untuk mencapai ortogonalitas dan meningkatkan stabilitas keseluruhan.

Misalnya, menggabungkan strategi pembalikan jangka pendek dan membuka perdagangan pembalikan setelah terobosan dapat mengunci lebih banyak keuntungan.

Ringkasan

Secara umum, Strategi Perdagangan Pelacakan Momentum adalah strategi pelacakan tren yang sistematis yang layak direkomendasikan.

Tapi strategi itu sendiri juga memiliki beberapa kelemahan yang melekat. Hal ini mengharuskan pengguna untuk memiliki kemampuan untuk mengoptimalkan parameter dan mengintegrasikan strategi untuk memaksimalkan efektivitas strategi ini. Secara keseluruhan, strategi pelacakan momentum adalah produk kuantitatif yang cocok untuk penggemar kuantitatif dengan beberapa dasar.


/*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)



Lebih banyak