EURUSd에 대한 좋은 기록 파일이 필요합니다. - 페이지 4

 

schnappi, 자연스럽게 나쁜 틱 및 데이터 구멍을 식별(및 궁극적으로 수정)하는 방법론 자체가 진화하는 프로세스입니다. 나는 외부적으로 정의된 필터의 표준 접근 방식으로 시작했으며(가격 델타 > X이면 나쁜 틱 등) 문제는 데이터 세트가 가격 데이터가 해야 하는 것에 대한 인식과 기대에 부합하도록 강제한다는 것입니다. 금융 상품의 가격 변화 역학의 본질적인 통계적 특성을 나타내거나 나타내지 않을 수 있습니다.

결국 내 방법은 데이터가 금융 상품 자체의 고유한 특성(이 논의에서는 통화 쌍이지만 전반적으로 적용됨)과 자체 일관성을 유지하도록 요구하는 지점까지 반복되었습니다. 이것이 실제로 의미하는 바는 "알려진 좋은 시장 데이터"를 활용하여 시간 격차, 가격 격차 등의 속성을 강력하게 특성화한다는 것입니다. 이는 통화 쌍( 중개자 가 될 각 브로커에는 가격 피드를 "살아있는" 상태로 유지하기 위해 고유한 "펌프 및 펄스" 알고리즘이 있기 때문에 구체적입니다.

이 특성화 데이터로 무장한 후 스크립트가 통화 쌍의 고유한 특성과 통계적으로 일치하는지 여부에 따라 각 막대를 평가하는 더 오래되고 더 의심스러운 기간을 통해 반복합니다. 예를 들어 USDJPY의 연속 M1 캔들 사이에 발생하는 가격 격차가 일반적으로 <3pips임을 관찰했다고 가정해 보겠습니다. 즉, 캔들 N+1의 종가는 일반적으로 캔들 N의 시가에서 -3~+3핍 떨어져 있습니다.

이것은 통계를 생성하는 쉬운 메트릭입니다. 데이터에 대한 종가(i+1)-시가(i)를 분석하고 히스토그램을 생성하십시오. 특성화의 이 단계에서 그들 사이의 시간 간격)


이제 2003년과 같이 이전 연도에 대한 과거 데이터를 평가하고 스크립트에서 통계적으로 일관된 범위를 훨씬 벗어나는 연속 양초 사이의 가격 차이(시간 간격 없음)를 관찰하면(이 예에서는 50pip 간격이 감지되었다고 가정해 보겠습니다.) 귀하의 스크립트는 그 시점에서 평가 중인 가격 데이터를 의심스러운 것으로 간주할 이유가 있습니다.

의심스러운 양초로 무엇을 하느냐(교정 단계)는 완전히 다른 질문이지만 다음은 예입니다.


데이터 수정 시 피해야 할 위험과 함정이 있습니다. 불량 양초와 교체품의 제거 목록을 정의하는 방법에 주의하지 않으면 무의식적으로 득보다 실이 더 많을 수 있습니다. hst 기록도 대체 정책으로 사용하여 나쁜 가격 격차를 인공적인 시간 격차로 대체합니다.

 
Phillip, 그것은 흥미로운 일이지만 나에게는 너무 위험하고 시간이 많이 걸리는 것 같습니다. 나는 내가 할 수 없는 소스를 '수정'하기보다 신뢰할 수 있는 소스를 사용하는 것을 선호합니다...

그 '의심스러운' 양초에 대해. 많은 중개인은 여러 가지 이유로 이상한 가격 급등을 경험합니다. 위의 예에서 명백한 "나쁜 틱" 데이터인지 어떻게 알 수 있습니까? 그런 스파이크가 발생합니다 ...
 
gordon wrote >>
Phillip, 그것은 흥미로운 일이지만 나에게는 너무 위험하고 시간이 많이 걸리는 것 같습니다. 나는 내가 할 수 없는 소스를 '수정'하기보다 신뢰할 수 있는 소스를 사용하는 것을 선호합니다...

그 '의심스러운' 양초에 대해. 많은 중개인은 여러 가지 이유로 이상한 가격 급등을 경험합니다. 위의 예에서 명백한 "나쁜 틱" 데이터인지 어떻게 알 수 있습니까? 그런 스파이크가 발생합니다 ...


