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

 
makssub # :

Sondan bir öncekini değil, sonuncuyu verir (


Bak ne yazdın:

" Fiyat düşerse ve başka bir emir açılırsa, maksimum OrderOpenPrice olan emir sondan bir önceki emir olur ."

İşlev, maksimum veya minimum açılış fiyatını arar.

Sondan bir önceki bileti istiyorsanız, o zaman bileti açtığınızda hatırlamanız daha iyi olur.

 
MakarFX # :

Bak ne yazdın:

" Fiyat düşerse ve başka bir emir açılırsa, maksimum OrderOpenPrice olan emir sondan bir önceki emir olur ."

İşlev, maksimum veya minimum açılış fiyatını arar.

Sondan bir önceki bileti istiyorsanız, o zaman bileti açtığınızda hatırlamanız daha iyi olur.

Özür dilerim, bazen düşüncelerimi çok net ifade edemiyorum.

Bunu zaten kene ve zamanla yaptım, ancak dalgalandığında, fiyat yükselip sonra düşebildiğinde, sondan bir önceki fiyat olmayabilir. Bu seçenekler zaten denendi. Bu nedenle, açılış fiyatı en iyi seçenektir. Peki, ya da tüm bunları iki kez kontrol edecek bir sürü fonksiyon ve orada eminim ki kafam çok karışacak. Her şeyi kafamda tutmak için fazla zamanım yok.

Ondan önce, sondan bir öncekine yazdım ve vazgeçti. Bir sorun, OP_SELL ve OP_BUY arasında ayrım yapmadı. İkincisi göründüğünde, onu saymaya başlar (

 
makssub # :

Özür dilerim, bazen düşüncelerimi çok net ifade edemiyorum.

Bunu zaten kene ve zamanla yaptım, ancak dalgalandığında, fiyat yükselip sonra düşebildiğinde, sondan bir önceki fiyat olmayabilir. Bu seçenekler zaten denendi. Bu nedenle, açılış fiyatı en iyi seçenektir. Peki, ya da tüm bunları iki kez kontrol edecek bir sürü fonksiyon ve orada eminim ki kafam çok karışacak. Her şeyi kafamda tutmak için fazla zamanım yok.

Ondan önce, sondan bir öncekine yazdım ve vazgeçti. Bir sorun, OP_SELL ve OP_BUY arasında ayrım yapmadı. İkincisi göründüğünde, onu saymaya başlar (

Bulmanız gerekeni daha kolay yazın (eğer bu olduysa, o zaman anlamanız gerekir) ... yoksa benim de kafam karıştı

 
MakarFX # :

Bulmanız gerekeni daha kolay yazın (eğer bu olduysa, o zaman anlamanız gerekir) ... yoksa benim de kafam karıştı

Hangi siparişin fiyatının bulunacağını vurguladı

OP_BUY yoksa zor değil. OP_BUY görünürse kodum çalışmıyor(

 double FindPenultSellPrice()
{
   double   UpPrice = DBL_MAX , profit = 0 ;
   int     i;
   for (i = OrdersTotal ()- 2 ; i >= 0 ; i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
         {
             if ( OrderOpenPrice() < UpPrice)
            {
               UpPrice = OrderOpenPrice();
            }
         }
      }
   }
   return (UpPrice);
}
 
MakarFX # :

Bulmanız gerekeni daha kolay yazın (eğer bu olduysa, o zaman anlamanız gerekir) ... yoksa benim de kafam karıştı

Zamana göre sondan bir önceki siparişe değil, fiyat diğer yöne gitmişse, sondan bir önceki siparişe ihtiyaç duyar. Alexei doğru yazdı, fiyatı aramanız gerekiyor. Alt veya üst olana değil, önündeki istenilene dokunuyoruz.

Tehdit. Değişkenimdeki son siparişin (bu bir ızgaradır) Biletini açarken hatırlardım. Başlatma algoritmasının yalnızca bir üst ve bir hemen aşağı ve tekrar bir yukarı ve bir hemen aşağı olması durumunda sonlandırılması gerekir)))) İki emir aynı yönde giderse, sondan bir önceki bileti hatırlarız ve sonuncusu sadece üçüncünün açılması durumunda, sondan bir öncekinin bileti ikincinin biletidir ve ikincisinin bileti üçüncünün biletine eşittir.

 
makssub # :

