iBarShift와 유사함 - 페이지 11 1...4567891011121314151617 새 코멘트 Vitaly Muzichenko 2018.04.05 01:32 #101 Nikolai Semko : 네, 그렇습니다. 일반 기능의 일반적인 동작이 이상합니다. 결국, 우리는 "참조"에서 값을 정확하게 조정하고 있습니다. MQL4의 일반 함수 iBarShift는 요청한 시간이 구멍에 들어갈 때 왼쪽 막대의 번호(즉, 이 경우 토요일)를 반환하고 iBarShift3은 구멍에서 오른쪽 막대(즉, 월요일)의 번호를 반환합니다. 더 논리적입니다. 구멍에 있는 경우 왼쪽 막대, 마지막으로 알려진 값을 반환하지만 미래는 반환하지 않는 것이 논리적입니다. Nikolai Semko 2018.04.05 01:40 #102 Vitaly Muzichenko : 구멍에 있는 경우 왼쪽 막대, 마지막으로 알려진 값을 반환하지만 미래는 반환하지 않는 것이 논리적입니다. 네. 뭔가 내가 바보입니다. 과거와 미래를 혼동합니다. 아마도 1(과거) > 0(미래) 때문일 것입니다. 프로그래밍. Nikolai Semko 2018.04.05 02:48 #103 Alain Verleyen : 대부분의 경우 함수는 잘못된 결과를 반환합니다. 추신: 영어 버전을 게시해야 합니까 아니면 러시아어 번역이 정확합니까? 네, 번역이 맞습니다. 이 스크립트를 실행하면 함수 가 정확히 동일한 결과를 생성하는 것을 볼 수 있습니다. 이 함수들의 값이 다른 시간대와 시간의 예를 들어주실 수 있나요? 그건 그렇고, 당신의 기능은 종종 잘못됩니다. 값 -1을 반환합니다. 2018.04 . 04 22 : 51 : 05.666 TestBarShift2 AUDUSD,M5: BarShiftX PERIOD_M1 0 - 1 2018.04 . 05 05 : 45 : 00 2018.04 . 04 22 : 50 : 46.867 TestBarShift2 AUDUSD,M5: BarShiftX PERIOD_M1 0 - 1 2018.04 . 05 05 : 46 : 00 2018.04 . 04 22 : 50 : 41.255 TestBarShift2 AUDUSD,M5: BarShiftX PERIOD_M1 0 - 1 2018.04 . 05 05 : 47 : 00 2018.04 . 04 22 : 50 : 23.496 TestBarShift2 AUDUSD,M5: BarShiftX PERIOD_M1 0 - 1 2018.04 . 05 05 : 45 : 00 2018.04 . 04 22 : 50 : 05.596 TestBarShift2 AUDUSD,M5: BarShiftX PERIOD_M1 0 - 1 2018.04 . 05 05 : 47 : 00 2018.04 . 04 22 : 48 : 38.638 TestBarShift2 AUDUSD,M5: BarShiftX PERIOD_M1 0 - 1 2018.04 . 05 05 : 47 : 00 파일: TestBarShift2.mq4 3 kb Nikolai Semko 2018.04.05 06:23 #104 Alain Verleyen : 요구 사항은 mql4 버전과 같은 것입니다. 함수가 exact=true 매개변수와 함께 올바르게 작동하지 않습니다. 이 스크립트에서 확인할 수 있습니다. 그리고 정확한 매개변수 가 있는 iBarShift 함수의 전체 작동 아날로그는 다음 과 같습니다. int iBarShift1( const string Symb, const ENUM_TIMEFRAMES TimeFrame, datetime time, bool exact= false ) { int Res= Bars (Symb,TimeFrame,time+ 1 , UINT_MAX ); if (exact) if ((TimeFrame!= PERIOD_MN1 || time> TimeCurrent ()) && Res== Bars (Symb,TimeFrame,time- PeriodSeconds (TimeFrame)+ 1 , UINT_MAX )) return (- 1 ); return (Res); } 이 매개변수가 없으면 다음 형식으로 단순화할 수 있습니다. Bars (Symb,TimeFrame,time+ 1 , UINT_MAX ); 파일: TestBarShift2.mq4 3 kb Alain Verleyen 2018.04.05 09:05 #105 Nikolai Semko : 네, 번역이 맞습니다. 이 스크립트를 실행하면 함수 가 정확히 동일한 결과를 생성하는 것을 볼 수 있습니다. 이 함수들의 값이 다른 시간대와 시간의 예를 들어주실 수 있나요? 그건 그렇고, 당신의 기능은 종종 잘못됩니다. 값 -1을 반환합니다. 진지해 주세요. 내 코드는 mql5입니다. Bars() 함수는 MT4에서 신뢰할 수 없기 때문에 -1을 반환합니다. ... int shift= Bars (symbol,timeframe,time,LastBAR); datetime checkcandle[ 1 ]; if ( CopyTime (symbol,timeframe,time, 1 ,checkcandle)== 1 ) { if (checkcandle[ 0 ]==time) return (shift- 1 ); else if (exact && time>checkcandle[ 0 ]+ PeriodSeconds (timeframe)) return (- 1 ); else return (shift); } ... AUDUSD, M5 차트에서 실행되는 스크립트. 이것은 MT5에서는 발생하지 않습니다. Nikolai Semko 2018.04.05 13:56 #106 Alain Verleyen : 진지해 주세요. 내 코드는 mql5입니다. Bars() 함수는 MT4에서 신뢰할 수 없기 때문에 -1을 반환합니다. AUDUSD, M5 차트에서 실행되는 스크립트. 이것은 MT5에서는 발생하지 않습니다. 모든 것이 MQL4에서처럼 작동해야 한다고 말씀하셨습니다. 그러나 이 스크립트는 MQL5에서도 실행할 수 있습니다. 2018.04 . 05 09 : 52 : 40.760 TestBarShift2 (EURUSD,M12) PERIOD_M3 BarShift1 = - 1 BarShift2 = 0 2018.08 . 10 18 : 39 : 49 exact = true 2018.04 . 05 09 : 52 : 40.760 TestBarShift2 (EURUSD,M12) PERIOD_M10 BarShift1 = - 1 BarShift2 = 0 2018.04 . 15 00 : 25 : 08 exact = true 2018.04 . 05 09 : 52 : 40.761 TestBarShift2 (EURUSD,M12) PERIOD_M6 BarShift1 = - 1 BarShift2 = 0 2018.04 . 21 04 : 26 : 03 exact = true 2018.04 . 05 09 : 52 : 40.761 TestBarShift2 (EURUSD,M12) PERIOD_M15 BarShift1 = - 1 BarShift2 = 0 2018.05 . 29 17 : 10 : 52 exact = true 2018.04 . 05 09 : 52 : 40.761 TestBarShift2 (EURUSD,M12) PERIOD_M12 BarShift1 = - 1 BarShift2 = 0 2018.09 . 16 13 : 10 : 33 exact = true 2018.04 . 05 09 : 52 : 40.762 TestBarShift2 (EURUSD,M12) PERIOD_M10 BarShift1 = - 1 BarShift2 = 0 2018.09 . 25 21 : 24 : 50 exact = true 2018.04 . 05 09 : 52 : 40.762 TestBarShift2 (EURUSD,M12) PERIOD_M10 BarShift1 = - 1 BarShift2 = 0 2018.05 . 30 20 : 04 : 10 exact = true 2018.04 . 05 09 : 52 : 40.762 TestBarShift2 (EURUSD,M12) PERIOD_M5 BarShift1 = - 1 BarShift2 = 0 2018.04 . 29 16 : 12 : 16 exact = true 정확=참 및 미래 시제를 사용하면 -1을 반환해야 합니다. 그리고 내 스크립트는 당신에게서 이상한 오류를 발견했습니다. 이 오류는 다음 검사로 확인됩니다. Print (iBarShift2( _Symbol , PERIOD_MN1 , D'2015.12.31 21:03:54' , true )); // -1 Print (iBarShift1( _Symbol , PERIOD_MN1 , D'2015.12.31 21:03:54' , true )); // 28 그래서 나는 당신의 알고리즘에 비정상적인 상황이 존재한다는 것에 대해 여전히 옳았습니다. 파일: TestBarShift2.mq5 4 kb Nikolai Semko 2018.04.05 14:43 #107 내가 한 모든 분석에서 결론은 이것이 iBarShift 기능과 완전히 유사하다는 것을 암시합니다. int iBarShift( const string Symb, const ENUM_TIMEFRAMES TimeFrame, datetime time, bool exact= false ) { int Res= Bars (Symb,TimeFrame,time+ 1 , UINT_MAX ); if (exact) if ((TimeFrame!= PERIOD_MN1 || time> TimeCurrent ()) && Res== Bars (Symb,TimeFrame,time- PeriodSeconds (TimeFrame)+ 1 , UINT_MAX )) return (- 1 ); return (Res); } 가장 정확하고 동시에 가장 빠르고 가장 간단하고 짧은 알고리즘입니다. 정확한 매개변수가 필요하지 않은 경우 단순화된 버전을 사용할 수 있습니다. int iBarShift( const string Symb, const ENUM_TIMEFRAMES TimeFrame, datetime time) { return ( Bars (Symb,TimeFrame,time+ 1 , UINT_MAX )); } 또는 함수를 호출 하지 않고 이 동등한 옵션을 사용하십시오. Bars (Symb,TimeFrame,time+ 1 , UINT_MAX ); 아니면 내가 틀렸습니까? Nikolai Semko 2018.04.05 16:43 #108 침묵은 동의를 의미합니다. fxsaber 2018.04.05 17:04 #109 Nikolai Semko : 침묵은 동의를 의미합니다. ME에서 CTRL + SHIFT + F를 통해 "BarShift"를 검색했습니다. 비슷한 기능을 사용하지 않는 것으로 나타났습니다. 그럴 필요가 없었던 것 같습니다. 한 번은 한 줄에 MT4 Expert Advisors를 MT5로 변환하는 변형을 작성한 적이 있습니다. 쓰는 유일한 이유인 것 같습니다. 나는 술집과 일하지 않으며 왜 다른 사람들도 똑같이 하지 않는지 이해할 수 없습니다. 코드를 이해하지 못했습니다. 하지만 빠른 해결책을 얻을 때마다 저는 항상 기쁩니다. Nikolai Semko 2018.04.05 17:14 #110 fxsaber : ME에서 CTRL + SHIFT + F를 통해 "BarShift"를 검색했습니다. 비슷한 기능을 사용하지 않는 것으로 나타났습니다. 그럴 필요가 없었던 것 같습니다. 한 번은 한 줄에 MT4 Expert Advisors를 MT5로 변환하는 변형을 작성한 적이 있습니다. 쓰는 유일한 이유인 것 같습니다. 나는 술집과 일하지 않으며 왜 다른 사람들도 똑같이 하지 않는지 이해할 수 없습니다. 코드를 이해하지 못했습니다. 하지만 빠른 해결책을 얻을 때마다 저는 항상 기쁩니다. 나는 당신이 의미하는 바를 이해하지만 나에게 바 작업은 여전히 적합합니다. 언젠가는 나에게도 흔적이 되지 않을까. 1...4567891011121314151617 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
네, 그렇습니다. 일반 기능의 일반적인 동작이 이상합니다. 결국, 우리는 "참조"에서 값을 정확하게 조정하고 있습니다.
MQL4의 일반 함수 iBarShift는 요청한 시간이 구멍에 들어갈 때 왼쪽 막대의 번호(즉, 이 경우 토요일)를 반환하고 iBarShift3은 구멍에서 오른쪽 막대(즉, 월요일)의 번호를 반환합니다. 더 논리적입니다.
구멍에 있는 경우 왼쪽 막대, 마지막으로 알려진 값을 반환하지만 미래는 반환하지 않는 것이 논리적입니다.
구멍에 있는 경우 왼쪽 막대, 마지막으로 알려진 값을 반환하지만 미래는 반환하지 않는 것이 논리적입니다.
추신: 영어 버전을 게시해야 합니까 아니면 러시아어 번역이 정확합니까?
네, 번역이 맞습니다.
이 스크립트를 실행하면 함수 가 정확히 동일한 결과를 생성하는 것을 볼 수 있습니다.
이 함수들의 값이 다른 시간대와 시간의 예를 들어주실 수 있나요?
그건 그렇고, 당신의 기능은 종종 잘못됩니다. 값 -1을 반환합니다.
요구 사항은 mql4 버전과 같은 것입니다.
함수가 exact=true 매개변수와 함께 올바르게 작동하지 않습니다.
이 스크립트에서 확인할 수 있습니다.
그리고 정확한 매개변수 가 있는 iBarShift 함수의 전체 작동 아날로그는 다음 과 같습니다.
이 매개변수가 없으면 다음 형식으로 단순화할 수 있습니다.
네, 번역이 맞습니다.
이 스크립트를 실행하면 함수 가 정확히 동일한 결과를 생성하는 것을 볼 수 있습니다.
이 함수들의 값이 다른 시간대와 시간의 예를 들어주실 수 있나요?
그건 그렇고, 당신의 기능은 종종 잘못됩니다. 값 -1을 반환합니다.
진지해 주세요. 내 코드는 mql5입니다.
Bars() 함수는 MT4에서 신뢰할 수 없기 때문에 -1을 반환합니다.
AUDUSD, M5 차트에서 실행되는 스크립트.
이것은 MT5에서는 발생하지 않습니다.
진지해 주세요. 내 코드는 mql5입니다.
Bars() 함수는 MT4에서 신뢰할 수 없기 때문에 -1을 반환합니다.
AUDUSD, M5 차트에서 실행되는 스크립트.
이것은 MT5에서는 발생하지 않습니다.
모든 것이 MQL4에서처럼 작동해야 한다고 말씀하셨습니다.
그러나 이 스크립트는 MQL5에서도 실행할 수 있습니다.
정확=참 및 미래 시제를 사용하면 -1을 반환해야 합니다.
그리고 내 스크립트는 당신에게서 이상한 오류를 발견했습니다.
이 오류는 다음 검사로 확인됩니다.
그래서 나는 당신의 알고리즘에 비정상적인 상황이 존재한다는 것에 대해 여전히 옳았습니다.내가 한 모든 분석에서 결론은 이것이 iBarShift 기능과 완전히 유사하다는 것을 암시합니다.
가장 정확하고 동시에 가장 빠르고 가장 간단하고 짧은 알고리즘입니다.
정확한 매개변수가 필요하지 않은 경우 단순화된 버전을 사용할 수 있습니다.
또는 함수를 호출 하지 않고 이 동등한 옵션을 사용하십시오.
아니면 내가 틀렸습니까?침묵은 동의를 의미합니다.
ME에서 CTRL + SHIFT + F를 통해 "BarShift"를 검색했습니다. 비슷한 기능을 사용하지 않는 것으로 나타났습니다. 그럴 필요가 없었던 것 같습니다.
한 번은 한 줄에 MT4 Expert Advisors를 MT5로 변환하는 변형을 작성한 적이 있습니다. 쓰는 유일한 이유인 것 같습니다.
나는 술집과 일하지 않으며 왜 다른 사람들도 똑같이 하지 않는지 이해할 수 없습니다.
코드를 이해하지 못했습니다. 하지만 빠른 해결책을 얻을 때마다 저는 항상 기쁩니다.
ME에서 CTRL + SHIFT + F를 통해 "BarShift"를 검색했습니다. 비슷한 기능을 사용하지 않는 것으로 나타났습니다. 그럴 필요가 없었던 것 같습니다.
한 번은 한 줄에 MT4 Expert Advisors를 MT5로 변환하는 변형을 작성한 적이 있습니다. 쓰는 유일한 이유인 것 같습니다.
나는 술집과 일하지 않으며 왜 다른 사람들도 똑같이 하지 않는지 이해할 수 없습니다.
코드를 이해하지 못했습니다. 하지만 빠른 해결책을 얻을 때마다 저는 항상 기쁩니다.
나는 당신이 의미하는 바를 이해하지만 나에게 바 작업은 여전히 적합합니다. 언젠가는 나에게도 흔적이 되지 않을까.