Re: 명백한 "나쁜 틱" 데이터라는 것을 어떻게 알 수 있습니까 ...이 중개인의 경우 3년 이상의 데이터에 대한 자세한 분석에 따르면 이러한 스파이크는 100만 개 이상의 양초에서 단 한 번도 발생하지 않았음이 나타났습니다. 데이터. Occam's razor...1999년 8월 2일 04:29에 발생했을 가능성이 더 큽니다. 시장이 60pips 위로 급등하고, 양초가 양초 고점에서 마감되고, 바로 다음 틱이 양초의 시가를 표시합니다. 양초 시장이 50pips만큼 다시 하락하고 후속 시장 활동이 스파이크 이전의 양초보다 변동성이 크지 않았습니까? 아니면 이 특정 양초에 합법적으로(자신있게) 제거할 수 있는 잘못된 진드기가 포함되어 있습니까?

위의 내 게시물의 첫 번째 그래프에서 알 수 있습니다. 3년 이상의 데이터에 대해 이 쌍에 대해 4pips를 초과하는 거의 열린 간격의 빈도는 0입니다. 이 경우 나는 50pip 이상값을 명백한 이상값으로 브랜딩하고 역사적 거래 기록 사본에서 제거하는 것이 편안하다고 느꼈습니다.

Re: 신뢰할 수 있는 출처 대 수정 ...MT4 플랫폼을 사용할 때 매도호가에 대한 이력 기록을 신뢰할 수 없기 때문에 신뢰할 있는 기록 데이터와 신뢰할 수 없는 기록 데이터가 있다는 바로 그 개념은 제 생각에 개인적으로 위안이 되는 것 중 하나입니다. 그것은 물론 귀하의 특정 무역 전략에 달려 있습니다. 제 경우 역사적 기록의 정확한 세부 사항은 제 EA와 관련이 없습니다. 거래 전략이 수익을 내기 위해 과거 기록의 정확성과 정확성이 필요하다면 모든 매도호가가 고정 스프레드(' t 역사적으로 정확하거나 실제 시장 상황을 대표함).

따라서 백테스팅에서 고안된 매도호가의 현실을 처리하기에 충분히 강력한 EA를 만들려는 경우 어쨌든 과거 기록의 허위/오류 가격 데이터를 처리할 수 있는 EA를 생성했을 것입니다. 내가 틀릴 수도 있고 처음이 아닐 수도 있지만 과거 데이터에 대한 나의 접근 방식은 내 EA가 그것에 대해 불가지론적으로 만들 목적으로 사용하는 것입니다.

 
1005phillip :


Re: 명백한 "나쁜 틱" 데이터라는 것을 어떻게 알 수 있습니까 ...이 중개인의 경우 3년 이상의 데이터에 대한 자세한 분석에 따르면 이러한 스파이크는 100만 개 이상의 양초에서 단 한 번도 발생하지 않았음이 나타났습니다. 데이터. Occam's razor...1999년 8월 2일 04:29에 발생했을 가능성이 더 큽니다. 시장이 60pips 위로 급등하고, 양초가 양초 고점에서 마감되고, 바로 다음 틱이 양초의 시가를 표시합니다. 양초 시장이 50pips만큼 다시 하락하고 후속 시장 활동이 스파이크 이전의 양초보다 변동성이 크지 않았습니까? 아니면 이 특정 양초에 합법적으로(자신있게) 제거할 수 있는 잘못된 진드기가 포함되어 있습니까?

좋아요, 하지만 이것은 극단적인 경우입니다. ~30핍이고 그 모든 기간 동안의 데이터에서 이러한 경우가 3개라면 어떻게 될까요? 그럼 어떻게 압니까? 내 요점은 명확하지 않고 추측해야 하는 경우가 있다는 것입니다.


Re: 신뢰할 수 있는 출처 대 수정 ...MT4 플랫폼을 사용할 때 매도호가에 대한 기록 기록을 신뢰할 수 없기 때문에 신뢰할 있는 기록 데이터와 신뢰할 수 없는 기록 데이터가 있다는 바로 그 개념이 제 생각에는 개인적으로 위안이 되는 것 중 하나입니다(...)

하지만 그게 요점이 아닙니다. 이 모든 문제를 겪지 않고 그대로 사용할 수 있는 신뢰할 수 있는 출처에 대해 이야기하고 있습니다. MT4 Tester의 Ask price(고정 스프레드) 부족은 나쁜 소스, 좋은 소스 및 고정 소스 모두에 영향을 미치기 때문에 이것과 아무 관련이 없습니다... 완전히 별개의 문제입니다.

 

Phillip: 제 생각에는 그것이 가야 할 길입니다. 다음 변동성과 함께 가격 급등을 분석하면 나쁜 틱을 아주 안전하게 식별할 수 있다고 생각합니다. 시장이 다음 M1 막대 바로 옆에 스파이크를 보이고 비정상적인 변동성이 없다면 매우 높은 확률로 나쁜 틱입니다. 위에서 보여주고 있는 스크린샷이 그러한 예입니다.

이미 더 중요한 문제를 발견했습니다. 잘못된 틱을 정의하는 것과 수정하는 것은 별개입니다. 제 생각에는 2가지 방법이 있습니다.

1차: 불량 진드기를 식별하고 추측하여 수정합니다. 갑자기 +50핍의 간격이 생기는 개방인 경우 다시 +3핍 등으로 설정합니다. --> 정확하지는 않지만 구현하기 쉽습니다.
두 번째: 불량 틱을 식별하고 가격을 다른 데이터 스트림과 비교합니다. 이것은 더 정확한 방법이지만 구현하기가 더 어렵습니다.

 

Gordon , 저는 통계 자체에 의존하여 역사적 기록을 일관되게 적용함으로써 추측을 피합니다. 나는 당신이 다른 게시물에서 기본적인 통계 기반 거래자였다고 언급한 것을 기억합니다. 그래서 전제는 의심되는 데이터 세트와 알려진 좋은 데이터 세트 사이의 Kullback-Leibler divergence를 최소화하는 것이라고 말할 때 제가 말하는 것을 이해하게 될 것입니다. "신뢰할 수 있는 출처"로 레이블을 지정합니다).

