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

 


Dizi okumaya/yazmaya geçmek elbette daha iyidir.

1. Dizinin boyutunu her yinelemede 1 değiştirmek gerekli değildir, daha az sıklıkta yapmak daha iyidir, örneğin gerekirse 50 veya 100'lük artışlarla

2. Kontrollü yazdırma için DoubleToStr() kullanmak daha iyidir

3. Okumak için neden bir string değişkeni kullanıldığını anlamadım

 
Vinin :


Dizi okumaya/yazmaya geçmek elbette daha iyidir.

1. Dizinin boyutunu her yinelemede 1 değiştirmek gerekli değildir, daha az sıklıkta yapmak daha iyidir, örneğin gerekirse 50 veya 100'lük artışlarla

2. Kontrollü yazdırma için DoubleToStr() kullanmak daha iyidir

3. Okumak için neden bir string değişkeni kullanıldığını anlamadım

1. aksi halde çalışmıyor. sıfır satır yazıyor, her seferinde güncellemeniz gereken 4 sütun için görünüyor

2. tamam

3. özellik bir tavsiye, şimdi her şey doğru okuyor. ancak bir sıfır çizgisinin gereksiz olduğu, bir kez daha onu uzaklaştırdığı ortaya çıktı ve orada sırasıyla hiçbir değer yok, sıfır çizgisini dolduruyor.

 
orb :

1. aksi halde çalışmıyor. sıfır satır yazıyor, her seferinde güncellemeniz gereken 4 sütun için görünüyor

2. tamam

3. özellik bir tavsiye, şimdi her şey doğru okuyor. ancak bir sıfır çizgisinin gereksiz olduğu, bir kez daha onu uzaklaştırdığı ortaya çıktı ve orada sırasıyla hiçbir değer yok, sıfır çizgisini dolduruyor.


Bu yaklaşımla büyük frenler olacak.
 
Vinin :

Bu yaklaşımla büyük frenler olacak.

Anlıyorum, böyle yazmak benim için daha kolay.

Bana bir kez daha idam edilirken nasıl kurtulacağımı söyler misin?

 
orb :

Anlıyorum, böyle yazmak benim için daha kolay.

Bana bir kez daha idam edilirken nasıl kurtulacağımı söyler misin?



Ondan kurtulamadım. Ama string değişkenleri kullanmadım.
 
Anladım. Ve yapabilirsiniz, ardından ArrayResize() ; döngü sayısından daha azını uygula, bu dizeyi diziden kaldırır mı?
 
orb :
Anladım. Ve yapabilirsiniz, ardından ArrayResize(); döngü sayısından daha azını uygula, bu dizeyi diziden kaldırır mı?

Evet kaldırılacak.

Bu işlevi ne kadar az kullanırsanız, o kadar hızlı çalışır. 100 öğe ayırdım ve diziden çıktıyı kontrol ederek okudunuz. Gerekirse diziyi tekrar 100 eleman artırın. Aynı zamanda, gerçekten indirilen öğe sayısını kaydedersiniz. Dizi tamamen indirildikten sonra, yeni bir ArrayResize () yaparsınız, ancak indirilen öğelerin gerçek sayısına göre.

Ancak dizilerle çalışma işlevleri daha doğru çalışır. Önce dizi öğelerinin sayısını bir dosyaya kaydedin, ardından dizinin kendisini

İlk önce eleman sayısını sayın, dizinin boyutunu ayarlayın. Dizi indir. Ve döngü yok

 
Vinin :

Evet, kaldırılacak.

Bu işlevi ne kadar az kullanırsanız, o kadar hızlı çalışır. 100 eleman ayırdım ve diziden çıktıyı kontrol ederek okudunuz. Gerekirse diziyi tekrar 100 eleman artırın. Aynı zamanda, gerçekten indirilen öğe sayısını kaydedersiniz. Dizi tamamen indirildikten sonra, yeni bir ArrayResize () yaparsınız, ancak indirilen öğelerin gerçek sayısına göre.

Ancak dizilerle çalışma işlevleri daha doğru çalışır. Önce dizi öğelerinin sayısını bir dosyaya kaydedin, ardından dizinin kendisini

İlk önce eleman sayısını sayın, dizinin boyutunu ayarlayın. Dizi indir. Ve döngü yok

teşekkür etmek! gelecek için öğren.
 

Lütfen bana sorunu nasıl çözeceğimi söyleyin:

Kıdemli TF'nin mevcut TF'ye ilişkin Destek/Direnç seviyelerinin bir projeksiyonu var. Test edilen fiyatın hangi seviyelerden en son çıktığının belirlenmesi gerekmektedir. Bayraklarla yapmaya çalıştım:

int start()
{ 
      int limit;
      int counted_bars=IndicatorCounted();
      if(counted_bars>0) counted_bars--;

      limit=Bars-counted_bars;
      if(limit>barsToProcess)
         limit=barsToProcess;

     for(int i=0;i<limit;i++)

{
 
  bool flag_R[], flag_S[], S[];

   double Level_Re = iCustom(NULL,0,"........",0,i); // для каждого бара получаем значения со старшего ТФ
   double Level_Su = iCustom(NULL,0,"........",1,i); // для каждого бара получаем значения со старшего ТФ

{
   if (iHigh(Symbol(), 0 ,i)>=Level_Re)               // проверяем тестирование ценой уровня Re
   {flag_R[i]= true ; flag_S[i]= false ; S[i]= true ;}   // выставляем флаги
   
   if (iLow(Symbol(), 0 ,i)<=Level_Su)               / / проверяем тестирование ценой уровня Su
   {flag_R[i]= false ; flag_S[i]= true ; S[i]= true ;}   // выставляем флаги


   if (S[i]== false ) {flag_R[i]=flag_R[i+ 1 ]; flag_S[i]=flag_S[i+ 1 ];} // если тестирования не было - берем предыдущее значение

   if (flag_R[ 0 ]== true ) Print( "Re zone tested" ); if (flag_S[ 0 ]== true ) Print( "Su zone tested" );
   
}
}

return(0);
}

ama kayıtta hiçbir şey yazmıyor ... seviyelerin kendileri doğru hesaplanmış, ancak bayraklarla ilgili bir şey bana uymuyor....]

Hata nerede? Veya bunu yapmanın en iyi yolu nedir?

 
alkador :

TG'ye

şöyle deneyin:

tarihsaat sona erme=TimeCurrent()+MaxSecLiveTime;

OrderSend(Symbol(), OP_BUYSTOP, Lots(), PriceBuy, 0, 0, 0, EA_Comment, Magic, son kullanma, CLR_NONE);


ile farkı nedir:

 extern int MaxSecLiveTime = 120 ;
OrderSend ( Symbol (), OP_BUYSTOP, Lots(), PriceBuy, 0 , 0 , 0 , EA_Comment, Magic, TimeCurrent ()+MaxSecLiveTime, CLR_NONE );
Neden: