Prop Firm Challenge Manager Documentation and Backtesting Results (Part 01) – Other – 5 March 2023

Prop Firm Challenge Manager

This is a professional “Risk Management Expert Advisor” specially designed to negotiate the NASDAQ Index to pass the so-called Prop Firm Challenges. This EA has several functions that offer the user the security and profitability necessary to overcome the Challenges of any Prop Firm.

Its trading logic is based on the “Peaks and Valleys” price action setup which aims for high risk/return targets with very small risk taking, looking for safe and realistic profit targets.

Below, I will show you and explain all of its parameters and functionalities (in order of appearence, from to top to bottom) using objective language and examples for better understanding.

//——

SECTION_MAGICNUMBER = ——-// DEFINE THE MAGICNUMBER //——

parameter MAGICMA = (6894 by default)

In this external parameter, the user must type the EA’s MagicNumber.

//——

SECTION_STOPLOSS_TAKEPROFIT = ——-// DEFINE SL, TP AND OTHER PARAMETERS //——

parameter Base_lot = (0.1 by default)             

Lot size used as base for each x points on base_sl_calc parameter

parameter Base_sl_calculation = (100.0 by default)

Distance in points as base for lot size calculation

So, what these two parameters do is working togheter in order to define the order’s lot size based on a ratio. If the Base_sl_calculation is increased, the lot size is expected to be greater too.

For better visualization, check the images below:

Base_sl_tp

parameter Max_sl_points = (300.0 by default)

Maximum distance allowed for stop loss. If the price action informs a longer stoploss in points, the EA will ignore it and set as the Max_sl_points.

parameter Min_sl_points = (150.0 by default);

Minimum distance allowed for stop loss. If the price action informs a shorter stoploss in points, the EA will ignore it and set as the Min_sl_points.

parameter Max_candles_pend_orders = (12 by default)

Max amount of open candles in pending order

parameter Tp_sl_multiplier = (7 by default)

Risk/return desired for take profit based on stop loss distance in points

parameter Max_slippage = (7 by default);

Max slippage allowed in points

parameter Max_spread_allowed = (15 by default)

Max spread allowed in points

parameter Max_cons_daily_loss_filter = (false by default)

Enable or disable maximum consecutive daily losses filter

parameter Max_consec_daily_losses = (3 by default)

Define maximum consecutive daily losses

//——

SECTION_AVERAGE_FILTER = ——-// DEFINE AVERAGE FILTER FOR THE SETUP //——

parameter Average_filter = (true by default)

Enable or disable average filter

parameter ENUM_MA_METHOD Average_Method = (MODE_EMA by default)

Choose the Moving Average’s method

Average_period = (9 by default)

Set moving average’s period

//——

SECTION_INCREMENTAL_LOT_FUNCTION = ——-// BELOW, PARAMETERS FOR INCREMENTAL LOT FUNCTION //——

parameter Increment_Lot = (0.1 by default)

Lot added in case of loss.

parameter Max_Loss_Counter_Inc = (24 by default)

Limit of levels allowed for Incremental Lot Addition

parameter Max_Lot_Opened = (50.0 by default)

Max lot size allowed

//——

SECTION_MAXLOSS_MODE_DEFINITION = ——-// BELOW, PARAMETERS FOR DEFINING MAX LOSS ALLOWED //——

parameter Max_Loss_Mode = (0 – Off by default) , 1 – Nominal, 2 – Percentage

By default, the EA works with no restriction for Maximum Loss

parameter Loss_target = (1915.00 by default)

This parameter is used only when the “Nominal” mode is chosen for the Max_Loss_Mode. If the Account’s Equity or Balance is below this value, the EA stops trading.

parameter Percentage_balance_loss = (4.8 by default)

This parameter is used only when the “Percentage” mode is chosen for the Max_Loss_Mode. If the Account’s Equity or Balance is below this value in percentage of the original balance, the EA stops trading.

parameter Initial_balance_loss = (2000.00 by default)

Value of balance for max loss percentage calculation

//——

SECTION_PROFIT_MODE_DEFINITION = ——-// BELOW, PARAMETERS FOR DEFINING THE ACHIEVEMENT OF THE TARGET BALANCE //——

parameter Profit_Target_Mode = (0 – Off by default) , 1 – Nominal, 2 – Percentage

By default, the EA works with no profit target

parameter Target_balance = (5410.00 by default)

This parameter is used only when the “Nominal” mode is chosen for the Profit_Target_Mode. If the Account’s Equity or Balance is above this value, the EA stops trading.

parameter Percentage_balance = (8.2 by default)

This parameter is used only when the “Percentage” mode is chosen for the Profit_Target_Mode . If the Account’s Equity or Balance is above this value in percentage of the original balance, the EA stops trading.

parameter Initial_balance = (5000.00 by default)

