Aide au codage - page 769

 
Salut les programmeurs


J'espère que vous êtes bien là. Pourriez-vous s'il vous plaît m'aider à supprimer le filtre de temps sur cet EA / le rendre faux et rendre le facteur multiplicateur ajustable.


Merci beaucoup.
Dossiers :
EA.mq4  8 kb
 

Cher mladen, S'il vous plaît être encouragé à voir l'apparition en M1

Merci

 

Bonjour à tous

Je me demandais si quelqu'un pouvait m'aider. J'ai un indicateur qui est fondamentalement un canal de régression avec une déviation de 2.0.

Je l'ai mis dans le meta editor pour pouvoir ajouter deux lignes supplémentaires à l'indicateur qui veulent se situer autour de 2.6 et si possible supprimer la ligne centrale.

Après de nombreuses tentatives infructueuses, il semble que je ne puisse pas trouver comment le faire, alors j'ai besoin de votre aide, si possible.

Dossiers :
i-Regr.mq4  6 kb
 

Cher Mladen,

Je suis en train de coder mes premiers indicateurs, quelqu'un est ok quelqu'un ne l'est pas..... avec votre aide je voudrais devenir un meilleur programmeur.... mais jusqu'ici j'ai vraiment besoin de votre soutien....

Mon idée est de coder un indicateur qui fait l'EMA de l'EMA de l'oscillateur stocastique....EMA (EMA (Stchastic)))....J'essaie cet indicateur dans une plateforme en ligne et il était facile de le programmer là mais avec MT4 c'est plus difficile et je fais des erreurs parce qu'il ne fonctionne pas...... cela vous dérangerait-il d'y jeter un coup d'oeil et de corriger les erreurs que je fais ?

Merci beaucoup pour votre aide

Gianluca

Dossiers :
 
Mladen Rakic :
Le fichier Ex4 ne peut pas être modifié

Cher Mladen,


Je serais également intéressé d'avoir SL et TP dans AngryBird..


Veuillez consulter le code ci-joint


THX

Chris

 //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
#property copyright "" 
#property link        ""
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
double Stoploss = 500.0 ;             // óðîâåíü áåçóáûòêà
double TrailStart = 10.0 ;
double TrailStop = 10.0 ;
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
extern double LotExponent = 2 ;   // íà ñêîëüêî óìíîæàòü ëîò ïðè âûñòàâëåíèè ñëåäóþùåãî êîëåíà. ïðèìåð: ïåðâûé ëîò 0.1, ñåðèÿ: 0.16, 0.26, 0.43 ...
extern bool     DynamicPips                   = true ; 
extern int      DefaultPips                   = 12 ;
extern int Glubina = 24 ;
extern int DEL = 3 ;
extern double slip = 3.0 ;           // íà ñêîëüêî ìîæåò îòëè÷àòüñÿ öåíà â ñëó÷àå åñëè ÄÖ çàïðîñèò ðåêâîòû (â ïîñëåäíèé ìîìåíò íåìíîãî ïîìåíÿåò öåíó)
extern double Lots = 0.01 ;           // ðàçåð ëîòà äëÿ íà÷àëà òîðãîâ
extern int lotdecimal = 2 ;           // ñêîëüêî çíàêîâ ïîñëå çàïÿòîé â ëîòå ðàññ÷èòûâàòü 0 - íîðìàëüíûå ëîòû (1), 1 - ìèíèëîòû (0.1), 2 - ìèêðî (0.01)
extern double TakeProfit = 20.0 ;     // ïî äîñòèæåíèè ñêîëüêèõ ïóíêòîâ ïðèáûëè çàêðûâàòü ñäåëêó
//extern double PipStep = 30.0;       // øàã ìåæäó âûñòàâëåíèå íîâûõ êîëåí
extern double Drop = 500 ;
extern double RsiMinimum = 30.0 ;     // íèæíÿÿ ãðàíèöà RSI
extern double RsiMaximum = 70.0 ;     // âåðõíÿÿ ãðàíèöà RSI
extern int MagicNumber = 2222 ;       // âîëøåáíîå ÷èñëî (ïîìîãàåò ñîâåòíèêó îòëè÷èòü ñâîè ñòàâêè îò ÷óæèõ)
int PipStep= 0 ;
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
extern int MaxTrades = 10 ;                 // ìàêñèìàëüíî êîëè÷åñòâî îäíîâðåìåííî îòêðûòûõ îðäåðîâ
extern bool UseEquityStop = FALSE ;
extern double TotalEquityRisk = 20.0 ;
extern bool UseTrailingStop = FALSE ;
extern bool UseTimeOut = FALSE ;             // èñïîëüçîâàòü òàéìàóò (çàêðûâàòü ñäåëêè åñëè îíè "âèñÿò" ñëèøêîì äîëãî)
extern double MaxTradeOpenHours = 48.0 ;     // âðåìÿ òàéìàóòà ñäåëîê â ÷àñàõ (÷åðåç ñêîëüêî çàêðûâàòü çàâèñøèå ñäåëêè)
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
double PriceTarget, StartEquity, BuyTarget, SellTarget;
double AveragePrice, SellLimit, BuyLimit;
double LastBuyPrice, LastSellPrice, Spread;
bool flag;
string EAName= "Ilan1.6" ;
int timeprev = 0 , expiration;
int NumOfTrades = 0 ;
double iLots;
int cnt = 0 , total;
double Stopper = 0.0 ;
bool TradeNow = FALSE , LongTrade = FALSE , ShortTrade = FALSE ;
int ticket;
bool   NewOrdersPlaced = FALSE ;
double AccountEquityHighAmt, PrevEquity;
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
int init() {
   Spread = MarketInfo ( Symbol (), MODE_SPREAD ) * Point ;
   return ( 0 );
}

