Hatalar, hatalar, sorular - sayfa 245

 

Ve geçmişi değiştirmek tesadüfen olmaz mı?

Her zaman sadece bir sembolde mi yoksa GBPUSD'de de gözleniyor mu?

Ne inşası? Hangi sunucu?

 

Tarihi değiştirip öyle bir an var ki,

Hem simbol1 hem de simbol2 için tüm döviz çiftlerinde mevcut değildir,

370 inşa, demo hesap (alpari-demo)


1 hindi bırakarak (yukarıdaki ekrana göre) yeniden çizimin devam ettiğini belirtmek isterim

çok belirgin değil ve TF'yi H1'e de koyarsanız, her 5 dakikada bir,

ve belki birkaç kez yeniden çizin.

Bilgisayarın takılabileceğini düşündük, ancak 2 çekirdekli olanda aynı şey ve grafik bile kaymıyor

bir saniye daha, (muhtemelen hindinin çalışmasını beklemek) veya başka bir şey?

Akşam SIX NUCLEUS'ta protesto edeceğiz!

Diğer benzer hindilerde hiçbir şey olmadığını da belirtmek isterim.

böyle, mesele karmaşık hesaplamalarda olamaz! bir türkiye sadece

ve Açık fiyatlar'da çalışıyor

 
alexluek :

Yardım! Gösterge iyi çalışıyor, her şey görüntüleniyor ve hesaplanıyor, ancak

yeni bir tik geldiğinde sıfırlanır ve hatlar yeniden oluşturulur

Bu, iletişim kaybının arka planına karşı düzenli olarak başıma geliyor. Bağlantı yeniden başladıktan sonra terminal gösterge değerlerini yeniden hesaplar, yeniden hesaplaması zaman alır. El Kitabından:

OnCalculate() işlevi tarafından döndürülen değer ile ikinci giriş parametresi prev_calculated arasındaki ilişkiye dikkat edin. İşlev çağrılırken prev_calculated parametresi , önceki çağrıda OnCalculate() işlevi tarafından döndürülen değeri içerir . Bu, bu işlevin önceki başlatılmasından bu yana değişmeyen çubuklar için yeniden hesaplamalardan kaçınmak için özel bir göstergeyi hesaplamak için ekonomik algoritmalar uygulamanıza olanak tanır.

Bunu yapmak için, geçerli işlev çağrısındaki çubuk sayısını içeren Rate_total parametresinin değerini döndürmek genellikle yeterlidir. OnCalculate() işlevine yapılan son çağrıdan bu yana fiyat verileri değiştiyse (daha derin bir geçmiş yüklendiyse veya geçmiş boşlukları doldurulduysa), prev_calculated girdi parametresinin değeri, terminalin kendisi tarafından sıfıra ayarlanacaktır .

Durumunuz tam olarak nedir bilmiyorum ama ben bu davranışı “tarihteki boşlukları doldurarak” açıklıyorum. Ya da belki gösterge sizin için ekonomik olmayan bir şekilde çalışıyor ve her bir tik varışında tüm değer aralığını yeniden hesaplıyor mu?

 

Bağlantı kaybı olmadı, keneler üzerinde yeniden çizim yapıldı ve daha fazla zaman dilimi, daha az sıklıkta.

Ve hesaplama yönteminde başlangıç tarihinden bitiş tarihine (3 tane olduğunu öğrendim) olmadan

çubuk sayısını belirlerken, muhtemelen olan budur (yeniden hesaplar

tüm çubuklar) ama bu hala yansıma - kontrol edeceğiz ...

Belki bunu aşmanın başka bir yolu vardır...

 
alexluek :

Bağlantı kaybı olmadı, keneler üzerinde yeniden çizim yapıldı ve daha fazla zaman dilimi, daha az sıklıkta.

Ve hesaplama yönteminde başlangıç tarihinden bitiş tarihine (3 tane olduğunu öğrendim) olmadan

çubuk sayısını belirlerken, muhtemelen olan budur (yeniden hesaplar

tüm çubuklar) ama bu hala yansıma - kontrol edeceğiz ...

