Kodlama yardımı - sayfa 769

 
Merhaba Programcılar


Umarım orada iyisindir. Lütfen bu EA'daki zaman filtresini kaldırmama /yanlış hale getirmeme ve Çarpan Faktörünü Ayarlanabilir hale getirmeme yardım eder misiniz?


Çok teşekkürler
Dosyalar:
EA.mq4  8 kb
 

Sevgili mladen, Lütfen M1'deki görünümü görmeye teşvik edin

teşekkürler

 

herkese selam

Herhangi bir vücudun bana yardım edip edemeyeceğini merak ediyordum. Temelde 2.0 sapma ile bir regresyon kanalı olan bir göstergem var.

Bunu meta düzenleyiciye koydum, böylece göstergeye yaklaşık 2.6'da isteyen iki satır daha ekleyebilirim ve mümkünse orta çizgiyi kaldırabilirim .

birçok başarısız denemeden sonra, nasıl yapacağımı çözemiyorum, bu yüzden yardımınıza ihtiyacım var, lütfen mümkünse teşekkürler

Dosyalar:
i-Regr.mq4  6 kb
 

Sevgili Mladen,

İlk göstergelerimi kodlamaya çalışıyorum, biri iyi biri değil.....yardımınızla daha iyi bir programcı olmak isterdim....ama şu ana kadar gerçekten desteğinize ihtiyacım var....

Benim fikrim, stokik osilatörün EMA'sının EMA'sını yapan göstergeyi kodlamak....EMA (EMA (Stchastic)))....Bu göstergeyi çevrimiçi bir platformda deniyorum ve programlamak kolaydı ama MT4 ile daha zor ve işe yaramadığı için hatalar yapıyorum...... Lütfen bir göz atıp yaptığım hataları düzeltir misiniz?

destek için çok teşekkür ederim

Gianluca

Dosyalar:
 
Mladen Rakic :
Ex4 dosyası değiştirilemez

Sevgili Mladen,


AngryBird'de SL ve TP'ye de sahip olmak isterim..


Lütfen ekli Kod'a bakın


Teşekkür

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);
}
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
 

Lütfen birisi bu göstergeye pencere seçeneğini eklemeye yardımcı olabilir mi?

Kodlama hakkında hiçbir şey bilmiyorum!


şimdiden teşekkürler max

Dosyalar:
true_trend.mq4  32 kb
 

Merhaba!

Lawgirl's Trend Display'in rsi yerine stokastik yönünü göstermesini istiyorum. Bunu kimse yapabilir mi?

 

Merhaba, ...
lütfen göstergeyi sadece Kapalı Pozisyonlar için basit bir EA haline getirin, fibo çizgisi sadece Fibo çizgisine dokunan her biri kapalı açık pozisyon içindir (sadece Kârlı Yakın Pozisyonlar).
manuel ile OP

Şimdiden teşekkürler

Dosyalar:
 
Forexpaco : Eklemek istiyorum
Sadece dört seçeneğiniz var: Bunu sizin için kodlamayacağız (ancak şanslıysanız veya sorun ilginçse olabilir.) Denemenizi ( SRC kullanarak) ve probleminizin doğasını yayınladığınızda size yardımcı olmaya hazırız.
Ücretsiz yardım yok
acil yardım.
 

Merhaba

Birisi bunu bir gösterge olarak kodlayabilirse yardıma ihtiyacım var.

kurallar şöyle:

1. Yukarıdaki H1 için kullanın, ancak H4 için şiddetle tavsiye edilir

2. Gösterge, Mum Boğası kırılması yüksek olduğunda uyarı ile bildirecektir.

3. Ayrıca el telefonuna bildirim gönderme yeteneğine de ihtiyacınız var.


nezaketin için teşekkürler