int deinit() {
   return ( 0 );
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
int start()
 {
 if (DynamicPips)  {
     double hival= High [ iHighest ( NULL , 0 , MODE_HIGH ,Glubina, 1 )];     // calculate highest and lowest price from last bar to 24 bars ago
     double loval= Low [ iLowest ( NULL , 0 , MODE_LOW ,Glubina, 1 )];       // chart used for symbol and time period
     PipStep= NormalizeDouble ((hival-loval)/DEL/ Point , 0 );         // calculate pips for spread between orders
     if (PipStep<DefaultPips/DEL) PipStep = NormalizeDouble (DefaultPips/DEL, 0 );
     if (PipStep>DefaultPips*DEL) PipStep = NormalizeDouble (DefaultPips*DEL, 0 );           // if dynamic pips fail, assign pips extreme value
   } // else PipStep = DefaultPips;
   //double filtr_MA = iMA(NULL,60,60,0,0,0,0);
   
   double PrevCl;
   double CurrCl;
   if (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);
   if (( iCCI ( NULL , 15 , 55 , 0 , 0 )>Drop && ShortTrade)||( iCCI ( NULL , 15 , 55 , 0 , 0 )<(-Drop) && LongTrade)) {
      
         CloseThisSymbolAll();
         Print ( "Closed All due to TimeOut" );
     
   }
   if (timeprev == Time [ 0 ]) return ( 0 );
   timeprev = Time [ 0 ];
   
   double CurrentPairProfit = CalculateProfit();
   if (UseEquityStop) {
       if (CurrentPairProfit < 0.0 && MathAbs (CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {
         CloseThisSymbolAll();
         Print ( "Closed All due to Stop Out" );
         NewOrdersPlaced = FALSE ;
      }
   }
   total = CountTrades();
   if (total == 0 ) flag = FALSE ;
   for (cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
       OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) {
         if ( OrderType () == OP_BUY ) {
            LongTrade = TRUE ;
            ShortTrade = FALSE ;
             break ;
         }
      }
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) {
         if ( OrderType () == OP_SELL ) {
            LongTrade = FALSE ;
            ShortTrade = TRUE ;
             break ;
         }
      }
   }
   if (total > 0 && total <= MaxTrades) {
       RefreshRates ();
      LastBuyPrice = FindLastBuyPrice();
      LastSellPrice = FindLastSellPrice();
       if (LongTrade && LastBuyPrice - Ask >= PipStep * Point ) TradeNow = TRUE ;
       if (ShortTrade && Bid - LastSellPrice >= PipStep * Point ) TradeNow = TRUE ;
   }
   if (total < 1 ) {
      ShortTrade = FALSE ;
      LongTrade = FALSE ;
      TradeNow = TRUE ;
      StartEquity = AccountEquity ();
   }
   if (TradeNow) {
      LastBuyPrice = FindLastBuyPrice();
      LastSellPrice = FindLastSellPrice();
       if (ShortTrade) {
         NumOfTrades = total;
         iLots = NormalizeDouble (Lots * MathPow (LotExponent, NumOfTrades), lotdecimal);
         RefreshRates ();
         ticket = OpenPendingOrder( 1 , iLots, Bid , slip, Ask , 0 , 0 , EAName + "-" + NumOfTrades + "-" + PipStep, MagicNumber, 0 , HotPink);
         if (ticket < 0 ) {
             Print ( "Error: " , GetLastError ());
             return ( 0 );
         }
         LastSellPrice = FindLastSellPrice();
         TradeNow = FALSE ;
         NewOrdersPlaced = TRUE ;
      } else {
         if (LongTrade) {
            NumOfTrades = total;
            iLots = NormalizeDouble (Lots * MathPow (LotExponent, NumOfTrades), lotdecimal);
            ticket = OpenPendingOrder( 0 , iLots, Ask , slip, Bid , 0 , 0 , EAName + "-" + NumOfTrades + "-" + PipStep, MagicNumber, 0 , Lime);
             if (ticket < 0 ) {
               Print ( "Error: " , GetLastError ());
               return ( 0 );
            }
            LastBuyPrice = FindLastBuyPrice();
            TradeNow = FALSE ;
            NewOrdersPlaced = TRUE ;
         }
      }
   }
   if (TradeNow && total < 1 ) {
      PrevCl = iClose ( Symbol (), 0 , 2 );
      CurrCl = iClose ( Symbol (), 0 , 1 );
      SellLimit = Bid ;
      BuyLimit = Ask ;
       if (!ShortTrade && !LongTrade) {
         NumOfTrades = total;
         iLots = NormalizeDouble (Lots * MathPow (LotExponent, NumOfTrades), lotdecimal);
         if (PrevCl > CurrCl) {
             if ( iRSI ( NULL , PERIOD_H1 , 14 , PRICE_CLOSE , 1 ) > RsiMinimum ) {
               ticket = OpenPendingOrder( 1 , iLots, SellLimit, slip, SellLimit, 0 , 0 , EAName + "-" + NumOfTrades, MagicNumber, 0 , HotPink);
               if (ticket < 0 ) {
                   Print ( "Error: " , GetLastError ());
                   return ( 0 );
               }
               LastBuyPrice = FindLastBuyPrice();
               NewOrdersPlaced = TRUE ;
            }
         } else {
             if ( iRSI ( NULL , PERIOD_H1 , 14 , PRICE_CLOSE , 1 ) < RsiMaximum ) {
               ticket = OpenPendingOrder( 0 , iLots, BuyLimit, slip, BuyLimit, 0 , 0 , EAName + "-" + NumOfTrades, MagicNumber, 0 , Lime);
               if (ticket < 0 ) {
                   Print ( "Error: " , GetLastError ());
                   return ( 0 );
               }
               LastSellPrice = FindLastSellPrice();
               NewOrdersPlaced = TRUE ;
            }
         }
         if (ticket > 0 ) expiration = TimeCurrent () + 60.0 * ( 60.0 * MaxTradeOpenHours);
         TradeNow = FALSE ;
      }
   }
   total = CountTrades();
   AveragePrice = 0 ;
   double Count = 0 ;
   for (cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
       OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
            AveragePrice += OrderOpenPrice () * OrderLots ();
            Count += OrderLots ();
         }
      }
   }
   if (total > 0 ) AveragePrice = NormalizeDouble (AveragePrice / Count, Digits );
   if (NewOrdersPlaced) {
       for (cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
         OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
         if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) {
             if ( OrderType () == OP_BUY ) {
               PriceTarget = AveragePrice + TakeProfit * Point ;
               BuyTarget = PriceTarget;
               Stopper = AveragePrice - Stoploss * Point ;
               flag = TRUE ;
            }
         }
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) {
             if ( OrderType () == OP_SELL ) {
               PriceTarget = AveragePrice - TakeProfit * Point ;
               SellTarget = PriceTarget;
               Stopper = AveragePrice + Stoploss * Point ;
               flag = TRUE ;
            }
         }
      }
   }
   if (NewOrdersPlaced) {
       if (flag == TRUE ) {
         for (cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
             OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
             if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
             if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) OrderModify ( OrderTicket (), NormalizeDouble (AveragePrice, Digits ), NormalizeDouble ( OrderStopLoss (), Digits ), NormalizeDouble (PriceTarget, Digits ), 0 , Yellow);
            NewOrdersPlaced = FALSE ;
         }
      }
   }
   return ( 0 );
}
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí

