Hatalar, hatalar, sorular - sayfa 2750

 
fxsaber :

Üzgünüm, iyi ifade edemiyorum.

En utanç verici olan şey, nokta tam olarak işlevde olmasına rağmen, başlangıçta dizelere odaklanmanızdı.

fonksiyon önbelleği ile test hemen yapılsaydı, çok daha net olurdu

 
Sergey Dzyublik :

Soruna olası bir çözüm olarak, geliştiriciler önceden tanımlanmış bir değişken sunmaya davet edilir:

Ve neden aralıklı iki ardışık çağrı aynı sonucu versin?

 void f()
{
    MqlTick tick1, tick2; 
   SymbolInfoTick ( Symbol (),tick1); //1
   /*вычисления*/
   SymbolInfoTick ( Symbol (),tick2); //2
}
 const MqlTick _Tick;
void f()
{
   MqlTick tick1, tick2; 
   tick1 = _Tick; //1
   /*вычисления*/
   tick2 = _Tick; //2
}
 
A100 :

Ve neden aralıklı iki ardışık çağrı aynı sonucu versin?

yapmamalı. ancak normların yerel sembolü üzerindeki test için.
 
A100 :

Ve neden aralıklı iki ardışık çağrı aynı sonucu versin?

Çünkü biz sadece Uyku kullanmadan Test Cihazından bahsediyoruz - Uzman Danışmanların %99'u.

Test Cihazının keyfi gecikmeleri konusunda iddiada bulunmayacağım, çünkü. bu modu hiç faydalı görmedim.

 
fxsaber :

Test Cihazının keyfi gecikmeleri konusunda iddiada bulunmayacağım, çünkü. bu modu hiç faydalı görmedim.

yalnızca siparişlerle çalışma işlevlerinde hata ayıklamak için kullanılır

testçinin grafiğini, eğimini ne ölçüde değiştireceğini görmek oldukça uygundur, yani. piyasa emirleriyle çalışırken ticaret mantığı ne kadar kötü

 
Sergey Dzyublik :

ME hata ayıklayıcısında hata (derleme 2370) - bir kesme noktası tetiklendikten sonra, (F5) tuşuna basıldığında kod yürütmeye devam etmek yerine, aynı kesme noktası aslında herhangi bir kod yürütülmeden yeniden tetiklenir.

Oynatma adımları:
1)
Her iki satır için manuel olarak bir kesme noktası ayarlayın " arr.Add()";
2) Hata ayıklamayı başlatın (F5);
3) RMB'yi kullanarak ekli <Generic\ArrayList.mqh> dosyasını yeni bir sekmede açın.
4) "bool CArrayList::Add(T item)" işlevinde "if(m_size==ArraySize(m_items))" satırını bulun ve kesme noktasını manuel olarak ayarlayın .
5) "
ArrayList.mqh" sekmesinde kod çalıştırmaya devam edin (F5).

Sonuç olarak, aynı
kesme noktası, herhangi bir gerçek kod yürütmesi olmadan daha önce olduğu gibi tetiklenecektir.

Mesaj için teşekkürler.

düzeltildi

 
fxsaber :

Çünkü biz sadece Uyku kullanmadan Test Cihazından bahsediyoruz - Uzman Danışmanların %99'u.

Test Cihazının keyfi gecikmeleri konusunda iddiada bulunmayacağım, çünkü. bu modu hiç faydalı görmedim.

Hiçbir şeyi temelden değiştirmeden, kaydı yapmak (aslında öyle) daha kolaydır:

 SymbolInfoTick ( NULL , tick ); //1

anlamına gelir

 SymbolInfoTick ( Symbol (), tick ); //2

en azından satırları kopyalama sorunu ortadan kalkar

 
A100 :

Hiçbir şeyi temelden değiştirmeden, kaydı yapmak (aslında öyle) daha kolaydır:

anlamına gelir

en azından satırları kopyalama sorunu ortadan kalkar

sonunda başka bir şey ister, her onayda MqlTick yapısına en hızlı şekilde erişmeniz gerekir

_Symbol .... öğesine erişim olduğu konusunda bir paradoks var gibi görünüyor, ancak böyle bir erişim yok

 const MqlTick _Tick; // Текущий _Symbol-тик.

MQL dili ticaret stratejileri geliştirmek için bir dil olarak konumlandırılmış olsa da.... Mevcut kenedeki mevcut fiyatları bilmiyorsanız TS'nin ne olduğunu bilmiyorum

 
Igor Makanu :

sonunda başka bir şey ister, her onayda MqlTick yapısına en hızlı şekilde erişmeniz gerekir

seçenek nedir

 SymbolInfoTick ( NULL , tick ); //1

tatmin edici değil? Buradaki darboğazın nerede olduğunu göster? Bu yavaşsa, Geliştiriciler böyle bir çağrıyı satır içi / optimize etme fırsatına sahiptir - temel değişiklikler olmadan

 
A100 :

seçenek nedir

tatmin edici değil? Bu yavaşsa, Geliştiriciler böyle bir çağrıyı satır içi / optimize etme fırsatına sahiptir.

evet yavaş, en azından test cihazında, test cihazında böyle yazıyorum https://www.mql5.com/ru/forum/1111/page2749#comment_16487642

çok sayıda optimize edici geçişi ile bir kazanç görünür


Nasıl anlatacağımı bilmiyorum, temel şeyleri nasıl anlatacağımı bilmiyorum..

Peki, EA nasıl yazılır? - prosedürel veya OOP tarzında kendiniz için bir kitaplık topluyorsunuz, her işlev başka bir projeye tamamen taşınabilir ve bunu sağlamak için Teklif Ver, Her Yere Sor yazın - benim örneğim. Ardından, boşluklardan bir ticaret stratejisi oluşturursunuz. Geliştiricilerin şu anda sundukları - her yere SymbolInfoDouble () yazıyorsunuz