Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 991

 
kopeyka2 :

Ben de tam bunu düşündüm. "Parametreler" kelimesinde bir yanlış anlama sorunu. Ve tanıtıcıya dahil olan TÜM değişkenlere bakmaya başladım --> CopyBuffer

1) En başından beri sorum, tutamaç verilerini kaydetmek için zaman çerçevesi SCREEN'in değiştirilmesiydi. MT4'te olduğu gibi.

Ve aslında şöyle çıkıyor:

HER ZAMAN ve TÜM zaman dilimlerinde aynı değeri verir 10

Burada hiçbir şey alamayınca yoluma devam ettim.

2) Alıntı yapıyorum: " Belirtilen göstergenin belirtilen arabelleğinin verilerini belirtilen miktarda, arabellek dizisine alır.

Yani, sayımı elle ayarlayarak, değerler içeren bir INTERVAL'a sahip olmalıyız. Ve onlar! ANCAK!!!!!! Yalnızca işlem süresi eşleştiğinde

monitör ekranındaki zaman çerçevesi PERIOD_H1. Tüm değerler net bir şekilde iletilir. Ancak veri ekranında başka bir zaman dilimine geçmek HAYIR.

TRANSFER YAPMAZLAR!!!! Ve sorum tam olarak şuydu. Ve eğer orada değillerse, sayılacak çubukların sayısı burada o kadar önemli değil!!!


Önerilen gösterge MTF_LRMA.mq5'e baktım Ama aynı şeye sahip. Ekranda başka bir zaman dilimine geçiyoruz ve veriler ekranın zaman dilimini takip ediyor. Ve bir handel'e ihtiyacım var.

Örneğin: iClose(NULL, PERIOD_H1, 5); tüm zaman dilimlerinde aynı değeri verecektir: H1'de 10 bar.

Şimdiye kadar, tüm örnekler CopyBuffer arabelleğinin sayısını ayarlamakla ilgiliydi. AMA dizi BOŞ


haklı değilsin Tutamaç herhangi bir zaman diliminde veri verir. 10 saat sonra bir örnek vereceğim. mobilde yapamıyorum
 
Artyom Trishkin :
haklı değilsin Tutamaç herhangi bir zaman diliminde veri verir. 10 saat sonra bir örnek vereceğim. mobilde yapamıyorum

TAMAM. Cevap için teşekkürler


kendim düzelttim

Напррмер: iClose ( NULL , PERIOD_H1 , 5 ); на всех таймфреймах будут давать одно и тоже значение : Закрытие на 5 баре по Н 1 . 

Düşündüm belki öyle

 MqlParam params[]; 
//--- create iMA("EURUSD",PERIOD_M15,8,0,MODE_EMA,PRICE_CLOSE); 
   ArrayResize (params, 4 ); 
//--- set ma_period 
   params[ 0 ].type         = TYPE_INT ; 
   params[ 0 ].integer_value= 0 ; 
//--- set ma_shift 
   params[ 1 ].type         = TYPE_INT ; 
   params[ 1 ].integer_value= 0 ; 
//--- set ma_method 
   params[ 2 ].type         = TYPE_INT ; 
   params[ 2 ].integer_value= MODE_EMA ; 
//--- set applied_price 
   params[ 3 ].type         = TYPE_INT ; 
   params[ 3 ].integer_value= PRICE_CLOSE ; 
//--- create MA 
   h_MA= IndicatorCreate ( "EURUSD" , PERIOD_M15 , IND_MA , 4 ,params); 
//--- release indicators (first h_MACD) 
   
   if (h_MA== INVALID_HANDLE )
     {
       Print ( "The iMA (" , string ( PERIOD_M15 ), ") object was not created: Error " , GetLastError ());
       return INIT_FAILED ;
     }
//---
   return ( INIT_SUCCEEDED );

Ama ilk yöntemi kullanarak bir teknik göstergenin (iMA) değerini elde edebileceğinize beni ikna ederseniz, beklerim. Ama hala anlamıyorum...

 
kopeyka2 :

TAMAM. Cevap için teşekkürler


kendim düzelttim

Düşündüm belki öyle

Ama ilk yöntemi kullanarak bir teknik göstergenin (iMA) değerini elde edebileceğinize beni ikna ederseniz, beklerim. Ama hala anlamıyorum...

Yukarıda, farklı TF'lerdeki çubuk sayısının farklı olduğunu ve buna bağlı olarak, göstergenin hesaplanması gereken TF'ye bağlı olarak, kopyalama için farklı sayıda çubuk talep etmeniz gerektiğini gösterdim. Gösterge tarafından hesaplanan çubuk sayısını kontrol etmek ve bundan devam etmek için BarsCalculated() kullanın, burada MTF için böyle bir uygulamaya ilişkin bir örnek yer almaktadır.

 //+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   if (rates_total==prev_calculated) return (rates_total);
