[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 319

 
drknn :


시장은 쉬고 있습니다 - 당신과 휴식.

시장은 월요일에 도쿄에서 열립니다. 시카고는 금요일 휴무입니다. 오전 2시경 개장, 약 22-23시간 폐장(시간대 - 모스크바 또는 키예프)

정말 감사합니다!))) 이미 재미있어졌습니다. 화요일부터 일을 시작해서 주말에도 시장이 쉬는 줄 몰랐어요.))
 
Zhunko :
기능은 없지만 MQL4 + WinAPI에서 가능합니다.

 //+------------------------------------------------------------------+
//|          Function  : int GetChartScale()[1,2,4,6,13]             |
//|          Copyright © 2012, XrustSolution.  mail:xrustx@gmail.com |
//|          https://www.youtube.com/user/opmlv http://forexrust.info |
//+------------------------------------------------------------------+
//|          Description: Возвращает ширину свечи по масштабу чарта  |
//+------------------------------------------------------------------+
#import "user32.dll"
   bool GetWindowRect( int h, int & pos[ 4 ]);
#import
//+------------------------------------------------------------------+
int GetChartScale(){
         int h = WindowHandle ( Symbol (), Period ());
         int rect[ 4 ];
         if (h== 0 ) return ( 1 );
        GetWindowRect(h, rect);
         int wW  = rect[ 2 ] - rect[ 0 ]; // ширина окна
         int bpc = WindowBarsPerChart ();
         if (bpc== 0 ) return ( 1 );
         int scale = MathFloor ((wW- 48 )/bpc);
         switch (scale){
                 case    1 :       return ( 0 );
                 case    2 :       return ( 1 );
                 case    4 :       return ( 2 );
                 case    8 :       return ( 3 );
                 case 16 :       return ( 6 );
                 case 32 :       return ( 13 );
                 default :   return ( 1 );
        }
         return ( 1 );
}
//+------------------------------------------------------------------+
 

안녕하세요! 표시 줄 이 표시되지 않는 이유를 알려주십시오. 코드가 기본적이고 복잡하지 않은 것 같습니다. 인쇄 확인(T_V) - 값을 제공하지만 어떤 이유로 줄이 표시되지 않습니까?

내 질문을 추가 합니다. 지표를 제거하고 다시 차트에 올려 놓으면 선이 표시됩니다. 컴파일하는 동안 표시기가 다시 계산되지 않는 이유는 무엇입니까?

 #property indicator_separate_window
#property indicator_minimum - 3
#property indicator_maximum 3
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_level1 0.0          //горизонтальный уровень N в отдельном окне индикатора, где N от 1 до 8 
#property indicator_levelcolor Black   // цвет горизонтальных уровней индикатора е 
#property indicator_levelwidth 1        //толщина горизонтальных уровней индикатора
double T_Vol[];

int init()
  {  SetIndexBuffer ( 0 , T_Vol); 
     SetIndexStyle   ( 0 , DRAW_HISTOGRAM , STYLE_SOLID , 1 ); 
     IndicatorDigits ( Digits );
   return ( 0 ); }
int start(){
   int limit;
   int сounted_bars= IndicatorCounted ();
   if (сounted_bars== 0 ) limit= Bars - 1 ;
   if (сounted_bars> 0 ) limit= Bars -сounted_bars- 1 ;
   for ( int i=limit;i>= 0 ;i--){
       int T_V= 0 ; 
       if (Volume[i]>Volume[i+ 1 ])T_V= 1 ;
       if (Volume[i]<Volume[i+ 1 ])T_V=- 1 ;
       T_Vol[i]=T_V;
   }
   return ( 0 );
}
 
PapaYozh :


하나.

"SignalBar" 변수의 값은 무엇이며 표시기는 이 막대에서 계산됩니까?

아마도 SignalBar=0이고 표시기는 0번째 막대를 계산하지 않습니다.

2.

예, 시각적 테스트 중에는 테스트가 완료되거나 중단될 때까지 표시기 버퍼가 표시되지 않습니다. 그러나 지표는 중요합니다.

중요한 사실을 지적해주셔서 감사합니다! 그러나 지금까지 아무 것도 작동하지 않았습니다 :(

그래서 지금 은 지표를 Expert Advisor로 이전하는 방법을 연구하고 있습니다. 현명한 조언이 있다면 거절하지 않겠습니다! :)

 

안녕하세요!

나는 아마추어 수준에서 프로그래밍을 공부했고 오랫동안 프로그래밍하지 않았으며 여기에 질문이 있습니다.

설정한 후 컴파일하는 동안 아무 일도 일어나지 않으면 MQL4에 중단점이 있는 이유는 무엇입니까? C#으로 프로그래밍을 많이 해서 프로그램 실행이 멈춤 현상이 있었고, 함수가 호출된 변수의 값과 오류 목록을 보면 알 수 있습니다. 여기에서 Compile을 누르면 아무 것도 없습니다. 아니면 어떻게든 디버그를 활성화할 수 있습니다. 방법을 모르겠습니다.

 

"이중 MathRound ( double 값)"이지만 더 큰 소수로 반올림해야 하며 숫자가 정수이거나 이미 소수인 경우 만지지 마십시오.

예: 1) 0.744를 0.8로 반올림합니다. 1.233에서 1.3으로 반올림

2) 0.9 또는 3 또는 1.5는 만지지 마십시오.



누가 도와주세요?
 

흥미롭게도 언어에 대한 완전하고 자세한 설명서 가 있다는 것을 알고 계십니까 ???

NormalizeDouble

 
FAQ :

흥미롭게도 언어에 대한 완전하고 자세한 설명서 가 있다는 것을 알고 계십니까 ???

NormalizeDouble

큰 방법으로, 그렇지 않으면 어떻게 든 모든 것이 당신을 위해 잘 작동합니다. 응? ...
 
okvseok :
큰 방법으로, 그렇지 않으면 어떻게 든 모든 것이 당신을 위해 잘 작동합니다. 응? ...

숫자를 문자열로 변환하고 이 문자열의 문자를 처리하는 함수를 작성할 수 있습니다. 여기에서는 어렵지 않습니다. 소수점 이하 자릿수가 두 개 이상인 경우에만 반올림합니다.
 
drknn :

숫자를 문자열로 변환하고 이 문자열의 문자를 처리하는 함수를 작성할 수 있습니다. 여기에서는 어렵지 않습니다. 소수점 이하 자릿수가 두 개 이상인 경우에만 반올림합니다.
알았어 정말 노력할게. 아이디어를 주셔서 감사합니다!