int CountTrades() {
   int count = 0 ;
   for ( int trade = OrdersTotal () - 1 ; trade >= 0 ; trade--) {
       OrderSelect (trade, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         if ( OrderType () == OP_SELL || OrderType () == OP_BUY ) count++;
   }
   return (count);
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí

void CloseThisSymbolAll() {
   for ( int trade = OrdersTotal () - 1 ; trade >= 0 ; trade--) {
       OrderSelect (trade, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () == Symbol ()) {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber) {
             if ( OrderType () == OP_BUY ) OrderClose ( OrderTicket (), OrderLots (), Bid , slip, Blue);
             if ( OrderType () == OP_SELL ) OrderClose ( OrderTicket (), OrderLots (), Ask , slip, Red);
         }
         Sleep ( 1000 );
      }
   }
}

//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí

int OpenPendingOrder( int pType, double pLots, double pLevel, int sp, double pr, int sl, int tp, string pComment, int pMagic, int pDatetime, color pColor) {
   int ticket = 0 ;
   int err = 0 ;
   int c = 0 ;
   int NumberOfTries = 100 ;
   switch (pType) {
   case 2 :
       for (c = 0 ; c < NumberOfTries; c++) {
         ticket = OrderSend ( Symbol (), OP_BUYLIMIT , pLots, pLevel, sp, StopLong(pr, sl), TakeLong(pLevel, tp), pComment, pMagic, pDatetime, pColor);
         err = GetLastError ();
         if (err == 0 /* NO_ERROR */ ) break ;
         if (!(err == 4 /* SERVER_BUSY */ || err == 137 /* BROKER_BUSY */ || err == 146 /* TRADE_CONTEXT_BUSY */ || err == 136 /* OFF_QUOTES */ )) break ;
         Sleep ( 1000 );
      }
       break ;
   case 4 :
       for (c = 0 ; c < NumberOfTries; c++) {
         ticket = OrderSend ( Symbol (), OP_BUYSTOP , pLots, pLevel, sp, StopLong(pr, sl), TakeLong(pLevel, tp), pComment, pMagic, pDatetime, pColor);
         err = GetLastError ();
         if (err == 0 /* NO_ERROR */ ) break ;
         if (!(err == 4 /* SERVER_BUSY */ || err == 137 /* BROKER_BUSY */ || err == 146 /* TRADE_CONTEXT_BUSY */ || err == 136 /* OFF_QUOTES */ )) break ;
         Sleep ( 5000 );
      }
       break ;
   case 0 :
       for (c = 0 ; c < NumberOfTries; c++) {
         RefreshRates ();
         ticket = OrderSend ( Symbol (), OP_BUY , pLots, NormalizeDouble ( Ask , Digits ), sp, NormalizeDouble (StopLong( Bid , sl), Digits ), NormalizeDouble (TakeLong( Ask , tp), Digits ), pComment, pMagic, pDatetime, pColor);
         err = GetLastError ();
         if (err == 0 /* NO_ERROR */ ) break ;
         if (!(err == 4 /* SERVER_BUSY */ || err == 137 /* BROKER_BUSY */ || err == 146 /* TRADE_CONTEXT_BUSY */ || err == 136 /* OFF_QUOTES */ )) break ;
         Sleep ( 5000 );
      }
       break ;
   case 3 :
       for (c = 0 ; c < NumberOfTries; c++) {
         ticket = OrderSend ( Symbol (), OP_SELLLIMIT , pLots, pLevel, sp, StopShort(pr, sl), TakeShort(pLevel, tp), pComment, pMagic, pDatetime, pColor);
         err = GetLastError ();
         if (err == 0 /* NO_ERROR */ ) break ;
         if (!(err == 4 /* SERVER_BUSY */ || err == 137 /* BROKER_BUSY */ || err == 146 /* TRADE_CONTEXT_BUSY */ || err == 136 /* OFF_QUOTES */ )) break ;
         Sleep ( 5000 );
      }
       break ;
   case 5 :
       for (c = 0 ; c < NumberOfTries; c++) {
         ticket = OrderSend ( Symbol (), OP_SELLSTOP , pLots, pLevel, sp, StopShort(pr, sl), TakeShort(pLevel, tp), pComment, pMagic, pDatetime, pColor);
         err = GetLastError ();
         if (err == 0 /* NO_ERROR */ ) break ;
         if (!(err == 4 /* SERVER_BUSY */ || err == 137 /* BROKER_BUSY */ || err == 146 /* TRADE_CONTEXT_BUSY */ || err == 136 /* OFF_QUOTES */ )) break ;
         Sleep ( 5000 );
      }
       break ;
   case 1 :
       for (c = 0 ; c < NumberOfTries; c++) {
         ticket = OrderSend ( Symbol (), OP_SELL , pLots, NormalizeDouble ( Bid , Digits ), sp, NormalizeDouble (StopShort( Ask , sl), Digits ), NormalizeDouble (TakeShort( Bid , tp), Digits ), pComment, pMagic, pDatetime, pColor);
         err = GetLastError ();
         if (err == 0 /* NO_ERROR */ ) break ;
         if (!(err == 4 /* SERVER_BUSY */ || err == 137 /* BROKER_BUSY */ || err == 146 /* TRADE_CONTEXT_BUSY */ || err == 136 /* OFF_QUOTES */ )) break ;
         Sleep ( 5000 );
      }
   }
   return (ticket);
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
double StopLong( double price, int stop) {
   if (stop == 0 ) return ( 0 );
   else return (price - stop * Point );
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double StopShort( double price, int stop) {
   if (stop == 0 ) return ( 0 );
   else return (price + stop * Point );
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double TakeLong( double price, int stop) {
   if (stop == 0 ) return ( 0 );
   else return (price + stop * Point );
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double TakeShort( double price, int stop) {
   if (stop == 0 ) return ( 0 );
   else return (price - stop * Point );
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
double CalculateProfit() {
   double Profit = 0 ;
   for (cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
       OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) Profit += OrderProfit ();
   }
   return (Profit);
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
void TrailingAlls( int pType, int stop, double AvgPrice) {
   int profit;
   double stoptrade;
   double stopcal;
   if (stop != 0 ) {
       for ( int trade = OrdersTotal () - 1 ; trade >= 0 ; trade--) {
         if ( OrderSelect (trade, SELECT_BY_POS , MODE_TRADES )) {
             if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
             if ( OrderSymbol () == Symbol () || OrderMagicNumber () == MagicNumber) {
               if ( OrderType () == OP_BUY ) {
                  profit = NormalizeDouble (( Bid - AvgPrice) / Point , 0 );
                   if (profit < pType) continue ;
                  stoptrade = OrderStopLoss ();
                  stopcal = Bid - stop * Point ;
                   if (stoptrade == 0.0 || (stoptrade != 0.0 && stopcal > stoptrade)) OrderModify ( OrderTicket (), AvgPrice, stopcal, OrderTakeProfit (), 0 , Aqua);
               }
               if ( OrderType () == OP_SELL ) {
                  profit = NormalizeDouble ((AvgPrice - Ask ) / Point , 0 );
                   if (profit < pType) continue ;
                  stoptrade = OrderStopLoss ();
                  stopcal = Ask + stop * Point ;
                   if (stoptrade == 0.0 || (stoptrade != 0.0 && stopcal < stoptrade)) OrderModify ( OrderTicket (), AvgPrice, stopcal, OrderTakeProfit (), 0 , Red);
               }
            }
             Sleep ( 1000 );
         }
      }
   }
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí

double AccountEquityHigh() {
   if (CountTrades() == 0 ) AccountEquityHighAmt = AccountEquity ();
   if (AccountEquityHighAmt < PrevEquity) AccountEquityHighAmt = PrevEquity;
   else AccountEquityHighAmt = AccountEquity ();
   PrevEquity = AccountEquity ();
   return (AccountEquityHighAmt);
}
//íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí

double FindLastBuyPrice() {
   double oldorderopenprice;
   int oldticketnumber;
   double unused = 0 ;
   int ticketnumber = 0 ;
   for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
       OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber && OrderType () == OP_BUY ) {
         oldticketnumber = OrderTicket ();
         if (oldticketnumber > ticketnumber) {
            oldorderopenprice = OrderOpenPrice ();
            unused = oldorderopenprice;
            ticketnumber = oldticketnumber;
         }
      }
   }
   return (oldorderopenprice);
}

double FindLastSellPrice() {
   double oldorderopenprice;
   int oldticketnumber;
   double unused = 0 ;
   int ticketnumber = 0 ;
   for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--) {
       OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MagicNumber) continue ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber && OrderType () == OP_SELL ) {
         oldticketnumber = OrderTicket ();
         if (oldticketnumber > ticketnumber) {
            oldorderopenprice = OrderOpenPrice ();
            unused = oldorderopenprice;
            ticketnumber = oldticketnumber;
         }
      }
   }
   return (oldorderopenprice);
}
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
 

S'il vous plaît, quelqu'un pourrait-il avoir la gentillesse d'aider à ajouter à cet indicateur l'option fenêtre ?

Je ne connais rien au codage !


Merci d'avance Max

Dossiers :
true_trend.mq4  32 kb
 

Bonjour !

Je cherche à ce que l'affichage de la tendance de Lawgirl montre la direction des stochastiques au lieu du rsi. Est-ce que quelqu'un peut le faire ?

 

Bonjour, ...
s'il vous plaît, faites de l'indicateur un simple EA seulement pour les positions fermées, la ligne de fibo est seulement pour fermer la position ouverte (Positions fermées avec Profit seulement) à chaque fois que l'on touche la ligne de la...
OP avec manualy

Merci d'avance

Dossiers :
 
Forexpaco: Je voudrais ajouter
Vous n'avez que quatre choix: Nous n'allons pas le coder pour vous (bien que cela puisse arriver si vous avez de la chance ou si le problème est intéressant). Nous sommes prêts à vous aider si vous postez votre tentative (en utilisantSRC) et la nature de votre problème.
Pas d'aide gratuite
aide urgente.
 

Bonjour

J'ai besoin d'aide si quelqu'un peut coder cet indicateur.

Les règles sont les suivantes

1. Utiliser pour H1 ci-dessus mais fortement recommandé pour H4

2. L'indicateur va notifier avec une alerte quand il y a une bougie Bullish break high Low candle bearish before ou une bougie bearish break High Low candle Bullish before au moins 1 pip.

3. J'ai aussi besoin de pouvoirenvoyer une notification sur mon téléphone portable.


Merci pour votre gentillesse