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

 

Böyle bir yeniden hesaplama algoritması var:

   int ic= IndicatorCounted ();
   if ( Bars -ic- 1 > 1 ) {ic=reinit();}
   int limit= Bars -ic-1; //BarsPrev=Bars; // кол-во пересчетов
   if (History!= 0 && limit>History) limit=History- 1 ; // кол-во пересчетов по истории

   for ( int i=limit; i>= 1 ; i--) // цикл по непосчитанным и предпоследнему барам
     {
       int n;
       int iShift=i+Shift;
      
       if (i== 0 )
      Input[i]= iClose (Symb, Period (), iShift);
       else
      Input[i]=( iHigh (Symb, Period (), iShift)+ iLow (Symb, Period (), iShift))/ 2 ;
       }

Anladığım kadarıyla, sonuncusu hariç tüm çubukları sayıyor.

Son çubuğun i=0 olduğunda yeniden hesaplanması için nasıl yapacağımı söyle (döngüde bunun için zaten bir koşul var)?

 
Cevaplar için çok teşekkür ederim)))) iClose'u Close [0] ile değiştirdim ve her şey ortaya çıktı .... garip olsa da ...)))))) tekrar teşekkürler))))
 
Lisi4ka330 :
Cevaplar için çok teşekkür ederim)))) iClose'u Close [0] ile değiştirdim ve her şey ortaya çıktı .... garip olsa da ...)))))) tekrar teşekkürler))))
Protokol için, iClose (NULL, 0, 1) Close[1]'dir, Close[0] değil
 
Cmu4 :

Böyle bir yeniden hesaplama algoritması var:

Anladığım kadarıyla, sonuncusu hariç tüm çubukları sayıyor.

Son çubuğun i=0 olduğunda yeniden hesaplanması için nasıl yapacağımı söyle (döngüde bunun için zaten bir koşul var)?

hayır, >= 1 yazarsınız (1. çubuğa eşit veya büyüktür, yani 0'a ulaşmazsınız... koşulu >=0 olarak değiştirin

not


ve bu ne için?

 int iShift=i+Shift;
 
Aleksander :

hayır, >= 1 yazarsınız (1. çubuğa eşit veya büyüktür, yani 0'a ulaşmazsınız... koşulu >=0 olarak değiştirin

not


ve bu ne için?

Kesinlikle, "deneylerimi" tamamen unuttum. Son zamanlarda 0'dan 1'e düzeltildi ve öyle kaldı. Teşekkür ederim!

iShift, harici olarak ayarlanmış bir vardiyadır.

 
Cmu4 :

Kesinlikle, "deneylerimi" tamamen unuttum. Son zamanlarda 0'dan 1'e düzeltildi ve öyle kaldı. Teşekkür ederim!

iShift, harici olarak ayarlanmış bir vardiyadır.

nuda... ama 0. barı izlemen gerektiğini yazıyorsun...

o zaman götür

 f (i== 0 )
      Input[i]= iClose (Symb, Period (), iShift);

oradan kaydır :) - 0 (sıfır chtoli) koy

 f (i== 0 )
      Input[i]= iClose (Symb, Period (), 0);
 
Bir sorum var. Terminaldeki işlemlerin sıra numarası kalıcı olarak atanmış mı yoksa değişiyor mu? Örneğin, 0 - 1 - 2 sayılarıyla üç anlaşma açtınız, 1 numaralı anlaşmayı kapattınız, bu durumda 0 ve 2 anlaşmaları kalacak mı yoksa 0 ve 1 mi olacak?
 
evet, kuyrukta hareket edecek ve sadece işlemler, grafik nesneler ve global değişkenler aynı şekilde davranmakla kalmayacak.
 

Bana yardım et lütfen. Aşağıdaki koşullar karşılanabilir mi?

Mevcut fiyat MA'yı geçerse, algoritmanın { } içinde başlatıldığından emin olmamız gerekir:

 if (Bid== iMA ( 0 , 0 ,ma_period,ma_shift,ma_method, PRICE_MEDIAN , 0 )
{
 ...
}

if (Ask== iMA ( 0 , 0 ,ma_period,ma_shift,ma_method, PRICE_MEDIAN , 0 )
{
 ...
}
 
orb :

Bana yardım et lütfen. Aşağıdaki koşullar karşılanabilir mi?

Mevcut fiyat MA'yı geçerse, algoritmanın { } içinde başlatıldığından emin olmamız gerekir:


Ve ne, hangi yoldan geçtiği önemli mi ??? dahiyane taktik...

Kod tabanında dama ve diğer göstergelerin kesiştiği birçok Uzman Danışman var, tekerleği yeniden yapmaya gerek yok ;)