포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 29

 
PapaYozh :

가격 델타 = 포인트 * 30;

실수의 비교


다시 한번 큰 감사합니다

ps. 왜 이중수 비교가 안되는지 아직도 이해가 안가지만

 

안녕하세요! 이해가 안 됩니다. 테스터를 켰습니다. 45분이 지나고 실제로 1시간 넘게 인터넷을 껐습니다. 천둥번개입니다.

전혀 보이지 않습니다. 무슨 일이 일어나고 있는 건가요 아니면 결함이 있는 건가요???? 뭔가 잘못된 것 같아서 감히 끌 수가 없습니다.

 
sdm :


다시 한번 큰 감사합니다

ps. 왜 이중수 비교가 안되는지 아직도 이해가 안가지만

상수는 여전히 비교할 수 있지만 계산 후의 숫자는 사라집니다. 예를 들어, 계산 후 다른 값을 가진 두 개의 동일한 숫자를 얻을 수 있습니다. EPSILON에 지정된 정확도를 고려할 때 이것은 역설이 아닙니다.
 
sdm! 사실 숫자는 쉽게 1000.00001과 1000.000001 둘 다일 수 있으며 이들은 다른 숫자입니다. 그리고 프로그램에서는 쉽게 그렇게 될 것이지만 언뜻보기에는 보이지 않습니다. 물론 이중 숫자를 비교할 수도 있지만 주의하는 것이 좋습니다.
 
테스터는 어떻습니까!? 스트립 위에 숫자가 전혀 없다는 것은 평소와 같이 3 \ 64668이나 그와 비슷한 것입니까?
 
Dimka-novitsek :
테스터는 어떻습니까!? 스트립 위에 숫자가 전혀 없다는 것은 평소와 같이 3\64668이나 그와 비슷한 것입니다.

첫 번째 패스가 완료될 때까지 숫자가 없습니다. :(

SD에 쓰는 것이 좋습니다.

 

감사해요!! 이해했다.

SD 란 무엇입니까?

 
Dimka-novitsek :

감사해요!! 이해했다.

SD 란 무엇입니까?

"서비스 데스크"
 

좋은 오후입니다 동료들!

코드의 논리가 올바른지 알려주세요.

수식에서 코드의 본질:

TRIN = (상승 쌍/하락 쌍)/ (상승 쌍의 양/하락 쌍의 양)

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 );
}

다음은 일어난 일입니다.

트린

고맙습니다!

 

개체가 생성 된 창/하위 창의 코드에서 확인할 수 있습니까?