Hatalar, hatalar, sorular - sayfa 1341

 

metaeditor(64)?.exe'nin yerleşik bir derleyicisi var, değil mi? Buna göre, mql(64)?.exe çok "ayrı", kendi içinde kendi kendine yeterli derleyicidir.

Bu nedenle, sorum doğruydu ve cevabınız "Her durumda, komut satırından eski dosyaların akıllı yerleşimi yapılmaz. Bu sadece editör tarafından ve sadece pencereli modda yapılabilir." tam olarak cevaplıyor.

Bunun için aslında teşekkürler.

 

MetaEditor'da R:\ olarak arama yaparken belirtilen yol

Arama sonuçlarında R:\\ olarak görünür

Çalışmayı etkilemez, ancak lütfen gizli hataları kontrol edin (örneğin, R:\\\\\\\ yolunu ayarlayabilirsiniz)

 

Windows 10, MT4 Build 854 garip başlıklar (yaymak yerine "!" yazıyor), tüm menü öğeleri çevrilmiyor ve menüde boş bir öğe var:


 
Planlanmamış değer değişikliği
 #import "Test.dll"
         void f( const int & x[] );
#import
void OnStart ()
{
         int x[ 1 ] = { 1 };
         int y = x[ 0 ];
         Print ( "y=" , y ); //  здесь y = 1
        f( x );
         Print ( "y=" , y ); //а здесь y = 2, но я его явно не менял
}
//Test.cpp
void WINAPI f( int x[] ) { x[ 0 ] = 2 ; }

Burada f()'nin #import'ta yanlış tanımlandığı açıktır, ancak soru x'in neyi değiştirdiği değil, y'yi neyin değiştirdiğidir.

Belki derleyicinin x - uçucu olduğunu düşünmesi mantıklıdır (.dll'den çağrılan işlevlere referansla geçirilen değişkenleri etkileyen kodu optimize etmemesi anlamında). Böyle bir optimizasyonun yokluğunun neredeyse algılanamayacağı ve sonuçlarının sonuç için önemli olacağı dikkate alındığında.

 
Artyom Trishkin :

Windows 10, MT4 Build 854 garip başlıklar (yaymak yerine "!" yazıyor), tüm menü öğeleri çevrilmiyor ve menüde boş bir öğe var:

onaylıyorum.
 

Yanılıyor olabilirim, ancak NULL, değişkenleri sıfıra ayarlamak için kullanıldığında değişkeni sıfıra başlatır.

yardım diyor

Синтаксически тип void является фундаментальным типом наравне с типами char , uchar , bool , short , ushort , int , uint , color , long , ulong , datetime , float , double и string . 
Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.

Предопределенная константная переменная NULL имеет тип void . Она может быть присвоена переменным любых других фундаментальных типов без преобразования. 
Также допускается сравнение переменных фундаментальных типов со значением NULL

Teorik olarak, NULL kullanıldığında, string türündeki bir değişken durumunda olduğu gibi değişkenin boş olması ve ne 0 ne de - ne de + içermesi gerektiği ortaya çıktı.

string türünde bir değişken başlatılırken text = NULL; daha sonra değişken boştur ve diğer türler başlatıldığında 0 atanır.

 
Artyom Trishkin :

Windows 10, MT4 Build 854 garip başlıklar (spread "!" ile değiştirilir)

yayılma çok geniş bir isim, MT5'te hem Genel Bakış'ta hem de Alıntı Penceresinde her zaman olmuştur!

 
A100 :

yayılma çok geniş bir isim, MT5'te hem Genel Bakış'ta hem de Alıntı Penceresinde her zaman olmuştur!

Belki dikkat etmedim ama en azından "SP" daha bilgilendirici olurdu
 

854 derlemesinde ilginç bir hata daha var

Uzmanlarda bulunan bir test klasörüm var, kaynak kodunu ve test adlı uygulayıcıyı içeriyor.

Uzmanların ana dizininde, kaynak kodu ve yürütülebilir dosya ile birlikte test adlı bir dosya vardır ve bu nedenle ikincisini derlerken, ilki test için terminale kurulur.

Yani Experts\\Test ismi ve konumu ile bir Expert Advisor'ı test etmek istiyorum ve terminalde derlerken Experts\\Test\\Test her seferinde otomatik olarak ayarlanıyor, Expert Advisor'ı her seferinde yeniden düzenlemem gerekiyor. zaman.

Stresli...

 

Merhaba sevgili tüccarlar,

Lütfen bir sorunu çözmeme yardım edin:

SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_VALUE ) işlevi, #IBM_L sembolü için 0 döndürür.

Terminal LiteForex MT5 Terminal x64 build 1150 başladı (Liteforex Investments Limited).

Hesap para birimi EUR.

Uygulamada test komut dosyası.

Günlük çıktıları:

2015.08.12 22:23:51.930 TestTickValue (#IBM_L,H1) Tick value = 0.00000.

İşlem hacmini hesaplamak için bu değere ihtiyacım var.

double lots = loss * cSymbolInfo.TickSize() / ( priceDiff * cSymbolInfo.TickValue() );

Kodda, TickValue() öğesini çağırmadan önce cSymbolInfo.Name(symbol) öğesini doğru şekilde seçiyorum. Kod, EURUSD gibi diğer enstrümanlar için çalışır.

Dosyalar: