값에 따라 이 지표도 정렬하는 것이 유용할 것입니다.
를 정렬하는 것도 유용할 것 같습니다. 그런 기능이 있다면 자전거를 발명하지 않도록 공유해 주세요.
이러한 지표에서도 이를 정렬하는 것이 유용할 것입니다.
같은 지표로 정렬하는 것도 유용할 것 같습니다. 그런 기능이 있다면 자전거를 발명하지 않도록 공유해 주세요.
준비된 기능은 없지만 스케치하는 것은 어렵지 않을 것 같습니다.
19.05.2010
여기에 실현되었습니다.
감사합니다.
한 가지 지적하고 싶은 것은 동기화 방법이 항상 작동하는 것은 아니라는 점입니다. 여기 그림이 있습니다. 24시간 동안 따옴표 안에 구멍이 있지만 모든 것이 동기화되어 있습니다 (((.
이것은 매우 나쁩니다. 왜 그렇게 이해할 수 없으며 가장 중요한 것은 어떻게해야합니까?
감사합니다.
한 가지 지적하고 싶은 것은 동기화 방법이 항상 작동하는 것은 아니라는 점입니다. 여기 그림이 있습니다. 24시간 동안 따옴표 안에 구멍이 있지만 모든 것이 동기화되어 있습니다 (((.
이것은 매우 나쁩니다. 왜 그렇게 이해할 수 없으며 가장 중요한 것은 어떻게해야합니까?
인디케이터는 두 가지 유형의 동기화를 사용합니다.
1 막대 수 (차트에 기본적으로 필요한 기록보다 더 많은 막대가 있어야 함) 이 조건은 분명히 충족됩니다.
2 각 통화 쌍에서 제로 바가 열리는 시점까지 -이 조건도 분명히 충족됩니다.
두 번째 동기화 유형과 유사하게 각 쌍의 각 막대의 시작 시간을 확인하기 위해 세 번째 유형의 동기화를 추가 할 가치가 있다고 생각합니다.
조금 더 여유가 생기면 이 유형도 만들 것입니다.
....
두 번째 동기화 유형과 유사하게 각 쌍에서 각 막대의 시작 시간을 확인하기 위해 세 번째 유형의 동기화를 추가 할 가치가 있다고 생각합니다.
귀하의 이미지와 유사성에서 저는 bool init_tf(...) 함수를 만들었습니다.
//+------------------------------------------------------------------+ //| 관련 통화 쌍의 차트 초기화 || //| 및 데이터 동기화 확인| //+------------------------------------------------------------------+ //| in.| //| mas[]는 필수 문자의 이름 배열입니다. //| time_0 - 현재 바 시간[0]| //| count_Bars - 필요한 막대 개수 | //+------------------------------------------------------------------+ bool init_tf(string &mas[], datetime time_0, int count_Bars) { bool rez=false; // 성공 플래그 int copied=0, // 복사된 데이터 수 counter=0, // 오류 카운터 tmp_bars=0; //를 입력하여 사용 가능한 막대 수를 확인합니다. datetime tmp_time[1]; // 배열을 사용하여 바 시간을 확인합니다. f_comment("동기화가 진행 중입니다."); for(int i=0; i<count_symbol; i++) { //Print("i=",i," ",count_symbol," ",mas[i]); tmp_bars=Bars(mas[i],PERIOD_CURRENT); if(tmp_bars<count_Bars) { // 막대 개수 확인 Print("i=",i," 막대가 충분하지 않습니다 (", mas[i],"-",fTimeFrameName(_Period),") MaxBars=",MaxBars," > Bars=",tmp_bars); counter++; } ResetLastError(); copied = CopyTime(mas[i],PERIOD_CURRENT,0,1,tmp_time); if(copied < 1) { // 복사 오류 Print("i=",i," 복사 오류 (", mas[i],"-",fTimeFrameName(_Period),") №",_LastError," (",ErrorDescription(_LastError),")"); counter++; } if(tmp_time[0]!=time_0) { // 시간이 일치하지 않습니다. Print("i=",i," 시간 동기화 없음 (", mas[i],"-",fTimeFrameName(_Period),") 델타 ="",(long)(time_0-tmp_time[0])/60," 최소"); counter++; } }// end for(int i=0; i<k; i++) if(counter==0) { // 모든 것이 정상입니다. 오류 없음 rez=true; f_comment("전부 다. 알았어."); } else f_comment("동기화가 되지 않습니다."+(string)counter); ChartRedraw( ); return(rez); }
챔피언십에 참가할 12쌍을 선택했습니다. 동기화를 연구하기 위한 목적으로만 RVI_ALL 지표를 만들었습니다. 시작했습니다. 결과.
2010.05.30 16:55:26 RVI_ALL (EURUSD,M1) i= 10 시간 동기화 없음 ( GBPJPY - M1 ) 델타 = 1 분
2010.05.30 16:55:26 RVI_ALL (EURUSD,M1) i= 5 시간 동기화 없음 ( AUDUSD - M1 ) 델타 = 1 분
2010.05.30 16:55:26 RVI_ALL (EURUSD,M1) i= 1 시간 동기화 없음 ( GBPUSD - M1 ) 델타 = 1 분
일요일이므로 이 기호에는 막대(마지막 막대)가 없습니다. 다음 틱은 월요일에만 있습니다. 그런 다음 구멍이 없는 이 기사 차트를 기억했습니다 https://www.mql5.com/ko/articles/1407.
그리고 구멍이있을 것입니다. 있을 것입니다. 우리는 어떻게 든 그들과 싸워야합니다. 원칙적으로 기사에서 설명한 것과 동일하게 할 수 있습니다. 하지만 한 가지 질문이 있습니다.
지표가 단일 차트에 매달려 있습니다. 그리고이 기호에 히스토리 스왑이 있으면이를 알아낼 수 있으며 prev_calculated는 0으로 재설정됩니다.
하지만 다른 심볼에 히스토리 스왑이 있었는지 아니면 데이터가 오래 지연된 것인지 어떻게 알 수 있나요?
그리고 구멍이 생길 것입니다. 구멍은 생길 거야 어떻게든 처리해야 합니다. 원칙적으로 기사에서 설명한 것과 동일하게 할 수 있습니다. 하지만 한 가지 질문이 있습니다.
인디케이터가 단일 차트에 매달려 있습니다. 그리고이 기호에 대한 히스토리 스왑이 있었다면, 나는 그것에 대해 알아낼 수 있으며, prev_calculated는 0으로 재설정됩니다.
하지만 다른 심볼에 히스토리 스왑이 있었는지 아니면 데이터가 오래 지연된 것인지 어떻게 알 수 있나요?
1 히스토리에 구멍이 있는 경우 인디케이터가 그려지지 않도록 하고 구멍을 "패치"하는 순간에 주기적으로 히스토리를 폴링합니다. (현재 차트에 새 틱 또는 타이머).
2. 또는 히스토리의 구멍이 충분히 멀다면 구멍까지만 인디케이터를 그립니다.
이 함수를 약간 수정합니다.
bool init_tf(string &mas[], datetime time_0, int count_Bars, int shift) и далее по тексту copied = CopyTime(mas[i],PERIOD_CURRENT,shift,1,tmp_time);
그런 다음 이 함수를 루프(0에서 시프트바까지)로 호출합니다.
이 경우
shift
현재 상품 및 TF의 바 위치가 되며, 다른 상품과의 동기화 여부를 확인합니다.
이야기에 구멍이 있다는 것을 알 방법이 없습니다.
https://www.mql5.com/ru/forum/1111/8747#comment_8747
유일한 방법은 시간을 복사하여 전체 배열을 반복하는 것이지만, 이 역시 악순환의 고리가 될 수 있습니다 (((
개발자가 https://www.mql5.com/ko/articles/1407 의 개념을 변경하여 구멍이 없는 차트를 만들지 않으면 모든 것을 동기화하는 것이 불가능하다는 것이 밝혀질 수 있습니다.
이야기에 구멍이 있다는 것을 알 방법이 없습니다.
https://www.mql5.com/ru/forum/1111/8747#comment_8747
유일한 방법은 시간을 복사하여 전체 배열을 반복하는 것이지만, 이 역시 악순환의 고리가 될 수 있습니다 (((
개발자가 https://www.mql5.com/ko/articles/1407 의 개념을 변경하여 구멍이 없는 차트를 만들지 않으면 모든 것을 동기화하는 것이 불가능하다는 것이 밝혀질 수 있습니다.
시간[] 버퍼에 의한 동기화를 사용하면 혼동이 없을 것입니다.
견적 호출에 시간별 사전 확인이 수반되어야 하며, 그러면 모든 것이 동기화됩니다.
방법이 쉽지 않고 오류가 많을 수 있다는 점에 동의하지만.
안녕하세요!
달러 지수 공식의 정확성에 대해 의문이 있습니다. 아마도 거짓 일 수 있습니다.
이 공식이 어떻게 만들어졌는지 좀 더 자세히 설명해 주실 수 있나요?
새로운 기고글 여러 중간 인디케이터 버퍼들을 통해 다중 화폐 인디케이터 만들기 가 게재되었습니다:
최근 FOREX 시장의 클러스터 분석에 대한 관심이 높아지고 있습니다. MQL5는 통화 쌍의 이동 동향을 조사할 수 있는 새로운 가능성을 열어줍니다. MQL4와 차별화되는 MQL5의 주요 기능은 인디케이터 버퍼를 무제한으로 사용할 수 있다는 것입니다. 이 문서에서 그러한 다중 화폐 인디케이터를 만드는 예시에 대해 다뤄보겠습니다.
이걸로 인디케이터 계산이 마무리됩니다. 4-6번 그림에서 각기 다른 타입의 인디케이터의 사진 몇개를 볼 수 있습니다.
작성자: Alexey Klenov