Sormak! - sayfa 54

 

0 tampon için olası çözüm:

int akımBar=0;

double lowFG=iCustom(NULL,0,"Forex- Grail Ticaret Göstergesi",period,PRICE_CLOSE, 0 , currentBar);

çift en yüksekFG = en düşükFG;

for(;currentBar<4; currentBar++) lowFG=MathMin(lowestFG, iCustom(NULL,0,"Forex-Grail Ticaret Göstergesi",period,PRICE_CLOSE, 0 ,currentBar));

for(currentBar=0;currentBar<4;currentBar++) highFG =MathMax(highestFG , iCustom(NULL,0,"Forex-Grail Trade Indicator",period,PRICE_CLOSE, 0 ,currentBar));

1 numaralı tampon için baştan yapmanız gerekiyor

 
iscuba11:
Bir yorum ifadesinin grafikte gösterdiği ondalık basamak miktarını nasıl sınırlayabilirim. Şu anda .00347892 olarak değişken bir sonuç gösteriyor ve ben sadece .0035 (Bir sonraki sayıya yuvarlanmış) göstermesini istiyorum?
Girişinizi takdir edin! Dave

işlev GöstergeRakamlar

 

Öncelikle, bana yardım ettiğiniz için hepinize teşekkür etmek istiyorum. Artık yeni EA'mı test için devreye sokabileceğime inanıyorum.

Hala ondalık basamaklarla ilgili bir sorum var.

Yorum ifadesi, göstergeden değil EA'dan oluşturulur. İşlev gösterge basamakları, inanıyorum ki, göstergenin kendisinde değil, göstergede kullanılıyor. Kullanabileceğim bir değişkenin x yerine basit bir yuvarlama yok mu? Bu dili neden bu kadar karmaşık hale getiriyorlar? Temel dil bile muhtemelen bunu yapabilir!

Her zaman takdir edildiği gibi, bilgi ve bilgeliğin geri bildirimi memnuniyetle karşılanmaktadır. Yapabiliyorsan lütfen yardım et.

Çok teşekkürler!

 

Sonunda yazınızı doğru okudum, Comment(DoubleToStr(doubleVariable, 4));

 

Bu başardı! Şimdi ince ayar yapmak ve test etmek için. Hepiniz beni kutsadınız - Teşekkürler!

Herkese Barış ve Sevgi, İsa Adıyla! Muhterem Dave
 

Daha Fazla Yardıma İhtiyacınız Var Lütfen!

if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);

Yapmaya çalıştığım şey, kullanıcı EA kurulumunda 4'ten 2'yi (currency_decimal) seçtiğinde EA'nın varsayılan OpenTriggerLevel'i 4 ondalık basamaktan 2'ye otomatik olarak değiştirmesini sağlamak. Böyle bir değişiklik, 2 ondalık basamak olan USDJPY gibi bir para biriminde yapılmalıdır.

Belli ki derleyici yukarıdaki ifadedeki ikinci ' = ' işaretini sevmiyor.

Devam eden takdir ile, Giriş yardımınız için Şimdiden Teşekkürler!

Dave
 

MQL4, çiftin ondalık basamaklarının sayısına karşılık gelen önceden tanımlanmış değişken Basamaklara sahiptir.

DoubleToStr(OpenTriggerLevel, Rakamlar);

kod doğru, muhtemelen değişken tanımındaki hataya bakın.

 
asmdev:
MQL4, çiftin ondalık basamaklarının sayısına karşılık gelen önceden tanımlanmış değişken Basamaklara sahiptir.

DoubleToStr(OpenTriggerLevel, Rakamlar);

kod doğru, muhtemelen değişken tanımındaki hataya bakın.

Bunu denedim, ancak hala OpenTriggerLevel'i .0004'e karşı .04 olarak gösteriyor:

if(currency_decimal == 2) DoubleToStr(OpenTriggerLevel,2);

Hala kafan karışık???

 
iscuba11:
if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);[/PHP]

What I am attempting to do is have the EA automatically change the default OpenTriggerLevel from 4 decimal places to 2 when the user selects 2 (currency_decimal) from 4 in the EA setup. Such a change would have to take place on a currency like USDJPY which is 2 decimal places.

Evidently the compiler does not like the second ' = ' sign in the above statement.

With continued appreciation, Thanks in Advance for your input assistance!

Dave

Bu ifadenin sorunu, 'OpenTriggerLevel' değişkeninin 'double' türünde olması ve işlevin bir 'dize' döndürmesidir. Yani, kod sözdizimsel olarak doğru olsa da, anlamsal olarak yanlış ve derleyicinin bu yüzden şikayet ettiğini düşünüyorum.

Dizeyi bir değişkende taşımak istiyorsanız, bunu yapmak için bir değişkene ihtiyacınız olacaktır. Aksi takdirde, şu anda 'OpenTriggerLevel' yazan yeri değiştirmek için 'Yorum' argümanı içindeki 'DoubleToStr' işlevini kullanabilirsiniz. orada diyebilir

[PHP]DoubleToStr( OpenTriggerLevel, para birimi_decimal )

ve 'if ..' ifadesine hiç ihtiyacınız olmaz.

 

komut dosyasına göre her bir buy, satım, buystop, sellstop, buylimit ve sellstop'un toplamını nasıl alacağını bilen var mı? Teşekkürler