//---
   int     i;
   double diff;
//--- check for rates count
   if (rates_total<=ExtPeriodRSI)
       return ( 0 );
//---
   if (TF!= PERIOD_CURRENT )
   {
       if (handle== INVALID_HANDLE )
        {
         handle= iCustom ( Symbol (),TF,ind_name,Variant,RSIPeriod,Levl_Up,Levl_Down, PERIOD_CURRENT );
         return ( 0 );
        }
       else
        {
         int bars_calculated= BarsCalculated (handle);
                   //Print("Начнем расчет - " , bars_calculated);
         if (bars_calculated<= 0 ) return ( 0 );
         if ( Bars ( Symbol (),TF)!=bars_calculated)
           {
             for (i=rates_total-prev_calculated- 1 ;i>= 0 ;i--)
              {
               Delta[i]= 0.0 ;   
              }
             return (prev_calculated);
           } 
        }
 
Aleksey Vyazmikin :

Yukarıda, farklı TF'lerdeki çubuk sayısının farklı olduğunu ve buna bağlı olarak, göstergenin hesaplanması gereken TF'ye bağlı olarak, kopyalama için farklı sayıda çubuk talep etmeniz gerektiğini gösterdim. Gösterge tarafından hesaplanan çubuk sayısını kontrol etmek ve bundan devam etmek için BarsCalculated() kullanın, burada MTF için böyle bir uygulamanın bir örneğini bulabilirsiniz.

Teşekkür ederim. Deneyeceğim. Ancak daha önce belirtildiği gibi, dizi hiç boş. Sdigi I bir dizi üzerinde eller yaptı. hepsi boş
 
kopeyka2 :
Teşekkür ederim. Deneyeceğim. Ancak daha önce belirtildiği gibi, dizi hiç boştur. Sdigi I bir dizi üzerinde eller yaptı. hepsi boş
Verilerin farklı bir zaman diliminden yüklenmesini beklemenin gerekli olduğunu görmezden mi geliyorsunuz? örnekler verdim. Gösterilen göstergede, veriler yalnızca daha yüksek zaman dilimlerinden alınır. tf'yi mevcut olandan küçük veya eşit olarak ayarlarsanız, veriler mevcut olandan alınır. Bütün bunlar kodda, ama bakmaya zahmet etmedin. Ama açıklamalar yapıyorsun.
 
Artyom Trishkin :
Verilerin farklı bir zaman diliminden yüklenmesini beklemenin gerekli olduğunu görmezden mi geliyorsunuz? örnekler verdim. Gösterilen göstergede, veriler yalnızca daha yüksek zaman dilimlerinden alınır. tf'yi mevcut olandan küçük veya eşit olarak ayarlarsanız, veriler mevcut olandan alınır. Bütün bunlar kodda, ama bakmaya zahmet etmedin. Ama açıklamalar yapıyorsun.
Göstergenizi sadece bakmakla kalmadı, aynı zamanda vidayla söktü. İşte en başından beri veri aktarımı gecikmesi hakkındaki düşünce. Ve hemen, ilk görüşte, Zamanlayıcınızı gördüm. bu yöne bakacağım
 
kopeyka2 :
Göstergenizi sadece bakmakla kalmadı, aynı zamanda vidayla söktü. İşte en başından beri veri aktarımı gecikmesi hakkındaki düşünce. Ve hemen, ilk görüşte, Zamanlayıcınızı gördüm. bu yöne bakacağım
Mevcut TF'ye veri dönüştürme ile son döngüyü yorumlayın ve hesaplanan Mashek arabelleklerinden herhangi bir grafik arabelleğine veri aktarın ve grafikte ne görmek istediğinizi göreceksiniz.
 

şimdilik olsun

başka (yerel olmayan) bir zaman dilimi


 
kopeyka2 :

şimdilik olsun

başka (yerel olmayan) bir zaman dilimi


Veri alınmaması durumunda geri dönüş satırını bilerek mi yorumladınız? Ne için? Tekerleri söküp motor çalıyor diyorsanız direksiyon dönüyor ama araba çalışmıyor, yani çalışmıyor, bir şekilde zor.
 
kopeyka2 :
Teşekkür ederim. Deneyeceğim. Ancak daha önce belirtildiği gibi, dizi hiç boş. Sdigi I bir dizi üzerinde eller yaptı. hepsi boş

Daha önce size indikatörünüzün kodunun bir kısmını baskı ile vermiştim, kopyalamayı denediniz mi? Günlükte hiçbir şey görüntülenmiyor, hatalar değil, sayılar değil mi?