Hatalar, hatalar, sorular - sayfa 589

 
Ashes :

Daha geniş bakmalısın (c)

Bulut üzerinden ayrı bir çalışma başlatmak için herhangi bir kontrendikasyon görmüyorum (belki fiyat dışında).

Bulutta tek bir çalıştırma, çoğu durumda yerel bir çekirdeğe göre daha yavaş olacaktır.
 
joo :
Bulutta tek bir çalıştırma, çoğu durumda yerel bir çekirdeğe göre daha yavaş olacaktır.
https://www.mql5.com/en/forum/1111/page598#comment_125691 Yukarıda bir komut dosyası var. CAN kelimesine dikkat edin. Kısıtlama çok uzak görünüyor.
 

Bir problem vardı.

OnCalculate() içindeki gösterge kodu aşağıdaki satırı içerir (daha doğrusu birkaç benzer satır):

 ArrayInitialize (FractalsBuffer, EMPTY_VALUE );
FractalsBuffer yardımcı bir hesaplama değil, doğrudan grafik yapılardan sorumlu ana tampondur, bu nedenle bağlantılı olmalıdır:
 SetIndexBuffer ( 0 ,FractalsBuffer, INDICATOR_DATA );

hangi yapıldı. Ancak bağlama işlevinin, bazen yan etki olarak işlev gören (kelimenin kötü anlamında) bazı doğrudan etkileri vardır. CopyBuffer (ind_handle,0,0,amount,FractalsBuffer) aracılığıyla arabellek, zaman çerçevesi geçmişinin tüm uzunluğu boyunca değil, küçük segmentinden miktara göre yalnızca kısmen doldurulur. Ancak ArraySize (FractalsBuffer), arabellek boyutunun (yani, işgal edilen fiziksel bellek) tüm geçmişin çubuk sayısına karşılık geleceğine, yani sonunda verimsiz kısım da dahil olmak üzere tam olarak kullanılacağına bizi açıkça ikna ediyor. Tabii ki, daha sonra bir döngüde tampon değerleri ile çalışırsanız, tüm tamponu taramak hiç gerekli değildir, gerekli sınırları belirlemek ve bunlar içinde çalışmak yeterlidir. Ama ilk olarak, bu canavarca bellek yeniden tahsisini iptal etmez ve ikincisi, kodda kaçınılmaz olan ArrayInitialize işlevi, tamponun gerekli değerle kısmi başlatılmasına izin vermez , tam olarak zaman ve watt harcamanız gerekir. yeniden başlatma. Bu, göstergenin belirgin şekilde daha yavaş çalışmasını sağlar. Üçüncü olarak, ArrayResize işlevinin açıklamasından bir alıntı ve referanslar: " SetIndexBuffer () işlevi tarafından gösterge arabellekleri olarak atanan dinamik dizilerin boyutunu değiştiremeyeceğiniz akılda tutulmalıdır . " ArrayResize kullanarak arabellek boyutunu elle manipüle ederseniz , gösterge grafiklerinin kendisi çökecektir .

Lütfen bana iyileşmenin tarifini söyle. Veya bunu, dildeki belirli bir sorunu düzeltme talebi olarak kabul edin.
 
x100intraday :

Bir şekilde FSE çalışıyor ..

1. Arabelleği başlangıçta bir kez başlatmak mantıklıdır, if(prev_calculated==0)

2. Verilerin hangi çubuktan alınacağını şu şekilde ayarlayabilirsiniz: PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,rates_total-amount-1);

3. Tüm arabellek değerlerini açıkça, tarih boyunca bir kez, ardından yalnızca yenilerini atayın, ardından başlatma gerekli değildir.

4. Terminal ayarlarında penceredeki çubuk sayısını azaltın :)

 
Swan :

Bir şekilde FSE çalışıyor ..

1. Arabelleği başlangıçta bir kez başlatmak mantıklıdır, if(prev_calculated==0)

2. Verilerin hangi çubuktan alınacağını şu şekilde ayarlayabilirsiniz: PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,rates_total-amount-1);

3. Tüm arabellek değerlerini açıkça, tarih boyunca bir kez, ardından yalnızca yenilerini atayın, ardından başlatma gerekli değildir.

4. Terminal ayarlarında penceredeki çubuk sayısını azaltın :)

1. Gerçekten: Bir fikir düzeyinde, bunu yalnızca bir kez yapmak mantıklıdır, ancak pratikte her şey o kadar basit değil, her şey gerçekten çalışıyor. Az önce standart bir göstergeden kopyalayıp yapıştırdım: C:\Program Files\MetaTrader 5\MQL5\Indicators\Examples\Fractals.mq5 . Yeni hesaplamalardan önce arabelleği farklı ve daha verimli bir şekilde nasıl temizleyeceğimi bilmiyorum.

