Init() 및 DeInit() 실행 순서 - 페이지 22 1...1516171819202122232425262728 새 코멘트 Dmitry Fedoseev 2017.04.14 23:47 #211 fxsaber : 해결책 저것들. 전체 문제는 표시기에 동일한 행 두 개를 추가하는 것입니다. 라이브러리 코드 어떤 식 으로든 더 간단하고 명확하고 명확합니까? 또한 표시기의 각 인스턴스 에는 전역 변수로 고유한 이름이 필요합니다. 갑자기 차트에 매개변수가 다른 두 개의 표시기가 나타납니다. fxsaber 2017.04.15 00:21 #212 Dmitry Fedoseev : 어떤 식 으로든 더 간단하고 명확하고 명확합니까? 안 돼요. 또한 표시기의 각 인스턴스 에는 전역 변수로 고유한 이름이 필요합니다. 갑자기 차트에 매개변수가 다른 두 개의 표시기가 나타납니다. 이 작업을 수행할 필요가 없습니다. 동일한 차트에서 매개변수가 다른 두 개의 지표 인스턴스는 이 스레드에서 원하는 사용법과 반대입니다. 따라서 두 번째 인스턴스를 시작하면 첫 번째 인스턴스가 언로드될 때까지 작동하지 않습니다. Dmitry Fedoseev 2017.04.15 00:26 #213 fxsaber : 안 돼요. ... #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 string gvName; double Label1Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit (){ gvName= MQLInfoString ( MQL_PROGRAM_NAME ); if ( GlobalVariableCheck (gvName)){ EventSetMillisecondTimer ( 1 ); } else { GlobalVariableSet (gvName, 1 ); NewInit(); } return ( INIT_SUCCEEDED ); } void NewInit(){ // все что было в ините должно быть здесь SetIndexBuffer ( 0 ,Label1Buffer, INDICATOR_DATA ); } void OnDeinit ( const int r){ GlobalVariableDel (gvName); } void OnTimer (){ if (! GlobalVariableCheck (gvName)){ EventKillTimer (); GlobalVariableSet (gvName, 1 ); NewInit(); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { for ( int i=rates_total- 10 ;i<rates_total;i++)Label1Buffer[i]=close[i]; return (rates_total); } //+------------------------------------------------------------------+ 그것? fxsaber 2017.04.15 00:33 #214 Dmitry Fedoseev : 그것? 당연히 아니지. 핸들 차트는 전역 변수 의 이름으로 작성해야 합니다. 그리고 내 솔루션은 두 줄만 추가하여 달성됩니다. 이것은 다소 쉽습니다. #include <Init_Sync.mqh> // Делает синхронизированными Init/Deinit индикаторов #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 double Label1Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit (){ SetIndexBuffer ( 0 ,Label1Buffer, INDICATOR_DATA ); return ( INIT_SUCCEEDED ); } void OnTimer (){ CHECK_INIT_SYNC; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { for ( int i=rates_total- 10 ;i<rates_total;i++)Label1Buffer[i]=close[i]; return (rates_total); } //+------------------------------------------------------------------+ Dmitry Fedoseev 2017.04.15 00:40 #215 fxsaber : 당연히 아니지. 핸들 차트는 전역 변수 의 이름으로 작성해야 합니다. 그리고 내 솔루션은 두 줄만 추가하여 달성됩니다. 이것은 다소 쉽습니다. 그리고 논리 자체(알고리즘)는 동일합니까? Dmitry Fedoseev 2017.04.15 00:42 #216 fxsaber : .... 그리고 내 솔루션은 두 줄만 추가하여 달성됩니다. 이것은 다소 쉽습니다. 그리고 표준 초기화가 아닌 지연을 사용하여 SetIndexBuffer와 같은 함수를 호출 해도 문제가 되지 않습니까? 이것이 정상이라고 절대 확신합니까? fxsaber 2017.04.15 00:43 #217 Dmitry Fedoseev : 그리고 논리 자체(알고리즘)는 동일합니까? 네. fxsaber 2017.04.15 00:46 #218 Dmitry Fedoseev : 내가 가지고 있는 줄 수와 당신이 가지고 있는 줄 수를 세어 보세요... 그는 두 줄을 추가합니다. 당신은 계산하지 않았습니다 - 많이. 이 논의의 원하는 속성을 갖는 지표에 대해 정확히 두 개만 추가하면 충분합니다. Dmitry Fedoseev 2017.04.15 00:48 #219 fxsaber : 당신은 계산하지 않았습니다 - 많이. 이 논의의 원하는 속성을 갖는 지표에 대해 정확히 두 개만 추가하면 충분합니다. 열 번째 질문입니다. 취향의 문제. 하지만 여전히 내 코드는 5배 더 작고 읽을 수 있습니다./ 더 흥미로운 것은 다음과 같습니다. 표준 초기화가 아닌 지연으로 SetIndexBuffer 함수를 호출하는 것이 귀찮습니까? 이것이 정상이라고 절대 확신합니까? fxsaber 2017.04.15 00:53 #220 Dmitry Fedoseev : 표준 초기화가 아닌 지연으로 SetIndexBuffer 함수를 호출하는 것이 귀찮습니까? 이것이 정상이라고 절대 확신합니까? 물론 입니다. OnCalculate를 호출하면 문제가 발생할 수 있지만 라이브러리를 약간 조정하면 해결됩니다. 월요일에 밝힐 수 있습니다. 원칙적으로 한 줄로 할 수 있습니다. 1...1516171819202122232425262728 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
해결책
저것들. 전체 문제는 표시기에 동일한 행 두 개를 추가하는 것입니다.
라이브러리 코드
어떤 식 으로든 더 간단하고 명확하고 명확합니까?
또한 표시기의 각 인스턴스 에는 전역 변수로 고유한 이름이 필요합니다. 갑자기 차트에 매개변수가 다른 두 개의 표시기가 나타납니다.
어떤 식 으로든 더 간단하고 명확하고 명확합니까?
안 돼요.
또한 표시기의 각 인스턴스 에는 전역 변수로 고유한 이름이 필요합니다. 갑자기 차트에 매개변수가 다른 두 개의 표시기가 나타납니다.
이 작업을 수행할 필요가 없습니다. 동일한 차트에서 매개변수가 다른 두 개의 지표 인스턴스는 이 스레드에서 원하는 사용법과 반대입니다.
따라서 두 번째 인스턴스를 시작하면 첫 번째 인스턴스가 언로드될 때까지 작동하지 않습니다.
안 돼요.
...
그것?
그것?
당연히 아니지. 핸들 차트는 전역 변수 의 이름으로 작성해야 합니다.
그리고 내 솔루션은 두 줄만 추가하여 달성됩니다. 이것은 다소 쉽습니다.
당연히 아니지. 핸들 차트는 전역 변수 의 이름으로 작성해야 합니다.
그리고 내 솔루션은 두 줄만 추가하여 달성됩니다. 이것은 다소 쉽습니다.
그리고 논리 자체(알고리즘)는 동일합니까?
....
그리고 내 솔루션은 두 줄만 추가하여 달성됩니다. 이것은 다소 쉽습니다.
그리고 표준 초기화가 아닌 지연을 사용하여 SetIndexBuffer와 같은 함수를 호출 해도 문제가 되지 않습니까? 이것이 정상이라고 절대 확신합니까?
그리고 논리 자체(알고리즘)는 동일합니까?
내가 가지고 있는 줄 수와 당신이 가지고 있는 줄 수를 세어 보세요... 그는 두 줄을 추가합니다.
당신은 계산하지 않았습니다 - 많이.
이 논의의 원하는 속성을 갖는 지표에 대해 정확히 두 개만 추가하면 충분합니다.
당신은 계산하지 않았습니다 - 많이.
이 논의의 원하는 속성을 갖는 지표에 대해 정확히 두 개만 추가하면 충분합니다.
열 번째 질문입니다. 취향의 문제. 하지만 여전히 내 코드는 5배 더 작고 읽을 수 있습니다./
더 흥미로운 것은 다음과 같습니다.
표준 초기화가 아닌 지연으로 SetIndexBuffer 함수를 호출하는 것이 귀찮습니까? 이것이 정상이라고 절대 확신합니까?
표준 초기화가 아닌 지연으로 SetIndexBuffer 함수를 호출하는 것이 귀찮습니까? 이것이 정상이라고 절대 확신합니까?
물론 입니다. OnCalculate를 호출하면 문제가 발생할 수 있지만 라이브러리를 약간 조정하면 해결됩니다. 월요일에 밝힐 수 있습니다.
원칙적으로 한 줄로 할 수 있습니다.