Candle: A Comprehensive Pine Script™ Library for Candlestick Analysis
Overview
The Candle library, developed in Pine Script™, provides traders and developers with a robust toolkit for analyzing candlestick data. By offering easy access to fundamental candlestick components like open, high, low, and close prices, along with advanced derived metrics such as body-to-wick ratios, percentage calculations, and volatility analysis, this library enables detailed insights into market behavior.
This library is ideal for creating custom indicators, trading strategies, and backtesting frameworks, making it a powerful resource for any Pine Script™ developer.
Key Features
1. Core Candlestick Data •Open: Access the opening price of the current candle. •High: Retrieve the highest price. •Low: Retrieve the lowest price. •Close: Access the closing price.
2. Candle Metrics •Full Size: Calculates the total range of the candle (high - low). •Body Size: Computes the size of the candle’s body (open - close). •Wick Size: Provides the combined size of the upper and lower wicks.
3. Wick and Body Ratios •Upper Wick Size and Lower Wick Size. •Body-to-Wick Ratio and Wick-to-Body Ratio.
4. Percentage Calculations •Upper Wick Percentage: The proportion of the upper wick size relative to the full candle size. •Lower Wick Percentage: The proportion of the lower wick size relative to the full candle size. •Body Percentage and Wick Percentage relative to the candle’s range.
5. Candle Direction Analysis • Determines if a candle is "Bullish" or "Bearish" based on its closing and opening prices.
6. Price Metrics •Average Price: The mean of the open, high, low, and close prices. •Midpoint Price: The midpoint between the high and low prices.
7. Volatility Measurement • Calculates the standard deviation of the OHLC prices, providing a volatility metric for the current candle.
Code Architecture
Example Functionality
The library employs a modular structure, exporting various functions that can be used independently or in combination. For instance:
The modularity of the Candle library allows seamless integration into more extensive trading systems. Functions can be mixed and matched to suit specific analytical or strategic needs.
Use Cases
Trading Strategies Developers can use the library to create strategies based on candle properties such as: • Identifying long-bodied candles (momentum signals). • Detecting wicks as potential reversal zones. • Filtering trades based on candle ratios.
Visualization Plotting components like body size, wick size, and directional labels helps visualize market behavior and identify patterns.
Backtesting By incorporating volatility and ratio metrics, traders can design and test strategies on historical data, ensuring robust performance before live trading.
Education This library is a great tool for teaching candlestick analysis and how each component contributes to market behavior.
Portfolio Highlights
Project Objective To create a Pine Script™ library that simplifies candlestick analysis by providing comprehensive metrics and insights, empowering traders and developers with advanced tools for market analysis.
Development Challenges and Solutions •Challenge: Achieving high precision in calculating ratios and percentages. •Solution: Implemented robust mathematical operations and safeguarded against division-by-zero errors. •Challenge: Ensuring modularity and scalability. •Solution: Designed functions as independent modules, allowing flexible integration.
Impact •Efficiency: The library reduces the time required to calculate complex candlestick metrics. •Versatility: Supports various trading styles, from scalping to swing trading. •Clarity: Clean code and detailed documentation ensure usability for developers of all levels.
Conclusion The Candle library exemplifies the power of Pine Script™ in simplifying and enhancing candlestick analysis. By including this project in your portfolio, you showcase your expertise in: • Financial data analysis. • Pine Script™ development. • Creating tools that solve real-world trading challenges.
This project demonstrates both technical proficiency and a keen understanding of market analysis, making it an excellent addition to your professional portfolio.
Library "Candle" A comprehensive library to access and analyze the basic components of a candlestick, including open, high, low, close prices, and various derived metrics such as full size, body size, wick sizes, ratios, percentages, and additional analysis metrics.
Open() Open description Returns the opening price of the current candle. Returns: float - The opening price of the current candle.
High() High description Returns the highest price of the current candle. Returns: float - The highest price of the current candle.
Low() Low description Returns the lowest price of the current candle. Returns: float - The lowest price of the current candle.
Close() Close description Returns the closing price of the current candle. Returns: float - The closing price of the current candle.
FullSize() FullSize description Returns the full size (range) of the current candle (high - low). Returns: float - The full size of the current candle.
BodySize() BodySize description Returns the body size of the current candle (open - close). Returns: float - The body size of the current candle.
WickSize() WickSize description Returns the size of the wicks of the current candle (full size - body size). Returns: float - The size of the wicks of the current candle.
UpperWickSize() UpperWickSize description Returns the size of the upper wick of the current candle. Returns: float - The size of the upper wick of the current candle.
LowerWickSize() LowerWickSize description Returns the size of the lower wick of the current candle. Returns: float - The size of the lower wick of the current candle.
BodyToWickRatio() BodyToWickRatio description Returns the ratio of the body size to the wick size of the current candle. Returns: float - The body to wick ratio of the current candle.
UpperWickPercentage() UpperWickPercentage description Returns the percentage of the upper wick size relative to the full size of the current candle. Returns: float - The percentage of the upper wick size relative to the full size of the current candle.
LowerWickPercentage() LowerWickPercentage description Returns the percentage of the lower wick size relative to the full size of the current candle. Returns: float - The percentage of the lower wick size relative to the full size of the current candle.
WickToBodyRatio() WickToBodyRatio description Returns the ratio of the wick size to the body size of the current candle. Returns: float - The wick to body ratio of the current candle.
BodyPercentage() BodyPercentage description Returns the percentage of the body size relative to the full size of the current candle. Returns: float - The percentage of the body size relative to the full size of the current candle.
WickPercentage() WickPercentage description Returns the percentage of the wick size relative to the full size of the current candle. Returns: float - The percentage of the wick size relative to the full size of the current candle.
CandleDirection() CandleDirection description Returns the direction of the current candle. Returns: string - "Bullish" if the candle is bullish, "Bearish" if the candle is bearish.
AveragePrice() AveragePrice description Returns the average price of the current candle (mean of open, high, low, and close). Returns: float - The average price of the current candle.
MidpointPrice() MidpointPrice description Returns the midpoint price of the current candle (mean of high and low). Returns: float - The midpoint price of the current candle.
Volatility() Volatility description Returns the standard deviation of the OHLC prices of the current candle. Returns: float - The volatility of the current candle.