Belki bunu aşmanın başka bir yolu vardır...

Elbette bir yaklaşım var. if(prev_calculated==0) ise tüm çubuklar için ilk hesaplamayı yaparız. Ardından, her yeni tik için (if 0 < prev_calculated < Rates_total) for(int i=prev_calculated-1;i<rates_total;i++) gibi sadece son görünen çubuklar için hesaplamalar yaparız.
 
Yedelkin :
Elbette bir yaklaşım var. if(prev_calculated==0) ise tüm çubuklar için ilk hesaplamayı yaparız. Ardından, her yeni tik için (if 0 < prev_calculated < Rates_total) for(int i=prev_calculated-1;i<rates_total;i++) gibi sadece son görünen çubuklar için hesaplamalar yaparız.
İyi bir fikir deneyeceğiz - cevap vereceğiz! Teşekkürler!
 

Geçerli grafiğin zaman çerçevesinin değerini bir dize olarak almak istiyorum. şöyle yazıyorum:

 ENUM_TIMEFRAMES period1= Period ();
string periodStr;
periodStr=PeriodStr(period1);

Ve derleyici bana 'PeriodStr' - işlevin tanımlı olmadığını söylüyor ...

Asıl mesele ne? Arkadaşlar lütfen yardım edin :-)

Sonuçta, yardımda böyle bir işlev var:

DönemStr

ENUM_TIMEFRAMES numaralandırma değerini bir dizgeye dönüştürür.

string PeriodStr (
    int    val        // anlam
)

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
 

Sevgili geliştiriciler, lütfen aşırı yüklenmiş bir işlevi çağırmanın belirsizliğinin ne olduğunu cevaplayın (derleyici buna yemin eder):

'set' - aşırı yüklenmiş işleve belirsiz çağrı

 class CA
  {
public :
   void set ( int i, int j, long n){Print( "перегрузка long" );};
   void set ( int i, int j, int n){Print( "перегрузка int" );};
  };

void OnStart()
  {
//---
   CA a;
   int Int= 3 ;
   long Long= 4 ;
   a. set ( 1 , 2 ,Int);
   a. set ( 1 , 2 ,Long);
  }

PS, ampirik olarak, birinci ve ikinci parametrelerdeki sabitleri int türündeki değişkenlerle değiştirirseniz, küfürün durduğunu öğrendi.

Ancak derleyici mantığı anlaşılmaz, ilk iki parametre tüm aşırı yüklemelerde aynıdır, varsayılan parametre yoktur.

Peki derleyici neden küfür ediyor, çağrının belirsizliği nedir?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 
denkir :

Geçerli grafiğin zaman çerçevesinin değerini bir dize olarak almak istiyorum. şöyle yazıyorum:

Ve derleyici bana 'PeriodStr' - işlevin tanımlı olmadığını söylüyor ...

Asıl mesele ne? Arkadaşlar lütfen yardım edin :-)

Sonuçta, yardımda böyle bir işlev var:

DönemStr

ENUM_TIMEFRAMES numaralandırma değerini bir dizgeye dönüştürür.

string PeriodStr (
    int    val        // anlam
)

Garip, referans kitabında böyle bir işlev - PeriodStr - bulamadım
 
denkir :

Geçerli grafiğin zaman çerçevesinin değerini bir dize olarak almak istiyorum. şöyle yazıyorum:

Ve derleyici bana 'PeriodStr' - işlevin tanımlı olmadığını söylüyor ...

Asıl mesele ne? Arkadaşlar lütfen yardım edin :-)

Sonuçta, yardımda böyle bir işlev var:

DönemStr

ENUM_TIMEFRAMES numaralandırma değerini bir dizgeye dönüştürür.

string PeriodStr (
    int    val        // anlam
)

Bu bir sınıf yöntemidir

https://www.mql5.com/ru/docs/standardlibrary/technicalindicators/cindicator

#include <Göstergeler\Gösterge.mqh>