MT용 Python으로 거래 시스템 만들기. - 페이지 10

 
Yuriy Asaulenko :

나는 최적화와 모든 종류의 매개변수 선택 및 열거에 관여하지 않습니다. 다른 방법론이지만 MatLab, R, SciLab 등과 같은 환경도 필요합니다. Python도 나쁘지 않습니다.

10^6 막대도 필요하지 않습니다. 모든 것에 대해 - 모든 것이 6분, 최대 9개월 동안 충분합니다. 이제 테스트는 3개월 -2.5m이지만 시스템은 여전히 간단합니다.

가장 긴 것은 ML을 배우는 것이지만 여기서는 Python보다 더 나은 것을 생각할 수 없으며 여기서는 스크립팅 언어일 뿐입니다. 신경망의 응답이 5개 레이어, 약 60개 뉴런(3-5ms)이라고 가정해 보겠습니다.

지금까지 나는 공포 이야기의 실제 증거를 보지 못했습니다.

아니요, 저는 겁을 주거나 과장하려고 하는 것이 아닙니다. 전체 분석 인프라를 직접 작성한다는 사실 자체가 이미 훌륭합니다!

다 잘하고 있어 그냥 내 생각을 큰 소리로 표현한 것뿐이야 내가 마주하고 넘어진 것에 대해 네가 원하지 않는다면 나는 방해하지 않을거야))

 
pantural :

아니요, 저는 겁을 주거나 과장하려고 하는 것이 아닙니다. 전체 분석 인프라를 직접 작성한다는 사실 자체가 이미 훌륭합니다!

다 잘하고 있어 그냥 내 생각을 큰 소리로 표현한 것뿐이야 내가 마주하고 넘어진 것에 대해 네가 원하지 않는다면 나는 방해하지 않을거야))

예, 우리는 잘 의사 소통합니다. 다양한 의견이 좋습니다. 상대는 언제나 좋다.)

 
Yuriy Asaulenko :

예, 우리는 잘 의사 소통합니다. 다양한 의견이 좋습니다. 상대는 언제나 좋다.)

확인. 글쎄요, https://c.mql5.com/3/236/Public.zip을 읽은 후 제가 또 무슨 말을 할 수 있을까요...

물론, 나는 우리가 파이썬이기 때문에 우리는 "분할 정복"에 노력하고 있습니다.

최소한 데이터 피드 모듈의 "인터페이스", (데이터 피드) 분석 \ 예측, 거래 결과 실행 및 분석과 같은 것으로 명확하게 분리해야 하며, 이상적으로 이러한 모듈은 독립적이어야 합니다.

세부 사항에서 추상화하면 기본적으로 데이터, 이 데이터의 모델, 시장에 있는 모델의 구현(실행) 및 이 활동의 평가 대상인 최소한 4개의 복잡한 개체가 있어야 합니다.

가장 간단한 경우에, 피드는 촛불의 배열일 것입니다. 그러한 피드로 작업하는 유일한 미묘함은 모델/실행/추정 모듈이 미래를 엿보는 것을 안정적으로 보호하는 것입니다. 가장 간단한 모델은 모든 지표가 될 수 있습니다. 예를 들어, 변조되거나 가장 순수한 형태의 RSI, 확률 또는 신경망 지표. 퇴화 실행 시스템(전략)은 예측을 거래 신호로 해석하고 예를 들어 예측 모듈의 일부 수준을 초과하는 경우 등의 유휴/실제 실행입니다. 음, 추정은 "테스트"입니다. 실제로 테스터는 전체 데이터 피드 시리즈에 대한 공백 실행입니다. 기술적으로 시장의 현재 상태, 모델/실행/추정 모듈을 실제로 사용하는 것이 더 정확합니다. , 그러나 즉시 전체 행에 신호를 발행한 다음 테스터에서 별도로 실행하는 것보다 훨씬 느리지만 미래를 염탐하고 비현실적인 결과를 얻을 위험이 큽니다.


추신: 이제 모든 외환 전문가들이 저에게 달려들 것입니다. 그러나 알고리즘 거래에서 손절매와 추적 정지는 해로운 기술이라고 말해야 하며, 운을 위해 포지션을 열었을 때 수동적이고 일시적인 거래만을 위한 것입니다. 소풍을 갔고 AI가 지속적으로 시장을 모니터링하면 귀하의 지역 하락에 따라 행동 할 의미가 없으며 이에 대한 미래 시장 움직임에 전혀 의존하지 않으며 AI 결정을 이것을 기반으로해서는 안됩니다 .

 
pantural :

