I name the time zone before the hours
Session times without a time zone reference are ambiguous. I specify "08:00-16:30 Europe/London" rather than just "08:00-16:30" to avoid DST confusion.
cTrader custom indicator builder
A session indicator draws colored zones on a cTrader chart to show when major trading sessions are active. You define the session times, time zone, colors, and whether to extend high/low lines. Pineify writes the C# source file and checks compiler diagnostics so you can review and build it in cTrader.
Pineify can generate a single-file cTrader C# custom indicator that draws session boxes for the Asian, London, and New York sessions. It uses ChartRectangle for shaded zones, ChartHorizontalLine or ChartTrendLine for session high/low projections, and Server.TimeInUtc or TimeZoneInfo for time calculations. You control the session boundaries, colors, and display options through indicator parameters.
A typical session indicator divides the 24-hour trading day into the three major global sessions: Asian (Tokyo/Sydney), London (European), and New York. It draws a semi-transparent rectangle from the session start time to the session end time, with the rectangle height spanning the session high to low price.
Some session indicators also draw horizontal lines extending from the session high and low into the following session. These lines can serve as reference levels for breakout or reversal strategies based on prior session ranges.
Session boundaries depend on your trading convention. Common definitions use UTC or a specific financial center time zone. For example, you might define the London session as 08:00 to 16:30 London time, which shifts by one hour during daylight saving transitions.
When requesting a session indicator, specify the exact start and end times for each session, the reference time zone, and whether the indicator should account for DST changes. The cTrader Algo API provides Server.TimeInUtc for server time, and you can use .NET TimeZoneInfo for converting between zones.
cTrader Algo provides chart drawing objects that session indicators commonly use. Chart.DrawRectangle creates a named rectangle between two time-price points, which works for session boxes. Chart.DrawHorizontalLine draws a price level across the chart for session high/low projections. Chart.DrawText adds labels to identify each session.
For time calculations, the indicator reads Bars.OpenTimes to identify which bars fall within a session. Server.TimeInUtc gives the current server time in UTC. Standard .NET TimeZoneInfo handles conversions and DST transitions when the session times are defined in a local time zone.
Before building a custom indicator, check whether cTrader built-in features cover your needs. The status bar shows currently active sessions. The Active Symbol Panel displays trading schedules and countdown timers. The MarketSessions API exposes Sydney, Tokyo, London, and New York objects with IsOpen, StartTime, and EndTime properties.
A custom indicator adds visual session boxes on the price chart, configurable display options, and extended session-range lines that the built-in features do not draw. If you need those visual elements, a custom indicator is the right tool.
Pineify checks the generated source for compiler and cTrader API diagnostics. A clean result means no reported compile errors under the supported reference. It does not verify that your session times match reality or that session-range levels will produce useful signals.
Review the time zone logic, session boundaries, and drawing code before copying the source into cTrader. Add the indicator to a chart and compare the drawn rectangles against known session times on the symbols you trade.
Session times without a time zone reference are ambiguous. I specify "08:00-16:30 Europe/London" rather than just "08:00-16:30" to avoid DST confusion.
After building the indicator, I compare the drawn session boxes against published exchange and session hours for a few historical dates.
Session highs and lows mark where price traded during a time window. They do not predict future breakouts or reversals on their own.
Generate or revise a cTrader C# indicator and inspect compiler diagnostics.
Build any cTrader C# indicator from a formula description.
Turn session-based trading rules into a testable C# cBot.
Test a session-based cBot and understand the results.
Build a C# indicator that detects support and resistance levels.
Pineify is an information tool, not investment advice. Session boundaries and range levels do not predict future price behavior. Review and test the indicator before relying on it for any trading decisions.
Generate single-file cTrader C# cBots and custom indicators, then review compiler diagnostics in the same coding workflow.
Create editable cTrader C# custom indicator source for formulas, output series, and chart objects.
Generate a cTrader C# indicator that detects and draws support and resistance levels using pivot points or swing highs/lows.
Turn explicit entry, exit, position, and risk rules into editable single-file cTrader C# cBot source.
Move from a reviewed cBot to cTrader backtesting while keeping compiler checks, test assumptions, and risk limits separate.
Define the sessions, time zones, colors, and display options. Pineify will generate one cTrader C# source file for you to review and build.
Build a session indicator