Version 1.45
2025.04.01
Add new parameter Close All Positions
Version 1.44
2025.03.30
+Add new parameter check only ticks
Version 1.43
2025.03.26
-Fix bug on input Timeframe
Version 1.42
2025.03.16
+ Added _Point to Eval
Version 1.37
2025.03.13
+Fixed bug in the DeMarker indicatorg
Version 1.35
2025.02.22
+ Support to code generator of Rule Plotter
Version 1.34
2025.02.18
+ Do not allow the user to use void strategies.
+ More 10 Strategies Correlation
+ Use Other Symbols on Secondary Strategy to Make Robots of Strategy Correlation
+ Use Other Timeframes for Secondary Strategies
+ Use Other Strategies Combined
+ A parameter to select the timeframe of the strategy signals has been added.
+ Parameter to select the symbol for placing trade orders instead of using the current chart's symbol. While analyzing the current chart, you can send orders to another chart that is not running the robot. This is useful for analyzing custom symbols like Renko charts.
+New Feature: Signal Reversal in Rule Plotter Indicator
Now the Rule Plotter Expert allows reversing all signals generated by configured strategies. When creating strategies with the 4 main signals (buy, sell, close buy, close sell), you can configure the Expert to operate in the opposite direction of each signal.
+ This functionality is especially useful in optimizations, allowing you to identify if a strategy with negative results can become profitable by reversing the signals. With this update, you have even more control to fine-tune and validate the efficiency of your strategies in the market.
Version 1.26
2025.01.06
-Deny Open Position if Close Signal is Active.
Version 1.25
2024.12.15
Added library for the Rule Plotter Code Generator:
+ bool Import(const string json, const int instance=0);
+ int RulePlotterOnInit(const int instance=0);
+ void RulePlotterOnTick(const int instance=0);
+ void SetLot(const double lot, const int instance=0);
+ void SetTake(const double take, const int instance=0);
+ void SetTakeUnitType(const ENUM_UNIT_TYPE takeUnitType, const int instance=0);
+ void SetTakeUnitFrom(const ENUM_PRICE_FROM takeUnitFrom, const int instance=0);
+ void SetStop(const double stop, const int instance=0);
+ void SetStopUnitType(const ENUM_UNIT_TYPE stopUnitType, const int instance=0);
+ void SetStopUnitFrom(const ENUM_PRICE_FROM stopUnitFrom, const int instance=0);
+ void SetStopAtrPeriod(const int stopAtrPeriod, const int instance=0);
+ void SetStopStdDevPeriod(const int stopStdDevPeriod, const int instance=0);
+ void SetStopStdDevShift(const int stopStdDevShift, const int instance=0);
+ void SetStopStdDevMethod(const ENUM_MA_METHOD stopStdDevMethod, const int instance=0);
+ void SetStopStdDevApplied(const ENUM_APPLIED_PRICE stopStdDevApplied, const int instance=0);
+ void SetCheckRule(const ENUM_CHECK checkRule, const int instance=0);
+ void SetGeneralTimeframe(const ENUM_TIMEFRAMES generalTimeframe, const int instance=0);
+ void SetBreakeven(const uint breakeven, const int instance=0);
+ void SetTrailingUse(const bool trailingUse, const int instance=0);
+ void SetTrailingStart(const double trailingStart, const int instance=0);
+ void SetTrailingStartUnitType(const ENUM_UNIT_TYPE trailingStartUnitType, const int instance=0);
+ void SetTrailingStartUnitFrom(const ENUM_PRICE_FROM trailingStartUnitFrom, const int instance=0);
+ void SetTrailingDistance(const double trailingDistance, const int instance=0);
+ void SetTrailingDistanceUnitType(const ENUM_UNIT_TYPE trailingDistanceUnitType, const int instance=0);
+ void SetTrailingDistanceUnitFrom(const ENUM_TRAILING_DISTANCE_FROM trailingDistanceUnitFrom, const int instance=0);
+ void SetWaitPositionClose(const bool waitPositionClose, const int instance=0);
+ void SetMagic(const ulong magic, const int instance=0);
+ void SetDailyTake(const uint dailyTake, const int instance=0);
+ void SetDailyStop(const uint dailyStop, const int instance=0);
+ void SetTradeInJanuary(const ENUM_TRADE_ALLOWED tradeInJanuary, const int instance=0);
+ void SetTradeInFebruary(const ENUM_TRADE_ALLOWED tradeInFebruary, const int instance=0);
+ void SetTradeInMarch(const ENUM_TRADE_ALLOWED tradeInMarch, const int instance=0);
+ void SetTradeInApril(const ENUM_TRADE_ALLOWED tradeInApril, const int instance=0);
+ void SetTradeInMay(const ENUM_TRADE_ALLOWED tradeInMay, const int instance=0);
+ void SetTradeInJune(const ENUM_TRADE_ALLOWED tradeInJune, const int instance=0);
+ void SetTradeInJuly(const ENUM_TRADE_ALLOWED tradeInJuly, const int instance=0);
+ void SetTradeInAugust(const ENUM_TRADE_ALLOWED tradeInAugust, const int instance=0);
+ void SetTradeInSeptember(const ENUM_TRADE_ALLOWED tradeInSeptember, const int instance=0);
+ void SetTradeInOctober(const ENUM_TRADE_ALLOWED tradeInOctober, const int instance=0);
+ void SetTradeInNovember(const ENUM_TRADE_ALLOWED tradeInNovember, const int instance=0);
+ void SetTradeInDecember(const ENUM_TRADE_ALLOWED tradeInDecember, const int instance=0);
+ void SetMondayTrade(const ENUM_TRADE_ALLOWED mondayTrade, const int instance=0);
+ void SetMondayHourStart(const ENUM_TIME_HOUR mondayHourStart, const int instance=0);
+ void SetMondayMinuteStart(const ENUM_TIME_MINUTE mondayMinuteStart, const int instance=0);
+ void SetMondayHourEnd(const ENUM_TIME_HOUR mondayHourEnd, const int instance=0);
+ void SetMondayMinuteEnd(const ENUM_TIME_MINUTE mondayMinuteEnd, const int instance=0);
+ void SetMondayUseTimeToClose(const bool mondayUseTimeToClose, const int instance=0);
+ void SetMondayHourToClose(const ENUM_TIME_HOUR mondayHourToClose, const int instance=0);
+ void SetMondayMinuteToClose(const ENUM_TIME_MINUTE mondayMinuteToClose, const int instance=0);
+ void SetTuesdayTrade(const ENUM_TRADE_ALLOWED tuesdayTrade, const int instance=0);
+ void SetTuesdayHourStart(const ENUM_TIME_HOUR tuesdayHourStart, const int instance=0);
+ void SetTuesdayMinuteStart(const ENUM_TIME_MINUTE tuesdayMinuteStart, const int instance=0);
+ void SetTuesdayHourEnd(const ENUM_TIME_HOUR tuesdayHourEnd, const int instance=0);
+ void SetTuesdayMinuteEnd(const ENUM_TIME_MINUTE tuesdayMinuteEnd, const int instance=0);
+ void SetTuesdayUseTimeToClose(const bool tuesdayUseTimeToClose, const int instance=0);
+ void SetTuesdayHourToClose(const ENUM_TIME_HOUR tuesdayHourToClose, const int instance=0);
+ void SetTuesdayMinuteToClose(const ENUM_TIME_MINUTE tuesdayMinuteToClose, const int instance=0);
+ void SetWednesdayTrade(const ENUM_TRADE_ALLOWED wednesdayTrade, const int instance=0);
+ void SetWednesdayHourStart(const ENUM_TIME_HOUR wednesdayHourStart, const int instance=0);
+ void SetWednesdayMinuteStart(const ENUM_TIME_MINUTE wednesdayMinuteStart, const int instance=0);
+ void SetWednesdayHourEnd(const ENUM_TIME_HOUR wednesdayHourEnd, const int instance=0);
+ void SetWednesdayMinuteEnd(const ENUM_TIME_MINUTE wednesdayMinuteEnd, const int instance=0);
+ void SetWednesdayUseTimeToClose(const bool wednesdayUseTimeToClose, const int instance=0);
+ void SetWednesdayHourToClose(const ENUM_TIME_HOUR wednesdayHourToClose, const int instance=0);
+ void SetWednesdayMinuteToClose(const ENUM_TIME_MINUTE wednesdayMinuteToClose, const int instance=0);
+ void SetThursdayTrade(const ENUM_TRADE_ALLOWED thursdayTrade, const int instance=0);
+ void SetThursdayHourStart(const ENUM_TIME_HOUR thursdayHourStart, const int instance=0);
+ void SetThursdayMinuteStart(const ENUM_TIME_MINUTE thursdayMinuteStart, const int instance=0);
+ void SetThursdayHourEnd(const ENUM_TIME_HOUR thursdayHourEnd, const int instance=0);
+ void SetThursdayMinuteEnd(const ENUM_TIME_MINUTE thursdayMinuteEnd, const int instance=0);
+ void SetThursdayUseTimeToClose(const bool thursdayUseTimeToClose, const int instance=0);
+ void SetThursdayHourToClose(const ENUM_TIME_HOUR thursdayHourToClose, const int instance=0);
+ void SetThursdayMinuteToClose(const ENUM_TIME_MINUTE thursdayMinuteToClose, const int instance=0);
+ void SetFridayTrade(const ENUM_TRADE_ALLOWED fridayTrade, const int instance=0);
+ void SetFridayHourStart(const ENUM_TIME_HOUR fridayHourStart, const int instance=0);
+ void SetFridayMinuteStart(const ENUM_TIME_MINUTE fridayMinuteStart, const int instance=0);
+ void SetFridayHourEnd(const ENUM_TIME_HOUR fridayHourEnd, const int instance=0);
+ void SetFridayMinuteEnd(const ENUM_TIME_MINUTE fridayMinuteEnd, const int instance=0);
+ void SetFridayUseTimeToClose(const bool fridayUseTimeToClose, const int instance=0);
+ void SetFridayHourToClose(const ENUM_TIME_HOUR fridayHourToClose, const int instance=0);
+ void SetFridayMinuteToClose(const ENUM_TIME_MINUTE fridayMinuteToClose, const int instance=0);
+ void SetSaturdayTrade(const ENUM_TRADE_ALLOWED saturdayTrade, const int instance=0);
+ void SetSaturdayHourStart(const ENUM_TIME_HOUR saturdayHourStart, const int instance=0);
+ void SetSaturdayMinuteStart(const ENUM_TIME_MINUTE saturdayMinuteStart, const int instance=0);
+ void SetSaturdayHourEnd(const ENUM_TIME_HOUR saturdayHourEnd, const int instance=0);
+ void SetSaturdayMinuteEnd(const ENUM_TIME_MINUTE saturdayMinuteEnd, const int instance=0);
+ void SetSaturdayUseTimeToClose(const bool saturdayUseTimeToClose, const int instance=0);
+ void SetSaturdayHourToClose(const ENUM_TIME_HOUR saturdayHourToClose, const int instance=0);
+ void SetSaturdayMinuteToClose(const ENUM_TIME_MINUTE saturdayMinuteToClose, const int instance=0);
+ void SetSundayTrade(const ENUM_TRADE_ALLOWED sundayTrade, const int instance=0);
+ void SetSundayHourStart(const ENUM_TIME_HOUR sundayHourStart, const int instance=0);
+ void SetSundayMinuteStart(const ENUM_TIME_MINUTE sundayMinuteStart, const int instance=0);
+ void SetSundayHourEnd(const ENUM_TIME_HOUR sundayHourEnd, const int instance=0);
+ void SetSundayMinuteEnd(const ENUM_TIME_MINUTE sundayMinuteEnd, const int instance=0);
+ void SetSundayUseTimeToClose(const bool sundayUseTimeToClose, const int instance=0);
+ void SetSundayHourToClose(const ENUM_TIME_HOUR sundayHourToClose, const int instance=0);
+ void SetSundayMinuteToClose(const ENUM_TIME_MINUTE sundayMinuteToClose, const int instance=0);
+ void SetTimeTypeToTimeAllowed(const ENUM_TIME_TYPE timeTypeToTimeAllowed, const int instance=0);
Version 1.22
2024.11.22
Add Stop and Take based on Money
Add Stop and Take based on Percentage on Balance
Add Stop and Take based on Pips
Add Stop and Take based on Points
Add Stop and Take based on Ticks
Add Stop and Take based on Percentage of Position's Open Price
Add Stop and Take based on Candle Size
Add Stop and Take based on Average True Range (ATR)
Add Stop and Take based on Standard Deviation
Add base price for Stop and Take from Position's Open Price
Add base price for Stop and Take from Above or Below the Candle
Add Daily Profit input
Add Daily Loss input
Add an alert in Rule Plotter when the strategy was not created by the Rule Plotter Indicator
Fix bug in /portable versions of MetaTrader
Fix bug where all positions were not closed when a closing signal represented by the "bomb" appeared
Added the First() function to the Rule Plotter language
Version 1.14
2024.07.14
+ Fixed the bug that removed spaces from the names of indicators involved in logical operations using parentheses in AND/OR operations
Version 1.12
2024.05.22
Support for more custom indicators
Version 1.11
2024.05.10
Control of days, months, and times has been added.
Version 1.10
2024.05.05
Added Trailing Stop
Version 1.9
2024.03.10
- Prevent strategy zero from being filled with the default value
Version 1.8
2024.03.09
+ Breakeven Input has been added, where zero means Breakeven will be disabled.
With this I can create my own EA based on any my indicators. This is a great product and I recommend many people try it.