Hangi siparişin fiyatının bulunacağını vurguladı

OP_BUY yoksa zor değil. OP_BUY görünürse kodum çalışmıyor(

Bunu dene

 //+------------------------------------------------------------------+
//|  Функция возвращает по символу и магику                          |
//|  1 - размер лота последней позиции                               |
//|  2 - цена последней открытой позиции                             |
//|  3 - время последней открытой позиции                            |
//+------------------------------------------------------------------+
double GetInfoLastPos( int a= 1 )
  {
   datetime t= 0 ;
   double result= 0 ,l= 0 ,p= 0 ,f= 0 ;
   
   for ( int pos= OrdersTotal ()- 1 ;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
        {
         if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (t<OrderCloseTime()) {t=OrderOpenTime(); l=OrderLots(); p=OrderOpenPrice();}
              }
           }
        }
     }
   if (a== 1 ) {result=l;} else
   if (a== 2 ) {result=p;} else
   if (a== 3 ) {result=( double )t;}
   else      {result= 0 ;}
   return (result);
  }
//+------------------------------------------------------------------+
double FindOpenPrice()
  {
   double AbsPoint= DBL_MAX ;
   double openprice= 0 ;
   
   for ( int pos= OrdersTotal ()- 2 ;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
        {
         if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (AbsPoint> MathAbs (OrderOpenPrice()-GetInfoLastPos( 2 )))
                 {
                  AbsPoint= MathAbs (OrderOpenPrice()-GetInfoLastPos( 2 ));
                  openprice = OrderOpenPrice();
                 }
              }
           }
        }
     }
   return (openprice);
  }
//+------------------------------------------------------------------+
 
MakarFX # :

Bunu dene

Sıkı çalışman için teşekkür ederim.

Bir uyarı var) Yukarıdan kırmızı ile işaretlenmiş bulur. OP_SELL için mavi ile işaretlenmiş aşağıdan ihtiyacınız var. Ve OP_BUY görünürse nasıl sayılacağını kontrol etmediğimi hemen söyleyeceğim.

 
makssub # :

Sıkı çalışman için teşekkür ederim.

Bir uyarı var) Yukarıdan kırmızı ile işaretlenmiş bulur. OP_SELL için mavi ile işaretlenmiş aşağıdan ihtiyacınız var. Ve OP_BUY görünürse nasıl sayılacağını kontrol etmediğimi hemen söyleyeceğim.

En yakını yukarıda!

Senden bulman gerekenleri yazmanı istedim ve sen de bazı kısımlar verdin...

Örneğin, ihtiyacım var: "Bir SATIŞ açılırsa, yukarıdan en yakın SATı bulmanız gerekir ... vb."

PS Neyi kırmızı ile işaretlediniz? 0_o görmüyorum
 
MakarFX # :

En yakını yukarıda!

Senden bulman gerekenleri yazmanı istedim ve sen de bazı kısımlar verdin...

Örneğin, ihtiyacım var: "Bir SATIŞ açılırsa, yukarıdan en yakın SATı bulmanız gerekir ... vb."

PS Neyi kırmızı ile işaretlediniz? 0_o görmüyorum

Bana oluyor. Sanırım bir şey başka bir şey yazıyorum. Dikkatsizlik Üzgünüm) Kırmızı pahasına, kendim şoktayım)

 
makssub # :

Bana oluyor. Sanırım bir şey başka bir şey yazıyorum. Dikkatsizlik Üzgünüm) Kırmızı pahasına, kendim şoktayım)

Öyleyse neye ihtiyacın var?