확인. 글쎄요, https://c.mql5.com/3/236/Public.zip을 읽은 후 제가 또 무슨 말을 할 수 있을까요...

당신은 불필요하게 Public을 공격했습니다. 이것은 단순한 2-MA 전략, 후행 정지 및 테스터가 있는 단순한 전략 템플릿입니다. 가능한 한 모든 사람이 이해할 수 있는 간단한 코드를 포함해야 합니다. 또한 지표 전략을 실험할 기회가 있습니다. 그리고 Python에서 모델링 전략을 시작하고 싶은 사람이 있다면 이 템플릿을 사용자의 재량에 따라 변경하거나 개발할 수 있습니다.

사실, 그것은 시스템의 다양한 모듈을 테스트하기 위한 스탠드와 이 주제의 후속 출판을 위해 즉시 만들어졌습니다. 어쨌든, 그것은 당신이 생각하는 것과 전혀 다릅니다. 일반적으로 모든 것이 보이는 것이 아닙니다.

 
pantural :

PS 그런데 테스터가 올바르게 작동하는 이유는 무엇이라고 생각하십니까? 테스터는 교활한 것입니다 ....

팬츄럴 :

"테스트", 실제로 테스터는 데이터 피드의 전체 행에 대한 공백 실행입니다. 기술적으로 시장의 현재 상태, 모델/실행/추정 모듈을 실제로 사용하는 것이 더 정확합니다. 그러나 즉시 전체 행에 신호를 보낸 다음 테스터에서 별도로 실행하는 것보다 훨씬 느리지만 이러한 방식으로 미래를 염탐하고 비현실적인 결과를 얻을 수 있는 큰 위험이 있습니다.

관심 문의. 포럼에 테스트의 경이로움에 대한 전설이 이미 있기 때문에 흥미롭습니다.) 사실, 그것이 우리가 완전히 제어할 수 있는 자체 테스터가 필요한 이유입니다.

테스터란 무엇입니까? 테스터가 작업해야 하는 촛불의 수(또는 다른 것, 틱의 수)를 전략에 알려야 하는 주기일 뿐입니다. 또한 테스터는 전략 상태에 대한 데이터를 수집하고 사용자가 추가 처리할 수 있도록 아카이브에 어떻게든 구성합니다. 모두. 왜 두려워, 여기에 속임수가 무엇입니까? 테스터는 최선을 다해도 아무것도 할 수 없습니다.)

테스트가 교활한 이유는 단 한 가지뿐입니다. 실제 전략 자체는 테스트할 때보다 다른 데이터 유형과 함께 작동합니다. 예를 들어, 양초 대신 진드기로. 그리고 즐거운 삶이 보장됩니다.

전략에서 Open 또는 Close만 사용하고 실생활에서 이것만 사용하고 다른 것은 사용하지 않는 한 우리를 위협하는 것은 없습니다(물론 명백한 오류가 없는 경우). 그러나 OHLCV를 테스트에 사용하려고 하면 미래를 내다볼 수 있는 많은 기회가 생깁니다. 첫째, HL에는 타임스탬프가 없으며, 둘째, 캔들스틱 내부의 가격은 마음대로 움직일 수 있으며 가격 행동에 대한 일부 가정은 테스트의 왜곡으로 이어질 수 있습니다.

이러한 분석을 통해 우리는 우리의 행동에 매우 제한적이며 실제로 OHLCV 정보는 다음 캔들의 시작 부분에서만 사용할 수 있습니다. 위험 없이 할 수 있는 거의 모든 것은 현재 양초의 가격이 정지점 아래로 내려가면 거래를 종료하는 것입니다. 중지는 물론 현재 막대에서 변경되지 않아야 합니다.

추신: 이제 그들은 진드기에 대한 테스트에 대해 이야기 할 것이라고 생각합니다.) 나는 테스트 할 때 진드기를 사용하지 않으며, 진드기의 분석은 동체 진동 및 궤도 변동.

 
그리고 나는 내 자신의 테스터를 만들어야했고 매개 변수를 선택하지 않지만 이것이 영향을 미치기는하지만 진입 / 퇴장 조건 결정, TP / SL 계산 형태의 전략 생성, 결과 전략은 "검은색"이 아닙니다. 상자". 그는 "미래를 내다보는" 문제에 매우 철저하게 접근했습니다. 이것은 가장 중요한 문제 중 하나이며 테스터는 데이터에서 미래에 대한 정보를 찾습니다.
 
