Strategi ini membuat keputusan beli dan jual berdasarkan indikator momentum dan indikator volume perdagangan saham. Strategi ini membeli ketika momentum kenaikan harga saham dipercepat dan volume perdagangan melonjak, dan menjual ketika momentum penurunan dipercepat dan volume perdagangan melonjak. Strategi ini menangkap momentum harga jangka pendek yang dibawa oleh perilaku kawanan pasar.
Strategi ini menghitung perubahan dari hari sebelumnya yang dekat dengan momentum harga. Momentum positif ketika harga naik berturut-turut dan negatif ketika harga turun berturut-turut. Strategi ini juga menggabungkan indikator volume perdagangan. Sinyal beli dan jual hanya dipicu ketika volume perdagangan jauh lebih tinggi dari rata-rata bergerak 20 hari (di atas ambang batas).
Secara khusus, kondisi beli adalah crossover dari indikator momentum di atas 0 dengan volume perdagangan lebih dari 2 kali rata-rata 20 hari. Kondisi jual adalah sebaliknya. Setelah membeli, target keuntungan ditetapkan pada 0,8 kali harga masuk, dan stop loss adalah 0,5 kali. Target keuntungan dan stop loss setelah menjual dibalik sesuai.
Keuntungan terbesarnya adalah menangkap tren pasar jangka pendek dan perilaku kawanan. Ketika harga saham menunjukkan kenaikan atau penurunan yang berkelanjutan, banyak investor ritel dan institusional akan mengikuti momentum harga yang lebih kuat untuk berdagang. Ini menciptakan tren harga jangka pendek yang memperkuat diri. Strategi menghasilkan keuntungan berlebih dengan memanfaatkan psikologi pasar tersebut. Dibandingkan dengan strategi pelacakan indeks pasif, laba yang diharapkan dari strategi ini lebih tinggi.
Pertama, fluktuasi harga jangka pendek tidak dapat diprediksi. Ada risiko pembalikan tajam karena kejadian mendadak, yang tidak dapat sepenuhnya dihindari meskipun stop loss. Kedua, kualitas data volume perdagangan bervariasi. Kemungkinan manipulasi tidak dapat sepenuhnya dikecualikan, yang mendistorsi sinyal perdagangan. Ketiga, analisis harga dan volume sederhana tidak dapat secara tepat mengendalikan tren jangka pendek. Pergeseran struktural pasar yang besar dapat mempengaruhi kinerja strategi.
Lebih banyak sumber data dapat dimasukkan untuk meningkatkan efektivitas strategi. Misalnya, volume diskusi saham terkait di platform media sosial dapat menunjukkan pergerakan harga di masa depan. Data ini dapat memberikan sinyal masuk dan keluar tambahan. Indikator dasar seperti rasio P / E dan rasio P / B juga dapat membantu memverifikasi keberlanjutan perubahan harga dan mengurangi perdagangan yang salah.
Dengan menangkap perubahan terpadu dalam momentum harga dan volume perdagangan, strategi ini menilai tren jangka pendek dan perilaku kawanan. Strategi kuantitatif berbasis data besar dan keuangan perilaku dapat menghasilkan pengembalian yang diharapkan yang lebih tinggi daripada strategi tradisional.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Momentum and Volume Bot', overlay=true) // Define strategy parameters profit_target_percent = input(0.8, title='Profit Target (%)') stop_loss_percent = input(0.5, title='Stop Loss (%)') volume_threshold = input(2, title='Volume Threshold') // Calculate momentum momentum = close - close[1] // Calculate average volume avg_volume = ta.sma(volume, 20) // Buy condition buy_condition = ta.crossover(momentum, 0) and volume > avg_volume * volume_threshold // Sell condition sell_condition = ta.crossunder(momentum, 0) and volume > avg_volume * volume_threshold // Strategy logic strategy.entry('Buy', strategy.long, when=buy_condition) strategy.entry('Sell', strategy.short, when=sell_condition) // Set profit target and stop loss strategy.exit('Take Profit/Stop Loss', from_entry='Buy', profit=close * profit_target_percent / 100, loss=close * stop_loss_percent / 100) strategy.exit('Take Profit/Stop Loss', from_entry='Sell', profit=close * profit_target_percent / 100, loss=close * stop_loss_percent / 100) // Plotting plotshape(series=buy_condition, title='Buy Signal', color=color.new(color.green, 0), style=shape.triangleup, size=size.small) plotshape(series=sell_condition, title='Sell Signal', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)