Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 547
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
Elbette öyle ama...
Tasarımın doğruluğundan kesinlikle şüpheliyim
Burada https://www.mql5.com/ru/forum/119342 , terminalde mevcut olan sembollerin bir listesini almak için iyi bir fonksiyondur, bu durumda sipariş sembolünü isimleriyle karşılaştırmanın pek bir anlamı görmüyorum. Bu hesaptaki komisyoncu sembolleri, ancak diğer durumlarda çok kullanışlıdır.
Ve bu durumda, ekleri hariç tutmak için
Söyleyebilir misin? Hangi parametrelerle ilgili bölüm nerede. Yani tasarım, onay işaretleri, oklar vb.
Ne hakkında konuştuğunu deşifre edebilir misin?
Ne hakkında olduğunu deşifre edebilir misin?
Sayesinde.
Koşul geçti, hata kodun başka bir bölümündeydi. :)
Kılavuz şunları söylüyor:
"MQL4'te bir yapının öğelerinin hizalama olmadan doğrudan birbirini takip ettiği akılda tutulmalıdır."
Hizalama ile ne kastedilmektedir?
Doğru anlarsam, hizalanmış öğeler şöyle görünecek:
bu şekilde hizalanmamış:Doğru?
Programlamada temel noktanın derleyicinin boşlukları atlaması beni şaşırtıyor ve sonra bunun bir şeyi etkilediği ortaya çıkıyor ...
Kılavuz şunları söylüyor:
"MQL4'te bir yapının öğelerinin hizalama olmadan doğrudan birbirini takip ettiği akılda tutulmalıdır."
Hizalama ile ne kastedilmektedir?
Doğru anlarsam, hizalanmış öğeler şöyle görünecek:
ve şu şekilde hizalanmadı: Doğru mu?Yorumlarda herşey anlatılıyor
еще 4 байта пропуска. Обеспечили выравнивание на границу 8 байт
Yapının öğeleri farklı bir türe ve buna bağlı olarak bayt cinsinden farklı bir uzunluğa sahip olabilir, ancak her öğe için bellek, maksimum üyeye göre aynı şekilde tahsis edilir. Örnekte, bu çift 8 bayttır.
Aslında, yapıda yalnızca 3 öğe vardır, ancak ilki yalnızca 1 bayt kaplar ve onu son iki öğeyle hizalamak için 7 bayt "sahte" bayt da tahsis edilmelidir. Beton yapıyı şu şekilde tanımlamak daha kolaydır:
Onlar. derleyicinin her eleman için gerekli sayıda bayt eklediği ortaya çıktı? Örnekte ihtiyaç duyulmayan boşlukları mı kastediyorum?
Ve bu arada, eğer
Yapılar farklı bir türe ve buna bağlı olarak bayt cinsinden farklı bir uzunluğa sahip olabilir, ancak maksimum üyeye göre her öğenin belleği aynıdır. Örnekte, bu çift 8 bayttır.
Eğer öyleyse ve hepsi aynıysa, her öğe için bir bellek tahsis edilirse, yapının öğelerini hangi sırayla düzenlemek ne fark eder?
Onlar. derleyicinin her eleman için gerekli sayıda bayt eklediği ortaya çıktı? Örnekte ihtiyaç duyulmayan boşlukları mı kastediyorum?
Ve bu arada, eğer
Eğer öyleyse ve hepsi aynıysa, her öğe için bir bellek tahsis edilirse, yapının öğelerini hangi sırayla düzenlemek ne fark eder?
Hayır eklemez, önce int kaymasını koyarsanız 4 bayt tahsis edilecektir, bu nedenle 8'e kadar ( int rezerv) eklemeniz veya int yerine long kullanmanız gerekir.
Yardım'dan alıntı
Hizalama yapmanız gerekmeyen doğru seçenek
USDCADAsk = NormalizeDouble ( MarketInfo ( "USDCAD" , MODE_ASK ), Digits ); USDCADBid = NormalizeDouble ( MarketInfo ( "USDCAD" , MODE_BID ), Digits ); USDCHFAsk = NormalizeDouble ( MarketInfo ( "USDCHF" , MODE_ASK ), Digits ); USDCHFBid = NormalizeDouble ( MarketInfo ( "USDCHF" , MODE_BID ), Digits ); USDJPYAsk = NormalizeDouble ( MarketInfo ( "USDJPY" , MODE_ASK ), Digits ); USDJPYBid = NormalizeDouble ( MarketInfo ( "USDJPY" , MODE_BID ), Digits ); EURUSDAsk = NormalizeDouble ( MarketInfo ( "EURUSD" , MODE_ASK ), Digits ); EURUSDBid = NormalizeDouble ( MarketInfo ( "EURUSD" , MODE_BID ), Digits ); GBPUSDAsk = NormalizeDouble ( MarketInfo ( "GBPUSD" , MODE_ASK ), Digits ); GBPUSDBid = NormalizeDouble ( MarketInfo ( "GBPUSD" , MODE_BID ), Digits ); AUDUSDAsk = NormalizeDouble ( MarketInfo ( "AUDUSD" , MODE_ASK ), Digits ); AUDUSDBid = NormalizeDouble ( MarketInfo ( "AUDUSD" , MODE_BID ), Digits ); NZDUSDAsk = NormalizeDouble ( MarketInfo ( "NZDUSD" , MODE_ASK ), Digits ); NZDUSDBid = NormalizeDouble ( MarketInfo ( "NZDUSD" , MODE_BID ), Digits );
Lütfen söyleyin, çok para birimli bir danışman yazıyorum, diğer para birimlerinin talep ve tekliflerini geri çekiyorum, normalleştiriyorum, ancak fiyatın hala fazladan sayıları var.
Rakamların karşılık gelen karakterden "çıkarılması" da istenir;)