Category Trend  at 04/09/2023

PROcBot OnBAR -m1 bars from Server

Notice. There is an update for this algorithm which is awaiting moderation. Please check back soon to view the latest version of this algorithm.

Download OnBAR robot -Google Drive:

Download OnTICK robot -Google Drive:

Rental Plans:

  • 1 Month / 31 days = 15 EUR (you can also rent it for more than 1 month at once)
  • 1 Year = 150 EUR  
  • 2 Years = 250 EUR 

Purchase Plans:

  • Buy without the source code = 800 EUR (you get free updates for the next 12 months)
  • Buy with the source code = 1500 EUR 


I accept PayPal only

“If you optimize the robot for any Forex currency pair, gold, or US 500 (except for AUDUSD and EURUSD, for which I have already found good results) on IC Markets or TopFX broker, using historical data from January 2017 to September 2023, with a minimum of 2500 trades and a good equity curve, and share the results with me, you will receive two months of free rent. Many of you have very fast computers. We can help eachother.

Contact Information:

For rental or purchase inquiries, please contact me via email at .

For renting and buying, the developer will send a PayPal request ( to the costumer's email with the specific amount due. The customer can click on the link and pay with their credit card. It’s safe and easy. 

You will get both robot versions, OnTICK and OnBAR.


-You have all the parameters. The expiration date for testing is 9.9.2023.  After 9.9.2023, you can rent or buy the robot.

You must know how to use the optimization program in cTrader. You also must know how to accurately use the backtesting program in cTrader. Once you find good results for one Forex currency pair, and you use the robot to trade your live capital, you must run the Optimization program in cTrader every 14 days.

Likewise, you can use the robot on any instrument. Forex currency pairs, gold, crypto - but first you must optimize the robots' parameters / the values / numbers - based on the broker you have (IC Markets, TopFX, Pepperstone,..)

-When you pause the robot and then restart it, or even if you restart your computer and relaunch the robot, it will efficiently resume tracking and managing your active open trades. This ensures a smooth and uninterrupted trading experience.

If you have any questions, please let me know. I do not want you to lose all your money! I can help you to learn how to use the Optimization and the Backtesting in cTrader. I can send you videos also on how to optimize the robot.

First test the robot, optimize it and backtest it before using it. 

*I only optimized it for aud/usd 1 Minute on IC Markets, so you have some advantage. (Slow Moving Average Type: Hull -97 / Fast Moving Average Type: Weighted -46)


*For AUD/USD 1 minute you must change the Slow Moving Average Type to 'Hull', and Fast Moving Average type to 'Weighted' You can use the OnTICK or the OnBAR robot version - because it is already optimized for them.

*For EUR/USD 1 minute you must use for Slow Moving Average Type 'Weighted' Period 111, and Fast Moving Average Type 'Simple' Period 106 - you also must change the values / numbers for the RSI and other parameters. RSI: 15, 70.4, 29.5

I only optimized EUR/USD 1 Minute on the OnBAR robot version. The robot here does not have the Parameter values / numbers already set for eur/usd. You must change them yourself.

YouTube video 

OnBAR version. EURUSD 1 Minute 2011 - 2023 Fixed Sharpe Rato position size. IC Markets



-Screenshots. Some examples of the optimization:


*The safest optimization results are for EUR/USD. I have found good results on the last 12 Years of historical data.

OnBAR version:


01. GOLD 2 Minute . OnBAR robot version




2. AUDUSD OnTick

3. AUDUSD OnTick


5. EUR/USD OnBar



*Please optimize the robots yourself.
Only optimize the robot with Fixed Position size / or Position Size - Sharpe. This approach provides a clear view of the actual equity curve and its associated drawdown. When you are ready to deploy the robot in a live trading environment, you may then consider implementing the Auto Position Sizing feature
Please take the initiative to optimize the robot independently. Exclude the optimization of the RSI Close Trade Logic by configuring it to 'No' and unchecking its associated values. Furthermore, refrain from optimizing the Stop If Equity Falls below %: and the Turn Off Buy/Sell Positions parameters.

During the first / initial optimization of the robot, it is advisable not to optimize the Take Profit (pips), Stop Loss (pips), and Break-Even SL + Trailing parameters. Instead, focus on identifying optimal indicator values and parameters that yield promising results. The robot opens and closes the positions on the opposite signal.

Only after obtaining favorable results from the optimization of the aforementioned parameters should you proceed to optimize the robot using the same indicator values and parameters that have proven successful during the optimization of the Take Profit, Stop Loss, and Break-Even SL + Trailing settings. This step-by-step approach ensures a methodical and informed optimization process for the robot."

** AUDUSD 1 Minute
The robot is already optimized for aud/usd 1 -Minute. OnTick and OnBar.
!! All you have to do is to change the Slow Moving Average Type to Hull, and Fast Moving Average to Weighted. !!
The robot has undergone optimization specifically for AUD/USD on a 1-minute timeframe. I recommend performing optimization runs at regular intervals, approximately every 14 days, starting from January 1, 2021, and extending to the current date. This periodic optimization ensures that the robot remains adaptive and aligned with prevailing market conditions.
For aud/usd 1 - Minute I used:
Slow Moving Average Type: Hull
Slow Periods: 97
Fast Moving Average Type: Weighted
Fast Periods: 46
RSI Periods: 8
RSI Overbought: 73.1
RSI Oversold: 27.7
(To achieve optimal results during the robot's optimization spanning the period from 2017 to 2023, I have identified that utilizing Slow Periods: 102 and Fast Periods: 44-46 yields the most favorable outcomes.)

** EURUSD 1 Minute:
For eur/usd  1 - minute optimized on the entire history data I used the OnBar robot version
Slow Moving Average Type: Weighted
Slow Periods: 111
Fast Moving Average Type: Simple
Fast Periods: 106
RSI Periods: 15
RSI Overbought: 70.4
RSI Oversold: 29.5


Position Sizing:

- Sharpe Ratio Logic (UseSharpeRatioLogic): It is only used for opening new positions. If the sharpe ratio is good it will open double the position size. (I recommend using the default Sharpe Ratio Threshold value of 1 and avoiding values below)  The Sharpe Ratio is a widely-used financial metric that helps assess the risk-adjusted return of an investment or trading strategy. It was developed by Nobel laureate William F. Sharpe. The Sharpe Ratio calculates the excess return of an investment (or strategy) relative to a risk-free rate (usually a Treasury bond yield) per unit of volatility or risk.
- Sharpe Ratio has its own fixed position size. It is linked to the Auto Position Sizing. When you optimize the robot using Sharpe ratio fixed position size, you can use the Auto Position Sizing. Make sure you enable the Sharpe ratio logic.
Here's how the Sharpe Ratio is calculated:
Excess Return: It measures the average return of the investment or strategy above the risk-free rate. This represents the additional return earned by taking on risk.
Excess Return = Average Annual Return of the Investment - Risk-Free Rate
Volatility (Standard Deviation): This represents the variability or fluctuations in the returns of the investment or strategy. It quantifies the risk associated with the investment.
Volatility is typically measured as the standard deviation of the investment's returns over a specific period, such as a year.
Sharpe Ratio: The Sharpe Ratio is calculated by dividing the excess return by the volatility. It provides a single value that helps investors or traders assess whether the returns generated by an investment are worth the level of risk taken.
The Sharpe Ratio can be interpreted as follows:
Higher Sharpe Ratio: A higher Sharpe Ratio indicates that the investment or strategy has generated more return for each unit of risk taken. It is generally considered more attractive as it implies a better risk-adjusted performance.
Lower Sharpe Ratio: A lower Sharpe Ratio suggests that the investment or strategy has not generated sufficient excess return relative to the risk involved. It may not be as attractive from a risk-adjusted perspective.
In the context of the trading robot, the parameter UseSharpeRatioLogic enables or disables the use of Sharpe ratio-based position sizing. When enabled, the robot will consider the Sharpe ratio of the strategy's historical performance. If the calculated Sharpe ratio exceeds the specified SharpeRatioThreshold, it may increase the position size for trades, indicating that the strategy has historically provided a better risk-adjusted return. Conversely, if the Sharpe ratio falls below the threshold, it may reduce the position size, indicating a less favorable risk-adjusted return.

Importantly, the Sharpe Ratio Logic has its own fixed position size. For example, when the Sharpe Ratio Fixed Position Size is set to 0.01, the bot will open positions with a size of 0.01 lots if the Sharpe ratio is below 1 (indicating a lower risk-adjusted return). However, if the Sharpe ratio is above 1 (indicating a better risk-adjusted return), the bot will open positions with a size of 0.02 lots. This dynamic position sizing based on the Sharpe ratio allows the bot to adapt to changing market conditions and optimize risk-adjusted returns.

In summary, the Sharpe Ratio Logic is a crucial feature of this trading robot, enhancing its risk management capabilities and enabling it to make more informed position sizing decisions based on historical risk-adjusted performance. This dynamic approach aims to optimize the strategy's equity curve, ultimately contributing to more favorable trading outcomes.

-Fixed Position size (Lots): This parameter allows you to set a fixed position size in lots. If you enable this option, the robot will use the specified lot size for all trades, ignoring risk percentage-based position sizing.
If the robot is optimized with Fixed Position Size (Lots) parameter, you can also use the Auto Position Sizing when you use the robot to trade your live capital.

-Auto Position Sizing: Enabling this option activates automatic position sizing based on the specified risk percentage. The robot will dynamically adjust the position size for each trade to ensure that the risk aligns with the defined percentage of your account balance.

Auto Position Size Risk %: This parameter defines the risk percentage that the robot uses for automatic position sizing. It determines how much of your account balance the robot is willing to risk on each trade.

Moving Average:

Slow Moving Average Type: Choose the type of moving average to be used for the slower moving average component of the strategy.

Slow Periods: Set the number of periods for the slower moving average. This moving average helps identify long-term trends.

Fast Moving Average  Type: Select the type of moving average for the faster moving average component.

Fast Periods: Define the number of periods for the faster moving average. This moving average focuses on shorter-term price movements.


RSI Periods: Specify the number of periods used in the Relative Strength Index (RSI) calculation. RSI is a momentum oscillator that measures the speed and change of price movements.

RSI Overbought: Set the RSI level that defines the overbought condition. When RSI crosses above this level, it may suggest that the asset is overvalued.

RSI Oversold: Define the RSI level that indicates the oversold condition. When RSI drops below this level, it may suggest that the asset is undervalued.

Take Profit, Stop Loss, Break-Even Stop Loss + activate Trailing:

Take Profit (pips): This parameter sets the desired take profit level in pips. When a trade reaches this level of profit, the robot will automatically close the position to secure gains.

Stop Loss (pips): Specify the stop loss level in pips. If the trade moves against you and reaches this level of loss, the robot will close the position to limit losses.

Break-Even SL + Trailing: This parameter combines a break-even stop loss with a trailing stop. Once a trade reaches the specified pips in profit (break-even), the stop loss is moved to the entry point. If the trade continues to move in your favor, the trailing stop will protect your profits.


Use Directional MA = TREND Moving Average - Directional Moving Average:

Use Directional MA: Enable or disable the use of the TREND Moving Average in the strategy. When enabled, it opens new positions based on the prevailing trend.

Directional MA Type: Choose the type of moving average used for the TREND Moving Average component.

Directional MA Periods: Set the number of periods for the TREND Moving Average. This moving average helps identify the direction of the trend.

Max Open Positions, Bars to Prevent New Positions, and Opposite Signal - Close All:

Max Open Positions establishes the upper limit on the number of concurrent positions the algorithm will maintain. This control ensures that trading activity remains within defined boundaries.

_ I advise you to use it and set it to "Yes" If you don't use it and if you disable the rsi close trade logic, the robot will only close the open positions when they hit Take Profit, Stop Loss or Break-Even + Trail SL.

-Parameter: "m1 Bars wait from last open" = Bars to Wait for Next Trade (1-minute bars) since last opened position
This parameter allows you to control the timing of your trading actions based on the number of 1-minute price bars that have passed. It is an essential feature to fine-tune the pacing of your trading strategy. Here's how it works:
DefaultValue: 20
MinValue: 0
When set to 0 (the default value), the robot will take the next trading action immediately without any waiting based on bar counts.
Setting this parameter to a positive integer value (e.g., 1, 2, 3, etc.) will introduce a waiting period before the robot takes the next trading action.
Each trading action (buy or sell) will increment a counter for the number of 1-minute bars that have passed since the last action.
The robot will only proceed to the next trading action when the number of bars counted matches the value specified in this parameter.
Suppose you set BarsToWait to 3. After a buy or sell action, the robot will wait until it observes the completion of three 1-minute bars before executing the next trade.
This feature allows you to pace your trading strategy according to specific market conditions or preferred intervals between trades.
Use this parameter to strike a balance between frequent trading and a more measured approach, aligning your trading actions with the passage of 1-minute bars.

-Only Open next if in Profit (Parameter):
The robot will only open a new position if the current open position is in profit.
The robot checks if it should open new positions based on the following conditions:
For Buy Positions: It considers the current number of open buy positions, their profitability, and the maximum allowed positions.
For Sell Positions: It considers the current number of open sell positions, their profitability, and the maximum allowed positions.
-Opposite Signal - Close All: empowers the algorithm with a vital decision-making capability. It determines whether the algorithm should take swift action upon detecting a conflicting trading signal. Specifically, it governs whether all existing positions should be proactively closed when such a signal arises.

Turn OFF / Disable Buy or Sell Positions:

Turn Off Buy Positions and Turn Off Sell Positions: Use these options to selectively enable or disable the ability of the robot to open buy or sell positions.

RSI Close Trade Logic and Custom Time Interval:

Use RSI Close Trade Logic: Activate or deactivate the RSI-based logic for closing open positions. When enabled, the robot will consider RSI conditions for closing trades.

RSI Time Interval (Minutes): Define the custom time interval, in minutes, for RSI calculations. This allows you to adapt RSI analysis to different timeframes.

RSI Periods: Set the number of periods used in RSI calculations for trade closure.

If RSI Above - close Buy and If RSI Below - close Sell: These parameters determine the RSI levels at which the robot will close buy and sell positions, respectively.

*Stop If Equity Falls below %:

Stop if STARTING Equity Falls Below %: Define a percentage value. If your account's equity falls below this threshold, the robot will stop trading. This feature helps protect your capital from significant losses. Stop and start the robot to reset it.

*Source Series:
Source Series: Choose the data series to be used for trading decisions. Typically, "Close" is used to base decisions on closing price data.

These parameters collectively form the core of the robot's strategy, allowing you to customize and fine-tune its behavior to align with your trading preferences and risk management goals.


Pro Trader Europe



// // The author hid the code of this algorithm
Algo_Europe's avatar

Joined 06.12.2020

  • Type: Paid
  • Language: C#
  • Trading Platform: cTrader Automate
  • Filename: - OnBAR (Optimization with m1 bars from Server) -test.algo
  • Rating: 0
  • Installs: 43
Only logged in users can post a comment
Comments not found