외환의 경우에만 금융 시장의 첨도가 일반적으로 0보다 크기 때문에 정규 가우스 분포 대신 일반화된 정규 분포를 사용합니다. 제가 여러분에게 새로운 말을 하고 있는지 의심스럽습니다. 그러나 의심스러운 데이터를 자신 있게 식별하고 제거하기 위한 방법론을 전제로 확장하고 있습니다(남성주의 유형이 아닌 통계적 유형 ;)). 따라서 내 선택 기준이 무언가가 아님을 알 수 있습니다. 고/저 대역통과 필터를 설정하고 데이터를 래밍하는 것처럼 단순하고 결함이 있습니다.

당연히 확률적 프로세스로 취급할 때 "신뢰할 수 있는 출처" 기간 동안 금융 상품의 가격 데이터의 안정성에 대해 가정이 이루어집니다. 그러나 내 EA 코드가 활동을 미래 시계열의 동등한 정상 기간으로 제한하도록 요구할 의향이 있는 경우 자체 일관성이 접근 방식에 내재되어 있습니다. "신뢰할 수 있는 출처" 데이터의 길이는 유한하기 때문에 우리의 특성화에 포착된 과거의 Cyclostationary 프로세스가 미래 시계열에 나타날 것으로 예상할 수 있는 시간 범위에 대한 상한선을 설정합니다.

그러나 여기에서 강화되어야 할 상위 수준의 요점이 있습니다. 즉, 데이터의 "과거 정확성"이나 데이터가 나타내는 시간의 길이에 관계없이 과거 데이터를 사용하여 얻을 가치와 거래 전략을 "최적화"하기 위한 백테스팅은 전적으로 백테스팅으로 답해야 하는 질문을 알고 있는 키보드 뒤에 앉아 있는 사람에게 달려 있습니다. 양은 품질을 능가하지 않습니다. 과거 데이터의 길이나 반복적인 백테스팅을 통해 최적화를 실행하는 데 소요된 시간은 처음부터 질문이 잘 정의되지 않은 경우 답변해야 하는 질문에 답하지 않습니다. "어떤 매개변수가 최대 이익 또는 최소 손실을 줄 것인지"를 깨닫는 데 얼마나 걸렸습니까? 백테스팅을 통해 답을 얻은 질문이 아닙니다. :)

Schnappi , 달성하려는 측면에서 목표가 무엇인지에 달려 있습니다. 역사적으로 정확한 가격 뉘앙스를 더 많이 반영하는 데이터 세트를 원하십니까? 아니면 거래 트리거 및 자금 관리가 테스트되는 시계열의 수에 관심이 있습니까? 오답은 없습니다. 물론 모든 사람은 시장 거래에 접근하는 방식이 다릅니다. 개인적으로 저는 선형 시계열 테스트에 과거 데이터를 사용하지 않습니다. 저 혼자만이 아니라는 것을 알고 있지만 대다수의 사람들은 그렇지 않다는 것을 자유롭게 인정합니다. 저는 과거 데이터를 사용하여 통화 쌍의 특성(Lévy–Itō 분해)의 기초가 되는 원시 통계적 특성을 추출한 다음 몬테카를로 루틴을 통해 통계적으로 동일하지만 동일하지 않은 역사적 데이터 시계열을 생성하는 데 사용합니다. 그런 다음 이 조작된 hst 시계열로 백테스트합니다. ( 이것은 가벼운 읽기 자료 가 아니지만 이미 알고 있지 않고 읽고 싶어하는 링크 가능성을 포함합니다)

