MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 77

 
MrBrooklin :

Merhaba Alexey! Dürüst olmak gerekirse, programlamada iyi değilim. Konstantin tarafından sağlanan kodun kesinleştirilmesi gerektiği ortaya çıktı mı?

Saygılarımla, Vladimir.

Düzeltilmesi ve atılması gerekiyor.

 
Alexey Viktorov :

Düzeltilmesi ve atılması gerekiyor.

Neden bu kadar acımasız!

Teşekkürler Alexey!!! Kodunuz mükemmel çalışıyor.

Saygılarımla, Vladimir.

 

Alexey, arama hakkında her şey açık, çünkü StringFind , bir dizede bir alt dize bulmaktır:

 int    StringFind ( 
   string   string_value,         // строка, в которой ищем 
   string   match_substring,     // что ищем 
   int      start_pos= 0            // с какой позиции начинать поиск 
   );

Henüz anlayamadığım tek şey, bir dizgede bir alt dizgi ararken neden işlevi sıfır için kontrol ediyoruz?

 if(StringFind ( _Symbol , Symbol_Main, 0 ) == 0)

Saygılarımla, Vladimir.

 
MrBrooklin :

Alexey, arama hakkında her şey açık, çünkü StringFind , bir dizede bir alt dize bulmaktır:

Henüz anlayamadığım tek şey, bir dizgede bir alt dizgi ararken neden işlevi sıfır için kontrol ediyoruz?

Saygılarımla, Vladimir.

Belgelerden

Geri dönüş değeri

Aranan alt dizenin başladığı dizedeki konum numarasını veya alt dize bulunamazsa -1 döndürür.

yani grafiğin sembolü "GBPUSD" ile başlar ve hangi ekin iliştirildiği önemli değildir.

Biraz aceleci davranmış olsam da. Örneğin yalnızca "GBP" girerseniz, temel para birimi "GBP" ise herhangi bir grafik geçerli olur. Ek olarak, giriş satırındaki giriş metninin uzunluğunu kontrol etmek gerekli olacaktır.
 
Alexey Viktorov :

Belgelerden

yani grafiğin sembolü "GBPUSD" ile başlar ve hangi ekin iliştirildiği önemli değildir.

Biraz aceleci davranmış olsam da. Örneğin yalnızca "GBP" girerseniz, temel para birimi "GBP" ise herhangi bir grafik geçerli olur. Ek olarak, giriş satırındaki giriş metninin uzunluğunu kontrol etmek gerekli olacaktır.

sadece karşılaştırmak için mi? ve küçük harflerin girişini sınırlayın. veya enum, bir aptaldan ne olursa olsun))))

 
Alexey Viktorov :

Belgelerden

yani grafiğin sembolü "GBPUSD" ile başlar ve hangi ekin iliştirildiği önemli değildir.

Biraz aceleci davranmış olsam da. Örneğin yalnızca "GBP" girerseniz, temel para birimi "GBP" ise herhangi bir grafik geçerli olur. Ek olarak, giriş satırındaki giriş metninin uzunluğunu kontrol etmek gerekli olacaktır.

Anlaşılır şekilde!

Saygılarımla, Vladimir.

 
Valeriy Yastremskiy :

sadece karşılaştırmak için mi? ve küçük harflerin girişini sınırlayın. veya enum, bir aptaldan ne olursa olsun))))

Merhaba Valery! En başından beri ENUM_SYMBOL_INFO_STRING ile başladım ama nedense hiçbir şey olmadı. Yine de tekrar deneyebilirsiniz.

Saygılarımla, Vladimir.

 
Valeriy Yastremskiy :

sadece karşılaştırmak için mi? ve küçük harflerin girişini sınırlayın. veya enum, bir aptaldan ne olursa olsun))))

Basitçe karşılaştırabilirsiniz, ancak karakterler bir son eke sahipse, onları oldukları gibi girmelisiniz. Genel olarak, birçok seçenek var ve burada keçeli kalemlerin zevkleri hakkında tartışmak umutsuz bir iştir.

Ancak enum ise, dizgede arama yapılması gerekecektir. Saf sembol isimleri numaralandırmaya uyduğundan ve grafik herhangi bir makeweight ile olabilir.

 
Alexey Viktorov :

O halde kırılgan zihinle alay etmek neden? Kodunuz kesinlikle gereksinime uygun değil. Giriş parametrelerine yalnızca "eu" veya "eur" girilirse, koşulun bu kısmı

Adında "EU" bulunan, hangi çift olursa olsun yürütülür ve EUR'nun temel para birimi mi yoksa kote edilen para birimi mi olduğu önemli değildir. Ve neden istenen sembolü aramak için SymbolName MarketWatch'a bakmalısınız???

Alexey, oldukça normal bir kod. Normal değil, parametreye birkaç karakter girmektir ki bu muhtemelen kimse tarafından yapılmaz .

Çalışan bir üründe yaklaşık olarak aynı uygulamaya sahibim.

Bu uygulama, diğer kodlar hakkında söylenemez, yani kod evrenseldir, çok para birimli bir çözümde başarıyla çalışır.

 
Alexey Viktorov :

Basitçe karşılaştırabilirsiniz, ancak karakterlerin bir son eki varsa, onları oldukları gibi girmelisiniz. Genel olarak, birçok seçenek var ve burada keçeli kalemlerin zevkleri hakkında tartışmak umutsuz bir iştir.

Ancak enum ise, dizgede arama yapılması gerekecektir. Saf sembol isimleri numaralandırmaya uyduğundan ve grafik herhangi bir makeweight ile olabilir.

Alex, kalın bahşiş için teşekkürler. İlgi uğruna, daha önce yazdığım kodun ilk versiyonunu yeniden yapmaya çalışacağım.

Saygılarımla, Vladimir.

Neden: