0bps

Strategy vault / Other

Engulfing Candles

This script shows you where a candle is either bullish or bearish engulfing the previous candle. A GREEN triangle below the bar pointing UP indicates that the candle is BULLISH engulfing the previous candle A RED…

Pine ScriptOther
Author
ChaoZhang
Complexity
Starter · 41 lines
Parameters
0
Backtest bar
1h · intraday
Tested on
BTC/USDT · futures

This script shows you where a candle is either bullish or bearish engulfing the previous candle.

A GREEN triangle below the bar pointing UP indicates that the candle is BULLISH engulfing the previous candle A RED triangle ABOVE the bar pointing DOWN indicates that the candle is BEARISH engulfing the previous candle

backtest

IMG

Source Pine Script

/*backtest
start: 2022-02-07 00:00:00
end: 2022-05-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
study("Engulfing Candles", overlay = true)
//strategy("Engulfing Candles") //keep this commented out unless backtesting

openBarPrevious = open[1]
closeBarPrevious = close[1]
openBarCurrent = open
closeBarCurrent = close

//If current bar open is less than equal to the previous bar close AND current bar open is less than previous bar open AND current bar close is greater than previous bar open THEN True
bullishEngulfing = (openBarCurrent <= closeBarPrevious) and (openBarCurrent < openBarPrevious) and (closeBarCurrent > openBarPrevious)
//If current bar open is greater than equal to previous bar close AND current bar open is greater than previous bar open AND current bar close is less than previous bar open THEN True
bearishEngulfing = (openBarCurrent >= closeBarPrevious) and (openBarCurrent > openBarPrevious) and (closeBarCurrent < openBarPrevious)

//bullishEngulfing/bearishEngulfing return a value of 1 or 0; if 1 then plot on chart, if 0 then don't plot


alertcondition(bullishEngulfing, title = "Bullish Engulfing", message = "[CurrencyPair] [TimeFrame], Bullish candle engulfing previous candle")
alertcondition(bearishEngulfing, title = "Bearish Engulfing", message = "[CurrencyPair] [TimeFrame], Bearish candle engulfing previous candle")


// === EXECUTION === //Keep this commented out unless backtesting
// strategy.entry("L", strategy.long, 25000, when = bullishEngulfing == 1 and window()) // buy long when "within window of time" AND crossover 
// strategy.exit("exit", "L", profit = 1000, loss = 50)

// strategy.entry("S", strategy.short, 25000, when = bearishEngulfing == 1 and window()) // buy long when "within window of time" AND crossover 
// strategy.exit("exit", "S", profit = 1000, loss = 50)


if bullishEngulfing
    strategy.entry("Enter Long", strategy.long)
else if bearishEngulfing
    strategy.entry("Enter Short", strategy.short)

Published by ChaoZhang on the FMZ strategy square · last modified 2022-05-08. 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.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Engulfing-Candles.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. 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

esc

Try , , or .

↑↓ move↵ open