기고글 토론 "클래스에서 ONNX 모델 래핑하기"

 

새로운 기고글 클래스에서 ONNX 모델 래핑하기 가 게재되었습니다:

객체 지향 프로그래밍을 사용하면 읽기 쉽고 수정하기 쉬운 보다 간결한 코드를 작성할 수 있습니다. 여기서는 세개의 ONNX 모델에 대한 예제를 살펴보겠습니다.

과반수 득표는 <총 득표수>/2 + 1이라는 공식에 따라 계산됩니다. 총 3표 중 과반수는 2표입니다. 이를 이른바 '하드 투표'라고 합니다.

테스트 결과는 여전히 동일한 설정으로 한 것입니다.

하드 투표 테스트 결과

세 가지 모델의 작업, 즉 수익성 있는 거래와 수익성 없는 거래의 수를 개별적으로 다시 살펴 보겠습니다. 첫 번째 모델 - 11 : 3, second — 6 : 1, third — 16 : 10.

하드 투표를 통해 결과를 개선한 것 같습니다 - 16 : 4. 하지만 물론 전체 보고서와 테스트 차트를 살펴봐야 합니다.

작성자: MetaQuotes

 
매우 유용한 글입니다!

MT5에서 사용하는 ONNX 버전은 1.13.0 또는 1.14.0인가요?
 

정말 흥미롭네요, 감사합니다.

이 글에 첨부된 ML 파일 ONNX.eurusd.D1.30.class.Training.py를 보면 def collect_dataset() 에 다음 코드 줄(48~59행)이 있습니다:

    for i in tqdm(range(n - sample_size)):
        w = df.iloc[i: i + sample_size + 1]
        x = w[['close', 'ma_fast', 'ma_slow']].iloc[:-1].values

        delta = x[0][-1] - w.iloc[-1]['close']
        if np.abs(delta)<=0.0001:
           y = 0, 1, 0
        else:
           if delta>0:
              y = 1, 0, 0
           else:
              y = 0, 0, 1

위의 강조 표시된 줄 뒤에 있는 로직은 무엇인가요?

이 분류는 첫 번째 샘플의 'ma_slow'(x[0][-1])와 새 대상의 'close'(w.iloc[-1]['close']) 사이의 차이에 기반합니다. 또한'sample_size-1'의 시간 차이가 있을 수 있습니다.

또한

if delta>0:
              y = 1, 0, 0

y = 0,0,1이 되어야 하지 않을까요? 즉, 매도 신호입니다.

ONNX.eurusd.D1.10.class.Training.py의 def collect_dataset(), 45-47줄에서도 마찬가지입니다:

        x = w[['open', 'high', 'low', 'close']].iloc[:-1].values

        delta = x[3][-1] - w.iloc[-1]['close']
어떻게? 분류는 네 번째 샘플의 'close'(x[3][-1])와 새 대상의 'close'(w.iloc[-1]['close']) 사이의 차이에 따라'sample_size-4'의 시간 차이가 있을 것입니다.
 
Xiaoyu Huang #:
매우 유용한 기사!

MT5에서 사용하는 ONNX 버전은 1.13.0 또는 1.14.0인가요?
정보를 찾을 수 없는 것 같습니다. 질문하는 이유가 있나요?