Specification
Project Overview
I am looking for an experienced C# developer to build a fully automated cBot for cTrader based on a structural Renko expansion strategy primarily traded on Gold (XAUUSD). The strategy relies on the breakout of multiple structural swing levels (Renko bricks), a customized Fibonacci retracement overlay, automated multiple-order splitting, and dynamic position management based on two distinct market scenarios.
The strategy is strictly rule-based, and because it relies entirely on precise Renko brick tracking, the developer must have a solid grasp of cTrader's MarketData.GetSeries for Renko bars.
Technical Requirements & Specifications
1. Chart Configuration
-
Chart Type: Native cTrader Renko bars.
-
Instrument: Gold (XAUUSD), but the cBot should be versatile enough to run on any instrument it is applied to.
-
Brick Size: User-defined input parameter (e.g., 20 pips / 2.0 gold points).
2. Entry Filter 1: Structural Expansion Breakout
The cBot must scan the historical Renko bricks to identify a strong directional macro expansion.
-
For a Sell Setup: The current price expansion must break down and completely clear at least 3 consecutive, distinct structural swing lows in a single, continuous, aggressive downward push.
-
For a Buy Setup: The current price expansion must break up and completely clear at least 3 consecutive, distinct structural swing highs in a single, continuous, aggressive upward push.
-
Condition: If the move only clears 1 or 2 structural swing levels before pausing, the setup is invalid. It must be at least 3.
3. Entry Filter 2: Volatility / "Obviously Big" Filter
To prevent the cBot from getting caught in tight ranging market chop, the expansion move must be mathematically validated as a high-volatility event.
-
Implementation: The total height of the continuous expansion move (from start to the tip of the peak/valley brick) must be X times larger than the average Renko swing size over the last Y periods (X and Y must be user-adjustable input parameters).
4. Fibonacci Overlay & Split Order Placement
Once Filters 1 & 2 pass and a reversal brick begins to form, the cBot must automatically project a custom Fibonacci Grid from the macro structural high to the structural low of that expansion move.
-
Custom Fibonacci Levels Required: 0%, 20%, 38.2%, 50%, 61.8%, 100%, and -27%.
-
Dynamic Fib Drawing: If the expansion continues to push lower/higher without triggering a retracement, the 0% or 100% anchors must dynamically move with the expansion's peak/valley until a reversal brick prints.
-
Three Split Limit Orders: The cBot will divide the total risk into three (3) separate pending limit orders:
-
Order 1: Placed exactly at the 38.2% Fibonacci level.
-
Order 2: Placed exactly at the 50.0% Fibonacci level.
-
Order 3: Placed exactly at the 61.8% Fibonacci level.
-
-
Stop Loss (SL): The SL for all three orders is identical and must be set exactly one (1) Renko brick beyond the 100% Fibonacci level.
5. Position Management & Execution Scenarios
The cBot must monitor these pending limit orders and dynamically execute one of two paths:
-
Scenario A: Shallow Retracement (Only 38.2% Filled)
-
Trigger: Only the 38.2% Limit Order is filled, and the price reverses back in the direction of the original expansion without hitting the deeper 50% or 61.8% levels.
-
Take Profit (TP): Kept at the -27% Fibonacci extension level for this order.
-
Break-Even Trigger: The exact moment the price crosses back through the 20% Fibonacci level moving in our favor, the cBot must immediately modify the Stop Loss of this open position to Break-Even (plus commission/spread padding). The remaining unfilled 50% and 61.8% limit orders must be canceled.
-
-
Scenario B: Deep Retracement (All Three Levels Filled)
-
Trigger: The market retraces deeply, filling the 38.2%, 50.0%, and 61.8% Limit Orders.
-
Rule Change: Because a deep retracement implies weakened momentum, the profit target changes. The cBot must immediately modify the Take Profit (TP) of ALL THREE open positions to the 20% Fibonacci level.
-
No Break-Even: In Scenario B, no break-even trigger is applied. The original Stop Loss (1 brick beyond 100%) remains untouched for all positions to allow room for the market to breathe.
-
6. Risk Management
-
Total Account Risk %: User input parameter (e.g., 1%).
-
Dynamic Lot Sizing: If the total risk is set to 1%, a full stop-out across all three orders must equal exactly 1% of the account equity. Because the distance from entry to SL is different for each level (38.2%, 50%, 61.8%), the cBot must calculate the decreasing risk distance for each order and scale the volume (lots) accordingly so that the math scales perfectly.
7. Time Filter
-
Trading Window Inputs: Parameters to restrict the cBot to hunting for new setups only during a specific time block (e.g., 07:00 AM to 09:00 AM Broker Time).
-
Session Close: Once the time window closes, the cBot ceases searching for new expansion setups, but must continue managing already active or pending trades until they naturally hit TP or SL.
Deliverables Expected
-
Clean, well-structured, and fully commented C# source code (.cs file) compliant with the latest cTrader API.
-
A custom user settings panel UI allowing customizable inputs for: Renko Brick size, Volatility Multiplier threshold, Time Window, Risk %, and custom label tags.
-
Successful backtesting demonstration using cTrader's native backtester, showing correct execution of both Scenario A and Scenario B.
How to Apply
Please outline your experience working with cTrader’s MarketData.GetSeries specifically for Renko/Ticks bars. Applications that feature copy-pasted generic text or look like AI spam without addressing the strategy mechanics will be deleted. Please explain briefly how you plan to calculate the 3-swing structural filter using C#.