Partial Lot Size Close at Floating Loss

Tâche terminée

Temps d'exécution 17 heures
Commentaires du client
Very prompt in replying and making fixes. I recommend this developer to anyone
Commentaires de l'employé
Nice Customer.. thx bro..

Spécifications

Hello , I need to Modify an expert advisor (Trade Manager for other EAs) to add new functionality :

1) Partial Lot Size Close at Floating Loss Amount:

  • Close % Partial Lot-size if Loss reached a defined amount (Note: Closing Priority will lead it the orders orders being closed first)
  • Close All Modify Take Profit of Remaining Lots to Breakeven (Dollar profit of Zero when taking into account Commission)

BONUS: For the Advanced Coders, I am willing to increase my budget if you are able to achieve the configuration that is shown in the Screenshot "Part 2"  . I can elaborate on this more, if you are interested/able to achieve this request.


This will require the following adjustment, modify the Magic Number the Open Orders so that the EA is able to manage them.

Here is an example of some source code that is able to achieve this, however it is not viable for my EA as it modifies the take profit of individuals orders and not the weighted average lot size of the orders for a specific symbol within a sequence.

void OnTick()
{
        for ( int z = OrdersTotal() - 1; z >= 0; z -- )
        {
                if ( !OrderSelect( z, SELECT_BY_POS, MODE_TRADES ) )
                {
                        Print( "OrderSelect( ", z, ", SELECT_BY_POS, MODE_TRADES ) - Error #", GetLastError() );
                        continue;
                }
                if ( MagicNumber != -1 && OrderMagicNumber() != MagicNumber ) continue;
                if ( OnlyCurrentSymbol && OrderSymbol() != _Symbol ) continue;

                int D = getDigits( OrderSymbol() );
                double P = getPoint( OrderSymbol() );

                if ( TakeProfit_B > 0.0 && OrderType() == OP_BUY )
                {
                        double correct_tp = NormalizeDouble( OrderOpenPrice() + TakeProfit_B*P, D );
                        if ( fabs( OrderTakeProfit() - correct_tp ) > P/20.0 && !AlreadyModified() )
                        {
                                Print( "Modifying TP of buy-order #", OrderTicket(), " (", 
                                                        DoubleToString( OrderTakeProfit(), D ), " -> ", DoubleToString( correct_tp, D ), ")..." );
                                if ( !OrderModify( OrderTicket(), OrderOpenPrice(), OrderStopLoss(), correct_tp, 0 ) )
                                        Print( "OrderModify failed with error #", GetLastError(), "!" );
                                else
                                        OrderSave();
                        }
                }
                if ( TakeProfit_S > 0.0 && OrderType() == OP_SELL )
                {
                        double correct_tp = NormalizeDouble( OrderOpenPrice() - TakeProfit_S*P, D );
                        if ( fabs( OrderTakeProfit() - correct_tp ) > P/20.0 && !AlreadyModified() )
                        {
                                Print( "Modifying TP of sell-order #", OrderTicket(), " (", 
                                                        DoubleToString( OrderTakeProfit(), D ), " -> ", DoubleToString( correct_tp, D ), ")..." );
                                if ( !OrderModify( OrderTicket(), OrderOpenPrice(), OrderStopLoss(), correct_tp, 0 ) )
                                        Print( "OrderModify failed with error #", GetLastError(), "!" );
                                else
                                        OrderSave();
                        }
                }
        }
}

As a result you may want to use some snippets from this code:

   void ModifyTP(int m)
{
   int i,r;
   double tpnya,dtp,bbep,sbep,ssize,bsize;
   tpnya=0;dtp=0;bbep=0;sbep=0;ssize=0;bsize=0;
   for (i=0; i<OrdersTotal();i++) 
   { 
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderSymbol() != Symbol()|| OrderMagicNumber() != MagicNumber || OrderType()!=m) continue;
         tpnya=OrderTakeProfit();
         if (m==0) {bbep += OrderOpenPrice()*OrderLots(); bsize= bsize+OrderLots();}
         if (m==1) {sbep += OrderOpenPrice()*OrderLots(); ssize= ssize+OrderLots();}
               
   }
   if (bbep>0) { bbep/=bsize; tpnya=NormalizeDouble(bbep + TP*pt,Digits); }
   if (sbep>0) { sbep/=ssize; tpnya=NormalizeDouble(sbep - TP*pt,Digits); }
      
   for (i=OrdersTotal()-1; i>=0; i--) 
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if(OrderSymbol() != Symbol()|| OrderMagicNumber() != MagicNumber|| OrderType()!=m) continue;
         dtp=OrderTakeProfit();
         //if (m==0) {bbep += OrderOpenPrice()*OrderLots(); bsize= bsize+OrderLots();}
         //if (m==1) {sbep += OrderOpenPrice()*OrderLots(); ssize= bsize+OrderLots();}
         Print("tpnya",tpnya,": ",i);
         Print("dtp",dtp,": ",i);
         if( MathAbs(tpnya-dtp)>=pt &&  OrderType()==m)
         r  =  OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), tpnya, 0, CLR_NONE); 
   }
   //if (bbep>0) bbep/=bsize; dtp=bbep;
   //if (sbep>0) sbep/=ssize; dtp=sbep;  
}
   

The key inputs would be as follows:

input    string      CHART_MANAGEMNET1= "====== Trade Managerment ======";
input    string      symbol1          = "EURUSD";    // Symbol //Symbol that the modification would occur for
int                     MagicNumber                                             = -1;                           // * MagicNumber (-1 - modify all) - this is the magic number that the EA would change the Open Orders to
input double      TakeProfit           = 0.0;         //Breakeven amount in dollars (excluding commission) - this would be the modification amount in dollars taking into account commision (Note: I don't want pips as I will use this on other symbols that are not just forex)
^//Forgot to add this 

