
Strategi momentum lintas pasar yang efisien adalah strategi perdagangan kuantitatif yang dirancang untuk menangkap peluang keuntungan di pasar keuangan jangka menengah dengan mengintegrasikan prinsip perdagangan lintas pasar dan indikator momentum. Strategi ini menggunakan kombinasi dari berbagai indikator teknis seperti moving average, sinyal traversal, dan analisis volume transaksi untuk menghasilkan sinyal beli dan jual. Strategi ini bertujuan untuk mengidentifikasi tren pasar dan menangkap keuntungan yang dihasilkan oleh pergerakan harga.
Pembelian sinyal berdasarkan pertimbangan komprehensif dari beberapa faktor, terutama termasuk A1, A2, A3, XG dan WeeklySlope.
Kondisi A1: Periksa hubungan harga tertentu, verifikasi rasio harga tertinggi dan harga penutupan kurang dari 1.03, rasio harga pembukaan dan harga minimum kurang dari 1.03, dan rasio harga tertinggi dan harga penutupan hari sebelumnya lebih dari 1.06. Kondisi ini mencari pola tertentu yang menunjukkan potensi pergerakan berganda.
Kondisi A2: Periksa hubungan harga yang terkait dengan harga penutupan untuk memverifikasi bahwa rasio harga penutupan terhadap harga pembukaan lebih dari 1.05 atau rasio harga penutupan terhadap harga penutupan hari sebelumnya lebih dari 1.05. Kondisi ini mencari tanda-tanda pergerakan dan dinamika harga naik.
Kondisi A3: Perhatikan volume perdagangan, periksa apakah volume perdagangan saat ini telah melampaui volume perdagangan tertinggi dalam 60 periode terakhir. Kondisi ini bertujuan untuk mengidentifikasi kenaikan harga dan mengkonfirmasi potensi kenaikan harga yang kuat.
Kondisi XG: Menggabungkan kondisi A1 dan A2, memeriksa apakah garis K saat ini dan garis K sebelumnya terpenuhi secara bersamaan. Selain itu, verifikasi apakah rasio harga acuan dengan 5 siklus EMA telah menembus rasio 9 siklus SMA. Kondisi ini membantu untuk mengidentifikasi sinyal beli yang disarankan oleh beberapa faktor secara bersamaan.
Faktor tren lingkar: menghitung kemiringan SMA 50 periode pada grafik garis lingkar, memeriksa apakah kemiringan tersebut positif, yang berarti keseluruhan berada dalam tren naik lingkar. Kondisi ini memberikan konfirmasi tambahan bahwa keseluruhan saham berada di saluran naik.
Ketika kedua kondisi ini terpenuhi secara bersamaan, maka akan memicu kondisi buy, yang menunjukkan bahwa saat ini adalah saat yang tepat untuk masuk ke dalam posisi multi-posisi yang mungkin akan menghasilkan keuntungan ekstra.
Kondisi jual lebih sederhana, hanya memeriksa apakah harga penutupan berada di bawah 10 siklus EMA. Kondisi ini memberi isyarat untuk membalikkan atau melemahkan momentum multihead.
Strategi perdagangan kuantitatif yang menghasilkan keuntungan yang signifikan dalam pengujian ulang. Strategi ini lebih baik untuk menangkap tren harga jangka menengah, tetapi perlu waspada terhadap risiko pembalikan tren. Dengan pengoptimalan lebih lanjut, diharapkan untuk meningkatkan stabilitas strategi dan kinerja saham.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © fzj20020403
//@version=5
strategy("Slight Swing Momentum Strategy.", overlay=true)
// Position Status Definition
var inPosition = false
// Moving Average Definition
ma60 = ta.sma(close, 60)
// A1 Condition Definition
A1 = high / close < 1.03 and open / low < 1.03 and high / close[1] > 1.06
// A2 Condition Definition
A2 = close / open > 1.05 or close / close[1] > 1.05
// A3 Condition Definition
highestVol = ta.highest(volume, 60)
A3 = ta.crossover(volume, highestVol[1])
// B1 Condition Definition
ema5 = ta.ema(close, 5)
B1 = close / ema5
// XG Condition Definition
A1andA2 = (A1 and A2) and (A1[1] and A2[1])
XG = ta.crossover(B1, ta.sma(B1, 9))
// Weekly Trend Factor Definition
weeklyMa = ta.sma(close, 50)
weeklySlope = (weeklyMa - weeklyMa[4]) / 4 > 0
// Buy Signal using XG Condition
buySignal = A1 and close > ma60 or A2 and A3 and XG and close > ma60 and weeklySlope
// Sell Signal Condition
sellSignal = close < ta.ema(close, 10)
// Buy and Sell Conditions
buyCondition = buySignal and not inPosition
sellCondition = sellSignal and inPosition
// Execute Buy and Sell Operations
if (buyCondition)
strategy.entry("Buy", strategy.long)
inPosition := true
if (sellCondition)
strategy.close("Buy")
inPosition := false
// Stop Loss and Take Profit Levels
stopLoss = strategy.position_avg_price * 0.5
takeProfit = strategy.position_avg_price * 1.30
// Apply Stop Loss and Take Profit Levels
if inPosition
strategy.exit("Long Stop Loss", "Buy", stop=stopLoss)
strategy.exit("Long Take Profit", "Buy", limit=takeProfit)
// Plot Buy and Sell Signal Shapes
plotshape(buyCondition, style=shape.arrowdown, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellCondition, style=shape.arrowup, location=location.abovebar, color=color.red, size=size.small)
// EMA Variable Definition
ema = ta.ema(close, 5)
// Plot Indicator Line
plot(ema, color=color.green, title="EMA")