Strategy vault / Trend following
Advanced Shadowless Heikin Ashi with VWAP Trading System
This is an automated trading system based on shadowless Heikin-Ashi candlesticks and Volume Weighted Average Price (VWAP). The strategy executes trades by identifying specific candlestick patterns and using VWAP as…

Overview
This is an automated trading system based on shadowless Heikin-Ashi candlesticks and Volume Weighted Average Price (VWAP). The strategy executes trades by identifying specific candlestick patterns and using VWAP as dynamic support/resistance levels within defined trading hours. It manages risk through fixed take-profit and stop-loss levels, with forced position closure at a specific time to avoid overnight exposure.
Strategy Principles
The core logic is based on several key elements:
- Utilizes Heikin-Ashi candlesticks instead of traditional candlesticks, calculating averages of open, high, low, and close prices for better trend identification.
- Buy signal: Green Heikin-Ashi candle (no lower shadow) forms above VWAP.
- Sell signal: Red Heikin-Ashi candle (no upper shadow) forms below VWAP.
- Implements fixed 50-point take-profit target with exit at cost price.
- Forces position closure at 15:01 for all open positions.
Strategy Advantages
- Combines powerful technical indicators Heikin-Ashi and VWAP for enhanced signal reliability.
- Shadowless requirement ensures stronger trend confirmation signals.
- Fixed take-profit and stop-loss levels enable strict risk control.
- Intraday trading approach eliminates overnight risk.
- Fully automated system reduces emotional interference.
Strategy Risks
- Fixed profit/loss points may not suit all market conditions, especially during volatility changes.
- Forced exit time might miss extended trends.
- Strict shadowless requirements could miss valid trading opportunities.
- May generate frequent false signals in ranging markets.
- VWAP reliability may decrease during low volume periods.
Optimization Directions
- Introduce ATR for dynamic adjustment of profit/loss points to better adapt to market volatility.
- Add trend filters to reduce false signals in ranging markets.
- Optimize exit timing with dynamic adjustment based on market characteristics.
- Implement volume filters to enhance VWAP indicator reliability.
- Develop trailing stop-loss functionality for better profit protection.
Summary
The strategy builds a robust intraday trading system by combining Heikin-Ashi and VWAP indicators. While there is room for optimization, the basic framework shows good practicality. Through the proposed optimization directions, the strategy has potential for better performance under various market conditions. The key is to fine-tune parameters according to specific trading instrument characteristics.
Source Pine Script
/*backtest
start: 2024-07-16 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Buy and Sell Signal with VWAP and Timed Exit", overlay=true)
// VWAP Calculation
vwap = ta.vwap(close)
// Heikin-Ashi Formula
var float heikin_open = na
var float heikin_close = na
heikin_open := na(heikin_open[1]) ? (open + close) / 2 : (heikin_open[1] + heikin_close[1]) / 2
heikin_close := (open + high + low + close) / 4
heikin_high = math.max(high, math.max(heikin_open, heikin_close))
heikin_low = math.min(low, math.min(heikin_open, heikin_close))
// Conditions for Sell (Red Heikin-Ashi with no upper shadow) and Buy (Green Heikin-Ashi with no lower shadow)
no_upper_shadow = heikin_high == math.max(heikin_open, heikin_close)
no_lower_shadow = heikin_low == math.min(heikin_open, heikin_close)
// Condition for red (sell) and green (buy) Heikin-Ashi candles
is_red_candle = heikin_close < heikin_open
is_green_candle = heikin_close > heikin_open
// Buy and Sell Signal Conditions
sell_signal = is_red_candle and no_upper_shadow and close < vwap
buy_signal = is_green_candle and no_lower_shadow and close > vwap
// Check current time (for 15:01 IST)
is_after_1501 = (hour == 15 and minute > 1) or (hour > 15)
// Check for open positions
open_sell_position = strategy.position_size < 0
open_buy_position = strategy.position_size > 0
// Trigger Sell order only if no open sell position exists and time is before 15:01, and price is below VWAP
if sell_signal and not open_sell_position and not is_after_1501
strategy.entry("Sell", strategy.short)
// Trigger Buy order only if no open buy position exists and time is before 15:01, and price is above VWAP
if buy_signal and not open_buy_position and not is_after_1501
strategy.entry("Buy", strategy.long)
// Define exit condition for Sell (opposite of Buy conditions)
exit_sell_condition = false
if open_sell_position
entry_price = strategy.position_avg_price // Get the average entry price for Sell
current_price = close // Current market price for Sell
// Exit conditions for Sell
exit_sell_condition := current_price > entry_price or entry_price - current_price >= 50
// Exit if conditions are met
if exit_sell_condition
strategy.close("Sell")
// Define exit condition for Buy (opposite of Sell conditions)
exit_buy_condition = false
if open_buy_position
entry_price = strategy.position_avg_price // Get the average entry price for Buy
current_price = close // Current market price for Buy
// Exit conditions for Buy
exit_buy_condition := current_price < entry_price or current_price - entry_price >= 50
// Exit if conditions are met
if exit_buy_condition
strategy.close("Buy")
// Exit at 15:01 IST for both Buy and Sell if not already exited
if (open_sell_position or open_buy_position) and (hour == 15 and minute == 1)
strategy.close("Sell")
strategy.close("Buy")
// Plot VWAP
plot(vwap, color=color.blue, linewidth=2, title="VWAP")
// Plot Heikin-Ashi Candles
plotcandle(heikin_open, heikin_high, heikin_low, heikin_close, color = is_red_candle ? color.red : (is_green_candle ? color.green : color.gray))
// Plot Sell signal on the chart
plotshape(sell_signal and not open_sell_position and not is_after_1501, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)
// Plot Buy signal on the chart
plotshape(buy_signal and not open_buy_position and not is_after_1501, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
// Plot Exit signals on the chart
plotshape(exit_sell_condition and open_sell_position, style=shape.labelup, location=location.belowbar, color=color.blue, text="EXIT SELL", size=size.small)
plotshape(exit_buy_condition and open_buy_position, style=shape.labeldown, location=location.abovebar, color=color.blue, text="EXIT BUY", size=size.small)
Published by ianzeng123 on the FMZ strategy square · last modified 2025-02-21. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Advanced-Shadowless-Heikin-Ashi-with-VWAP-Trading-System.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- Fixed Range Volume Profile And Anchored VWAP Trend Identification Strategy With Dynamic Stop LossPine Script · Trend following · 1h
- Multi Factor Trend Price Action Strategy with Dynamic Risk Management SystemPine Script · Trend following · 2h
- Trend Following Strategy Based on Moving Average 439858Pine Script · Trend following · 1d
- DPO EMA Trend Crossover Quantitative Strategy ResearchPine Script · Trend following · 1d
- Dynamic ATR Trailing Stop with EMA Cross Combination StrategyPine Script · Trend following · 2h
- Heiken Ashi Trend Following Strategy Multi Timeframe Trend Identification System with Multi Layer Stop Loss MechanismPine Script · Trend following · 1d