[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 305

 
artmedia70 :

1. Kapalı bir alım pozisyonu varsa, ...

1.1 Türü OP_BUY ise, ...

1.1.2 Açık bir OP_SELL pozisyonu varsa, ...

1.1.3 Mevcut çubuğun süresi eksi bir Satış pozisyonu açmak için çubuğun süresi, geciktirilecek çubuk sayısından büyük veya ona eşitse, ...

1.1.4. Satış pozisyonunu kapat

1.2 Türü OP_SELL ise, ...

1.2.2 OP_BUY açık pozisyonu varsa, ...

1.2.3 Mevcut çubuğun süresi eksi çubuğun bir Alış pozisyonu açma süresi, geciktirilecek çubuk sayısından büyük veya ona eşitse, ...

1.2.4. Satın alma pozisyonunu kapatın

Algoritma için teşekkürler, her şey beklediğimden çok daha karmaşık çıktı (

Ve lütfen kodu en azından genel bir biçimde çizemezseniz, aksi takdirde bir öncekini kıyaslanamayacak kadar uzun bir süre yazdım ve benzer danışmanlar bulamadım ....

Çok minnettar olacağım!

 
Yine de, sorunu yeteneklerinizin sınırına kadar çözmeye çalışmadan önce, bu çözümün gerçekten gerekli olup olmadığını değerlendirmeye çalışmak daha iyidir.
Ve burada pek çok benzer işlev var - KimIV'ten faydalı işlevler . Göreviniz için hazır bir tane de var.
 

Merhaba.

Lütfen hatayı bulmama yardım edin. Kod, RangeX0_D1 değerlerinin toplamını hesaplar

Yukarıdaki formda toplam, dizinin yalnızca son (altıncı) üyesine eşittir.

Şimdiden teşekkür ederim.

   int k;
   double RangeX0_D1  = 0 ;  
   for (k= 1 ;k<= 6 ;k++) 
   {
    RangeX0_D1  = ( iHigh ( NULL , 1440 ,k)- iLow ( NULL , 1440 ,k))/ Point ;
     if (RangeX0_D1> 0 )
    RangeX0_D1++;
   }
 
int k;
  double RangeX0_D1  = 0;  
  for (k=1;k<=6;k++) 
   {
    RangeX0_D1  += (iHigh(NULL,1440,k)-iLow(NULL,1440,k))/Point;
   }
 
FAQ :
Yardımınız, doğruluğunuz ve etkinliğiniz için teşekkür ederiz :)
 
nemo811 :
Yardımınız, doğruluğunuz ve etkinliğiniz için teşekkür ederiz :)


Hesaplamaları hızlandırmak için biraz farklı yapmak daha iyidir.

 int k;
   double RangeX0_D1  = 0 ;  
   for (k= 1 ;k<= 6 ;k++) 
   {
    RangeX0_D1  += ( iHigh ( NULL , 1440 ,k)- iLow ( NULL , 1440 ,k));
   }
   RangeX0_D1 /= Point ;

Bölünme uzun sürüyor. Bir kez yapmak daha iyidir.

 
İyi günler, lütfen bana bu yılın 10 Haziran'dan 22 Eylül'e kadar tekliflerin neden yüklenmeyebileceğini söyleyin? İki veya üç para birimi için bir geçmiş indirmesi yaptım ve hepsinde verilerde aynı boşluk var.
 
İyi günler, tavsiyeye ihtiyacım var: döngü belirli koşulları karşılayan değerleri arar. Bulunan değerler bir diziye yazılır. Kaç değerin bulunacağı önceden bilinmiyor. buna göre, bildirilecek dizinin boyutu bilinmiyor. Zamandan ve kaynaktan tasarruf açısından, iki çalıştırma yapmak istemiyorum (ilk çalıştırmada bulunan değerlerin sayısını saymak, ikinci çalıştırmada bir dizi bildirmek ve diziye veri yazmak için) . Tek seferde gerekli sonucu almanın bir yolu var mı?
 
Elenn :
İyi günler, tavsiyeye ihtiyacım var: döngü belirli koşulları karşılayan değerleri arar. Bulunan değerler bir diziye yazılır. Kaç değerin bulunacağı önceden bilinmiyor. buna göre, bildirilecek dizinin boyutu bilinmiyor. Zamandan ve kaynaktan tasarruf açısından, iki çalıştırma yapmak istemiyorum (ilk çalıştırmada bulunan değerlerin sayısını saymak, ikinci çalıştırmada bir dizi bildirmek ve diziye veri yazmak için) . Tek seferde gerekli sonucu almanın bir yolu var mı?

Bir göstergede "sonsuz" uzunlukta bir dizi bildirilebilir. Bildirin ve ardından döngüde bulunan değerleri hemen diziye girin. Tek soru, ihtiyacınız olan seçimi Expert Advisor / script'e nasıl aktaracağınızdır? Fonlar var, ancak zahmeti tahmin etmek gerekiyor. Belki 2 geçiş yapmak gerçekten daha kolay olacak - ilkinde filtrelenen değerlerin sayısını sayıyoruz, ardından dizi boyutunu değiştiriyoruz ve ikincisinde değerleri diziye giriyoruz?
 
Elenn :
İyi günler, tavsiyeye ihtiyacım var: döngü belirli koşulları karşılayan değerleri arar. Bulunan değerler bir diziye yazılır. Kaç değerin bulunacağı önceden bilinmiyor. buna göre, bildirilecek dizinin boyutu bilinmiyor. Zamandan ve kaynaktan tasarruf açısından, iki çalıştırma yapmak istemiyorum (ilk çalıştırmada bulunan değerlerin sayısını saymak, ikinci çalıştırmada bir dizi bildirmek ve diziye veri yazmak için) . Tek seferde gerekli sonucu almanın bir yolu var mı?

Gerekli maksimum boyuttan daha büyük bir dizi bildirin .