2. Henüz bu olasılığı tanımak için zamanım olmadı, ancak önceden gereksiz bir bölgeye bir gösterge çizmemiş gibi görünüyor, ancak bu, gösterge arabelleğinin boyutunu sınırlamayacaktır. Ek olarak, arka arkaya faydalı verilerle dolu bir arabellekle çalışmak benim için temelde daha uygun, ücretsiz kenar boşluğu olmadan, aksi takdirde sınırlar getirmem gerekecek (önceki bir gönderide bahsettiğim) ve bu işe yarıyor genel rahat Ortodoks algoritmasına uymuyor: dört tampondan üçü aynı sınırlara sahip bir döngüde taranacak ve bir tanesi için bir yere sıkıştırabileceğiniz farklı sınırlara sahip ayrı bir kavisli döngü yapmak zorunda kalacağım başka. Evet olsa da, koltuk değneği üzerinde de emekleyebilirsiniz ...

3. Açıkça ne anlama geliyor? Açıkça atamadığım şey için kesinlikle kefil olmam. Ben açıkça atamış olabilirim. Açıklamak? Yalnızca yeni değerleri yüklemeye gelince - tabii ki kullanıyorum, burada tutumlu bir algoritma deniyor.

4. Bu fikri bir önceki gönderiyi yazmadan önce reddettim, çünkü göstergenin geçmişin son birkaç (yeni) çubuğuna ihtiyacı var ve benim için kişisel olarak (görsel yön) tüm çubuklara veya neredeyse tüm çubuklara ihtiyaç var. Tarihteki çubuklara olan insani ilgim, onlardaki teknik bir göstergenin çıkarlarından daha geniştir. Çubuklara hayran olmak ve aynı grafik içinde bir gösterge çizmek istiyorum. Heves? Sıradan ihtiyaç.

 
x100intraday :

1. Gerçekten: Bir fikir düzeyinde, bunu yalnızca bir kez yapmak mantıklıdır, ancak pratikte her şey o kadar basit değil, her şey gerçekten çalışıyor. Az önce standart bir göstergeden kopyalayıp yapıştırdım: C:\Program Files\MetaTrader 5\MQL5\Indicators\Examples\Fractals.mq5 . Yeni hesaplamalardan önce arabelleği farklı ve daha verimli bir şekilde nasıl temizleyeceğimi bilmiyorum.

   if (prev_calculated< 7 )// if (prev_calculated==0)// if (prev_calculated<1)// вопщем одинаково)
      //Initialize только при первом запуске. нуу или при случае какогнить ахтунга)
      {
      limit= 2 ;//цикл начинается со второго элемента индикаторного массива
      //--- clean up arrays //в принципе здесь не очистка массива, 
                        //а значения EMPTY_VALUE присваивается 0 и 1 элементу массивов, мм.. и на последних трёх барах)
                        //остальные определяются далее в цикле..
      ArrayInitialize (ExtUpperBuffer, EMPTY_VALUE );
      ArrayInitialize (ExtLowerBuffer, EMPTY_VALUE );
      }
   else limit=rates_total- 5 ;//иначе - в цикле пересчитываются только два последних значения

//зы: при появлении нового бара - новый элемент массива вроде как не определен, насколько мне известно не гарантируется, что он будет  == EMPTY_VALUE
2. Henüz bu olasılığı tanımak için zamanım olmadı, ancak önceden gereksiz bir bölgeye bir gösterge çizmemiş gibi görünüyor, ancak bu, gösterge arabelleğinin boyutunu hiçbir şekilde sınırlamayacaktır. Ek olarak, arka arkaya faydalı verilerle dolu bir arabellekle çalışmak benim için temelde daha uygun, ücretsiz kenar boşluğu olmadan, aksi takdirde sınırlar getirmem gerekecek (önceki bir gönderide bahsettiğim) ve bu işe yarıyor genel rahat Ortodoks algoritmasına uymuyor: dört tampondan üçü aynı sınırlara sahip bir döngüde taranacak ve bir tanesi için bir yere sıkıştırabileceğiniz farklı sınırlara sahip ayrı bir kavisli döngü yapmak zorunda kalacağım başka. Evet olsa da, koltuk değneği üzerinde de emekleyebilirsiniz ...

Yani evet, bu doğru.

Gösterge arabelleğinin boyutu yalnızca çubuk sayısıyla belirlenir.

Bir fi, bazı boyutların ayarlanması gerekecek .. Aynı sınırlarla düz bir şekilde yapmak varken neden diğer sınırlarla kavisli bir döngü yapsın?)

Döngünün boyutunu ayarlamak ve dizinin boyutuna göre dans etmemek Ortodoks'tur .. aksi takdirde gösterge koltuk değneklerine dayanacaktır.