Yuriy Asaulenko :

관심 문의. 포럼에 테스트의 경이로움에 대한 전설이 이미 있기 때문에 흥미롭습니다.) 사실, 그것이 우리가 완전히 제어할 수 있는 자체 테스터가 필요한 이유입니다.

테스터란 무엇입니까? 테스터가 작업해야 하는 촛불의 수(또는 다른 것, 틱의 수)를 전략에 알려야 하는 주기일 뿐입니다. 또한 테스터는 전략 상태에 대한 데이터를 수집하고 사용자가 추가 처리할 수 있도록 아카이브에 어떻게든 구성합니다. 모두. 왜 두려워, 여기에 속임수가 무엇입니까? 테스터는 최선을 다해도 아무것도 할 수 없습니다.)

테스트가 교활한 이유는 단 하나뿐입니다. 실제 전략 자체는 테스트할 때보다 다른 데이터 유형과 함께 작동합니다. 예를 들어, 양초 대신 진드기로. 그리고 즐거운 삶이 보장됩니다.

전략에서 Open 또는 Close만 사용하고 실생활에서 이것만 사용하고 다른 것은 사용하지 않는 한 우리를 위협하는 것은 없습니다(물론 명백한 오류가 없는 경우). 그러나 OHLCV를 테스트에 사용하려고 하는 즉시 미래를 내다볼 수 있는 많은 기회가 있습니다. 첫째, HL에는 타임스탬프가 없고, 둘째, 캔들스틱 내부의 가격은 마음대로 움직일 수 있으며 가격 행동에 대한 일부 가정은 테스트의 왜곡으로 이어질 수 있습니다.

이러한 분석을 통해 우리는 우리의 행동에 매우 제한적이며 실제로 다음 캔들의 시작 부분에서만 OHLCV 정보를 사용할 수 있습니다. 위험 없이 할 수 있는 거의 모든 것은 현재 양초의 가격이 정지점 아래로 내려가면 거래를 종료하는 것입니다. 중지는 물론 현재 막대에서 변경되지 않아야 합니다.

추신: 이제 그들은 진드기에 대한 테스트에 대해 이야기 할 것이라고 생각합니다.) 나는 테스트 할 때 진드기를 사용하지 않으며, 진드기의 분석은 동체 진동 및 궤도 변동.

나는 많은 것들에 동의합니다. 테스터는 투명하고 똑똑한 자체가 필요합니다. 간단한 경우 알고리즘 자체는 (최고의 시장 (bid, sask) 만 시장에있을 때) 약 10 줄의 코드이지만 그 안에서도 스스로를 쏠 수 있습니다 다리에. 음, 예를 들어 "즉시 실행"을 사용하는 경우, 즉 신호 시점에 거래를 계산하면, 예를 들어 사람이 양초에서 한 개를 닫은 다음 이 시리즈에서 약간의 차이를 취할 때 발생합니다. 스트로크 및 신호 시간에 거래를 열거나 닫은 닫기(bid 또는 ask)에 따라 다시 휴식 시간에 이 오류는 실제보다 약간 더 긍정적인 테스트 결과를 제공하며 명확하지 않습니다. 반면에 이전 캔들의 신호를 기반으로 거래에 대해 다음 캔들을 사용하면 결과가 실제 캔들보다 훨씬 더 음수가 됩니다. 일반적으로 신호는 시작으로 계산되고 거래는 다음으로 계산됩니다. 같은 양초가 닫히지만 이 또한 완전히 윙윙거리는 것은 아닙니다. 연습에 따르면 열린 신호가 더 좋고 평균(H + L + C) / 3으로 거래가 이루어지지만 일부는 더 복잡하게 혼합됩니다.

그건 그렇고, 진드기를 희생시키면서 "tiko-candle", 즉 열림과 닫힘 사이를 통과 한 진드기가 들어있는 양초의 구조로 포장되면 모든 것이 매우 장식적이고 고귀합니다. 지표를 계산할 수 있습니다 IMHO는 그다지 의미가 없지만 결과는 매우 비슷할 것입니다.

여기에 유리를 사용하면 복잡함과 모호함이 추가되는데 다행스럽게도 이것은 이 유리를 크게 건조/채울 수 있는 양을 휘두르는 사람들에게만 적용되며 일반적으로 유리 없이 가능합니다.

 
pantural :

