MQL 전문가를 위한 질문 - 페이지 16 1...9101112131415161718 새 코멘트 Nestradamus 2014.02.16 13:19 #151 artmedia70 : 그런 상징이 있습니까? 밑에 감사합니다!!! 그런 글리치는 절대 발견하지 못했을 텐데... 교과서에 헛소리를 하고, 유혹을 받고, 쳐다보지도 않고 카피를 하고... khorosh 2014.02.17 14:08 #152 어디가 잘못되었는지 알려주세요. 결과가 다른 이유는 무엇입니까? //+------------------------------------------------------------------+ //| TestFr.mq4 | //| Copyright 2013, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //--- double FrUpz= 0 ; double FrUp1 = GetFractal( "0" , 0 , 1 , MODE_UPPER ); double FrUp2 = GetFractal( "0" , 0 , 2 , MODE_UPPER ); double FrUp3 = GetFractal( "0" , 0 , 3 , MODE_UPPER ); Print ( "# FrUp1=" ,FrUp1); Print ( "# FrUp2=" ,FrUp2); Print ( "# FrUp3=" ,FrUp3); for ( int z= 1 ;z<= 3 ;z++) { FrUpz = GetFractal( "0" , 0 , z, MODE_UPPER ); Print ( "z=" ,z, " FrUpz=" ,FrUpz); } } //+------------------------------------------------------------------+ //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru & khorosh | //+----------------------------------------------------------------------------+ //| Версия : 08.02.2009 | //| Описание : Возвращает фрактал по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| nf - номер фрактала ( 0 - последний) | //+----------------------------------------------------------------------------+ double GetFractal( string sy= "0" , int tf= 0 , int nf= 0 , int mode= MODE_UPPER ) { if (sy== "" || sy== "0" ) sy= Symbol (); double f= 0 ; int i, k= iBars (sy, tf), kf; for (i= 3 ; i<k; i++) { if (mode== MODE_LOWER ){ f= iFractals (sy, tf, MODE_LOWER , i); if (f!= 0 ) { kf++; if (kf>nf) return ( iLow (sy,tf,i)); } } if (mode== MODE_UPPER ){ f= iFractals (sy, tf, MODE_UPPER , i); if (f!= 0 ) { kf++; if (kf>nf) return ( iHigh (sy,tf,i)); } } } Print ( "GetFractalBar(): Фрактал не найден" ); return (- 1 ); } 결과: 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104 2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083 Victor Nikolaev 2014.02.17 15:48 #153 khorosh : 어디가 잘못되었는지 알려주세요. 결과가 다른 이유는 무엇입니까? 결과: 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083 2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104 2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162 2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083 제어의 편의를 위해 기능을 약간 재작업했습니다. 이제 막대의 번호를 반환합니다. //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru & khorosh | //+----------------------------------------------------------------------------+ //| Версия : 08.02.2009 | //| Описание : Возвращает фрактал по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| nf - номер фрактала ( 0 - последний) | //+----------------------------------------------------------------------------+ double GetFractal( string sy= "0" , int tf= 0 , int nf= 0 , int mode= MODE_UPPER ) { if (sy== "" || sy== "0" ) sy= Symbol (); double f= 0 ; int i,k= iBars (sy,tf),kf; for (i= 3 ; i<k; i++) { if (mode== MODE_LOWER ) { f= iFractals (sy,tf, MODE_LOWER ,i); if (f!= 0 ) { kf++; // if(kf>nf) return(iLow(sy,tf,i)); if (kf>nf) return (i); } } if (mode== MODE_UPPER ) { f= iFractals (sy,tf, MODE_UPPER ,i); if (f!= 0 ) { kf++; // if(kf>nf) return(iHigh(sy,tf,i)); if (kf>nf) return (i); } } } Print ( "GetFractalBar(): Фрактал не найден" ); return (- 1 ); } //+------------------------------------------------------------------+ 결과 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=3 FrUpz=9.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=2 FrUpz=9.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=1 FrUpz=13.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp3=24.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp2=17.0 2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp1=13.0 Victor Nikolaev 2014.02.17 15:51 #154 모든 변수의 명시적 초기화 추가됨 double GetFractal( string sy= "0" , int tf= 0 , int nf= 0 , int mode= MODE_UPPER ) { if (sy== "" || sy== "0" ) sy= Symbol (); double f= 0 ; int i= 0 ,k= iBars (sy,tf),kf= 0 ; for (i= 3 ; i<k; i++) { if (mode== MODE_LOWER ) { f= iFractals (sy,tf, MODE_LOWER ,i); if (f!= 0 ) { kf++; // if(kf>nf) return(iLow(sy,tf,i)); if (kf>nf) return (i); } } if (mode== MODE_UPPER ) { f= iFractals (sy,tf, MODE_UPPER ,i); if (f!= 0 ) { kf++; // if(kf>nf) return(iHigh(sy,tf,i)); if (kf>nf) return (i); } } } Print ( "GetFractalBar(): Фрактал не найден" ); return (- 1 ); } 결과 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0 개발자에게 보여줘야 합니다. 기능에 문제가 있습니다. Eugene Krasnov 2014.02.17 17:10 #155 나는 그 코드가 Print(ChartID()," ",ChartGetInteger(ChartID(), CHART_HEIGHT_IN_PIXELS ,0)); 표시기에 배치하면 이상한 결과가 나타납니다. 따라서 지표가 실제로 재설정 된 차트의 탭이 열려 있으면 기본 차트 창의 높이 결과가 매우 올바르게 표시됩니다. 그러나 "네이티브" 차트를 떠나자마자 어떤 이유로 결과는 75와 같아지지만(물론 다른 경우에는 결과가 다를 수 있음) 차트 식별자의 값은 그대로 유지됩니다. "네이티브" 플롯으로 돌아가면 높이 값이 정확해집니다. 여기에 있는 기능이 무엇인지 설명하기 위해 "알고 있는" 개발자와 사람들의 큰 요청입니다. 원래 그런 뜻이야?! 뭔가 믿을 수 없다! 글쎄요, 그렇다면 열려 있는 탭에 대해 "기본" 차트의 높이 값을 올바르게 제공하는 코드를 제안해 주시기 바랍니다. 피벗 표시기 엘리트 지표 :) 지그재그 표시기 문제 khorosh 2014.02.17 19:04 #156 Vinin : 모든 변수의 명시적 초기화 추가 결과 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0 2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0 개발자에게 보여줘야 합니다. 기능에 문제가 있습니다. 제 문제에 관심을 가져주셔서 감사합니다. 그 이유는 함수의 두 변수가 명시적으로 초기화되지 않았기 때문인 것으로 밝혀졌습니다. Kim의 모든 기능을 살펴보고 수정해야 합니다. Рита 2014.02.18 06:19 #157 안녕하세요. I.Kim의 기능은 Advisor의 코드에 포함됩니다. "마운트된" 라이브러리 호출을 제공합니다. "외부 매개변수" 뒤의 코드에서 다음이 제공됩니다. //-- Подключаемые модули -- #include <stderror.mqh> #include <stdlib.mqh> 그러나 우연히(동일한 mt4 업데이트 후 - 어드바이저가 작동하지 않음) "Advisor Properties" 창, "dependencies" 탭에서 이상한 항목을 발견했습니다. 이 오류의 의미와 해결 방법을 알려주세요(두 라이브러리가 모두 Include 폴더에 있는 경우)? 라이브러리 폴더는 어떻습니까? Alexey Subbotin 2014.02.18 06:47 #158 Rita : 안녕하세요. I.Kim의 기능은 Advisor의 코드에 포함됩니다. "마운트된" 라이브러리 호출을 제공합니다. "외부 매개변수" 뒤의 코드에서 다음이 제공됩니다. 그러나 우연히(동일한 mt4 업데이트 후 - 어드바이저가 작동하지 않음) "Advisor Properties" 창, "dependencies" 탭에서 이상한 항목을 발견했습니다. 이 오류의 의미와 해결 방법을 알려주세요(두 라이브러리가 모두 Include 폴더에 있는 경우)? 라이브러리 폴더는 어떻습니까? stderror.mqh는 소스 코드와 함께 터미널의 표준 배포판의 Libraries 폴더에 있는 stdlib.ex4 라이브러리에서 ErrorDescription 함수를 가져옵니다 . 이 파일이 있는지 확인하고 그렇지 않은 경우 다른 터미널에서 가져옵니다. Рита 2014.02.18 07:19 #159 두 폴더(Include 및 Libraries) 모두 stdlib 소스를 포함합니다. 만일을 대비하여 Include 폴더에서 추가 복사했습니다. 그러나 위에서 설명한 오류는 "종속성" 탭에 계속 표시됩니다. 어떻게 든 다음 함수의 호출을 변경할 수 있습니다. 대신: //-- Подключаемые модули -- #include <stderror.mqh> #include <stdlib.mqh> 다른 방법으로 전화를 걸까요? 아니면 최신 버전의 MT4에서 아이킴의 기능을 사용할 수 없게 됩니까? Vitalie Postolache 2014.02.18 07:57 #160 Rita : 두 폴더(Include 및 Libraries) 모두 stdlib 소스를 포함합니다. 만일을 대비하여 Include 폴더에서 추가 복사했습니다. 그러나 위에서 설명한 오류는 "종속성" 탭에 계속 표시됩니다. 어떻게 든 다음 함수의 호출을 변경할 수 있습니다. 대신: 다른 방법으로 전화를 걸까요? 아니면 최신 버전의 MT4에서 아이킴의 기능을 사용할 수 없게 됩니까? stdlib.ex4 실행 파일이 Libraries 폴더에 있는지 확인하십시오. 비록 그것이 배송된 표준 파일인 Kimov의 파일이 아닌 것 같기는 하지만 말입니다. 옵션으로 Kimov 함수가 무엇을 가져오는지 확인하고 무엇이 잘못되었는지 알아내십시오. 1...9101112131415161718 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그런 상징이 있습니까?
어디가 잘못되었는지 알려주세요. 결과가 다른 이유는 무엇입니까?
결과:
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104
2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083
어디가 잘못되었는지 알려주세요. 결과가 다른 이유는 무엇입니까?
결과:
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=3 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=2 FrUpz=1.37083
2014.02.17 19:56:38.828 TestFr EURUSD,M15: z=1 FrUpz=1.37104
2014.02.17 19:56:38.828 TestFr EURUSD,M15: # FrUp3=1.37056
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp2=1.37162
2014.02.17 19:56:38.812 TestFr EURUSD,M15: # FrUp1=1.37083
제어의 편의를 위해 기능을 약간 재작업했습니다. 이제 막대의 번호를 반환합니다.
결과
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=3 FrUpz=9.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=2 FrUpz=9.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: z=1 FrUpz=13.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp3=24.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp2=17.0
2014.02.17 21:45:57.409 TestFr GBPUSD,H1: # FrUp1=13.0
모든 변수의 명시적 초기화 추가됨
결과
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0
개발자에게 보여줘야 합니다. 기능에 문제가 있습니다.
나는 그 코드가
Print(ChartID()," ",ChartGetInteger(ChartID(), CHART_HEIGHT_IN_PIXELS ,0));
표시기에 배치하면 이상한 결과가 나타납니다. 따라서 지표가 실제로 재설정 된 차트의 탭이 열려 있으면 기본 차트 창의 높이 결과가 매우 올바르게 표시됩니다.
그러나 "네이티브" 차트를 떠나자마자 어떤 이유로 결과는 75와 같아지지만(물론 다른 경우에는 결과가 다를 수 있음) 차트 식별자의 값은 그대로 유지됩니다.
"네이티브" 플롯으로 돌아가면 높이 값이 정확해집니다.
여기에 있는 기능이 무엇인지 설명하기 위해 "알고 있는" 개발자와 사람들의 큰 요청입니다. 원래 그런 뜻이야?! 뭔가 믿을 수 없다!
글쎄요, 그렇다면 열려 있는 탭에 대해 "기본" 차트의 높이 값을 올바르게 제공하는 코드를 제안해 주시기 바랍니다.모든 변수의 명시적 초기화 추가
결과
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=3 FrUpz=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=2 FrUpz=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: z=1 FrUpz=13.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp3=24.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp2=17.0
2014.02.17 21:50:09.462 TestFr GBPUSD,H1: # FrUp1=13.0
개발자에게 보여줘야 합니다. 기능에 문제가 있습니다.
안녕하세요.
I.Kim의 기능은 Advisor의 코드에 포함됩니다. "마운트된" 라이브러리 호출을 제공합니다. "외부 매개변수" 뒤의 코드에서 다음이 제공됩니다.
그러나 우연히(동일한 mt4 업데이트 후 - 어드바이저가 작동하지 않음) "Advisor Properties" 창, "dependencies" 탭에서 이상한 항목을 발견했습니다.
이 오류의 의미와 해결 방법을 알려주세요(두 라이브러리가 모두 Include 폴더에 있는 경우)? 라이브러리 폴더는 어떻습니까?
안녕하세요.
I.Kim의 기능은 Advisor의 코드에 포함됩니다. "마운트된" 라이브러리 호출을 제공합니다. "외부 매개변수" 뒤의 코드에서 다음이 제공됩니다.
그러나 우연히(동일한 mt4 업데이트 후 - 어드바이저가 작동하지 않음) "Advisor Properties" 창, "dependencies" 탭에서 이상한 항목을 발견했습니다.
이 오류의 의미와 해결 방법을 알려주세요(두 라이브러리가 모두 Include 폴더에 있는 경우)? 라이브러리 폴더는 어떻습니까?
stderror.mqh는 소스 코드와 함께 터미널의 표준 배포판의 Libraries 폴더에 있는 stdlib.ex4 라이브러리에서 ErrorDescription 함수를 가져옵니다 . 이 파일이 있는지 확인하고 그렇지 않은 경우 다른 터미널에서 가져옵니다.
두 폴더(Include 및 Libraries) 모두 stdlib 소스를 포함합니다. 만일을 대비하여 Include 폴더에서 추가 복사했습니다.
그러나 위에서 설명한 오류는 "종속성" 탭에 계속 표시됩니다. 어떻게 든 다음 함수의 호출을 변경할 수 있습니다. 대신:
다른 방법으로 전화를 걸까요?
아니면 최신 버전의 MT4에서 아이킴의 기능을 사용할 수 없게 됩니까?
두 폴더(Include 및 Libraries) 모두 stdlib 소스를 포함합니다. 만일을 대비하여 Include 폴더에서 추가 복사했습니다.
그러나 위에서 설명한 오류는 "종속성" 탭에 계속 표시됩니다. 어떻게 든 다음 함수의 호출을 변경할 수 있습니다. 대신:
다른 방법으로 전화를 걸까요?
아니면 최신 버전의 MT4에서 아이킴의 기능을 사용할 수 없게 됩니까?
stdlib.ex4 실행 파일이 Libraries 폴더에 있는지 확인하십시오. 비록 그것이 배송된 표준 파일인 Kimov의 파일이 아닌 것 같기는 하지만 말입니다.
옵션으로 Kimov 함수가 무엇을 가져오는지 확인하고 무엇이 잘못되었는지 알아내십시오.