3. Açıkça ne anlama geliyor? Açıkça atamadığım şey için kesinlikle kefil olmam. Ben açıkça atamış olabilirim. Açıklamak? Yalnızca yeni değerleri yüklemeye gelince - tabii ki kullanıyorum, burada tutumlu bir algoritma deniyor.
       //---- Upper Fractal
       if (High[i]>High[i+ 1 ] && High[i]>High[i+ 2 ] && High[i]>=High[i- 1 ] && High[i]>=High[i- 2 ])
         ExtUpperBuffer[i]=High[i];//условие выполняется - присваиваем значение
       else ExtUpperBuffer[i]= EMPTY_VALUE ;//не выполняется - таки тоже присваиваем значение)
//нет зависимости от Initialize, всем элементам в цикле явно присваивается значение.

Ekonomik algoritmaya gelince - ne kullandığınızdan gerçekten emin değilim

Tüm çubuklar için gösterge bir kez hesaplanır - yani. tarım-çılgın bir tarihe başlarken biraz yavaşlayabilir.

Gelecekte, birkaç değer yeniden hesaplanacak - FSE olmalı :)

 
Cmu4 :

Göstergelerdeki hata nedir??? Görünürler ve kaybolurlar. Ve sadece ayrı bir pencerede olanlar!!!

İşte göstergelerin kaybolduğu anın ekran görüntüsü. Kaybolurlar, sonra ortaya çıkarlar .. rastgele. videosu da var..

Dikkat, temel göstergeler kayboluyor!! Bu, hatanın önemli olduğu anlamına gelir. Kullanıcıda da aynı sorun var.

Beyler geliştiriciler, lütfen bu hatayı düzeltin, aksi halde bir şekilde sağlam değil ..

Maalesef ekranda görünmüyor.

Hangi sunucu? Hangi erişim sunucusu? Hangi tarih/saat? O zaman bir tarih takası var mıydı?

Şimdi tekrarlanıyor mu? Bu tarih için terminal günlüklerini ekleyebilir misiniz?

 

Sayın   geliştiriciler, MQL 5 derleyicisinde hoş olmayan bir hata (kusur) keşfetti.

Koşullu bir yapı kullanırsanız   sonraki   tür

Eğer (Koşul)    ;

{ operatör_1

……

Operatör_N }

Bu, kod derlenirken herhangi bir hata veya uyarı verilmediği anlamına gelir.

Ama aynı zamanda, olduğundan   sembol "; » (boşluklu veya boşluksuz)   durumun hemen ardından   sonra {operator_1…operator_ N } her zaman yürütülür.

MQL 4'te bu durumda bir uyarı çıkıyor, MQL 5'te de bir hata veya uyarı görmek istiyorum! (aksi halde kodumdaki hatanın ne olduğunu çözerken yarım gün kaybettim)

İlginiz için teşekkür ederim!

 
Fia :

Sayın   geliştiriciler, MQL 5 derleyicisinde hoş olmayan bir hata (kusur) keşfetti.

Koşullu bir yapı kullanırsanız   sonraki   tür

Eğer (Koşul)    ;

{ operatör_1

……

Operatör_N }

Bu, kod derlenirken herhangi bir hata veya uyarı verilmediği anlamına gelir.

Ama aynı zamanda, olduğundan   sembol "; » (boşluklu veya boşluksuz)   durumun hemen ardından   sonra {operator_1…operator_ N } her zaman yürütülür.

MQL 4'te bu durumda bir uyarı çıkıyor, MQL 5'te de bir hata veya uyarı görmek istiyorum! (aksi halde kodumdaki hatanın ne olduğunu çözerken yarım gün kaybettim)

İlginiz için teşekkür ederim!


Bu durumda, her şey geçerlidir. ; boş bir operatördür .

Teklifinizi (bir uyarı vererek) düşüneceğiz, ancak şu anda bu en yüksek öncelikli görev değil.

Документация по MQL5: Основы языка / Операторы / Оператор-выражение
Документация по MQL5: Основы языка / Операторы / Оператор-выражение
  • www.mql5.com
Основы языка / Операторы / Оператор-выражение - Документация по MQL5
 
alexvd :

Bu durumda, her şey geçerlidir. ; boş bir operatördür .

Teklifinizi (bir uyarı vererek) düşüneceğiz, ancak şu anda bu en yüksek öncelikli görev değil.

MQL4'te olduğu gibi yapmayı unutmazsınız umarım mantıklı bir şekilde yapılmıştır.


Bir dakika daha söyle, bekleyen iki emir var (ayarlarının fiyatı, türü ve hacmi aynı)

Fiyata ulaşıldığında ikisi de çalışacak, bu durumda OnTrade() olayı nasıl çalışacak?

Özellikle, yürütülen bekleyen emirler bir OnTrade() olayında geçmişe mi gidecek yoksa iki çağrıyı uyandıracak mı? (kayıtlara göre, nedense bir çağrı alıyorum)

Cevabın için teşekkürler!

Neden: