Lütfen, hesaplamalar sonucunda elde edilen çift değeri, daha sonraki hesaplamalar için ikame edilmiş bir int değeri olarak kullanmanın mümkün olup olmadığını söyleyin. Misal:
Burada, vurguladığım değişkenler double türündedir, ancak iMA , int değerinin gerekli olduğu yerlerde (MAC dönemi olarak) değerlerini kullanır. Öyleyse soru şu: bu kullanım doğru mu yoksa değerlerin bir tür int türüne dönüştürülmesi gerekli mi?
Herkese merhaba , optimizasyon sonuçlarının her biri için uzman testi çalıştıracak, her testin sonucunu ayrı bir dosyaya kaydedecek böyle bir komut dosyası olup olmadığını biliyorsanız lütfen söyleyin (htm raporu)
artmedia70 : Lütfen, hesaplamalar sonucunda elde edilen çift değeri, daha sonraki hesaplamalar için ikame edilmiş bir int değeri olarak kullanmanın mümkün olup olmadığını söyleyin. Misal: Burada, vurguladığım değişkenler double türündedir, ancak iMA , int değerinin gerekli olduğu yerlerde (MAC dönemi olarak) değerlerini kullanır. Öyleyse soru şu: bu kullanım doğru mu yoksa değerlerin bir tür int türüne dönüştürülmesi gerekli mi?
dönüştürme otomatik olarak yapılır, kesirli kısım basitçe kesilir. Bu kullanım için karşılaştığım tek kısıtlama, double dizininin bir dizi dizinine yerleştirilememesidir.
alsu : dönüştürme otomatik olarak yapılır, kesirli kısım basitçe kesilir. Bu kullanım için karşılaştığım tek kısıtlama, double öğesinin bir dizi dizinine yerleştirilememesidir.
çalışmıyor. Değerlerini bir grafikte görüntülerken hepsi aynı değerlere sahiptir, örneğin: MA200_DIN, MA200_UP, MA200_DN ve için 1.4118 MA5_DIN, MA5_UP, MA5_DN için 1.4106. +20 ve -20 puan seviyelerini hesaplama formüllerinin çalışmadığı ortaya çıktı. Neyi yanlış yapıyorum?
yani, bir çubuk açıldığında, belirtilen seviyeye ulaşıldığında bir alım/satım pozisyonunun açıldığı bir Durdurma belirlenir, burada mevcut çubuğun Açık[i] fiyatı + tetikleyici (aynı Açık fiyat ile çarpılır) Kapalı çubuklarda PerB dönemi için hesaplanan MyATR [i-1])
Örneğin, mql4'te almak istediklerimi ValLab'da gösteriyorum.
Sitenin materyallerini inceledikten sonra bir analog yapmaya çalışıyorum, aşağıdakiler oldu.
Alt satır: Siparişler kümeler halinde dökülüyor, siparişlerin belirli bir düzeyde bir kez yürütülmesi için hangi koşulun eklenmesi (veya mevcut olanı değiştirme) gerektiğini söyleyin.
not: iMAOnArray işlevinde, ilk parametre olarak bir diziyi değiştirmelisiniz - ve bir MyATR skaleriniz var. Düzgün çalışması için şunları yapmalısınız:
1. çift MyATR[] beyan edin;
2. boyutunu ayarlayın ArrayResize(MyATR,PerB);
3. for(i=1;i<=PerB;i++) MyATR[i-1]=(Yüksek[i]-Düşük[i])/Düşük[i] için diziyi doldurun; indeks i 1'den başlar çünkü sadece kapalı çubuklara ihtiyacımız var
4. bundan sonra iMAOnArray(MyATR,0,PerB,0,MODE_SMA,0); ve burada son parametre 0'a eşittir, çünkü ha 1 kayması zaten paragraf 3'te dikkate alınmıştır.
nasıl olduğunu kontrol et, belki hata sadece bundadır
Misal:
Burada, vurguladığım değişkenler double türündedir, ancak iMA , int değerinin gerekli olduğu yerlerde (MAC dönemi olarak) değerlerini kullanır.
Öyleyse soru şu: bu kullanım doğru mu yoksa değerlerin bir tür int türüne dönüştürülmesi gerekli mi?
Sorun değil, çalışan bir örnek veya bir bağlantı alabilir miyim?
Lütfen, hesaplamalar sonucunda elde edilen çift değeri, daha sonraki hesaplamalar için ikame edilmiş bir int değeri olarak kullanmanın mümkün olup olmadığını söyleyin.
Misal:
Burada, vurguladığım değişkenler double türündedir, ancak iMA , int değerinin gerekli olduğu yerlerde (MAC dönemi olarak) değerlerini kullanır.
Öyleyse soru şu: bu kullanım doğru mu yoksa değerlerin bir tür int türüne dönüştürülmesi gerekli mi?
dönüştürme otomatik olarak yapılır, kesirli kısım basitçe kesilir. Bu kullanım için karşılaştığım tek kısıtlama, double öğesinin bir dizi dizinine yerleştirilememesidir.
Bir soru daha:
İnşaatlar
çalışmıyor. Değerlerini bir grafikte görüntülerken hepsi aynı değerlere sahiptir, örneğin:
MA200_DIN, MA200_UP, MA200_DN ve için 1.4118
MA5_DIN, MA5_UP, MA5_DN için 1.4106.
+20 ve -20 puan seviyelerini hesaplama formüllerinin çalışmadığı ortaya çıktı.
Neyi yanlış yapıyorum?
Matroskin'in dediği gibi: Sharik, sen bir aptalsın ... :)
kodu verin veya görevi ayarlayın, düzenleyeceğiz
WellsLab'da görevin analogu şöyle görünür:
MyATR = SMA.Series(((Yüksek-Düşük)/Düşük), PerB)[i-1] ;
if (BuyAtStop(i, (Open[i] + Open[i]*MyATR), "");
yani, bir çubuk açıldığında, belirtilen seviyeye ulaşıldığında bir alım/satım pozisyonunun açıldığı bir Durdurma belirlenir, burada mevcut çubuğun Açık[i] fiyatı + tetikleyici (aynı Açık fiyat ile çarpılır) Kapalı çubuklarda PerB dönemi için hesaplanan MyATR [i-1])
Örneğin, mql4'te almak istediklerimi ValLab'da gösteriyorum.
Sitenin materyallerini inceledikten sonra bir analog yapmaya çalışıyorum, aşağıdakiler oldu.
Alt satır: Siparişler kümeler halinde dökülüyor, siparişlerin belirli bir düzeyde bir kez yürütülmesi için hangi koşulun eklenmesi (veya mevcut olanı değiştirme) gerektiğini söyleyin.
not: iMAOnArray işlevinde, ilk parametre olarak bir diziyi değiştirmelisiniz - ve bir MyATR skaleriniz var. Düzgün çalışması için şunları yapmalısınız:
1. çift MyATR[] beyan edin;
2. boyutunu ayarlayın ArrayResize(MyATR,PerB);
3. for(i=1;i<=PerB;i++) MyATR[i-1]=(Yüksek[i]-Düşük[i])/Düşük[i] için diziyi doldurun; indeks i 1'den başlar çünkü sadece kapalı çubuklara ihtiyacımız var
4. bundan sonra iMAOnArray(MyATR,0,PerB,0,MODE_SMA,0); ve burada son parametre 0'a eşittir, çünkü ha 1 kayması zaten paragraf 3'te dikkate alınmıştır.
nasıl olduğunu kontrol et, belki hata sadece bundadır