[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 587

 
Tamam, sana söylemezlerse, akşam çözmeme yardım et.
 
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:
   ATR_Din= iATR ( NULL , PERIOD_M5 , 14 , 1 );
   Din_Per210 = MathRound ( 6000 *ATR_Din+ 210 );
   Din_Per5   = MathRound ( 6000 *ATR_Din+ 5 );
   
   MA210_DIN  = iMA ( NULL , PERIOD_M5 , Din_Per210 , 0 , MODE_SMA , PRICE_CLOSE , 1 );
   MA5_DIN    = iMA ( NULL , PERIOD_H1 , Din_Per5 , 0 , MODE_SMA , PRICE_CLOSE , 1 );
   
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)
 
Craft :
Sorun değil, çalışan bir örnek veya bir bağlantı alabilir miyim?
kodu verin veya görevi ayarlayın, düzenleyeceğiz
 
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.
Teşekkürler, bu rahatlatıcı... :)
Bir soru daha:
   MA200_DIN = iMA ( NULL , PERIOD_M5 ,Din_Per200, 0 , MODE_SMA , PRICE_CLOSE , 1 );
   MA200_UP  =MA200_DIN+ 20 *pt;
   MA200_DN  =MA200_DIN- 20 *pt;
   
   MA5_DIN  = iMA ( NULL , PERIOD_H1 ,Din_Per5, 0 , MODE_SMA , PRICE_CLOSE , 1 );
   MA5_UP   =MA5_DIN+ 20 *pt;
   MA5_DN   =MA5_DIN- 20 *pt;
İnşaatlar
MA200_UP=MA200_DIN+ 20 *pt; 
MA200_DN=MA200_DIN- 20 *pt; и 
MA5_UP=MA5_DIN+ 20 *pt; 
MA5_DN=MA5_DIN- 20 *pt;
ç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?
 
pt neye eşittir? NormalizeDouble() ile yazdırmayı deneyin
 
İşte bu, teşekkürler, anladım... pt= Point ; hesapladıktan sonra ...
Matroskin'in dediği gibi: Sharik, sen bir aptalsın ... :)
 
alsu :
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.

        MyATR = ((High[0] - Low[0])/Low[0]);
	BT = Open[ 0 ] + Open[ 0 ]*iMAOnArray(MyATR , 0 ,PerB, 0 ,MODE_SMA, 1 );
        ST = Open[ 0 ] - Open[ 0 ]*iMAOnArray((MyATR , 0 ,PerS, 0 ,MODE_SMA, 1 );

   if (Ask >= BT)                       // Если разница между
     {                                           // 
      Opn_B= true ;                               // Критерий откр. Buy
      Cls_S= true ;                               // Критерий закр. Sell
     }
   if (Bid <= ST)                       // Если разница между
     {                                           // 
      Opn_S= true ;                               // Критерий откр. Sell
      Cls_B= true ;                               // Критерий закр. Buy
     }

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

Neden: