Momentum Mengikuti Strategi Dagangan


Tarikh penciptaan: 2023-12-20 16:06:26 Akhirnya diubah suai: 2023-12-20 16:06:26
Salin: 0 Bilangan klik: 651
1
fokus pada
1621
Pengikut

Momentum Mengikuti Strategi Dagangan

Gambaran Keseluruhan Strategi

Strategi perdagangan pengesanan kekuatan adalah strategi perdagangan automatik yang mengesan trend pergerakan pasaran, menggabungkan pelbagai petunjuk teknikal sebagai penilaian tambahan. Strategi ini menganalisis maklumat K-line, menilai arah dan kekuatan dana utama pasaran semasa, dan kemudian menggabungkan indikator teknikal seperti indikator harga kuantitatif, rata-rata bergerak dan lain-lain untuk menghantar isyarat perdagangan, untuk mewujudkan trend pengesanan.

Secara keseluruhannya, strategi ini sesuai untuk perdagangan trend garis panjang dan menengah, dapat menangkap tren pasaran dengan berkesan, mengurangkan frekuensi perdagangan, mengejar keuntungan tunggal yang lebih tinggi. Di samping itu, apabila parameter strategi dioptimumkan, ia juga boleh digunakan untuk perdagangan garis pendek.

Prinsip Strategi

Penghakiman utama

Inti strategi pengesanan kekuatan adalah untuk menentukan arah dana utama di pasaran. Strategi ini memantau pergerakan pasaran secara langsung dengan mengira indikator ATR. Apabila pergerakan meningkat, strategi ini akan keluar dari pasaran untuk sementara waktu, mengelakkan tempoh masa yang digunakan oleh penguasa.

Apabila turun naik mereda, mewakili penumpukan atau pembahagian utama, strategi akan masuk semula dan menilai arah khusus dominasi. Penentuan dilakukan dengan mengira kedudukan tekanan sokongan di pasaran untuk melihat apakah ada tanda-tanda pecah. Jika ada penembusan yang jelas, maka mengesahkan bahawa dominasi memilih arah tersebut.

Penghakiman tambahan

Selepas menentukan arah daya utama, strategi ini juga akan memperkenalkan pelbagai penunjuk teknik tambahan untuk disahkan semula, untuk mengelakkan salah faham. Secara khusus, penunjuk MACD, KDJ dan lain-lain akan dikira untuk menentukan sama ada ia sesuai dengan arah daya utama.

Strategi ini hanya akan membuka kedudukan apabila kedua-dua arah utama dan penunjuk bantuan memberi isyarat yang sama. Ini berkesan mengawal frekuensi perdagangan dan hanya masuk dalam keadaan kebarangkalian yang tinggi.

Penangguhan kerugian

Selepas meletakkan kedudukan, strategi pengesanan kekuatan akan mengesan perubahan harga secara langsung dan menggunakan peningkatan nilai ATR sebagai isyarat berhenti. Ini menandakan bahawa pasaran memasuki tahap operasi utama sekali lagi dan mesti segera keluar ke tunai untuk mengelakkan terikat.

Di samping itu, jika harga bergerak melebihi julat tertentu, penyesuaian akan terhenti. Ini adalah penyesuaian teknikal biasa, dan kawalan risiko memerlukan penyesuaian segera.

Kelebihan Strategik

Sistematik yang kuat

Kelebihan terbesar strategi pengesanan kekuatan adalah sistematisasi dan normalisasi yang tinggi. Logik urus niaga jelas, setiap masuk dan keluar mempunyai prinsip dan peraturan yang jelas, tidak ada transaksi yang tidak sengaja.

Ini menjadikan strategi ini sangat boleh direplikasi, dan pengguna boleh mengkonfigurasi aplikasi jangka panjang tanpa campur tangan manusia.

Pengendalian risiko

Strategi ini mempunyai mekanisme kawalan risiko pelbagai peringkat, seperti penilaian utama, pengesahan tambahan, pembentukan garis henti, dan lain-lain, yang dapat mengawal risiko tidak sistematik dengan berkesan.

