Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 29

 
PapaYozh :

Fiyat Deltası = Puan * 30;

Gerçek sayıların karşılaştırılması


bir kez daha çok teşekkür ederim

ps, yine de neden çift sayıları karşılaştıramadığınızı anlamadım

 

Güzel gün! Anlamıyorum. Test cihazını açtı. Kırk beş dakika geçti ve aslında bir saatten fazla, interneti kapattım, bir fırtına.

Hiç göremiyorum, bir şey mi oluyor yoksa bir aksaklık mı???? Bir şeyler doğru değil gibi görünüyor, kapatmaya cesaret edemiyorum.

 
sdm :


bir kez daha çok teşekkür ederim

ps, yine de neden çift sayıları karşılaştıramadığınızı anlamadım

Sabitler hala karşılaştırılabilir, ancak hesaplamadan sonraki sayı gitti. Örneğin, hesaplamadan sonra farklı değerlere sahip iki özdeş sayı elde edilebilir. EPSILON'da belirtilen doğruluk göz önüne alındığında, bu bir paradoks değildir.
 
sdm! Gerçek şu ki, sayı hem 1000.00001 hem de 1000.000001 olabilir ve bunlar farklı sayılardır. Ve programda kolayca öyle olacak, ancak ilk bakışta bu görünmüyor. Tabii ki, çift sayıları karşılaştırmak mümkündür, ancak dikkatli olmak daha iyidir.
 
Peki ya test cihazı, lütfen!? Şeridin üzerinde hiç sayı olmadığını, her zamanki gibi 3 \ 64668 veya bunun gibi bir şey olsun?
 
Dimka-novitsek :
Peki ya test cihazı, lütfen!? Şeridin üzerinde hiç sayı olmadığını, her zamanki gibi 3 \ 64668 veya bunun gibi bir şey olsun?

İlk geçiş tamamlanana kadar numara olmayacak. :(

SD'ye yazsan iyi olur.

 

Teşekkürler!! Anladım.

SD nedir?

 
Dimka-novitsek :

Teşekkürler!! Anladım.

SD nedir?

"Servis masası"
 

İyi günler meslektaşlarım!

Lütfen bana koddaki mantığın doğru olup olmadığını söyleyin.

Formüldeki kodun özü:

TRIN = (Yükselen çiftler/Düşen çiftler)/ (Yükselen çiftlerin hacmi/Düşen çiftlerin hacmi)

double Index[];
double instr_up, instr_dn, vol_dn, vol_up;
//+------------------------------------------------------------------+
int init()
{
   SetIndexBuffer ( 0 ,Index);
   SetIndexStyle( 0 , DRAW_LINE );   
   string Tf;
   if ( Period ()== 1 ) Tf= "M1" ;
   if ( Period ()== 5 ) Tf= "M5" ;
   if ( Period ()== 15 ) Tf= "M15" ;
   if ( Period ()== 30 ) Tf= "M30" ;
   if ( Period ()== 60 ) Tf= "H1" ;
   if ( Period ()== 240 ) Tf= "H4" ;
   if ( Period ()== 1440 ) Tf= "D1" ;
   if ( Period ()== 10080 ) Tf= "W1" ;
   if ( Period ()== 43200 ) Tf= "MN" ;         
         string short_name= "TRIN(" +Depth+ "," +Tf+ ")" ;
        IndicatorShortName(short_name);
   IndicatorDigits( 0 );
   return ( 0 );
}

//---- функция проверки цены закрытия на максимум Доллара США за период Depth
int newh( string symbol, int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period (), time_bar, false );
                
         if (symbol== "EURUSD" || symbol== "GBPUSD" || symbol== "AUDUSD" || symbol== "NZDUSD" )
            {

               int j=iLowest(symbol, Period (),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol, Period (),bar_no)==iClose(symbol, Period (),j))                    
                  {
                     int nh= 1 ;                                                 
                  }
               else                                                                  
                  {
                     nh= 0 ;                                              
                  }       
            }
         else
            {
               j=iHighest(symbol, Period (),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol, Period (),bar_no)==iClose(symbol, Period (),j))                    
                  {
                     nh= 1 ;                                                 
                  }
               else                                                                  
                  {
                     nh= 0 ;                                              
                  }             
            }
         return (nh);      
      }

