
Strategi ini adalah sistem pengesanan trend berdasarkan carta Heikin Ashi yang halus. Dengan mengira carta Heikin Ashi pada tempoh masa yang lebih tinggi dan menerapkannya pada keputusan perdagangan pada tempoh masa yang lebih rendah, ia mengurangkan kesan bunyi pasaran. Strategi ini menyediakan pilihan arah perdagangan yang fleksibel, boleh melakukan perdagangan hanya lebih banyak, hanya kosong atau dua arah, dan mengintegrasikan fungsi stop loss, mewujudkan proses perdagangan yang sepenuhnya automatik.
Logik teras strategi ini adalah untuk mengenal pasti trend dengan menggunakan ciri-ciri halus pada tempoh masa yang tinggi. Diagram Heikin Ashi dapat menyaring bunyi pasaran dengan berkesan dengan mengira purata bergerak pada harga pembukaan dan harga penutupan, yang menonjolkan trend utama. Apabila terdapat tanda hijau yang menunjukkan trend naik, sistem akan membuka kedudukan dalam mod berganda; apabila terdapat tanda merah yang menunjukkan trend menurun, sistem akan membuka kedudukan dalam mod kosong.
Strategi ini menangkap trend pasaran dengan berkesan melalui sifat licin indikator Heikin Ashi berkala dan mengawal penarikan balik melalui mekanisme pengurusan risiko yang baik. Fleksibiliti dan skalabiliti strategi menjadikannya bernilai praktikal yang baik, dan dapat menyesuaikan diri dengan keadaan pasaran yang berbeza melalui pengoptimuman dan penambahbaikan yang berterusan. Walaupun terdapat risiko tertentu, prestasi perdagangan yang stabil dapat dicapai melalui penetapan parameter dan pengurusan risiko yang munasabah.
/*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)