기고글 토론 "Python과 MQL5로 로봇 개발하기(2부): 모델 선택, 생성 및 훈련, Python 사용자 지정 테스터" - 페이지 2

 

여전히 행 가격이 최고의 칩으로 밝혀졌습니다.

나는 그들의 비 고정성 때문에 회의적이었습니다. 그러나 몇 가지 조작 후 이러한 기능에서 괜찮은 모델을 추출하기 시작했습니다.

그래서 무지에서 지식이 나오고 지식에서 무지가 나옵니다 :)

 
Ivan Butko #:
결과가 있을 때 좋은 동기부여가 됩니다!
그리고 제가 깨달은 것처럼, 일주일도 아니고 한 달도 아니고 보통의 1년치 일이었습니다.

정말 감사합니다! 네, 동기부여가 많이 됩니다! 계속 연구하겠습니다) 다시 밤이네요, 커피 한 잔과 코드 아이디어가 있습니다)))))

 
Maxim Dmitrievsky #:

전반적으로 행 가격은 최고의 칩으로 밝혀졌습니다.

예전에는 비고정성 때문에 회의적이었습니다. 하지만 몇 가지 조작을 통해 이러한 기능에서 괜찮은 모델을 추출하기 시작했습니다.

그래서 무지에서 지식이 나오고 지식에서 무지가 나옵니다 :)

여기에 그러한 시도 유형이 있습니다. 시어머니는 15 년 이상의 경험을 가진 상인이며, 그녀는 볼륨에 칩을 만들어야한다고 계속 말합니다))) https://www.mql5.com/ko/code/50133

Индикатор Price / Volume
Индикатор Price / Volume
  • www.mql5.com
Одна из простых фич для машинного обучения
 
Yevgeniy Koshtenko #:

시어머니는 15년 이상의 경력을 가진 트레이더인데, 볼륨에 칩을 넣어야 한다고 계속 말씀하시네요))) https://www.mql5.com/ko/code/50133

예, 더 자주 변동성이 추가되는 것은 사실이지만 (예 : 표준 지표) 그다지 많은 것을 제공하지는 않습니다. 또는 증분을 변동성으로 나눈 값입니다.

 

유진님, 트레이딩과 관련하여 ML에 대해 공부하기 시작했는데, 정말 감사합니다.

다음 사항에 대해 설명해 주시겠습니까?

label_data 함수가 데이터를 처리하면 데이터의 양이 크게 줄어듭니다(함수의 조건을 만족하는 무작위 막대 집합을 얻습니다 ). 그런 다음 데이터는 여러 함수를 거쳐 훈련 샘플과 테스트 샘플로 나뉩니다. 모델은 훈련 샘플에 대해 훈련됩니다. 그 후 테스트 샘플에서 ['레이블'] 열을 제거하고 그 값을 예측하여 모델을 추정합니다. 테스트 데이터에 개념 대체가 없나요? 결국 테스트에는 label_data 함수를 통과한 데이터 (즉, 미래 데이터를 고려하는 함수에 의해 미리 선택된 비순차 막대 집합)를 사용합니다 . 그리고 테스터에는 매개 변수 10이 있는데, 제가 알기로는 거래를 마감 할 막대 수를 담당해야하지만 순차적이지 않은 막대 세트가 있기 때문에 우리가 얻는 것이 무엇인지 명확하지 않습니다.

다음과 같은 질문이 생깁니다: 제가 어디가 틀렸나요? 왜 모든 막대 >= FORWARD가 테스트에 사용되지 않나요? 그리고 모든 막대 >= FORWARD를 사용하지 않는다면 미래를 모르는 상태에서 예측에 필요한 막대를 어떻게 선택할 수 있나요?

감사합니다.

 
매우 흥미롭고 실용적이며 현실적인 훌륭한 글입니다. 결과 없는 이론이 아닌 실제 사례를 통해 이렇게 좋은 기사를 보기는 어렵습니다. 작업과 공유에 정말 감사드리며, 이 시리즈를 팔로우하고 기대하겠습니다.
 
Eric Ruvalcaba #:
매우 흥미롭고 실용적이며 현실적인 훌륭한 글입니다. 결과 없는 이론이 아닌 실제 사례를 통해 이렇게 좋은 기사를 보기는 어렵습니다. 작업과 공유에 정말 감사드리며, 이 시리즈를 팔로우하고 기대하겠습니다.

감사합니다! 예, ONNX로의 번역을 통해 이 아이디어를 확장하는 것을 포함하여 앞으로 많은 아이디어 구현이 남아 있습니다.)

 
특징 선택에는 RandomForestClassifier를, 모델 분류에는 XGBclassifier를 사용하는 특별한 이유가 있나요?
 

중대한 결함:

  1. 데이터 유출 방지 문제:
    • augment_data() 함수는 훈련 세트와 테스트 세트 간에 심각한 데이터 유출 문제를 일으킵니다.
    • 증강은 서로 다른 기간의 데이터를 혼합합니다.
  2. 성능 평가 방법론의 오류:
    • 모델 테스트가 실제 시장 상황을 고려하지 않음
    • 모델이 미래 데이터로 학습되고 과거 데이터로 테스트되는데, 이는 허용되지 않습니다.
  3. 코드의 기술적 문제:
    • generate_new_features() 함수는 기능을 생성하지만 반환하지 않음(원래 데이터를 반환함).
    • test_model()은 X_test.iloc[i]['close']를 사용하지만 기능을 변환한 후 'close'가 누락될 수 있습니다.
  4. 일관성 없는 데이터 처리:
    • 데이터가 서로 다른 방식으로 두 번 레이블이 지정됨( markup_data() 및 label_data() )
    • 클러스터링 결과( 클러스터 )가 추가 학습에 사용되지 않음
  5. 트레이딩 전략의 방법론적 문제:
    • 적응형 전략 대신 10바 후 정적 청산
    • 리스크 관리 없음 (단순 손절매 제외)
    • 거래 비용 고려 없음(단순 스프레드 제외)
  6. 비효율적인 검증:
    • 시간 구조를 고려한 과거 데이터에 대한 모델 검증 없음(워크포워드 분석)
    • 시계열 특이성을 고려하지 않고 시계열에 교차 검증 적용

개선 권장 사항

  1. 데이터 유출 제거 - 시간에 따른 데이터를 엄격하게 분리합니다.
  2. 적절한 워크포워드 검증 구현
  3. 미끄러짐과 커미션을 고려하여 보다 현실적인 테스트를 구현합니다.
  4. 포지션 진입/청산 로직 확정
  5. 시계열 특정 방법 사용