Value of balance for profit target percentage calculation

//——

SECTION_DAILY_PROF_LOSS = ——-// DEFINE DAILY PROFIT AND LOSS //——

parameter Seek_daily_profit = (false by default)

Seek max daily profit (true) or not (false)

parameter Daily_profit = (100.0 by default)

Max daily profit value. If the daily equity achieved a total daily profit equal or above this, the EA stops trading on that day.

parameter Seek_daily_loss = (false by default)

Seek max daily loss (true) or not (false)

parameter Daily_loss = (220.0 by default)

Seek max daily loss or not. If the daily equity suffers losses equal or below this, the EA stops trading on that day.

//——

SECTION_EQUITY_LOSS_PREVENT = ——-// FUNCTION TO AVOID UNDESIRED ‘PULLBACK LOSS’ IN CHALLENGES //——

parameter Seek_equity_loss = (false by default)

Enable (true) or disable (false) Equity Loss Prevent

parameter Daily_equity_loss = (220.0 by default)

Max daily loss in Equity.

//——

SECTION_PROTECTION_SECTION = ——-// SET BREAKEVEN LEVELS OR TRAILING STOP OR NEITHER //——

parameter Profit_Protection = (1 – BreakevenOn by default), 0 – NoBreakevenNoTrailingStop, 2 – Trailing Stop

BREAKEVEN_DEFINITION = “——-// SET BREAKEVEN LEVELS PARAMETERS //——“;

parameter Be_tolerance_points = (60.0 by default)

Value in points the price must close in favor to reset the loss counter.This means that if the price reverts and touches a Breakeven level, if that Breakeven is below 60 points after the entry price (according to the example above), the “loss counter” returns to zero, resets, and thus the calculation of the lot as well. Otherwise, if the price reaches the Breakeven level below 60 points, the EA will continue to maintain the same current level of “loss count”, so as not to reset the lot.

parameter Perc_gain_1_activation = (30.0 by default)

Percentage in favor of profit to activate 1° step_gain

parameter Perc_gain_2_activation = (80.0 by default)

Percentage in favor of profit to activate 2° step_gain

parameter Perc_gain_1_be = (3.0 by default)

Desired percentage of gain for the 1° level of BE

parameter Perc_gain_2_be = (40.0 by default)

Desired percentage of gain for the 2° level of BE

TRAILING_STOP_DEFINITION = “——-// SET TRAILING STOP PARAMETERS //——“;

parameter Threshold_points = (350.0 by default)

The amount of points price must go towards profit to activate the Trailing Stop operation

parameter Trail_points = (150.0 by default)

The amount of points set for the Trail of the Trailing Stop function

parameter Step_points = (150.0 by default)

The amount of points set for the Step of the Trailing Stop function

//——

SECTION_WORKING_TIME = ——-// DEFINE THE TIME INTERVAL FOR WORKING AND ORDERS OPENING //——

parameter Time_filter = (false by default)

Enable (true) or disable (false) time filter

parameter Initial_order_hour = (1 by default)

Initial hour for order opening

parameter Final_order_hour = (21 by default)

Final hour for order opening

//—— SECTION_CLOSE_FRIDAY  = ——-// DEFINE THE ‘CLOSE ALL TRADES AT FRIDAY’ FUNCTION //——

parameter Close_friday = (true by default)

Enable (true) or disable (false) close all trades friday function

parameter Max_friday_hour = (18 by default)

After this hour all trades are closed in friday. No matter if in profit or in loss.

parameter Close_only_if_profit = (true by default)

Enable (true) or disable (false) this function which works this way: If it is Friday and there is an open order with a loss, the EA will not close this order immediately until the time is greater than that defined in the “Max_friday_hour” parameter. Thus, if this order in our example turns a profit, and the current time is equal to or greater than that defined in the parameter “After_hour_profit_closes” , then yes, the EA will close the order before “Max_friday_hour”.

If, on the other hand, that order was already in profit and the time is equal to or greater than “After_hour_profit_closes”, in this case the EA will close that order with the profit it is showing. This function aims to ensure that on Friday the user can collect some profit before “Max_friday_hour”.

parameter After_hour_profit_closes = (16 by default)

If it’s friday and after this hour, the order in profit is closed

//——

SECTION_MONTHLY_GAIN_TARGET = ——-// DEFINE PERCENTAGE OF MONTHLY GAIN //——

parameter Seek_monthly_target = (false by default)

Seek monthly percentage or not

parameter Monthly_gain_perc = (2.5 by default)

Monthly percentage to be achieved

//——

SECTION_NEWS_FILTER = ——-// NEWS FILTER PARAMETERS //——

parameter News_filter_on = (false by default)

Enable (true) or disable (false) the news filter

parameter NoTradeAfterNews = (30 by default)

No trade x minutes after news

parameter NoTradeBeforeNews = (30 by default)

No trade x minutes before news

parameter NewsLight = (false by default)

Enable (true) or disable (false) light news filter

parameter NewsMedium = (false by default)

Enable (true) or disable (false) medium news filter

parameter NewsHard = (false by default)

Enable (true) or disable (false) hard news filter

parameter Your_Time_Zone_GMT = (3 by default)

Your Time Zone, GMT (for news)

//——

SECTION_SEND_NOTIFICATION = ——-// ENABLE OR DISABLE NOTIFICATIONS ON TRADES //——

parameter Notification_Options = (0 – NoNotifications by default), 1 – OrdersAndResults, 2 – OrdersOnly, 3 – ResultsOnly

When you decide you want to be notified only about Orders, it means you don’t want to be notified, for example, about the EA achieving a “result” like hitting the monthly gain.

If you choose “OrdersOnly,” every time the EA opens an order or when an order is closed with a positive or negative result, the EA will send a notification to the MQL app. Otherwise, if you want to be notified when the monthly target is hit, when the profit target is hit, when the maximum loss is hit, or even when the EA is removed for safety, then Results should be chosen.

The best practice is to set this parameter to “Orders and Results.” This way, you will be aware of both situations.

//——

SECTION_SPECIAL_FUNCTIONS = ——-// FUNCTIONS SPECIALLY MADE FOR PROP FIRM CHALLENGES //——

parameter Special_initial_balance = (2000.0 by default)

Initial balance used for all the “special functions”

parameter Offset_balance_profit = (10.0 by default)

“Extra” value added to Special_initial_balance to protect against slippage, terminal malfunction, lagging, low latency or slow connection

SECTION_PREVENT_DRAWDOWN = ——-// FUNCTION TO PREVENT LARGE DRAWDOWN //——

parameter Balance_prevent_actions = (0 – NoActions by default), 1 – HalfLotSize , 2 – DoubleLotSize

The user chooses which action the EA will do when the current balance is below the next two parameters.

parameter Balance_first_value_prevent = (1990.0 by default)

Below this, prevent actions are taken to recover initial balance which will be the one chosen on the parameter “Balance_prevent_actions”.

So, for example, if the current balance is below 1990.0 and the action chosen is “HalfLotSize”, the EA will open half of the calculated lot size. When the current balance reachs again the “General_initial_balance”, the lot size will be the “normal” size again.

paramater Balance_second_value_prevent = (1960.0 by default)

Below this, prevent actions are taken to recover back the “Balance_first_value_prevent”. The actions will be always by cutting the current lot size in half.

So, if the original lot size would be 0.2, after the balance going below the first stage of balance protection, the lot size would be cut in half to 0.1, then if the balance keeps going down below this secound stage, the lot would be cut in half again to 0.05, if the user has chosen the “HalfLotSize” action.

SECTION_SECURE_PROFIT = ——-// FUNCTION TO ‘SECURE PROFIT’ //——

parameter Secure_profit_actions = (0 – NoActions by default), 1 – HalfLotSize , 2 – DoubleLotSize

The user chooses which action the EA will do when the current balance is above the next parameter “Balance_secure_profit).

parameter Balance_secure_profit = (5300.0 by default)

Above this, balance caution actions will be taken to reach target profit.

So, for example, if the current balance is above 5300.0 and the action chosen is “HalfLotSize”, the EA will open half of the calculated lot size until it achieves the desired goal of the challenge.

parameter BreakevenOnInitialBalance = (false by default)

It sets a permanent Breakeven level to protect the account against a sudden series of bad trades when the account balance has already reached a value above tje “Balance_secure_profit” so that the trader can at least ask for the Reset of the Challenge and try again one more time the whole challenge from the beginning.

SECTION_FREE_REPEAT_CHASE = ——-// FUNCTION TO ‘FREE REPEAT CHASE’ //——

parameter FRC_actions = (0 – NoActions by default), 1 – HalfLotSize , 2 – DoubleLotSize

What this function does is, by informing the amount of x days passed on the parameter “Days_challenge_trading”, if the Account Balance is below the original one, the EA will take some actions chosen by the user (half the lot size or double it) to recover the original balance. Right after achieving that, the EA closes all open trades and is removed. So by doing that, the user can wait until the end of the Challenge’s time to request free unlimited repeats or retakes.

parameter Days_challenge_trading = (20 by default)

The user must inform the days passed which will trigger the FRC_actions.

//—– END OF PART 01. CLICK HERE FOR PART 02 OF THIS DOCUMENT IN WHICH WE DISCUSS ABOUT THE BACKTESTING RESULTS AND LEARN DEEPER ABOUT THE FUNCTIONS SPECIALLY MADE FOR THE CHALLENGES —–//

Source link

Comments are closed.