mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 230

 

begDayBar= iBarShift(_Symbol,_Period,begDayTime,false) 문서에 따르면 이 함수는 정확한 파라미터에 따라 -1 또는 가장 가까운 바 오프셋을 반환합니다.

하지만 오늘은 어떤 이유에서인지 begDayTime=2023.01.26 00:00:00인 경우 해당 막대가 있고 마지막 막대가 아닌데도 -1을 반환합니다.

2023.02.15 15:19:23.254 !indDAY_WSOWROhLine (EURRUB_TOM,M15) begDayTime=2023.01.26 00:00:00 endDayTime=2023.01.27 00:00:00 begDayBar=-2 endDayBar=-1 indATR=0 Q5days=0

를 반환하거나 올바른 막대를 반환할 수 있습니다.

Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
Документация по MQL5: Доступ к таймсериям и индикаторам / iBarShift
  • www.mql5.com
iBarShift - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
IuriiPrugov #:

오늘 어떤 이유로 begDayTime=2023.01.26 00:00:00 반환하면 -1 그런 막대가 있지만 마지막 막대가 아닙니다.

재생할 모든 데이터를 제공합니다.
 
fxsaber #:
재생할 모든 데이터를 입력합니다.

begDayTime=iTime(Symbol(),Inp_period,bar);begDayBar=iBarShift(_Symbol,_Period,begDayTime,false)-1;

Inp_period = M15

2023.02.19 13:02:42.517 !indDAY_WSOWROhLine (EURRUB_TOM,M15) bar=14 begDayTime=2023.01.30 00:00:00 endDayTime=2023.01.31 00:00:00 begDayBar=-2 endDayBar=673 indATR=0 Q5days=0
삽입하면 다음과 같이 됩니다.

if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; }

그러면 모든 것이 정상입니다(즉, 실패하면 iBarShift를 수정합니다).

 
IuriiPrugov #:

데이터가 아닙니다.

 
fxsaber #:

데이터가 아닙니다.

다른 데이터는 무엇인가요? Inp_period = D1은 15일 주기로 검색됩니다! begDayTime= bar= bar =14

begDayTime=iTime(Symbol(),Inp_period,bar); _Symbol= EURRUB_TOM; _Period= M15; 그 후

iBarShift(_Symbol,_Period,begDayTime,false)는 일반 막대 또는 -1을 생성하거나 막대 등을 계산할 시간이 없을 수 있습니다.

일반적으로 인디케이터를 전환하면 불안정하게 작동합니다("차트 기간" 패널에서 다른 기간을 누르면 됨). 예를 들어 M30에서는 일반 막대 또는 -1이 생성될 수 있습니다.

삽입하지 않으면 다른 상품에서도 동일하게 작동합니다 if (begDayBar<0) { k=0; do {k++;} while(begDayTime<time[k] && !IsStopped()); begDayBar=k; } 그러면 에러가 팝업됩니다.

2023.02.20 07:58:01.698 '!indDAY_WSOWROhLine.mq5'(202,148)에서 배열 범위 초과 !indDAY_WSOWROhLine(CNYRUB_TOM,M15)

등을 한두 번 반복하면 됩니다. 직접 시도해 보세요.

이 조각을 가장 간단한 인디케이터에 삽입하고 '차트 기간' 패널에서 다른 기간으로 전환합니다.

 
IuriiPrugov #:

그리고 다른 어떤 데이터?

재현을 위한 전체 소스 코드 및 환경 데이터입니다. 즉, 누구나 읽고 나서 1분 안에 문제를 재현할 수 있습니다.
 

ok

MQL4를 처음 사용했고 지금은 MQL5를 사용하고 있습니다.

저는 Visual C/C++ 프로그래머 였기 때문에 코딩하는 방법을 알고 있습니다.

하지만 여기서는 라이브러리 등에 익숙하지 않습니다. 글쎄, 언어 .

첫 번째 질문은 템플릿을로드하면 오안다에서 차트가 생성되는 경우 코딩 등을 어떻게 설정해야합니까?

종이 거래 계정을 사용하고 코드를 개발하여 일부 거래 전략을 테스트하고 싶습니다.

이제 바퀴를 다시 발명하고 싶지 않으므로 다음과 같은 "표준"작업을 수행하는 몇 가지 코드 조각을 얻을 수 있습니다.

-계정 및 서버/데이터베이스 연결 가져오기

-프로젝트 설정

-기존 코드를 먼저 실행 한 다음 모드를 만들고 "컴파일"하는 방법을 연습하거나 내 프로젝트의 빌드를 실행합니다.

이걸 발견하게되어 너무 기뻐서이 커뮤니티에서 활동할 계획입니다. 수동으로 거래하는 데 지쳤습니다.

이걸로 암호화폐를 거래할 수 있나요?

더 잘 준비하지 못했다면 사과드립니다 - 조금 둘러본 후이 댓글을 작성했습니다 - 오늘 방금 가입했습니다.

thx!

RayRay

RR

 
@rrb1002 #: MQL4 및 현재 MQL5에 새로 추가됨....

작업 방법을 자세히 설명하는 문서가 있습니다.

초보자부터 고도로 숙련된 개발자까지 다양한 사용자가 작성한 코드 예제가 포함된 코드베이스가 있습니다.

그리고 온라인 버전의 문서가 있습니다(메타에디터에서도 사용 가능).

RRB1002 #: 암호화폐 거래에 사용할 수 있나요?

예. 브로커가 제공하는 모든 상품을 거래할 수 있으며, 여기에는 암호화폐도 포함됩니다.

 
좋아요, 여기서 헷갈립니다. 저는 MQL4 언어라고 생각했는데 곧 출시될 새로운 언어가 MQL5인가요? MQL4가 MQL5와 상향 호환되고 희망적으로 MQL4 언어를 확장할 수 있나요?
 
@rrb1002 #: MQL4 언어인 줄 알았는데 곧 출시될 새로운 언어가 MQL5인가요? MQL4는 MQL5와 상향 호환이 가능한가요 아니면 MQL4 언어를 확장한 건가요?

MQL5는 10년 이상 사용되어 왔습니다. "새로운" 언어가 아닙니다. 성숙된 언어입니다.

메타트레이더 4와 MQL4는 몇 년 동안(아마도 6~8년 정도) 더 이상 개발되지 않았습니다. 중요한 업데이트만 산발적으로 수행됩니다.

언어는 매우 유사하고 많은 기능이 어느 정도 호환되지만 거래 기능은 완전히 다르며 전혀 호환되지 않습니다.