MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 111

Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Nasıl olduğunu anlamıyorum, isimleri düzelttim, siparişin türü ne olursa olsun hat hala kırmızı oluyor, sadece farklı deniyor . (o zaman onu 10 bar kesmenin bir yolunu bulmalısın), tam olarak o yola ihtiyacın var
şimdi dene
Kaynağın burada asılı kalması iyi)
Derleme düğmesine bastığınızda, bot terminal ile birlikte ölür ve EX'i açtıktan sonra açılmıyor ve bu dosya boş.
Şuna benziyor.
Ben de baktım, mavi, yeşil, altın, beyaz koyarsanız bu renkler değişiyor ama koyu gri ve masmavi koymazsanız beyaz çıkıyor.
Kaynağın burada asılı kalması iyi)
Derleme düğmesine bastığınızda, bot terminal ile birlikte ölür ve EX'i açtıktan sonra açılmıyor ve bu dosya boş.
Şuna benziyor.
Ben de baktım, mavi, yeşil, altın, beyaz koyarsanız bu renkler değişiyor ama koyu gri ve masmavi koymazsanız beyaz çıkıyor.
string string_value, // строка
int start_pos, // с какой позиции начать
int length= 0 // длина извлекаемой строки
);
Teşekkür ederim!
Hala yardıma ihtiyaç var - bir satırda kaç karakter olduğunu bulmam gerekiyor - bu nasıl yapılır?
Bir dosyadan okunan satırı bölmek için StringSplit kullanıyorum . Ancak çıktı dizisi, birincisi hariç tüm satırları kaybeder. Çıktıda, dizinin boyutu doğru olmasına rağmen, ilk satır hariç tümü boştur.
Ayrıca, dizi dizilerinde garip davranışlarla karşılaşıldı. Bir dizideki dizeleri kaydetmek için iki boyutlu diziler yapmanız gerekir.
Bu davranışla karşılaşan var mı?
if ( StringFind ( fileBuffer[idx][ 0 ], "[Main]" ) >= 0 ) {
idx++;
Print ( "Buffer(main) = " + fileBuffer[idx][ 0 ] ); // debug
if ( StringFind ( fileBuffer[idx][ 0 ], "Kit_Names=" ) >= 0 ) {
Print ( "check1 - " + fileBuffer[idx][ 0 ] ); // debug
string tmp = StringSubstr ( fileBuffer[idx][ 0 ], 10 );
Print ( tmp ); // debug
StringReplace ( tmp, "\"" , "" );
Print ( tmp ); // debug
Print ( StringSplit ( tmp, sep, list ) );
Print ( "check22 - " + tmp ); // debug
for ( int i = 0 ; i < ArrayRange (list, 0 ); i++) Print (list[i][ 0 ]); // debug
}
}
idx++;
}
Teşekkür ederim!
Hala yardıma ihtiyaç var - bir satırda kaç karakter olduğunu bulmam gerekiyor - bu nasıl yapılır?
Bir dizedeki karakter sayısını döndürür.
string string_value // строка
);
Bir dizedeki karakter sayısını döndürür.
string string_value // строка
);
EA'nın küresel düzeyinde bir dizi ilan ediyorum. Ardından, özel init() işlevinde diziyi dize sabitleriyle dolduran kullanıcı tanımlı bir işlev çağırırım.
Ayrıca start () özel fonksiyonunda sadece veri okumak için bir dizi kullanıyorum.
Danışmanın çalışmasından bir süre sonra, diğer veriler diziye girer. Yani, Expert Advisor'ı başlatarak, çalışması sırasında dizinin değişmeden kalmasını bekliyorum, ancak veriler bir şekilde diziye giriyor ve yalnızca bir süre sonra (10 dakikadan fazla). EA yeniden başlatıldığında, doğal olarak dizi olması gerektiği gibi dolduruluyor ancak bir süre sonra yine bana net olmayan nedenlerden dolayı diziye yanlış değerler giriyor.
Çıktıyı yalnızca dizi sürekli olarak start () içinde yeniden dolduruluyorsa görebiliyorum, ancak dizinin gerçekten yalnızca başlatma sırasında doldurulması gerektiğinden bir şekilde bundan gerçekten hoşlanmıyorum.
Ne yanlış olabilir? Bir dizi değişikliklerden nasıl korunur?
Lütfen bana söyle.
...
Ne yanlış olabilir? Bir dizi değişikliklerden nasıl korunur?
Lütfen bana söyle.
EA'nın küresel düzeyinde bir dizi ilan ediyorum. Ardından, özel init() işlevinde diziyi dize sabitleriyle dolduran kullanıcı tanımlı bir işlev çağırırım.
Ayrıca start () özel fonksiyonunda sadece veri okumak için bir dizi kullanıyorum.
Danışmanın çalışmasından bir süre sonra, diğer veriler diziye girer. Yani, Expert Advisor'ı başlatarak, çalışması sırasında dizinin değişmeden kalmasını bekliyorum, ancak veriler bir şekilde diziye giriyor ve yalnızca bir süre sonra (10 dakikadan fazla). EA yeniden başlatıldığında, doğal olarak dizi olması gerektiği gibi dolduruluyor ancak bir süre sonra yine bana net olmayan nedenlerden dolayı diziye yanlış değerler giriyor.
Çıktıyı yalnızca dizi sürekli olarak start () içinde yeniden dolduruluyorsa görebiliyorum, ancak dizinin gerçekten yalnızca başlatma sırasında doldurulması gerektiğinden bir şekilde bundan gerçekten hoşlanmıyorum.
Ne yanlış olabilir? Bir dizi değişikliklerden nasıl korunur?