MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1372

 
DanilaMactep :

Herkese iyi günler.

Denemek

 //--ТРАЛ ПО ПАРАбОЛИКУ
void Tral_parabolik()
{ // НАЧАЛО ТРАЛ ПО ПАРАБОЛИК
//+------------------------------------------------------------------+
   int     Tral = tral;
   double Sar  = iCustom ( _Symbol ,PeriodForWork_tral_parabolik, "Parabolic" ,step_tral_parabolik,max_tral_parabolik, 1 );
//+------------------------------------------------------------------+
   for ( int pos= 0 ;pos< OrdersTotal ();pos++)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES))
       if (OrderSymbol()== _Symbol )
        {
         if (OrderType()==OP_SELL)
           {
             if (OrderOpenPrice()>Ask+Tral* Point &&OrderOpenPrice()>Sar)
              {
               if (OrderStopLoss()!= Sar&&Sar>Ask)
                 {
                   if (OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Sar, Digits ),OrderTakeProfit(), 0 , clrBlack ))
                    {
                     Print ( "Order SELL Modify" , GetLastError ());
                    }
                 }
              }
           }
         if (OrderType()==OP_BUY)
           {
             if (OrderOpenPrice()<Bid-Tral* Point &&OrderOpenPrice()<Sar)
              {
               if (OrderStopLoss()!= Sar&&Sar<Bid)
                 {
                   if (OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Sar, Digits ),OrderTakeProfit(), 0 , clrGreen ))
                    {
                     Print ( "Order BUY Modify" , GetLastError ());
                    }
                 }
              }
           }
        }
     }
   if ( GetLastError ()== 141 ){ Alert ( GetLastError ()); ExpertRemove ();} // ПРОВЕРКА ОТ ДОЛБАНИЯ СЕРВЕРА И БАНА СЧЁТА
} // КОНЕЦ ТРАЛ ПО ПАРАБОЛИК     
 
Сергей Дыбленко :
Yardımlarınız için hepinize teşekkür ederim AMA ihtiyacım olanı yapmaya yetmeyen beynim!

böyle mi demek istiyorsun sadece burada pozisyonlar kırmızıysa lot artar - ve sizi anlıyorum, pozisyonlar siyah olduğunda artırmanız gerekiyor ???

enstantane fotoğraf

................................................ . ................................................ .. ................................................... ... ................................................

 //+------------------------------------------------------------------+
//|                                               Moving Average.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright    "2005-2014, MetaQuotes Software Corp."
#property link          "http://www.mql4.com"
#property description "Moving Average sample expert advisor"

#define MAGICMA   20131111
//--- Inputs
input string    t0= "------------ Exchange TP SL --------" ; //
input double    InpTProfit       = 10 ;             // Exchange TP
input double    InpStopLoss      = 1000000 ;       // Exchange SL
input string    t1= "------------ Lots Parameters -------" ; //
input double    InpLots1         = 0.01 ;           // : Lots 1
input int       InpLots_01       = 2 ;             // Exchange Lots
input double    InpLots2         = 0.03 ;           // : Lots 2
input int       InpLots_02       = 4 ;             // Exchange Lots
input double    InpLots3         = 0.06 ;           // : Lots 3
input int       InpLots_03       = 8 ;             // Exchange Lots
input double    InpLots4         = 0.12 ;           // : Lots 4
input string    t2= "------------ Moving Parameters -----" ; //
input int       MovingPeriod     = 12 ;             // MovingPeriod
input int       MovingShift      = 6 ;             // MovingShift
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders( string symbol)
  {
   int buys= 0 ,sells= 0 ;
//---
   for ( int i= 0 ; i< OrdersTotal (); i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
         continue ;
       if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA)
        {
         if (OrderType()==OP_BUY)
            buys++;
         if (OrderType()==OP_SELL)
            sells++;
        }
     }
//--- return orders volume
   if (buys> 0 )
       return (buys);
   else
       return (-sells);
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double OptimizedBuy( void )
  {
   double PROFIT_BUY= 0.00 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // returns the number of open positions
     {
       if ( OrderSelect (i,SELECT_BY_POS) && OrderSymbol()== Symbol ())
        {
         if (OrderSymbol()== Symbol () && OrderType()==OP_BUY)
           {
            PROFIT_BUY=PROFIT_BUY+ NormalizeDouble (OrderProfit(), 2 );
           }
        }
     }
   double Lots=InpLots1;
   double ab=PROFIT_BUY;
   if (ab<- 1 && ab>=-InpLots_01)
      Lots=InpLots1;
   if (ab<-InpLots_01 && ab>=-InpLots_02)
      Lots=InpLots2;
   if (ab<-InpLots_02 && ab>=-InpLots_03)
      Lots=InpLots3;
   if (ab<-InpLots_03)
      Lots=InpLots4;
//--- return trading volume
   return (Lots);
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double OptimizedSell( void )
  {
   double PROFIT_SELL= 0.00 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // returns the number of open positions
     {
       if ( OrderSelect (i,SELECT_BY_POS) && OrderSymbol()== Symbol ())
        {
         if (OrderSymbol()== Symbol () && OrderType()==OP_SELL)
           {
            PROFIT_SELL=PROFIT_SELL+ NormalizeDouble (OrderProfit(), 2 );
           }
        }
     }
   double Lots=InpLots1;
   double ab=PROFIT_SELL;
   if (ab<- 1 && ab>=-InpLots_01)
      Lots=InpLots1;
   if (ab<-InpLots_01 && ab>=-InpLots_02)
      Lots=InpLots2;
   if (ab<-InpLots_02 && ab>=-InpLots_03)
      Lots=InpLots3;
   if (ab<-InpLots_03)
      Lots=InpLots4;
//--- return trading volume
   return (Lots);
  }
//+------------------------------------------------------------------+
//| Check for long position closing                                  |
//+------------------------------------------------------------------+
bool ProfitOnTick( void )
  {
   bool res= false ;
   double PROFIT_BUY= 0.00 ;
   double PROFIT_SELL= 0.00 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // returns the number of open positions
     {
       if ( OrderSelect (i,SELECT_BY_POS) && OrderSymbol()== Symbol ())
        {
         if (OrderSymbol()== Symbol () && OrderType()==OP_BUY)
           {
            PROFIT_BUY=PROFIT_BUY+ NormalizeDouble (OrderProfit(), 2 );
           }
         if (OrderSymbol()== Symbol () && OrderType()==OP_SELL)
           {
            PROFIT_SELL=PROFIT_SELL+ NormalizeDouble (OrderProfit(), 2 );
           }
        }
     }
   int Close_ticketb= 0 ;
   int totalb= OrdersTotal ();
   int b = 0 ;
   for (b = totalb; b >= 0 ; b--)
     {
       if ( OrderSelect (b,SELECT_BY_POS) && OrderSymbol()== Symbol ())
        {
         //OrderSelect(i,SELECT_BY_POS);
         if (OrderSymbol()== Symbol () && OrderType()==OP_BUY)
           {
             if (PROFIT_BUY<-InpStopLoss || PROFIT_BUY>=InpTProfit)
              {
               Close_ticketb = OrderClose(OrderTicket(),OrderLots(),MarketInfo( Symbol (),MODE_BID), 5 );
               PlaySound ( "ok.wav" );
              }
           }
        }
      res= true ;
     }
   int Close_tickets= 0 ;
   int totals= OrdersTotal ();
   int s = 0 ;
   for (s = totals; s >= 0 ; s--)
     {
       if ( OrderSelect (s,SELECT_BY_POS) && OrderSymbol()== Symbol ())
        {
         if (OrderSymbol()== Symbol () && OrderType()==OP_SELL)
           {
             if (PROFIT_SELL<-InpStopLoss || PROFIT_SELL>=InpTProfit)
              {
               Close_tickets = OrderClose(OrderTicket(),OrderLots(),MarketInfo( Symbol (),MODE_ASK), 5 );
               PlaySound ( "ok.wav" );
              }
           }
        }
      res= true ;
     }
//--- result
   return (res);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int     res;
//--- go trading only for first tiks of new bar
   if (Volume[ 0 ]> 1 )
       return ;
//--- get Moving Average
   ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 );
//--- sell conditions
   if (Open[ 1 ]>ma && Close[ 1 ]<ma)
     {
      res= OrderSend ( Symbol (),OP_SELL,OptimizedSell(),Bid, 3 , 0 , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
//--- buy conditions
   if (Open[ 1 ]<ma && Close[ 1 ]>ma)
     {
      res= OrderSend ( Symbol (),OP_BUY,OptimizedBuy(),Ask, 3 , 0 , 0 , "" ,MAGICMA, 0 ,Blue);
       return ;
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick ()
  {
//--- check for history and trading
   if ( Bars < 100 || IsTradeAllowed()== false )
       return ;
//--- calculate open orders by current symbol
   if (CalculateCurrentOrders( Symbol ())== 0 )
      CheckForOpen();
   ProfitOnTick();
//---
  }
//+------------------------------------------------------------------+
 
SanAlex :

böyle mi demek istiyorsun sadece burada pozisyonlar kırmızıysa lot artar - ve sizi anlıyorum, pozisyonlar siyah olduğunda artırmanız gerekiyor ???

................................................ . ................................................ .. ................................................... ... ................................................

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\ \\\\\\

tüm kar - bu iki işleve bağlıdır. Bunları doğru bir şekilde kurmanız ve normal bir uzmana aktarmanız yeterlidir.

 input string    t0= "------------ Exchange TP SL --------" ; //
input double    InpTProfit       = 10 ;             // Exchange TP
input double    InpStopLoss      = 1000000 ;       // Exchange SL
input string    t1= "------------ Lots Parameters -------" ; //
input double    InpLots1         = 0.01 ;           // : Lots 1
input int       InpLots_01       = 2 ;             // Exchange Lots
input double    InpLots2         = 0.03 ;           // : Lots 2
input int       InpLots_02       = 4 ;             // Exchange Lots
input double    InpLots3         = 0.06 ;           // : Lots 3
input int       InpLots_03       = 8 ;             // Exchange Lots
input double    InpLots4         = 0.12 ;           // : Lots 4

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\

ve bu yukarıdaki uzmandan - bu sadece örneğin

Anlık Görüntü 2

 
SanAlex :

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\ \\\\\\

tüm kar - bu iki işleve bağlıdır. Bunları doğru bir şekilde kurmanız ve normal bir uzmana aktarmanız yeterlidir.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\

ve bu yukarıdaki uzmandan - bu sadece örneğin


Bak Sasha, yoksa GRAIL'i inşa edeceksin)
 
MakarFX :
Sasha'ya bak, yoksa GRAIL'i inşa edeceksin)

Kase'yi bir arada yapmak sıkıcı - birlikte daha eğlenceli!!!

 

Yardıma ihtiyacınız var! iCustom'un 0 olmayan en yakın değeri bulması için bir dizi nasıl oluşturulur? MT4

 

Tüccar arkadaşlar!

iLowest (örneğin, x çubukları için en küçük değer) ve iAD'nin gösterge değeri (doğal olarak yüzde verisi değil, bazı noktalarda gerçek veriler üreten bir hacim şaftı) nasıl geçilir, sırasıyla ihtiyacınız olan en küçük iAD'ye göre x çubukları için değer. Sayesinde. MT4

Документация по MQL5: Доступ к таймсериям и индикаторам / iLowest
Документация по MQL5: Доступ к таймсериям и индикаторам / iLowest
  • www.mql5.com
iLowest - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Порт-моне тв :

Tüccar arkadaşlar!

iLowest (örneğin, x çubukları için en küçük değer) ve iAD'nin gösterge değeri (doğal olarak yüzde verisi değil, bazı noktalarda gerçek veriler üreten bir hacim şaftı) nasıl geçilir, sırasıyla ihtiyacınız olan en küçük iAD'ye göre x çubukları için değer. Sayesinde. MT4

Size yardımcı olacak makale

Ayrıca makaleyi ve MakarFX'i de görebilirsiniz,

sorusunun cevabı var.

Работа по Накоплению/Распределению и что из этого можно сделать
Работа по Накоплению/Распределению и что из этого можно сделать
  • www.mql5.com
Индикатор Накопления/Распределения A/D имеет одно интересное свойство - пробитие трендовой линии, построенной на графике данного индикатора с определённой долей вероятности говорит нам о скором пробое линии тренда на графике цены. Данная статья будет полезна и интересна людям, только начинающим программировать на MQL4, поэтому я постарался изложить всё в наиболее доступной для понимания форме и использовать самые простые конструкции построения кода.
 
Alekseu Fedotov :

Size yardımcı olacak makale

Ayrıca makaleyi ve MakarFX'i de görebilirsiniz,

sorusunun cevabı var.

teşekkürler
 
Merhaba. Söyleyin lütfen, Devrilme olayı hâlâ geçerli mi? En son ne zaman olduğunu hatırlayamıyorum.