일기 예보와 마찬가지로 오늘과 어제의 날씨 측면을 훨씬 더 높은 수준의 정밀도와 정확도로 아는 데 초점을 맞춰 내일의 날씨를 예측하는 것이 아니라 기상 메트릭(온도, 습도, 압력 등) 그런 다음 의도적으로 초기 조건을 변경하고 몬테카를로가 시간이 지나면 앞으로 나아가도록 합니다. 이 작업을 수천 번 수행하고 결과를 평균화합니다(실제 세부 사항은 자연스럽게 더 복잡해집니다). 내일의 예측은 "저점은 30대 중반, 고점은 60대 중반"입니다.

단순히 3년 대신 10년 동안의 데이터를 백테스트하기를 원하기 때문에 오래된 과거 데이터에서 잘못된 틱을 걸러내는 아이디어에 접근하는 경우 많은 백테스터가 말하는 "양이 품질을 좌우할 것"이라는 오류에 빠질 수 있음을 알려드립니다. 경력의 어느 시점에 빠지다. 나는 한 번 거기에 있었고 잠시 동안 거기에 붙어있었습니다. 백테스트를 최적화하기 위해 더 긴 과거 데이터만 있다면 잃어버린 코드가 승자가 될 것이라고 확신했습니다. 일부 사람들에게는 그것이 사실로 판명되고 더 긴 백테스트를 갖는 것이 앞으로 테스트 수익에 대한 트릭을 실제로 수행하지만 나에게는 그것은 단지 바보의 금(그리고 많은 시간 낭비)으로 판명되었습니다.

자기 상관 기능 등을 사용하기 때문에 더 긴 기록 레코드를 원하는 경우 래치 및 위상 잠금을 연마하기 위해 고유한 일련의 가상/합성 가격 데이터를 생성하는 것이 나을 것입니다. 그러면 다음의 견고성을 직접 제어할 수 있습니다. 처음에 시계열을 조작하는 방법을 통해 래칭 프로토콜을 사용합니다.

나는 올바른 답을 가지고 있다고 주장하지 않습니다. 처음부터 올바른 질문으로 시작하지 않으면 답이 우리의 전반적인 목표(아마도 이익)에 도움이 되기를 바랄 수 없다는 것입니다. .

 
네, 이러한 용어를 알고 있지만 대부분 이론적인 수준입니다. 제 배경은 실제로 하드웨어 엔지니어링이고 통계 알고리즘을 다룬 지 1년이 조금 넘었습니다. 내 현재 프로젝트 는 두 명의 수학자와 함께 수행되므로 대부분의 이론 작업은 수학자에 의해 수행됩니다. 나는 그들이 당신과 이러한 주제에 대해 더 잘 논의할 것이라고 확신합니다. :). 그러나 매혹적인 물건. 나는 몇 달 전에 나온 조작된 역사의 주제를 기억하지만 우리는 그것에 대해 결코 다루지 않았습니다. 여전히 '실제' 기록에 대해 테스트 중입니다... ('신뢰할 수 있는' 출처에서).
 
Phillip: 우선 이러한 통찰력에 감사드립니다.
시장의 통계적 특성을 추출한 다음 합성된 시장 데이터를 생성하고 이 데이터에 대해 몬테카를로 시뮬레이션을 실행한다고 합니다. 그것은 매우 흥미롭지만 불행히도 그것은 내 능력 밖입니다. 나는 당신이 게시한 두 개의 링크를 읽기 시작했지만 나는 그것들을 이해할 수 없다고 말해야 합니다. 저는 대학 배경이 있지만 수학이나 이와 유사한 분야는 아닙니다. 내 접근 방식은 조금 더 있습니다. 적어도 임의 거래자의 관점에서 "실제"라고 부르겠습니다. 정말 슬프다. 인턴십을 제안하지 않을 수도 있습니다. 그렇지 않나요?

