Hatalar, hatalar, sorular - sayfa 2460
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
Aşağıdaki kodu kullanarak her şey beklendiği gibi çalışır,
ancak, işlevselliği genişletmeye ve yalnızca A sınıfından (string) gibi basit türler için değil, aynı zamanda yapılar için de destek eklemeye çalışırsanız,
temel sınıftan şablon atama operatörünün, mirasçıların sınıflarının varsayılan atama operatörlerini geçersiz kılmaya başladığı ve tüm işlevselliği sıkı bir şekilde öldürdüğü ortaya çıktı.
Diğer operatörleri geçici çözüm olarak kullanabilirsiniz, örneğin "operator*=", ancak mesele bu değil.
Geliştiriciler:
Lütfen varsayılan olarak atama operatörü (kopyalama oluşturucu) için zorunlu kod oluşturma özelliğini ekleyin:
Söyle bana, danışmanda standart göstergeler kullanırsam, örneğin iMA,
Görselleştirme penceresinde doğru şekilde görüntülenmeleri için çizim stilleri nasıl ayarlanır?
Söyle bana, danışmanda standart göstergeler kullanırsam, örneğin iMA,
Görselleştirme penceresinde doğru şekilde görüntülenmeleri için çizim stilleri nasıl ayarlanır?
Bunun gibi: Özel Hareketli Ortalama Giriş Rengi
Bunun gibi: Özel Hareketli Ortalama Giriş Rengi
Yani aslında kendi göstergenizi yazmanız gerekiyor. Standart göstergeleri yeniden yazmak bir seçenek değildir.
Soru tam olarak standart bir göstergenin nasıl şekillendirileceğiydi.
Başka bir yol var mı?
Ancak, StringSetLength işlevinin çalışması bir dizi soruyu gündeme getirir.
StringSetLength'in yardımıyla, yalnızca dizenin uzunluğunu kısaltabilirsiniz, ancak nasıl artırılacağını değil, bu bir şekilde hiçbir anlam ifade etmiyor.
Bu amaçlanan davranış mı?
Sonuç:
#define PRINT(x) Print ( #x, ":" , string (x)) void OnStart (){ string str = "123\x0000\x0000\x0000\x0000456789" ; PRINT(str); PRINT( StringLen (str)); // StringLen(str):13 StringLen поддерживает работу с 0х0000 short value PRINT(StringSetLength_using_StringInit(str, 100 )); // false StringInit не поддерживает работу с 0х0000 short value PRINT(StringSetLength_using_ShortArrayToString(str, 100 )); // false ShortArrayToString не поддерживает работу с 0х0000 short value PRINT(StringSetLength_using_StringInit_with_StringFill(str, 100 )); // false StringFill не поддерживает работу с 0х0000 short value } bool StringSetLength_using_StringInit( string &string_var, int new_length){ bool result = false ; int prev_length = StringLen (string_var); if (new_length == prev_length){ result = true ; return result; } string data = string_var; if (new_length < prev_length){ StringSetLength (data, new_length); } else { string string_tail; StringInit (string_tail, new_length - prev_length, 0x0000 ); data += string_tail; } if ( StringLen (data) == new_length){ string_var = data; result = true ; } return result; } bool StringSetLength_using_ShortArrayToString( string &string_var, int new_length){ bool result = false ; int prev_length = StringLen (string_var); if (new_length == prev_length){ result = true ; return result; } string data = string_var; if (new_length < prev_length){ StringSetLength (data, new_length); } else { short data_array[]; StringToShortArray (data, data_array); ArrayResize (data_array, new_length); ArrayFill (data_array, prev_length, new_length - prev_length, 0x0000 ); data = ShortArrayToString (data_array, 0 , new_length); } if ( StringLen (data) == new_length){ string_var = data; result = true ; } return result; } bool StringSetLength_using_StringInit_with_StringFill( string &string_var, int new_length){ bool result = false ; int prev_length = StringLen (string_var); if (new_length == prev_length){ result = true ; return result; } string data = string_var; if (new_length < prev_length){ StringSetLength (data, new_length); } else { string string_tail; StringInit (string_tail, new_length - prev_length, 0x1111 ); StringFill (string_tail, 0x0000 ); data += string_tail; } if ( StringLen (data) == new_length){ string_var = data; result = true ; } return result; }
MT'nin son sürümlerinde, dizelerle çalışmak için bir paradigma kaymasının parçası olarak, NULL ile sonlandırılan dizeleri kullanmayı reddetme vardır.
Bu fikri detaylandırabilir misiniz?
Bilgili insanlar, söyle bana! Gerçek olana dayalı özel bir sembolüm var. Bu sembolün grafiğinden alım satım nasıl yapılabilir? Yoksa MT5'te böyle bir işlevsellik yok mu?
Cevap apaçık ortada. Gerçek sembollerden bazı dönüşümlerle özel bir sembol elde edilir. Birinin (EA, komut dosyası veya manuel) ters dönüştürme yapması ve gerçek semboller için sipariş vermesi gerekir.