기고글 토론 "Python과 MQL5로 로봇 개발하기(1부): 데이터 전처리"

 

새로운 기고글 Python과 MQL5로 로봇 개발하기(1부): 데이터 전처리 가 게재되었습니다:

머신 러닝을 기반으로 트레이딩 로봇을 개발하기: 자세한 가이드. 이 시리즈의 첫 번째 글에서는 데이터와 기능을 수집하고 준비하는 방법을 다룹니다. 이 프로젝트는 파이썬 프로그래밍 언어와 라이브러리, MetaTrader 5 플랫폼을 사용하여 구현됩니다.

시장은 점점 더 복잡해지고 있습니다. 오늘날은 알고리즘의 전쟁으로 변하고 있으며 거래의 95% 이상이 로봇에 의해 발생합니다. 

다음 단계는 머신 러닝입니다. 이들은 강력한 AI는 아니지만 단순한 선형 알고리즘도 아닙니다. 머신 러닝 모델은 어려운 조건에서도 수익을 창출할 수 있습니다. 트레이딩 시스템을 만드는 데 머신 러닝을 적용하는 것은 흥미로운 일입니다. 신경망 덕분에 트레이딩 로봇은 빅 데이터를 분석하고 패턴을 찾아 가격 변동을 예측할 것입니다.

우리는 데이터 수집, 처리, 샘플 확장, 피처 엔지니어링, 모델 선택 및 트레이닝, 파이썬을 통한 트레이딩 시스템 생성, 거래 모니터링 등 트레이딩 로봇의 개발 주기를 살펴볼 것입니다.

파이썬으로 작업하면 머신 러닝에서의 속도와 피처를 선택하고 생성할 수 있다는 장점이 있습니다. 모델을 ONNX로 내보내려면 파이썬에서와 완전히 동일한 피처 생성 로직이 필요한데 이는 쉽지 않습니다. 그래서 저는 파이썬을 통한 온라인 트레이딩을 선택했습니다.


작성자: Yevgeniy Koshtenko

 
합리적인 접근 방식 👍 흥미로운 특성 선택 방법.
 
흥미로운 글을 작성해 주셔서 감사합니다. 파이썬을 사용해 본 적은 없지만 이 강력한 도구를 배우고 싶다는 생각이 들었습니다. 새로운 출판물을 기대하고 있으며 트렌드를 따르고 있습니다!
 

В задаче прогнозирования EURUSD мы добавили бинарный столбец "labels", указывающий, превысило ли следующее изменение цены спред и комиссию.

그런데 70만 건이 넘는 데이터 중 스프레드보다 가격이 더 많이 변동한 경우는 7만 건에 불과했습니다.

EURUSD는 90%의 경우 스프레드가 ~0입니다. H1 데이터로 작업하고 계시군요. 어떻게 이런 결과를 얻었나요?

 
Кстати, искушенный в машинном обучении читатель уже давно понял, что мы в итоге разработаем модель классификации, а не регрессии. Мне больше нравятся регрессионные модели, я в них вижу немного больше логики для прогнозирования, нежели в моделях классификации. 
두 번째 문장이 첫 번째 문장과 모순되는 것 같습니다.
 

Фича инжиниринг — преобразование исходных данных в набор признаков для обучения моделей машинного обучения. Цель — найти наиболее информативные признаки. Есть ручной подход (человек выбирает признаки) и автоматический (с помощью алгоритмов).

자동 방식을 사용할 것입니다. 새로운 기능 생성 방법을 적용하여 데이터에서 최상의 기능을 자동으로 추출합니다. 그런 다음 결과 집합에서 가장 유익한 특징을 선택합니다.

가격 예측에 가장 좋은 기능은 시초가 자체로 밝혀졌습니다. 이동 평균, 가격 상승률, 표준편차, 일별 및 월별 가격 변동에 기반한 징후가 상위권에 포함되었습니다. 자동 생성된 신호는 정보가 없는 것으로 판명되었습니다.

특징 생성을 위한 알고리즘의 품질에 대한 의문이 있거나 오히려 완전히 부재한 것이 아닌가 하는 의문이 들었습니다.


한 사람이 OHLCT 데이터에서 총 5개의 열로 구성된 모든 속성을 생성했습니다. 훨씬 더 많은 수의 원래 특징에 특징 생성 알고리즘을 적용하고 있습니다. 칩 생성 알고리즘이 가장 단순한 MA 칩을 재현하지 못한다는 것은 상상하기 어렵습니다.

 
기사의 언어, 스타일, 정보 표현이 마음에 들었습니다. 작성자에게 감사드립니다!
 

특징 클러스터링은 유사한 특징을 그룹으로 결합하여 특징의 수를 줄입니다. 이를 통해 중복 데이터를 제거하고 상관관계를 줄이며 과적합 없이 모델을 단순화할 수 있습니다. 가격 예측에 가장 적합한 기능은 시초가 자체로 밝혀졌습니다.

클러스터링에서 HLC 가격이 O가격과 같은 클러스터에 속했기 때문에 제외되었나요?

가격이 예측에 가장 좋은 신호로 밝혀졌다면(다른 신호는 그 파생상품), 다른 신호는 무시하고 더 낮은 기간으로 이동하여 다른 종목의 가격을 신호로 삼아 입력 데이터를 더 추가하는 것이 합리적일까요?

 

물론 가격이 트레이닝 범위를 벗어나는 경우 MO가 새 데이터에 대해 적절하게 작동하지 않으므로 트레이닝 샘플에서 가격을 제거해야 합니다.

가격의 높은 정보성은 가격 값의 고유성, 즉 알고리즘이 가격을 기억하거나 레이블과 일치시키는 것이 더 쉽기 때문에 발생합니다.

MO 실무에서는 정보가 없는 특징뿐만 아니라 원시 가격인 의심스러운 과잉 정보 특징도 제거됩니다.

이상적인 시나리오에서는 +-로 동등하게 정보를 제공하는 여러 속성이 있어야 합니다. 즉, 명확한 리더나 외부인이 존재하지 않는 것입니다. 즉, 어떤 속성도 훈련을 방해하지 않고 스스로 담요를 끌어당기지 않습니다.
 
Maxim Dmitrievsky #:

물론 가격이 트레이닝 범위를 벗어나는 경우 MO가 새 데이터에 대해 적절하게 작동하지 않으므로 트레이닝 샘플에서 가격을 제거해야 합니다.

수익률로 이동하면 특징 생성 알고리즘은 누적 합계를 생성해야 하며, 이는 동일한 가격이 될 것입니다. 동시에 이것이 가격이라는 것을 알 수 없습니다.

 
fxsaber #:

우리가 수익률로 이동하면 기능 생성 알고리즘은 누적 합계를 생성 할 의무가 있으며 이는 동일한 가격이 될 것입니다. 이것이 가격이라는 것은 알려지지 않을 것입니다.

나는 그것을 얻지 못한다

모든 표지판은 증분과 같이 의사 고정형이어야 합니다. 교육에서 원시 가격을 제거해야 합니다.