나는 많은 것들에 동의합니다. 테스터는 투명하고 똑똑한 자체가 필요합니다. 간단한 경우 알고리즘 자체는 (최고의 시장 (bid, sask) 만 시장에있을 때) 약 10 줄의 코드이지만 그 안에서도 스스로를 쏠 수 있습니다 다리에. 음, 예를 들어 "즉시 실행"을 사용하는 경우, 즉 신호 시점에 거래를 계산하면, 예를 들어 사람이 양초에서 한 개를 닫은 다음 이 시리즈에서 약간의 차이를 취할 때 발생합니다. 스트로크 및 신호 시간에 거래를 열거나 닫은 닫기(bid 또는 ask)에 따라 다시 휴식 시간에 이 오류는 실제보다 약간 더 긍정적인 테스트 결과를 제공하며 명확하지 않습니다. 반면에 이전 캔들의 신호를 기반으로 거래에 대해 다음 캔들을 사용하면 결과가 실제 캔들보다 훨씬 더 음수가 됩니다. 일반적으로 신호는 시작으로 계산되고 거래는 다음으로 계산됩니다. 같은 양초가 닫히지만 이 또한 완전히 윙윙거리는 것은 아닙니다. 연습에 따르면 열린 신호가 더 좋고 평균(H + L + C) / 3으로 거래가 이루어지지만 일부는 더 복잡하게 혼합됩니다.

그건 그렇고, 진드기를 희생시키면서 "tiko-candle", 즉 열림과 닫힘 사이를 통과 한 진드기가 들어있는 양초의 구조로 포장되면 모든 것이 매우 장식적이고 고귀합니다. 지표를 계산할 수 있습니다 IMHO는 그다지 의미가 없지만 결과는 매우 비슷할 것입니다.

여기에 유리를 사용하면 복잡함과 모호함이 추가되는데 다행스럽게도 이것은 이 유리를 크게 건조/채울 수 있는 양을 휘두르는 사람들에게만 적용되며 일반적으로 유리 없이 가능합니다.

그리고 알다시피, 나는 어떻게 든 당신과 사랑에 빠졌습니다. 하지 말아야 할 것을 얼마나 명확하게 썼는지. 그리고 실제로 많습니다. 그들은 그것을 이해하지 못한다!!! 당신이 금지 된 것은 당연합니다. 오 얼마나 이상해
 

나는 지표를 생각해 냈고 그것을 스토캐스틱 오실레이터라고 불렀습니다.) 일반적으로 고전적인 스토캐스틱 오실레이터의 깊은 현대화가 있지만 공통 유전자에도 불구하고 Pts의 후손입니다. 고전적인 스토캐스틱 오실레이터와 공통점이 거의 없습니다. 수학은 완전히 다르지만 외부 유사성은 분명합니다.

지금까지 표시기는 Python에서만 구현되었습니다. 그 목적은 거래를 시작하는 순간과 지원 메커니즘의 일부를 결정하는 것입니다. 당신은 그가 그것을 제시간에 잘 하고 있다는 것을 이미 그림에서 볼 수 있습니다.

당연히 지표는 단독으로 사용되는 것이 아니라 다른 방법 및 지표와 공생하는 용도로만 사용됩니다.

지표를 MQL로 바꿔서 마켓에 올릴까 말까 고민중입니다.

 

From Theory to Practice 라는 주제를 읽은 사람들은 이미 내 시스템과 A_K2 시스템이 채널에서 작동하는 거의 동일한 이데올로기에 따라 구축된다는 것을 알고 있습니다. 유일한 차이점은 광산이 1년 전에 지어졌다는 것입니다. 나는 이미 이 전략이 Python에서 약간의 변경으로 구현 및 테스트되었음을 이미 썼습니다.

왜냐하면 나는 많은 아이디어가 없었고 모든 종류의 지표를 개발 중이었습니다. 그 중 하나가 위의 게시물입니다. 리벳이 박힌 조각 10개. 결과적으로 채널의 작업과 추세에 대한 작업을 하나의 일관된 시스템으로 결합하는 아이디어가 고슴도치와 뱀을 교차하도록 형성되었습니다. 일반적으로 아직 시도하지 않았지만 일부 요소는 이미 해결했습니다. 모든 것이 맞는 것 같지만 질문이 있습니다. 실제로 일어나는 일은 말하기 어렵습니다. 어쩌면 아무것도 아닐 수도 있습니다. 봅시다.