Transferden önce longdan double koymanız gerekiyor. Genel bir değişken için . Sıfır değeri değil, sadece buldozerden alınan bir çift sayı, örneğin 1.34 * e-307 olabilir, 4.29 * e + 120 olabilir, çünkü uzun bitler var.
Double, verileri kısaltır, bu nedenle doğrudan bir double'da uzun süre kullanmak imkansızdır. Ancak her ikisi de 8 bayttır, bu, örnekte yaptığım gibi, double'ı bir kap olarak kullanarak kayıpsız aktarabileceğiniz anlamına gelir.
Double, verileri kısaltır, bu nedenle doğrudan bir double'da uzun süre kullanmak imkansızdır. Ancak her ikisi de 8 bayttır, bu, örnekte yaptığım gibi, double'ı bir kap olarak kullanarak kayıpsız aktarabileceğiniz anlamına gelir.
Andrey, GV terminalindeki depolama ve görüntüleme biçimini anlamadım. Grafiğin kimliğini gösteriyor gibiydi, ancak 0 gösteriyor.
Fark ettiğim bir şey, başka bir komut dosyasına (gösterge) bağlı bir kitaplığı veya kaynakları güncellemenin, (gösterge) yeniden derlenmesine ve terminal tarafından yeniden yüklenmesine yol açmasıdır. Sormadan! Bu bir hata veya özellik mi? Not: MT4'ten bahsediyoruz.
Ada göre mevcut bir GV terminali arıyorsunuz. Bu sayede, EA'nın üzerinde çalıştığı grafiğin kimliği göstergeye iletilir. Gösterge başka bir sembolde asılı kalıyor. Yani, yönetici danışmanın üzerinde çalıştığı çizelgenin kimliğini göstergeye iletmek istiyorum. Şuna benziyorum:
İşte terminalin bana söylediği:
Değişkeni saymaya çalıştığı anda. Ve hemen bir satıra, sadece onu günlüğe çıkarmak için ve çeşitli türlerdeki değişkenlere - hepsi aynı. 2 fark.
Sadece senin davan. Çiftler, _sayı_ karakterde uzunlara göre çok daha düşük doğruluğa sahiptir. Bu yüzden basit bir atama ile bu sonucu elde edersiniz.
Ancak 64 bitlik bir global değişkeni _any_ 64 bitlik bilgileri depolamak için tam olarak kullanabilirsiniz (örneğin, 8 baytlık kısa dizeler. Uzunlardan bahsetmiyorum bile)
Aşağıdaki sorunla karşılaştı. Terminali yeniden başlattıktan sonra gösterge, bir EA'dan çağrıldığında başka bir zaman diliminden "garip" değerler döndürür. EA M2 üzerindedir, gösterge verileri M3'ten alınmıştır. 1) terminali 14:40'ta yeniden başlatan günlüklerde:
PE014:39:50.524terminaldurdu doktor014:40:06.009terminalMetaTrader 5 Alfa-Forex x64 yapı 930 başladı (Alfa-Forex) II014:40:06,586terminalOpenCL bulunamadı, daha iyi performans için en son OpenCL sürücüsünü yükleyin JO014:40:07.257uzmanlaruzman FX_Money_Flow_v1_06 (EURUSD,M2) başarıyla yüklendi
EA, elde edilen gösterge değerlerini son ve sondan bir önceki çubukta yazar:
CO019:55:06.918terminaldurdu RO019:55:28.399terminalMetaTrader 5 Alfa-Forex x64 yapı 930 başladı (Alfa-Forex) OP019:55:28.992terminalOpenCL bulunamadı, daha iyi performans için en son OpenCL sürücüsünü yükleyin RD019:55:29.507uzmanlaruzman FX_Money_Flow_v1_07 (EURUSD,M2) başarıyla yüklendi
Aynı zamanda, M3 grafiği açıktır ve üzerine her şeyi doğru gösteren bir gösterge uygulanır: (terminal ile günlükler arasındaki zaman farkı 5 saattir, ekran görüntüsü ikinci yeniden başlatmayı ifade eder)
OBJ_LABEL , MT4'te UNICODE'u desteklemiyor gibi mi? Değeri hem programlı olarak hem de Etiket özellikleri iletişim kutusundan değiştirdim: sembol eklendi, iletişim kutusunun kendisinde doğru bir şekilde görünüyor, ancak grafikte soru işaretiyle (?) görüntüleniyor. Seçilen yazı tipi unicode'dur ve etiket özellikleri iletişim kutusunda yazı tipleriyle birlikte açılır listede doğru şekilde seçilmiştir.
Sadece senin davan. Çiftler, _sayı_ karakterde uzunlara göre çok daha düşük doğruluğa sahiptir. Bu yüzden basit bir atama ile bu sonucu elde edersiniz.
Ancak 64 bitlik bir global değişkeni _any_ 64 bitlik bilgileri depolamak için tam olarak kullanabilirsiniz (örneğin, 8 baytlık kısa dizeler. Uzunlardan bahsetmiyorum bile)
Ta emae...
Transferden önce longdan double koymanız gerekiyor. Genel bir değişken için . Sıfır değeri değil, sadece buldozerden alınan bir çift sayı, örneğin 1.34 * e-307 olabilir, 4.29 * e + 120 olabilir, çünkü uzun bitler var.
Aktarımdan sonra, paketi çiftten uzuna çıkarın.
Herşey.
Tamam anladım ;)
Tamam anladım ;)
Pekala, anlamıyorum.
Double, verileri kısaltır, bu nedenle doğrudan bir double'da uzun süre kullanmak imkansızdır. Ancak her ikisi de 8 bayttır, bu, örnekte yaptığım gibi, double'ı bir kap olarak kullanarak kayıpsız aktarabileceğiniz anlamına gelir.
Pekala, anlamıyorum.
Double, verileri kısaltır, bu nedenle doğrudan bir double'da uzun süre kullanmak imkansızdır. Ancak her ikisi de 8 bayttır, bu, örnekte yaptığım gibi, double'ı bir kap olarak kullanarak kayıpsız aktarabileceğiniz anlamına gelir.
Andrey, GV terminalindeki depolama ve görüntüleme biçimini anlamadım. Grafiğin kimliğini gösteriyor gibiydi, ancak 0 gösteriyor.
GV'de görünüşte çöpe benzeyen bir şey göreceksiniz, bu "çöp" ters dönüşümden sonra bir grafik kimliğine dönüşecek.
Bir double'ın kendi veri formatı vardır, long atarken onu double formata koyuyoruz ve tıpkı 8 byte'lık bir bellek gibi kullanıyoruz.
GV'de görünüşte çöpe benzeyen bir şey göreceksiniz, bu "çöp" ters dönüşümden sonra bir grafik kimliğine dönüşecek.
Bir double'ın kendi veri formatı vardır, long atarken onu double formata koyuyoruz ve tıpkı 8 byte'lık bir bellek gibi kullanıyoruz.
Daha çok bir soru gibi:
Ada göre mevcut bir GV terminali arıyorsunuz. Bu sayede, EA'nın üzerinde çalıştığı grafiğin kimliği göstergeye iletilir. Gösterge başka bir sembolde asılı kalıyor. Yani, yönetici danışmanın üzerinde çalıştığı çizelgenin kimliğini göstergeye iletmek istiyorum. Şuna benziyorum:
İşte terminalin bana söylediği:
Değişkeni saymaya çalıştığı anda. Ve hemen bir satıra, sadece onu günlüğe çıkarmak için ve çeşitli türlerdeki değişkenlere - hepsi aynı. 2 fark.
Sorun nedir?
Burada https://www.mql5.com/en/docs/basis/types/casting "Basit yapı tiplerine veri dökümü" paragrafını okuyun
Sadece senin davan. Çiftler, _sayı_ karakterde uzunlara göre çok daha düşük doğruluğa sahiptir. Bu yüzden basit bir atama ile bu sonucu elde edersiniz.
Ancak 64 bitlik bir global değişkeni _any_ 64 bitlik bilgileri depolamak için tam olarak kullanabilirsiniz (örneğin, 8 baytlık kısa dizeler. Uzunlardan bahsetmiyorum bile)
EA M2 üzerindedir, gösterge verileri M3'ten alınmıştır.
1) terminali 14:40'ta yeniden başlatan günlüklerde:
doktor 0 14:40:06.009 terminal MetaTrader 5 Alfa-Forex x64 yapı 930 başladı (Alfa-Forex)
II 0 14:40:06,586 terminal OpenCL bulunamadı, daha iyi performans için en son OpenCL sürücüsünü yükleyin
JO 0 14:40:07.257 uzmanlar uzman FX_Money_Flow_v1_06 (EURUSD,M2) başarıyla yüklendi
RO 0 19:55:28.399 terminal MetaTrader 5 Alfa-Forex x64 yapı 930 başladı (Alfa-Forex)
OP 0 19:55:28.992 terminal OpenCL bulunamadı, daha iyi performans için en son OpenCL sürücüsünü yükleyin
RD 0 19:55:29.507 uzmanlar uzman FX_Money_Flow_v1_07 (EURUSD,M2) başarıyla yüklendi
ama artık normal çalışmaya başlamıyor, her zaman şöyle:
KF 0 23:59:51.987 FX_Money_Flow_v1_07 (EURUSD,M2) TF1 gösterge değeri: -1.#QNAN -1.#QNAN
Aynı zamanda, M3 grafiği açıktır ve üzerine her şeyi doğru gösteren bir gösterge uygulanır:
(terminal ile günlükler arasındaki zaman farkı 5 saattir, ekran görüntüsü ikinci yeniden başlatmayı ifade eder)
Burada https://www.mql5.com/en/docs/basis/types/casting "Basit yapı tiplerine veri dökümü" paragrafını okuyun
Sadece senin davan. Çiftler, _sayı_ karakterde uzunlara göre çok daha düşük doğruluğa sahiptir. Bu yüzden basit bir atama ile bu sonucu elde edersiniz.
Ancak 64 bitlik bir global değişkeni _any_ 64 bitlik bilgileri depolamak için tam olarak kullanabilirsiniz (örneğin, 8 baytlık kısa dizeler. Uzunlardan bahsetmiyorum bile)