Class-driven Averaging Subroutine - position averaging function, opening positions against the trend

MQL5 Experts

Tâche terminée

Temps d'exécution 43 jours
Commentaires de l'employé
Great customer. Clear instructions. Thanks. Look forward to more jobs in the future.

Spécifications

Develop a class-driven sub-routine that can be implemented in a variety of existing Expert Advisor with minimum complications of integration. It should implement a good OOP concept for reusability and derive sub-mechanisms.

This sub-routine will work on algorithms running on MT5 terminal; we may need to develop an expert advisor opening a long or short position for test. This subroutine purpose is to implement a strategy of averaging down.

This is that we open:

BUY 1 LOT EURUSD at 1.19209

This sub-routine will open automatically

BUY 1.3 LOT EURUSD at 1.19172 with a comment "Level_1"

Resulting on an average price in EURUSD of 1.19195 at 2.30 LOT, so this sub will draw a BLUE line at this average level. RED if SELL position.

Attention: For different LOT of positions, the average price is calculated using a mathematical formula.

Finally, will open automatically if the price continue against:

BUY 1.69 LOT EURUSD at 1.19078 with a comment "Level_2"

This next average level as is not open yet so will draw a line in "Bisque" color with the parameters of the averager sub-routine in this case the LOT factor increases to a 30% or 1.3X and the amount of PIPs in the following format:  1.30X/1.69N/94p indicating the average %, resulting lot size and pips in distance.

If this average level is triggered then the average price of the EURUSD position is 1.19145 at 3.99 LOT.

The PIPs difference between 1.19209 and 1.19172 and the next 1.19145 is provided as a parameter for the sub-routine.

The averager sub-routine will have a maximum amount of positions to open. And a FLOOR parameter that sets the minimum distance, this distance can be set in price or points. If in the example below we set a price floor of 1.19130 the next level provided can not be 1.19145 and will be floored at 1.19130. If we set a points floor of 70 pips the next level can not be 67 pips as provided and will be floored at 70 pips.

The subroutine will increase distance in the same way to increase volume, this is that an increment can be set of a 10% or 1.1X added to the distance provided.

If the instrument maximun volume is 50, and the next average down is 56. We will fraction the order in 50 (the max.) and another position at the same price level at 6, with the same comment. If the broker have a maxium limit of positions and can not open, we will pop-up a message alterting with the limitation of opening new positions. 

Finally, the sub-routine will use a time delay to evaluate if a different distance in pips is supplied.

Inputs:

AveragerFunc(
             bool AverageUSE=true,
             int Distance=1,
             ENUM MinDistType=1, //1-Price, 2-Points
             double MinDistVal=0,
             bool UseCalcDelay=true,
             ENUM CalcDelay=1M, //1M,2M,5M,15M,1H,1D,1W, TF defaults in example
             DistanceFactor=1.1, //points + 10% in this case
             LotsFactor=1.3, //volume + 30% in this case
             MaxOrders=10, //maximum of averaging positions
             string s="Averager " //default comment for opening positions and concatenate
             )

Output of the subroutine will be:
LOTs BUY:        2.3             //actual volume size
LONG Avg:       1.19195       //actual average
LONG N Avg:    1.19145       //next average

The average calculation have to take into account any commission and swap charges in any given period. So if this positions stays for more than a day and a swap is charged, have to be reflected in the resulting average price every day.

Attached an image of the horizontal lines.

Répondu

1
Développeur 1
Évaluation
(27)
Projets
43
7%
Arbitrage
18
6% / 78%
En retard
26
60%
Gratuit
2
Développeur 2
Évaluation
(169)
Projets
204
30%
Arbitrage
25
40% / 44%
En retard
12
6%
Gratuit
Commandes similaires
Hello, I'm looking for a developer to help me understand WebRequest. I'm currently using this robust and free tool: https://traderblox.com/ What I need: I want someone to help me get my SavePattern variable to become "Success". Currently, it's not working – I keep getting this error: ❌ ERROR - Status: -1 Attention my work is exclusive on website https://traderblox.com/ if you browse complete work in metaeditor
Here's a natural and professional version in English: Hello, I am looking for an experienced MT4/MT5 developer. I need someone who can provide high-quality service, has strong knowledge of MetaTrader 4 and MetaTrader 5, and responds quickly. If you have experience developing Expert Advisors (EAs), indicators, or scripts, please share your portfolio, relevant experience, estimated cost, and delivery time. I am looking
Senior MQL5 + Python Quant Developer Needed – Institutional AI Trading Platform I'm looking for a highly experienced quantitative developer (or small team) to build an institutional-grade algorithmic trading platform for MetaTrader 5 and Python . This is not a simple Expert Advisor. It is a complete trading platform consisting of an MQL5 execution engine, Python AI research environment, machine learning pipeline, and
I need a trading robot for MetaTrader 5 that works on mobile for XAUUSD. === TRADING RULES === Symbol: XAUUSD Timeframe: M15 Trading Hours: 10:00 to 18:00 server time only Buy: When 10 EMA crosses above 50 EMA Sell: When 10 EMA crosses below 50 EMA Close opposite position when new signal appears === RISK MANAGEMENT === Risk per trade: 1% of account balance Stop Loss: 300 points / $3.00 Take Profit: 600 points / $6.00
Jona copilot v12 30 - 40 USD
Hi, I'm interested in ordering an MT4 trading bot. Before we begin, could you please send me the technical specifications and requirements you'll need? Specifically, I'd like to know: - The trading strategy the bot will use. - The currency pairs or instruments it will trade. - The timeframes it supports. - Risk management features (lot sizing, stop loss, take profit, trailing stop, maximum drawdown). - Whether it
Please programm liquidity sweep based on my 0/1 conditions. I will contact selected candidates, btw, Maybe you did already liquidity sweep, it would be very nice, you will have better understanding what I mean, source of code required
I have few EAs that I want to place on market, but I can't due to some errors, please help me, because I am not a programmer. Source of code required, bug free version, ony my computer it must works not only on your computer
Hello dear all developers, I will find here python programmers? I would like to create an Expert Advisor, if you can you can convert, because I already have Expert Advisor written in mql5 or maybe you will create a bridge? it's up to you, but I need 1:1 copy
Hello! I am searching a professional programmer for regular works. I don't care if you have 1 projects done or 1000, show me your skills. I need to create an EA based on Zig Zag indicator and candlestick patterns, EA must works on all time frames, source of code required
My EA have bug 30+ USD
Expert Advisor have a bug, I tried to fix it somehow with searching on google, but I couldn't fix find a solution. Please fix it, I will send you erorr type, what line etc. Only serious programmers, not amateur please. My time is precious

Informations sur le projet

Budget
150+ USD
Délais
de 1 à 10 jour(s)