input double      PartialClose           = .3;         //Partial close percentage of lots when floating loss is reached on symbol 

EXAMPLE 1:

extern bool Partial_Close= true;

IF_LOSS = -500  ( $ )

{

Close 30% of Symbol in Loss 

Modify Take Profit to breakeven in dollars (taking into account Commission)

}





Dossiers :

PNG
Part_1.PNG
78.0 Kb
PNG
Part_2.PNG
99.5 Kb

Répondu

1
Développeur 1
Évaluation
(635)
Projets
1005
47%
Arbitrage
33
36% / 36%
En retard
99
10%
Travail
Publié : 6 codes
2
Développeur 2
Évaluation
(120)
Projets
159
49%
Arbitrage
15
53% / 27%
En retard
4
3%
Gratuit
3
Développeur 3
Évaluation
(298)
Projets
427
26%
Arbitrage
18
61% / 33%
En retard
26
6%
Gratuit
Publié : 8 codes
4
Développeur 4
Évaluation
(11)
Projets
18
28%
Arbitrage
4
50% / 50%
En retard
1
6%
Gratuit
5
Développeur 5
Évaluation
(10)
Projets
4
0%
Arbitrage
11
0% / 82%
En retard
0
Gratuit
6
Développeur 6
Évaluation
(389)
Projets
501
23%
Arbitrage
60
55% / 25%
En retard
59
12%
Travail
7
Développeur 7
Évaluation
(1)
Projets
1
0%
Arbitrage
2
0% / 50%
En retard
0
Gratuit
8
Développeur 8
Évaluation
(298)
Projets
478
40%
Arbitrage
105
40% / 24%
En retard
82
17%
Chargé
Publié : 2 codes
Commandes similaires
Търсим опитен MQL5 разработчик , който да изгради първия прототип на MetaTrader 5 Expert Advisor за дългосрочен проект за алгоритмична търговия. Изисквания към проекта Вграден Renko двигател (без офлайн Renko графики). EMA 20 и EMA 50, изчислени от тухли Renko. Логика на търговия, базирана на подробна техническа спецификация (предоставена след избор от разработчика). Експертният съветник трябва да поддържа отваряне и
I am looking for an experienced MetaTrader 5 expert. I already have 3 MT5 trading accounts. I need someone to: 1. Help me choose a reliable Windows VPS. 2. Connect to my VPS remotely (AnyDesk or TeamViewer). 3. Install 3 MetaTrader 5 terminals. 4. Configure: - 1 Master Account - 2 Slave Accounts 5. Install and configure a professional Trade Copier. 6. Copy all trades from the Master account to both Slave
PROJECT TITLE: MT5 Semi-Auto EA - Dynamic Volume Exhaustion & Time-Delayed Entry (UI Panel) 1. GENERAL OVERVIEW · Platform: MetaTrader 5 (MT5). Must enforce Hedging account. The EA must check ACCOUNT_MARGIN_MODE at OnInit and refuse to load if placed on a Netting account. · Symbol: Any (Dynamic based on the active chart via _Symbol). I will trade both XAUUSD (Mon-Fri) and BTCUSD (24/7 including weekends) . The
I have an MQL5 expert advisor that i use on MT5 trading platform and it works perfectly. The only issue is that sometimes it hangs. I need to get it fixed so that it does not hang. The code is around 4500 lines in length but i clearly do not want it to be re-written. I know that many of you will approach me to try and convince me to get it redone.... but i simply dont have the budget. - This is a grid system and the
I am looking for a highly experienced developer to build a professional, commercial-grade trading indicator for MT4/MT5. I am not looking for a basic indicator or a modified public script. I need a custom solution based on real market logic with high-quality coding standards. Requirements 100% Non-Repainting indicator. Accurate Entry signals. Automatic Stop Loss placement based on real market structure. Automatic
I have an MT4 custom indicator (.ex4) that I use regularly, and I would like an identical MT5 version. Important: I do not have the source code (.mq4). I only have the compiled MT4 indicator. I am looking for an experienced MQL developer who can recreate the indicator's functionality and appearance for MT5 by analyzing its behavior. The MT5 version should match the MT4 version as closely as possible, including
Mac200 50+ USD
I need a Trend following Bot. Here we took entries by looking at two indicator which are 200 period ema and 12 26 9 MacD. Rules for entry exit are: Buy trade: When market is above 200 ema and MacD Line cross over the signal line and this cross over happened below the zero line of MacD indicator. We simply put Buy trade. Sell trade: When market is below 200 ema and MacD line crosses below the signal line and this
Iconic Boy 300 - 400 USD
Am looking for a bot to trade .so that I can be able to trade and become very successful and make some profit so that I cannot sleep on a empty stomach
Hello Traders and Investors, I am a professional algorithmic trading developer specialized in building high-quality Expert Advisors (EAs), Indicators, Scripts, and Trade Management Tools for MetaTrader 4 and MetaTrader 5. With extensive experience in financial markets and trading automation, I can transform your trading ideas into reliable and efficient solutions with clean, optimized, and well-structured code. My
Supply and Demand EA 50 - 250 USD
I need a SnD EA. Prefer coder who has previous experience coding SnD EA. PO are based on (CHoCH or BoS) and 3EMA, order block (from my TradingView indicator), area based on Fibonacci. SL options are based on fix pips or zone size; CL is based on candle closing. TP1 and TP2 options are based on fix pips or fix ratio. Canceling PO is based on market structure or Fibonacci. Money management are based on fix volume or

Informations sur le projet

Budget
30 - 60 USD
Délais
de 1 à 3 jour(s)