
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng được xác minh kép kết hợp với chỉ số MACD và chỉ số Supertrend. Chiến lược này xác định thời gian nhập cảnh bằng cách so sánh đường MACD với đường tín hiệu, đồng thời kết hợp với hướng xu hướng của chỉ số Supertrend, và đặt mức dừng và dừng cố định để kiểm soát rủi ro. Cơ chế xác minh kép này làm tăng độ tin cậy của tín hiệu giao dịch và giảm hiệu quả nhiễu tín hiệu giả.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Chiến lược này xây dựng một hệ thống giao dịch theo dõi xu hướng tương đối đáng tin cậy bằng cách kết hợp các lợi thế của chỉ số MACD và Supertrend. Sự chính xác 46% và lợi nhuận 46% cho thấy chiến lược có khả năng sinh lợi. Sự ổn định và khả năng thích ứng của chiến lược có thể được nâng cao hơn nữa thông qua các hướng tối ưu hóa được đề xuất, đặc biệt là việc giới thiệu các bộ lọc dừng động và môi trường thị trường. Chiến lược phù hợp cho giao dịch trong ngày và tương lai, nhưng người dùng cần chú ý đến sự phù hợp của môi trường thị trường và điều chỉnh các tham số tùy theo tình hình thực tế.
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('MANTHAN BHRAMASTRA', overlay=true)
// Supertrend function
f_supertrend(_period, _multiplier) =>
atr = ta.sma(ta.tr, _period)
upTrend = hl2 - _multiplier * atr
downTrend = hl2 + _multiplier * atr
var float _supertrend = na
var int _trendDirection = na
_supertrend := na(_supertrend[1]) ? hl2 : close[1] > _supertrend[1] ? math.max(upTrend, _supertrend[1]) : math.min(downTrend, _supertrend[1])
_trendDirection := close > _supertrend ? 1 : -1
[_supertrend, _trendDirection]
// Supertrend Settings
factor = input(2, title='Supertrend Factor')
atrLength = input(20, title='Supertrend ATR Length')
// Calculate Supertrend
[supertrendValue, direction] = f_supertrend(atrLength, factor)
// MACD Settings
fastLength = input(12, title='MACD Fast Length')
slowLength = input(26, title='MACD Slow Length')
signalSmoothing = input(9, title='MACD Signal Smoothing')
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// Generate Buy signals
buySignal = ta.crossover(macdLine, signalLine) and direction == 1
// Plot Buy signals
// Calculate stop loss and take profit levels (0.25% of the current price)
longStopLoss = close * 0.9950
longTakeProfit = close * 1.9999
// Execute Buy orders with Target and Stop Loss
if buySignal
strategy.entry('Buy', strategy.long)
strategy.exit('Sell', 'Buy', stop=longStopLoss, limit=longTakeProfit)