Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - 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
Çok teşekkürler! Mumların özelliklerini (fazla, az vs.) karşılaştırmak için buna ihtiyacım vardı, vidaladım ve işe yarıyor. Dize veri türünü böyle nasıl karşılaştırdığını anlayamıyorum? veya çift dizge, sayıyı dizgeye çevirmiyor mu? :-D
not. Göstergede çalışmıyor - sadece komut dosyasında... Sorun şu ki, çizelgedeki programda çubuk özellikleri 5 ondalık basamakla iletilmesine rağmen, Yüksek[i] çağrıldığında sadece 4 ondalık basamak geliyor dışarı.
Yazı:
Alert("doubletostr Yüksek = ", DoubleToStr(Yüksek[1],5));
if (DoubleToStr(Yüksek[2],5)>(DoubleToStr(Yüksek[3],5)))
{
Uyarı("Diğer");
}
if (DoubleToStr(Yüksek[2],5)<(DoubleToStr(Yüksek[3],5)))
{
Uyarı("Daha Az");
}
Pulluklar, sonucu beş haneli yazar, fazla/az sayar. Sorun, göstergedeki dizi dizisinin grafikte görüntülenmemesidir. Böyle...
...yazı:
Alert("NormalizeÇift Yüksek = ", NormalizeDouble(Yüksek[1],5));
Pulluk yapmaz - sonuç - > 1.1234
Geliştiricileri anlamıyorum - neden bu kadar karmaşık hale getiriyorsunuz? Neden grafikte bu kadar çok işaret gösteriyorsa, çağrılan fonksiyonun beş işaretini çizmiyor? Basit bir çıkış yolu var mı?
Daha da ilginç:
Çevirmek
Alert("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2), Digits ));
Yazma: 1.32169 - Tamam
StrToDouble kullanarak sayısal bir değere geri dönüştürün:
Uyarı ("iFractals StrToDoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits)));
Sonuç: 1.3217
Jackie Chan ile çipi anlamadığı bir meme olmalı.)
Ve Alert aslında ne veriyor?
Yazılı 0.01 Ama aslında 0...0100.
Daha da ilginç:
Çevirmek
Alert("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Yazma: 1.32169 - Tamam
StrToDouble kullanarak sayısal bir değere geri dönüştürün:
Alert("iFractals StrToDoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits)));
Sonuç: 1.3217
Jackie Chan ile çipi anlamadığı bir meme olmalı.)
DoubleToStr(), mesajları istediğiniz hassasiyette görüntülemek için kullanılır. Standard Print() , Alert() , vb. 4 basamaklı hassasiyetle yazdırır.
İhtiyacınız olan kesinlikte bir sayı görmek istediğinizde, hesaplamalarda değil DoubleToStr() kullanın.
Hiçbir şeyi ileri geri çevirmeye gerek yok... ;)
Yazılı 0.01 Ama aslında 0...0100.
Çıktı daha sonra 100 * nokta = 100 * 0.00001 = 0.001pp'dir (beş basamaklı ise)
lBUY değeri yukarıda değiştirilmiştir. Bu nedenle, gördüğüm kadarıyla durum şudur:
Yürütülmeyecek. Ve buna göre, lBUY değeri aynı kalacaktır.
j değişkeni, fonksiyonun en başında negatif bir değerle açıkça başlatılmalıdır. Dene. Daha fazla bir şeye bakmadım.
hm. Şimdiye kadar aynı. İşte sahip olduklarımız:
DoubleToStr(), mesajları istediğiniz hassasiyette görüntülemek için kullanılır. Standart Print(), Alert(), vb. 4 hane hassasiyetinde çıktı.
İhtiyacınız olan kesinlikte bir sayı görmek istediğinizde, hesaplamalarda değil DoubleToStr() kullanın.
Hiçbir şeyi ileri geri çevirmeye gerek yok... ;)
Bu anlaşılabilir bir durum ... şimdi ...) Ama asıl mesele şu ki, hesaplamalar için bir şekilde beşinci basamağı seçmem gerekiyor (
Ve DoubleToStr () bunun için uygun değilse, o zaman genel olarak bu olasılık bu dilde sağlanmaz mı? bu çok garip. Geliştiriciler bunu öngörmedi mi?
hm. Şimdiye kadar aynı. İşte sahip olduklarımız:
Bu anlaşılabilir bir durum ... şimdi ...) Ama asıl mesele şu ki, hesaplamalar için bir şekilde beşinci basamağı seçmem gerekiyor (
Ve DoubleToStr () bunun için uygun değilse, o zaman genel olarak bu olasılık bu dilde sağlanmaz mı? bu çok garip. Geliştiriciler bunu öngörmedi mi?
Lord programcılar! Lütfen bana bir danışmanı bir göstergeyle nasıl birleştireceğimi söyle?
Örneğin, kendi algoritmasıyla işlem yapan basit bir mo_bidir.mq4 botu aldım ve algoritmasına göre işlem açmaya devam etmesi gerekiyor, ancak 3x MA sinyalinden sonra -
Örneğin, sinyale göre - Üç Hareketli Ortalama :
FastEMA>MediumEMA>YavaşEMA ( trend yukarı ) - bot satın alır
HızlıEMA<OrtaEMA<YavaşEMA ( trend aşağı ) – bot satıyor
Inp_Signal_ThreeEMA_FastPeriod = 8;
Inp_Signal_ThreeEMA_MediumPeriod = 38;
Inp_Signal_ThreeEMA_SlowPeriod = 48;
Ayrıca, beş dakikalık grafikte işlem yapmaya devam etmek için danışmana ve günlük veya 4 saatlik zaman diliminden sinyaller vermek için göstergeye ihtiyacım var ve böylece zaman dilimlerini bot ayarlarında değiştirmek mümkün olacak.