안녕하세요, 트레이더 여러분! 오늘은 자동화된 거래 시스템(ATS) '콤보'에 대해 이야기해보려고 합니다. 이 시스템은 기본 거래 시스템(BTS)과 신경망(NN)을 결합하여 더 나은 거래 성과를 이끌어내기 위한 방법입니다.
기본적으로, 우리는 기존의 BTS를 기반으로 신경망을 학습시켜야 합니다. BTS와 NN이 서로 보완적인 역할을 하도록 하여, 단순한 추세 거래를 넘어 반전 전략도 함께 사용할 수 있도록 하는 것이죠. 이 과정에서 신경망은 다음 세 가지 상태로 출력될 수 있습니다:
- 롱 포지션 진입
- 숏 포지션 진입
- 불확실 상태
세 번째 상태는 BTS에 제어를 넘기는 상태로, 첫 두 상태에서는 신경망이 거래 신호를 제공합니다. 신경망 학습은 세 단계로 나뉘며, 각 단계는 하나의 퍼셉트론을 학습하는 과정입니다. 모든 단계에서 최적화된 BTS가 필요하죠.
우선, 첫 번째 단계는 BTS의 최적화입니다. 초기 예치금은 $1,000,000으로 설정하여 최적화 중 인위적인 마진 콜을 방지합니다. EA의 '테스트' 탭에서 ‘Balance’ 입력을 최적화 대상으로 설정하고, 유전자 알고리즘을 시작합니다.
이제 EA의 속성 'Inputs' 탭으로 가서 포지션 오픈 볼륨을 1로 설정해줍니다. 최적화는 'Open prices only' 모델에 따라 진행되며, 이는 ATS 알고리즘에서 가능하죠.
1단계: BTS 최적화
입력값 'pass'에 1을 설정해줍니다. 첫 번째 단계에 해당하는 입력값만 최적화 대상으로 체크하고, 나머지는 해제합니다.
- tp1 - BTS의 TakeProfit을 10에서 100까지 1단계로 최적화
- sl1 - BTS의 StopLoss를 10에서 100까지 1단계로 최적화
- p1 - BTS에 사용되는 CCI 주기를 3에서 100까지 1단계로 최적화
2단계: 숏 포지션을 담당하는 퍼셉트론 학습
입력값 'pass'에 2를 설정하고, 이전 단계에서 체크한 입력값은 해제합니다. 이전 단계에서 얻은 입력값은 파일로 저장하는 것도 좋습니다.
- x12, x22, x32, x42 - 숏 포지션을 인식하는 퍼셉트론의 가중치 번호 최적화 (0에서 200까지)
- tp2 - 퍼셉트론이 오픈하는 포지션의 TakeProfit 최적화 (10에서 100까지)
- sl2 - 퍼셉트론이 오픈하는 포지션의 StopLoss 최적화 (10에서 100까지)
- p2 - 퍼셉트론이 분석할 가격 차이의 주기 최적화 (3에서 100까지)
3단계: 롱 포지션을 담당하는 퍼셉트론 학습
입력값 'pass'에 3을 설정하고, 이전 단계에서 체크한 입력값은 해제합니다. 이전 단계에서 얻은 입력값은 yine 파일로 저장합니다.
- x13, x23, x33, x43 - 롱 포지션을 인식하는 퍼셉트론의 가중치 번호 최적화 (0에서 200까지)
- tp3 - 퍼셉트론이 오픈하는 포지션의 TakeProfit 최적화 (10에서 100까지)
- sl3 - 퍼셉트론이 오픈하는 포지션의 StopLoss 최적화 (10에서 100까지)
- p3 - 퍼셉트론이 분석할 가격 차이의 주기 최적화 (3에서 100까지)
4단계: 첫 번째 레이어의 퍼셉트론 학습
입력값 'pass'에 4를 설정하고, 이전 단계에서 체크한 입력값은 해제합니다. 이전 단계에서 얻은 입력값은 파일로 저장합니다.
- x14, x24, x34, x44 - 첫 번째 레이어의 퍼셉트론 가중치 번호 최적화 (0에서 200까지)
- p4 - 퍼셉트론이 분석할 가격 차이의 주기 최적화 (3에서 100까지)
이제 신경망 학습이 완료되었습니다!
마지막으로, ATS에는 하나의 비최적화 입력값인 'mn'이 있습니다. 이는 매직 넘버로, 다른 ATS나 수동으로 오픈한 포지션과 주문을 혼합하지 않도록 도와줍니다. 매직 넘버는 고유해야 하며, 다른 EA와 중복되지 않아야 합니다.
참고사항:
- 초기 예치금은 절대 손실의 두 배로 설정해주세요.
- 제공된 EA는 최적화되지 않았습니다.
- 기본 거래 시스템을 다른 거래 시스템 알고리즘으로 교체해야 하는 경우, basicTradingSystem() 함수를 수정하세요.
- 최적화에 필요한 초기 및 최종 값, 단계의 값을 입력하지 않으려면, 준비된 파일 combo.set을 다운받아 MT4의 ester 폴더에 넣고 EA 속성에서 업로드하세요.
- EA의 재최적화는 주말에 진행해야 하며, 이전 주의 결과가 손실일 경우에만 필요합니다. 손실이 발생한 경우 시장이 변동했음을 의미하며, 재최적화가 필요합니다. 반면, 수익이 발생한 경우 ATS는 시장 패턴을 잘 인식하고 있다는 뜻입니다.