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
We're expanding our network of remote translators for upcoming projects involving business, technical, and general documents. Requirements: - Native or near-native proficiency in the target language - Excellent communication skills - Commitment to quality and deadlines Apply by submitting your proposal, language pair(s), and relevant experience
┌─────────────┐ │ SMC ROBOT │ │ v2.0 │ └─────────────┘ [ANTENNA] │ ╔════════╧════════╗ ║ HEAD UNIT ║ ║ ┌───────────┐ ║ ║ │ ◉ ◉ │ ║ ← Optical Sensors ║ └───────────┘ ║ ╚════════╤════════╝ │ ╔════════╧════════╗ ║ TORSO ║ ║ ┌───────────┐ ║ ║ │ SMC CORE │ ║ ← Processing Unit ║ │ ARM V9 │ ║ ║ └───────────┘ ║ ║ [||||||||||] ║ ← Power Indicator ╚═══╤═══════╤════╝ │ │ ┌───┘ └───┐
I already have the source code of an MT5 Expert Advisor. The EA is about 70% complete. I need someone to modify and complete it. Requirements: • Manage EURUSD only. • Manage manual trades only (Magic Number = 0). • Support unlimited manual positions simultaneously. • Automatically add a 10-pip Stop Loss if a position has no Stop Loss. • Automatically add a 10-pip Take Profit if a position has no Take Profit. • Do not
I am looking for an expert MQL5 developer to build a robust, professional Expert Advisor for Gold (XAUUSD). The EA must be Event-Driven (OnTick) with no 'Sleep' functions, ensuring instant execution. ​ Core Logic: ​ Grid Strategy: Start with 0.02 Buy/Sell. Lot size sequence: 0.02, 0.03, 0.05, 0.09, 0.14, 0.26, 0.44, 0.75, 1.28, 2.18 (Max 10 steps). ​ Dynamic TP: Total basket TP must update instantly upon new order
I am currently using the attached Arbitrage MACD indicator. However, there are no signal alerts associated with this indicator. I would like to receive notifications on my android device the bar after a blue long arrow appears and the bar after a red short arrow appears. This is the current code: //+------------+-----------------------------------------------------+ //| v.22.04.07 | ArrZZx2.mq4 |
NT8 to mt6 trade copier 150 - 250 USD
I just copy and past what i need Features Opening and closing orders at market and limit price Copy Take Profit / Stop loss orders Trades are manually by using the "Chart Trader Feature" within NT8-Charts or separate Window. Advanced symbol and Lot mapping Blazing fast – copy as fast as 10 ms Copy multiple symbols in parallel In the Case that the connection between NT8 and MT5 is lost, including a solution to
Project Overview: I am looking for an expert MetaTrader 5 (MT5) developer/architect to build a highly optimized, professional-grade Trade Copier system. This is NOT a basic trade copier. It requires advanced execution handling, bypass mechanisms, strict risk management, and multi-threaded syncing. Here are the complete requirements for the project: 1. Architecture & Topology: Multi-Account Routing: Must support both
: Hello, I am looking for an experienced MQL4 developer to create a custom Binary Options Trading Bot for MetaTrader 4 (MT4). The bot needs to automate trades based on clear conditions and must have a reliable integration feature. I would like the bot to work smoothly with Telegram so that it can either receive signals from a channel/group or send instant trade notifications directly to my Telegram. The code should
I am looking for an experienced MQL4 developer to create an Expert Advisor (EA) based on signals from a custom indicator. Requirements: 1. The EA must use a single custom indicator that draws buy and sell arrows directly on the chart. 2. When a buy arrow appears, the EA should wait until the current candle closes. If the arrow is still present after the candle closes, it should open a BUY trade. 3
Bhokhwe 30 - 200 USD
//+------------------------------------------------------------------+ //| ThreeBullEMA10EA | //| Strategy: 3 Bullish + EMA10 Break | //+------------------------------------------------------------------+ #property strict extern double LotSize = 0.01; extern int Slippage = 3; extern int MagicNumber = 12345; extern int EMA_Period = 10;

Informations sur le projet

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