Chiến lược này là một hệ thống theo xu hướng dựa trên các ngọn nến Heikin Ashi trơn tru. Bằng cách tính toán các ngọn nến Heikin Ashi trong một khung thời gian cao hơn và áp dụng chúng cho các quyết định giao dịch trong các khung thời gian thấp hơn, nó làm giảm hiệu quả tiếng ồn thị trường. Chiến lược cung cấp các tùy chọn hướng giao dịch linh hoạt, cho phép giao dịch chỉ dài, chỉ ngắn hoặc hai hướng, và tích hợp các chức năng dừng lỗ và lấy lợi nhuận cho giao dịch tự động đầy đủ.
Hệ thống này sử dụng các đặc điểm làm mịn của các nến Heikin Ashi ở các khung thời gian cao hơn để xác định xu hướng. Các nến Heikin Ashi lọc hiệu quả tiếng ồn thị trường và làm nổi bật các xu hướng chính thông qua tính toán trung bình động của giá mở và đóng. Hệ thống nhập các vị trí dài trong chế độ chỉ dài khi nến xanh xuất hiện, cho thấy xu hướng tăng, và nhập các vị trí ngắn trong chế độ chỉ ngắn khi nến đỏ xuất hiện, cho thấy xu hướng giảm. Chiến lược cũng bao gồm các cơ chế dừng lỗ và lấy lợi nhuận dựa trên tỷ lệ phần trăm để giúp kiểm soát rủi ro và khóa lợi nhuận.
Chiến lược này có hiệu quả nắm bắt xu hướng thị trường thông qua các đặc điểm làm mịn của các chỉ số Heikin Ashi nhiều khung thời gian trong khi kiểm soát giảm thông qua các cơ chế quản lý rủi ro toàn diện. Tính linh hoạt và khả năng mở rộng của chiến lược mang lại cho nó giá trị thực tế tốt, và thông qua tối ưu hóa và cải tiến liên tục, nó có thể thích nghi với các môi trường thị trường khác nhau. Mặc dù có một số rủi ro, hiệu suất giao dịch ổn định có thể đạt được thông qua cài đặt tham số thích hợp và quản lý rủi ro.
/*backtest start: 2024-11-10 00:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Optimized Heikin Ashi Strategy with Buy/Sell Options", overlay=true) // User inputs for customizing backtest settings startDate = input(timestamp("2023-01-01 00:00"), title="Backtest Start Date", tooltip="Start date for the backtest") endDate = input(timestamp("2024-01-01 00:00"), title="Backtest End Date", tooltip="End date for the backtest") // Input for Heikin Ashi timeframe optimization ha_timeframe = input.timeframe("D", title="Heikin Ashi Timeframe", tooltip="Choose the timeframe for Heikin Ashi candles") // Inputs for optimizing stop loss and take profit use_stop_loss = input.bool(true, title="Use Stop Loss") stop_loss_percent = input.float(2.0, title="Stop Loss (%)", minval=0.0, tooltip="Set stop loss percentage") use_take_profit = input.bool(true, title="Use Take Profit") take_profit_percent = input.float(4.0, title="Take Profit (%)", minval=0.0, tooltip="Set take profit percentage") // Input to choose Buy or Sell trade_type = input.string("Buy Only", options=["Buy Only", "Sell Only"], title="Trade Type", tooltip="Choose whether to only Buy or only Sell") // Heikin Ashi calculation on a user-defined timeframe ha_open = request.security(syminfo.tickerid, ha_timeframe, ta.sma(open, 2), barmerge.gaps_off, barmerge.lookahead_on) ha_close = request.security(syminfo.tickerid, ha_timeframe, ta.sma(close, 2), barmerge.gaps_off, barmerge.lookahead_on) ha_high = request.security(syminfo.tickerid, ha_timeframe, math.max(high, close), barmerge.gaps_off, barmerge.lookahead_on) ha_low = request.security(syminfo.tickerid, ha_timeframe, math.min(low, open), barmerge.gaps_off, barmerge.lookahead_on) // Heikin Ashi candle colors ha_bullish = ha_close > ha_open // Green candle ha_bearish = ha_close < ha_open // Red candle // Backtest period filter inDateRange = true // Trading logic depending on user input if (inDateRange) // Ensures trades happen only in the selected period if (trade_type == "Buy Only") // Buy when green, Sell when red if (ha_bullish and strategy.position_size <= 0) // Buy on green candle only if no position is open strategy.entry("Buy", strategy.long) if (ha_bearish and strategy.position_size > 0) // Sell on red candle (close the long position) strategy.close("Buy") if (trade_type == "Sell Only") // Sell when red, Exit sell when green if (ha_bearish and strategy.position_size >= 0) // Sell on red candle only if no position is open strategy.entry("Sell", strategy.short) if (ha_bullish and strategy.position_size < 0) // Exit the sell position on green candle strategy.close("Sell") // Add Stop Loss and Take Profit conditions if enabled if (use_stop_loss) strategy.exit("Stop Loss", from_entry="Buy", stop=strategy.position_avg_price * (1 - stop_loss_percent / 100)) if (use_take_profit) strategy.exit("Take Profit", from_entry="Buy", limit=strategy.position_avg_price * (1 + take_profit_percent / 100)) // Plot Heikin Ashi candles on the chart plotcandle(ha_open, ha_high, ha_low, ha_close, color=ha_bullish ? color.green : color.red)