Hatalar, hatalar, sorular - sayfa 1396

 
Ilya Malev :
Örnekte MathRand'i sadece ölçeğin nasıl çalıştığını göstermek için yaptım. Orijinalde, bazı yazarların ticaret tekniğine göre orada sayısal seviyelerin hesaplanması vardı. Başlangıçta 1'den 5'e kadar yapmak istediler ama DRAW_NONE ile tamponda bu tür değerlerle MT4'te bile yeterli bir ölçek elde edilemedi. Bunları negatif yapıp minimumu 0'a sabitledikten sonra sorunu çözmeyi başardık. Göstergeyi MT5'e aktarırken, bu çözümün de işe yaramayacağı ortaya çıktı. Voldemar'ın dediği gibi Nokta ile çarpmam gerekiyordu.

Bu arada, tamamen unutmuşum. ))

Şu şekilde deneyin:

   SetIndexBuffer ( 0 ,buffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,buffer2, INDICATOR_CALCULATIONS );

GÖSTERGE_HESAPLAMALAR >>>

 
Karputov Vladimir :
Bir örnek eğriniz ve düzeltmek istemiyorsunuz. Düzelttiğinde kontrol edeceğim.

Gerçek uygulama kodu olsaydı düzeltirdim. Ancak bu kod, yalnızca başarıyla başa çıktığı sorunu göstermek için oluşturuldu. Yalamak, sonucu etkilemeyeceği için zaman kaybıdır.

 
Anatoli Kazharski :

Bu arada, tamamen unutmuşum. ))

Şu şekilde deneyin:

INDICATOR_CALCULATIONS ile gösterge_plots=1 gibi denendi

ikinci tamponun okumaları, PlotIndexSetInteger(1, PLOT_SHOW_DATA, true) ne olursa olsun veri penceresinden basitçe kaybolur;

 
Anatoli Kazharski :

Bu hatayı servis masasına bildirmeyi deneyebilir ve orada bir yanıt bekleyebilirsiniz.

yazdı. Cevap verirlerse abonelikten çıkacağım) Doğru, bunun bir hata olduğundan şüpheliyim. Burada öğreneceğiz.
 
Ilya Malev :

INDICATOR_CALCULATIONS ile gösterge_plots=1 gibi denendi

ikinci tamponun okumaları, PlotIndexSetInteger(1, PLOT_SHOW_DATA, true) ne olursa olsun veri penceresinden basitçe kaybolur;

Ancak ölçekleme sorunu bu şekilde çözülür. Böylece, yalnızca bu tür arabellekleri veri penceresinde görüntüleme yeteneği eklemek için hizmet masasına bir istek oluşturabilirsiniz.

Bunu yapmayı da deneyebilirsiniz:

 //+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int     id,       // идентификатор события
                   const long    &lparam, // параметр события типа long
                   const double &dparam, // параметр события типа double
                   const string &sparam) // параметр события типа string
  {
   if (id== CHARTEVENT_MOUSE_MOVE )
     {
       int       subwin = WRONG_VALUE ; // Номер окна, в котором находится курсор
       datetime time   = NULL ;         // Время соответствующее координате X
       double    level  = 0.0 ;         // Уровень (цена) соответствующий координате Y
       //---
       if ( ChartXYToTimePrice ( 0 ,( int )lparam, int (dparam),subwin,time,level))
        {
         int bars_total= Bars ( Symbol (), Period (),time, TimeCurrent ());
         //---
         Comment ( "x: " ,lparam, "; y: " ,( int )dparam, "; subwin: " ,subwin, "; time: " ,time, "; level: " ,level, "\n" ,
                 "indicator value: " ,buffer2[bars_total]);
        }
     }
  }

//---

OnInit () içinde ayrıca şunları da eklemeniz gerekir:

 void OnInit ()
  {
   ChartSetInteger ( 0 , CHART_EVENT_MOUSE_MOVE , true );
  }
 
Anatoli Kazharski :

Böylece, yalnızca bu tür arabellekleri veri penceresinde görüntüleme yeteneği eklemek için hizmet masasına bir istek oluşturabilirsiniz.

Az önce sorunu anlattım, DRAW_NONE tampon değerlerinin mantığı tanım olarak çizim ile değerlerin mantığından farklıdır, bunlar grafiksel değerler değildir ve bu nedenle onlarla ölçekleme yapmak mantıklı değildir. Ve bu sorunu nasıl çözmek ya da olduğu gibi bırakmak artık benim işim değil.

 
Ilya Malev :

Az önce sorunu anlattım, DRAW_NONE tampon değerlerinin mantığı tanım olarak çizim ile değerlerin mantığından farklıdır, bunlar grafiksel değerler değildir ve bu nedenle onlarla ölçekleme yapmak mantıklı değildir. Ve bu sorunu nasıl çözmek ya da olduğu gibi bırakmak artık benim işim değil.

Bir önceki gönderi çalışmıyor mu? Her şeyin olduğu gibi kalması durumunda. )

Dosyalar:
Test.mq5  4 kb
 
Anatoli Kazharski :

Bir önceki gönderi çalışmıyor mu? Her şeyin olduğu gibi kalması durumunda. )

Tabii tavsiyen için teşekkürler, bir çeşit koltuk değneği ile gelmek istesem ben de bir şeyler düşünürdüm ama öncelikle data penceresindeki değerlere bakmamız uygun olur. İkincisi, gösterge arabelleğinin bu değerini diğer göstergelerde ve Uzman Danışmanlarda kullanmanız gerekir, ancak bir şey bana hesaplamalar için bir arabellek yaparsanız, değerlerini iCustom aracılığıyla almanın imkansız olacağını söylüyor.

Sonuç olarak ikinci tamponun değeri Point ile çarpılarak problem çözülürken

 
Ilya Malev :

Az önce sorunu anlattım, DRAW_NONE tampon değerlerinin mantığı tanım olarak çizim ile değerlerin mantığından farklıdır, bunlar grafiksel değerler değildir ve bu nedenle onlarla ölçekleme yapmak mantıklı değildir. Ve bu sorunu nasıl çözmek ya da olduğu gibi bırakmak artık benim işim değil.

Her şey değerleri nereye eşlemek istediğinize bağlıdır. Ekranı ayrı bir pencereye ayarlarsanız, hesaplanan arabellek değerlerinin görünür olup olmadığı önemli değildir. Tüm değerler yine de bu pencereye düşecektir. Buna göre, ölçek kırılabilir.

Mantık değil - katılıyorum, ancak düzeltmeleri pek mümkün değil.

 
Ilya Malev :

Tabii tavsiyen için teşekkürler, bir çeşit koltuk değneği ile gelmek istesem ben de bir şeyler düşünürdüm ama öncelikle data penceresindeki değerlere bakmamız uygun olur. İkincisi, gösterge arabelleğinin bu değerini diğer göstergelerde ve Uzman Danışmanlarda kullanmanız gerekir, ancak bir şey bana hesaplamalar için bir arabellek yaparsanız, değerlerini iCustom aracılığıyla almanın imkansız olacağını söylüyor.

Dene. Renk arabelleğinden değerleri çıkarabilirsiniz. Yani, belki de, hesaplamalar için arabellekten - çok. Sonuçta, bir indeksi var, yani. ve teorik olarak onunla iletişime geçebilirsiniz.