Khususnya, strategi hanya membuka kedudukan dalam keadaan kebarangkalian yang tinggi, dan menetapkan stop loss saintifik, untuk mengelakkan kerugian dari meluas.

Keuntungan yang lebih mampan

Berbanding dengan strategi garis pendek, strategi pengesanan momentum mempunyai tempoh pegangan yang lebih lama dan keuntungan yang lebih tinggi setiap kali. Ini menjadikan keuntungan keseluruhan strategi lebih stabil dan mampan.

Selain itu, strategi untuk menjejaki trend garis tengah dan panjang dapat menangkap kebolehan turun naik yang lebih ketara dalam trend besar.

Amaran risiko

Parameter sukar untuk dioptimumkan

Strategi pengesanan kekuatan melibatkan lebih banyak parameter, seperti parameter ATR, parameter penembusan, parameter hentian, dan sebagainya. Terdapat beberapa kaitan antara parameter ini dan perlu diuji berulang kali untuk mencari kombinasi parameter yang optimum.

Jika parameter tidak disusun dengan betul, ia boleh menyebabkan frekuensi dagangan yang terlalu tinggi atau kawalan risiko yang tidak mencukupi. Ini memerlukan pengalaman pengguna dalam pengoptimuman strategi.

Pelanggaran mudah dibelenggu

Strategi menilai kekuatan dan isyarat penunjuk bergantung kepada penembusan harga untuk mengesahkan. Tetapi dalam operasi penembusan, kemungkinan besar terdapat penembusan palsu, yang akan menyebabkan kemungkinan besar untuk meletakkan kedudukan.

Jika kejayaan utama gagal, ia boleh menyebabkan kerugian yang lebih besar. Ini adalah kelemahan strategi.

Optimum idea

Memperkenalkan pembelajaran mesin

Algoritma pembelajaran mesin boleh mengesan hubungan antara parameter secara automatik untuk mencari kombinasi parameter yang optimum. Ini jauh lebih berkesan daripada ujian buatan tangan.

Khususnya, algoritma EnvironmentError boleh digunakan untuk memaksimumkan keuntungan strategi berdasarkan parameter iterasi berterusan pembelajaran penguatan.

Tambah penapis

Lebih banyak penapis tambahan boleh diperkenalkan berdasarkan indikator sedia ada, seperti indikator jumlah transaksi, indikator aliran wang, dan sebagainya, untuk mengesahkan isyarat terobosan tiga atau empat kali, dengan kebolehpercayaan yang lebih tinggi.

Tetapi terlalu banyak penapis juga boleh menyebabkan peluang yang terlewat, dan intensiti penapisan perlu diseimbangkan. Selain itu, penapis itu sendiri juga harus mengelakkan hubungan.

Penggabungan Strategi

Menggunakan strategi pengesanan momentum dengan kombinasi strategi lain, anda boleh memanfaatkan kelebihan strategi yang berbeza untuk mencapai penyelarasan positif dan meningkatkan kestabilan keseluruhan.

Sebagai contoh, menggabungkan strategi pembalikan jangka pendek, membuka perdagangan pembalikan selepas penembusan, dapat mengunci lebih banyak keuntungan.

ringkaskan

Strategi perdagangan pengesanan momentum secara keseluruhannya adalah strategi pengesanan trend yang sistematik yang disyorkan. Logik perdagangan yang jelas, kawalan risiko, dan pulangan pelaburan yang stabil dan cekap untuk pengguna.

Tetapi strategi itu sendiri juga mempunyai kelemahan yang memerlukan pengguna mempunyai keupayaan untuk mengoptimumkan parameter dan menggabungkan strategi untuk memanfaatkan sepenuhnya strategi tersebut. Secara keseluruhan, strategi pengesanan daya adalah produk kuantitatif yang sesuai untuk digunakan oleh peminat strategi dengan asas kuantitatif tertentu.

Kod sumber strategi
/*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)