[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 149

 

İşte geçenlerde bir benzetmeye cevap verdiğim yer. soru.

https://www.mql5.com/ru/forum/109048/page11

-Bak.

Senin durumunda, muhtemelen şöyle bir şey yapabilirsin:

 if ( AutoClose ) { //если выключатель закрытия включен 

//----------------------------------------------------------------------
  for ( int v = 0 ; v < OrdersTotal ( ) ; v + + )                             {       
      if ( OrderSelect ( v , SELECT_BY_POS , MODE_TRADES ) )               {           
        if ( OrderSymbol ( ) = = Symbol ( ) & & OrderMagicNumber ( ) = = MagicNum )   { 
//-----------------------------------------------------                  
if ( OrderType ( ) = = OP_BUY ) { 
      
           OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 3 , Green ) ; // закрываем позицию
                 //return(0); // выходим
                }       
      
 //--------------------------------------------------------
if ( OrderType ( ) = = OP_SELL ) { 
     
                 OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 3 , Green ) ; // закрываем позицию
                // return(0); // выходим
                }       
   
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_
 

Beyler, lütfen neyin farklı olduğunu açıklayın

 NormalizeDouble ( High [ iHighest ( NULL , 0 , MODE_HIGH , 10 , 0 ) ] , 4 )
itibaren
 NormalizeDouble ( High [ iHighest ( NULL , 0 , MODE_HIGH , iBarShift ( NULL , 0 , Time [ 1 ] , FALSE ) , 1 ) ] + 10 * Point , 4 )

iBarShift'in ne olduğunu ve ne için olduğunu anlamıyorum

 
rid >> :

İşte geçenlerde bir benzetmeye cevap verdiğim yer. soru.

'Uzmanlara soru'

-Bak.

Senin durumunda, muhtemelen şöyle bir şey yapabilirsin:


Teşekkürler kurtulun !

Her şey benim için çalıştı, ben böyle yaptım.

   if ( ( Close_P ) & & TimeCurrent ( ) > = StrToTime ( CloseHour + ":00" ) ) {    // даже по времени сделал
   int slippage = 3 ;
   for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - )
   {
     if ( ! OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) break ;
     if ( OrderType ( ) = = OP_BUY ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , MarketInfo ( OrderSymbol ( ) , MODE_BID ) , slippage ) ;
     if ( OrderType ( ) = = OP_SELL ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , MarketInfo ( OrderSymbol ( ) , MODE_ASK ) , slippage ) ;
     }
     }


 
Dimoncheg >> :

Beyler, lütfen neyin farklı olduğunu açıklayın

itibaren

iBarShift'in ne olduğunu ve ne için olduğunu anlamıyorum

int iBarShift ( dize sembolü, int zaman çerçevesi, tarih saat saat, bool tam=yanlış)
Zamana göre bir bar arayın. İşlev, belirtilen zamanın ait olduğu çubuğun ofsetini döndürür. Belirtilen süre için çubuk yoksa (geçmişte "delik"), tam parametreye, -1'e veya en yakın çubuğun ofsetine bağlı olarak işlev döner.
Seçenekler:
semboller - Aracın sembolik adı. NULL, geçerli karakter anlamına gelir.
zaman aralığı - Dönem. Grafik dönemlerinden biri olabilir. 0, mevcut grafiğin periyodu anlamına gelir.
zaman - Aranacak zaman değeri.
bire bir aynı - Çubuk bulunamazsa değeri döndürür. YANLIŞ - iBarShift en yakın olanı döndürür. DOĞRU - iBarShift -1 değerini döndürür.
 
1Rakso >> :
int iBarShift ( dize sembolü, int zaman çerçevesi, tarih saat saat, bool tam=yanlış)
Zamana göre bir bar arayın. İşlev, belirtilen zamanın ait olduğu çubuğun ofsetini döndürür. Belirtilen süre için çubuk yoksa (geçmişte "delik"), tam parametreye, -1'e veya en yakın çubuğun ofsetine bağlı olarak işlev döner.
Seçenekler:
semboller - Aracın sembolik adı. NULL, geçerli karakter anlamına gelir.
zaman aralığı - Dönem. Grafik dönemlerinden biri olabilir. 0, mevcut grafiğin periyodu anlamına gelir.
zaman - Aranacak zaman değeri.
bire bir aynı - Çubuk bulunamazsa değeri döndürür. YANLIŞ - iBarShift en yakın olanı döndürür. DOĞRU - iBarShift -1 değerini döndürür.

Evet, yardımı okudum ama orada ne yazdığını anlamıyorum, “İşlev çubuk ofsetini döndürür” - bu ne anlama geliyor? İlk durumda, oraya sadece mum sayısı eklenir ve ikincisinde bir çeşit ofset vardır, kimse parmaklarda açıklayabilir mi? Teoride, belirli koşullara ulaştıktan sonra en yakın yükseğe ihtiyacım var, ilk durum çalışmayacak çünkü 10 bar için bir yüksek olmayabilir (ve belki 20 ve 30 için de olmayabilir), nasıl daha doğru boyanacak (en yakın yüksek, örneğin, 2 Mashek ile geçme koşulundan sonra)?

 
Dimoncheg >> :

Evet, yardımı okudum ama orada ne yazdığını anlamıyorum, “İşlev çubuk ofsetini döndürür” - bu ne anlama geliyor? İlk durumda, oraya sadece mum sayısı eklenir ve ikincisinde bir çeşit ofset vardır, kimse parmaklarda açıklayabilir mi? Teoride, belirli koşullara ulaştıktan sonra en yakın yükseğe ihtiyacım var, ilk durum çalışmayacak çünkü 10 bar için bir yüksek olmayabilir (ve belki 20 ve 30 için de olmayabilir), nasıl daha doğru boyanacak (en yakın yüksek, örneğin, 2 Mashek ile geçme koşulundan sonra)?

ibarshift, grafiğin başlangıcından itibaren hangi çubuğun n. saniye olduğunu gösterir

 
Dimoncheg >> :

Evet, yardımı okudum ama orada ne yazdığını anlamıyorum, “İşlev çubuk ofsetini döndürür” - bu ne anlama geliyor? İlk durumda, oraya sadece mum sayısı eklenir ve ikincisinde bir çeşit ofset vardır, kimse parmaklarda açıklayabilir mi? Teoride, belirli koşullara ulaştıktan sonra en yakın yükseğe ihtiyacım var, ilk durum çalışmayacak çünkü 10 bar için bir yüksek olmayabilir (ve belki 20 ve 30 için de olmayabilir), nasıl daha doğru boyanacak (en yakın yüksek, örneğin, 2 Mashek ile geçme koşulundan sonra)?

Ona zaman verirsin ve iyileşirsin.

Diyelim ki sıfır çubuğunun zamanını biliyorsunuz.

Bazı olaylar geçti

durum değişti ve verilen süre ile çubuğun konumunu sıfır çubuğuna göre kontrol etmek istiyorsunuz.

Bu özelliğin gerekli olduğu yer burasıdır.

 

Dimoncheg

Ben kendim bu bölümün müşterisiyim)

=======================

Başka bir sorum var, seviyesini hesaplamak ve bu seviyede sabitlemek için ZZ ışınını vuruşlara nasıl bölebilirim?


   double ind1 . up = iCustom ( Symbol ( ) , PERIOD_H1 , "ZigZag_NK" , ZZ_Depth1 , 5 , 3 , 0 , 0 ) ;
   double ind1 . dn = iCustom ( Symbol ( ) , PERIOD_H1 , "ZigZag_NK" , ZZ_Depth1 , 5 , 3 , 1 , 0 ) ;
   if ( ind1 . up != EMPTY_VALUE  ) ind1 . arr_1 = - 1 ;
	else if ( ind1 . dn != EMPTY_VALUE )    ind1 . arr_1 = 1 ;   
   

   if ( ( Close_P ) & & ind . arr_1 / 2 * Point ) {    // как вписать формулу что я не так делаю? 
   
   int slippage = 3 ;
   for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - )
   {
     if ( ! OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) break ;
     if ( OrderType ( ) = = OP_BUY ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , MarketInfo ( OrderSymbol ( ) , MODE_BID ) , slippage ) ;
     if ( OrderType ( ) = = OP_SELL ) OrderClose ( OrderTicket ( ) , OrderLots ( ) , MarketInfo ( OrderSymbol ( ) , MODE_ASK ) , slippage ) ;
     }
     }
 
Kodun içindeki göstergem yeniden başlatılıyor, karşılaştırmak için önce ve sonra durumu bilmem gerekiyor. Bu süreci uygulamanın en iyi yolu nedir?
 
1Rakso >> :

Dimoncheg

Ben kendim bu bölümün müşterisiyim)

=======================

Başka bir sorum var, seviyesini hesaplamak ve bu seviyede sabitlemek için ZZ ışınını vuruşlara nasıl bölebilirim?


Zigzag son noktada hesaplanmaz. Kural olarak, bu seviyede düzeltmek mümkün olmayacaktır.