나는 당신이 "수량이 품질 오류를 몰고 올 것이다"라고 말한 것을 알고 있습니다. 왜냐하면 저도 이 시점에서 이미 많은 시간을 낭비했기 때문입니다. 내가 이 시간을 낭비했을 것이라고 말하지는 않겠지만 그것은 다른 점이다. 아니요, 제가 이 토론에 참가한 이유는 현재 개발 프로세스 자체를 개선하고 있기 때문입니다. 범위를 늘리기 위해 추가 데이터를 수집하겠습니다. 또한 MT 등으로 백테스트 를 자동화하는 솔루션을 개발 중입니다.
 

schnappi 방금 귀하의 게시물을 보았습니다. 감정에 감사할 수 있으며 처음에는 모든 것이 다소 복잡해 보인다는 데 동의합니다(단순하지 않음을 확인하기 위해). 그러나 자신이 할 수 있는 것이 아닌 것처럼 느끼도록 두지 마십시오 가까운 장래에 자신의 방식으로 마스터하지 마십시오. 이 내용을 이해하고 사용하기 위해 대학 학위가 필요하지 않습니다. 단지 시간/헌신 및 이를 유지하기 위한 개인적인 추진력만 있으면 됩니다. 그러면 필연적으로 해당 주제를 마스터하게 될 것입니다.

학습 곡선을 단축하는 데 어느 정도 도움이 될 기존 전문 투자 금융 업계의 용어와 주제를 파악하는 데 도움이 되며, 제 게시물이 그러한 역량에 도움이 되었기를 바랍니다. 나보다 먼저 다른 사람이 나를 지탱해 주기 위해 어깨를 내밀었다는 사실이 아니었다면 나는 지금의 내가 없었을 것이다.

우리 "집에서 자란" 퀀트 트레이더는 모두 공통점이 많고 배경이 매우 다양하며 금융이나 프로그래밍 분야의 고등 교육을 받은 사람은 많지 않지만 정규 교육에서 부족한 부분을 끈기와 야망으로 보충하는 것을 목표로 합니다. Thomas Edison에게는 효과가 있었습니다... 윤리/도덕적 관점에서 볼 때 최고의 예는 물론 아니지만 그의 10,000개 전구 프로토타입 예는 이야기의 교훈입니다.

당신은 당신의 개인적인 발전 속도가 본질적으로 반복적이라는 것을 인식하게 될 것이며 아마도 이미 알고 있을 것입니다. 코딩 기술에 대해 더 많이 배우고 코드가 더 정교해지며 과거에 효과가 있었던 것과 그렇지 않은 거래 전략에 대해 더 많이 배우고 자신의 전략을 좀 더 연마하고 위험 관리와 위험 측정에 대해 배우고 당신이 처음부터 당신이 필요하다는 것을 알지 못했던 방식으로 당신의 파멸의 위험과 씨름하기 시작하십시오.

그리고 내 접근 방식이 복잡해 보인다고 해서 복잡성이 필수라는 의미는 아닙니다. 훨씬 더 간단하고 훨씬 덜 복잡한 접근 방식이 모든 면에서 우월할 수 있습니다...저는 아직 방법을 알아낼 만큼 똑똑하지 않습니다. 전구를 만드는 어리석게도 복잡한 방법이 많이 있으며 더 복잡한 방법이 더 나은 전구를 보장하지 않습니다.

따라서 접근 방식의 복잡성/단순성과 내 접근 방식의 부족 사이에 있을 수 있는 인식으로 인해 연기하지 마십시오. 내가 왼쪽 필드에 있는 동안 당신은 올바른 방향으로 가고 있을 수 있습니다.

 

1005phillip : 2010.03.17 18:38

이것은( 첨부된 mq4 스크립트 ) 작업을 완료하는 데 사용하는 것으로, 예쁘지 않으며(코드) 일부 정리 및 스위치에 대한 반복적인 if의 변경 등으로 수행할 수 있습니다.

참고: W1 캔들 개장 시간은 거래 주의 첫째 날(월요일)에 자동으로 정렬되고 MN 캔들 개장 시간은 새 달의 첫 시가 날짜에 자동으로 정렬됩니다.
스크립트가 깨졌습니다 . 거래 주의 첫 번째 날은 월요일이 아닌 일요일 (2200z)입니다. 그리고 그것은 금요일이나 월요일에 휴일을 처리하지 않습니다. 간단한 수정:
      time0=Time[i];
//    if((TimeDayOfWeek(time0)==1 && TimeDayOfWeek(Time[i+1])==5) || i==0)
       if (TimeDayOfWeek(time0) < TimeDayOfWeek(Time[i+ 1 ])         || i== 0 )