//---- функция проверки цены закрытия на минимум Доллара США за период Depth
int newl( string symbol, int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period (), time_bar, false );      
      
         if (symbol== "EURUSD" || symbol== "GBPUSD" || symbol== "AUDUSD" || symbol== "NZDUSD" )
            {
               int j=iHighest(symbol, Period (),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol, Period (),bar_no)==iClose(symbol, Period (),j))                    
                  {
                     int nl= 1 ;                                                 
                  }
               else                                                                  
                  {
                     nl= 0 ;                                              
                  }       
            }
         else
            {
               j=iLowest(symbol, Period (),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol, Period (),bar_no)==iClose(symbol, Period (),j))                    
                  {
                     nl= 1 ;                                                 
                  }
               else                                                                  
                  {
                     nl= 0 ;                                              
                  }             
            }
         return (nl);      
      }
//+------------------------------------------------------------------+
int start()
{
   int limit= Bars -IndicatorCounted();
   for ( int i= 1 ; i<limit; i++)
          {       
              if (newh( "EURUSD" ,i) > 0                               //-- Если пара росла, то
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "EURUSD" , 0 ,i);}    //-- instr_up - увеличиваем на 1 и vol_up - увеличиваем на Volume по этой паре    
           else //if (newl("EURUSD",i) > 0)                          //-- иначе
               {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "EURUSD" , 0 ,i);}    //-- instr_dn - увеличиваем на 1 и vol_dn - увеличиваем на Volume по этой паре
              
             if (newh( "GBPUSD" ,i) > 0 )
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "GBPUSD" , 0 ,i);}
           else //if (newl("GBPUSD",i) > 0)
              {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "GBPUSD" , 0 ,i);}
            
             if (newh( "USDCHF" ,i) > 0 )
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "USDCHF" , 0 ,i);}
           else //if (newl("USDCHF",i) > 0)
              {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "USDCHF" , 0 ,i);}
            
             if (newh( "USDJPY" ,i) > 0 )
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "USDJPY" , 0 ,i);}
           else if (newl( "USDJPY" ,i) > 0 )
              {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "USDJPY" , 0 ,i);}
            
             if (newh( "AUDUSD" ,i) > 0 )
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "AUDUSD" , 0 ,i);}
           else //if (newl("AUDUSD",i) > 0)
              {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "AUDUSD" , 0 ,i);}
            
             if (newh( "USDCAD" ,i) > 0 )
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "USDCAD" , 0 ,i);}
           else //if (newl("USDCAD",i) > 0)
              {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "USDCAD" , 0 ,i);}
            
             if (newh( "NZDUSD" ,i) > 0 )
             {instr_up=instr_up+ 1 ;vol_up+=iVolume( "NZDUSD" , 0 ,i);}
           else //if (newl("NZDUSD",i) > 0)
              {instr_dn=instr_dn+ 1 ;vol_dn+=iVolume( "NZDUSD" , 0 ,i);}   
     
     if (instr_dn == 0 )instr_dn=EMPTY;    // -- Если 
     if (vol_dn == 0 )vol_dn=EMPTY;        // -- значения
     if (instr_up == 0 )instr_up=EMPTY;    // -- нулевые
     if (vol_up == 0 )vol_up=EMPTY;
     
     Index[i]=(instr_up/instr_dn)/(vol_up/vol_dn);    // -- TRIN
     
     instr_up= 0 ;instr_dn= 0 ;vol_up= 0 ;vol_dn= 0 ;    // -- Обнуление
     }
     
         return ( 0 );
}

İşte olanlar:

TRİN

Teşekkür ederim!