외환 알고리즘
Forex 알고리즘 거래의 기본.
거의 30 년 전에 외환 시장 (Forex)은 전화, 기관 투자가, 불투명 한 가격 정보, 인터내셔널 트레이딩과 딜러 고객 거래의 명백한 구별 및 낮은 시장 집중을 통해 수행 된 거래로 특징 지어졌습니다. 오늘날 기술 발전에 힘 입어 시장이 변화했습니다. 거래는 주로 컴퓨터를 통해 이루어지기 때문에 소매 상인이 시장에 진입 할 수있게되어 실시간 스트리밍 가격이 투명성을 높이고 딜러와 가장 정교한 고객 간의 구별이 거의 사라졌습니다.
특히 중요한 변화는 알고리즘 트레이딩의 도입입니다. 알고리즘 트레이딩은 Forex 거래의 기능을 크게 향상시키는 동시에 여러 가지 위험을 제기합니다. Forex 시장 및 알고리즘 거래의 기본 사항을 살펴봄으로써 알고리즘 트레이딩이 통화 거래로 가져온 몇 가지 장점을 확인하면서 일부 위험을 지적합니다.
외환 기본.
Forex는 통화 쌍이 견적 가격에 따라 다양한 거래량으로 거래되는 가상 장소이며 기본 통화에 견적 통화로 가격이 부여됩니다. 일주일에 5 일 하루 24 시간 운영되는 Forex는 세계에서 가장 크고 가장 유동적 인 금융 시장으로 간주됩니다. BIS (Bank for International Settlements)에 따르면 2013 년 4 월 일일 세계 평균 거래량은 2 조 달러였습니다. 이 거래의 대부분은 미국 달러, 유로 및 일본 엔으로 이루어지며 민간 은행, 중앙 은행, 연기금, 기관 투자가, 대기업, 금융 회사 및 개인 소매업 종사자를 포함한 다양한 플레이어가 참여합니다.
투기 거래가 특정 투자자의 주된 동기 일지 몰라도 외환 시장의 존재의 주된 이유는 사람들이 외국 상품과 서비스를 구매하기 위해 통화를 거래해야한다는 것입니다. 외환 시장의 활동은 실질 환율에 영향을 미치므로 특정 국가의 생산, 고용, 물가 상승 및 자본 흐름에 중대한 영향을 미칠 수 있습니다. 이런 이유로 정책 입안자, 대중 및 언론은 모두 외환 시장에서 일어나는 일에 기득권을 가지고 있습니다.
알고리즘 트레이딩의 기초.
알고리즘은 본질적으로 명확하게 정의 된 작업을 완료하도록 설계된 특정 규칙 집합입니다. 금융 시장 거래에서 컴퓨터는 거래를 구성하는 타이밍, 가격 또는 수량과 같은 매개 변수로 구성된 일련의 규칙으로 특징 지어진 사용자 정의 알고리즘을 수행합니다.
금융 시장 내에서 통계, 자동 헤징, 알고리즘 실행 전략 및 직접 시장 접근이라는 네 가지 기본 유형의 알고리즘 거래가 존재합니다. 통계는 과거의 시계열 데이터의 통계 분석을 기반으로 수익성있는 거래 기회를 찾는 알고리즘 전략을 나타냅니다. 자동 헤징은 상인의 위험 노출을 줄이기위한 규칙을 생성하는 전략입니다. 알고리즘 실행 전략의 목표는 시장 영향을 줄이거 나 신속하게 거래를 실행하는 것과 같은 사전 정의 된 목표를 실행하는 것입니다. 마지막으로 직접 시장 접근은 알고리즘 거래자가 여러 거래 플랫폼에 액세스하여 연결할 수있는 최적의 속도와 비용을 설명합니다.
알고리즘 거래의 하위 범주 중 하나는 높은 빈도의 거래로 거래 질서 집행의 빈도가 매우 높다는 특징이 있습니다. 고속 거래는 물가 상승분을 밀리 초 단위로 거래 할 수있는 능력을 제공함으로써 거래자에게 상당한 이점을 줄 수 있지만 특정 위험을 부담 할 수도 있습니다.
외환 시장에서의 알고리즘 트레이딩.
지난 수년간 외환 시장에서의 알고리즘 거래 증가의 상당 부분은 특정 프로세스를 자동화하고 외환 거래를 수행하는 데 필요한 시간을 단축하는 알고리즘 때문이었습니다. 자동화로 인해 생성되는 효율성은 이러한 프로세스를 수행하는 데 드는 비용을 줄입니다. 그러한 과정 중 하나가 거래 주문의 집행입니다. 지정된 기간 또는 특정 가격으로 주문을 실행하는 것과 같이 미리 결정된 기준에 따라 거래하는 알고리즘을 사용하여 거래 프로세스를 자동화하는 것은 사람이 수동으로 실행하는 것보다 훨씬 효율적입니다.
은행은 또한 전자 거래 플랫폼에서 통화 쌍의 가격을 업데이트하도록 프로그램 된 알고리즘을 이용했습니다. 이러한 알고리즘은 은행이 시장 가격을 인용 할 수있는 속도를 높이는 동시에 가격을 견적하는 데 필요한 수작업 시간을 줄입니다.
일부 은행은 위험 노출을 줄이기 위해 알고리즘을 프로그램합니다. 알고리즘은 특정 통화의 일정한 수량을 유지하기 위해 은행이 동등한 금액을 구입 한 고객의 거래와 일치하도록 특정 통화를 판매하는 데 사용될 수 있습니다. 이를 통해 은행은 해당 통화를 보유하기 위해 미리 지정된 수준의 위험 노출을 유지할 수 있습니다.
이러한 프로세스는 알고리즘을 통해 훨씬 더 효율적으로 만들어 졌으므로 트랜잭션 비용이 절감됩니다. 그러나 이들은 Forex 알고리즘 거래의 성장을 주도 해 온 유일한 요인은 아닙니다. 높은 빈도와 알고리즘의 데이터 해석 및 주문 실행 기능의 결합으로 거래자는 통화 쌍 간의 작은 가격 편차로 인해 차익 거래 기회를 활용할 수있게되어 투기 거래에 점점 더 많이 사용되었습니다.
이러한 모든 장점으로 인해 Forex 시장에서 알고리즘 사용이 증가했지만 알고리즘 거래와 관련된 몇 가지 위험을 살펴 보겠습니다.
알고리즘 외환 거래와 관련된 위험.
알고리즘 거래가 많은 개선을 이루었지만 Forex 시장의 안정성과 유동성을 위협 할 수있는 단점이 있습니다. 이러한 단점 중 하나는 시장 참여자의 거래 능력 불균형과 관련이있다. 일부 참가자는 정보를 얻고 다른 사람보다 훨씬 빠른 속도로 주문을 실행할 수있는 정교한 기술을 습득 할 수있는 방법을 가지고 있습니다. 가장 정교한 알고리즘 기술 측면에서 헤게모와 소유주 사이의 이러한 불균형은 시간이 지남에 따라 유동성 부족을 초래할 수있는 시장 내 단편화로 이어질 수 있습니다.
게다가 주식 시장과 외환 시장 간에는 근본적인 차이가 있지만 2010 년 5 월 6 일 주식 시장의 플래시 충돌을 악화시키는 고주파 거래는 외환 시장에도 마찬가지로 영향을 줄 수 있습니다. 특정 시장 시나리오를 위해 알고리즘이 프로그래밍되어 있기 때문에 시장이 급격하게 변화 할 경우 신속하게 대응하지 못할 수도 있습니다. 이 시나리오를 피하기 위해 시장의 난기류 동안 시장을 모니터링하고 알고리즘 거래를 중지해야 할 수도 있습니다. 그러나 이러한 극단적 인 시나리오에서는 수많은 시장 참여자에 의한 알고리즘 거래가 동시에 중단되면 변동성이 커지고 시장 유동성이 급격히 감소 할 수 있습니다.
결론.
알고리즘 트레이딩은 효율성을 높여 화폐 거래 비용을 절감 할 수 있지만 추가 위험이 따릅니다. 통화가 제대로 기능하기 위해서는 다소 안정된 가치의 상점이어야하며 유동성이 높아야합니다. 따라서 외환 시장은 낮은 가격 변동성으로 유동성을 유지하는 것이 중요합니다.
모든 분야의 삶과 마찬가지로 신기술은 많은 이점을 가져다 주지만 새로운 위험도 있습니다. 알고리즘 외환 거래의 미래에 대한 도전은 위험을 줄이면서 이익을 극대화하는 변화를 수립하는 방법이 될 것입니다.
알고리즘 외환 전략의 8 가지 유형.
약속대로, 다음은 알고리즘 외환 거래 시스템의 다음 시리즈입니다. 계속 읽기 전에 Algo FX Trading에 대해 알아야 할 사항에 대한 첫 번째 부분을 확인하십시오!
이 거래 방식은 대개 거래 의사 결정에서 인간의 정서적 인 간섭을 제거하거나 줄이려는 사람들에게 호소력이 있습니다. 결국 구매 또는 판매 신호는 프로그래밍 된 지침 세트를 사용하여 생성 할 수 있으며 거래 플랫폼에서 바로 실행할 수 있습니다.
"놀라움! 여기 내 돈이있다! 어디에서 서명해야합니까? "
말을 잡고, 젊은 파다완! 힘들게 벌어 들인 현금을 지갑에 넣고 알고리즘 거래를 먼저 이해하는 데 약간의 시간을 투자하십시오. 먼저, 이 거래 방식의 여러 분류를 살펴 보겠습니다.
알고리즘 트레이딩 전략.
사용 된 전략에 따라 8 가지 주요 종류의 알 고 트레이딩이 있습니다. 꽤 압도적 인, 응? 물론 이러한 전략을 혼용하고 일치시킬 수 있으므로 많은 조합이 가능합니다.
가장 간단한 전략 중 하나는 기술 지표에 의해 충족되는 일련의 조건을 기반으로 생성 된 구매 또는 판매 주문으로 시장 추세를 따르는 것입니다. 또한이 전략은 추세가 계속 될지 또는 후퇴 될지 예측하는 데있어 과거 및 현재 데이터를 비교할 수 있습니다.
algo 거래 전략의 또 다른 기본적인 종류는 시장이 시간의 80 %에 이른다는 가정하에 운영되는 평균 수익률 시스템입니다. 이 전략을 사용하는 블랙 박스는 일반적으로 과거 데이터를 사용하여 평균 자산 가격을 계산하고 현재 가격이 평균 가격으로 돌아갈 것을 예상하여 거래를 수행합니다.
뉴스 거래를 해본 적이 있습니까? 글쎄, 이 전략은 당신을 위해 그것을 할 수 있습니다! 뉴스 기반 알고리즘 거래 시스템은 일반적으로 뉴스 와이어에 연결되어 시장 컨센서스 나 이전 데이터와 비교하여 실제 데이터가 어떻게 표시되는지에 따라 거래 신호를 자동 생성합니다.
학교 정서에서 시장 정서에 대해 배웠던 것처럼 상업적 및 비상업적 포지셔닝을 사용하여 시장 상판과 하판을 정확하게 파악할 수 있습니다. 시장 심리에 근거한 외환 전략은 COT 보고서 나 극단적 인 순매도 또는 장황한 포지션을 탐지하는 시스템을 사용하는 것을 포함 할 수 있습니다. 보다 현대적인 접근법은 통화 편향을 측정하기 위해 소셜 미디어 네트워크를 검색 할 수도 있습니다.
이제는 평소보다 조금 더 복잡해집니다. 알고리즘 트레이딩에서 차익 거래를 사용한다는 것은 시스템이 다른 시장에 걸친 가격 불균형을 찾아 내고 이익을 얻지 못한다는 것을 의미합니다. 외환 가격 차이가 일반적으로 micropips에 있기 때문에, 당신은 상당한 이익을 내기 위해 정말로 큰 직위를 교환해야 할 것입니다. 두 통화 쌍과 두 통화 간의 통화 교차를 포함하는 삼각형 차익 거래도이 분류에서 인기있는 전략입니다.
이름에서 알 수 있듯이 이러한 종류의 거래 시스템은 번개 빠른 속도로 작동하여 매매 신호를 실행하고 밀리 초 만에 거래를 종결합니다. 이들은 일반적으로 빠른 가격 변동에 기초한 차익 거래 또는 스캘핑 전략을 사용하며 거래량이 많습니다.
이것은 자신의 외환 포지션에 대해 매우 비밀스런 대형 금융 기관이 채택한 전략입니다. 단 하나의 브로커와 함께 하나의 거대한 길거나 짧은 위치를 배치하는 대신, 그들은 더 작은 포지션으로 거래를 나누어 다른 브로커 아래에서 이것을 수행합니다. 그들의 알고리즘은 다른 시장 참여자들이 알아 내지 못하게하기 위해이 작은 거래 주문을 다른 시간에 배치 할 수 있습니다! 이렇게하면 금융 회사는 갑작스런 가격 변동없이 정상적인 시장 조건 하에서 거래를 수행 할 수 있습니다. 거래량을 추적하는 소매업 종사자는 이러한 큰 거래에 대해서만 "빙산의 일각"을 볼 수 있습니다.
빙빙이 교활하다고 생각한다면 스텔스 전략은 더 안 좋을 것입니다! 지난 몇 년 동안 하드 코어 시장 전문가들은이 아이디어를 해킹하고 작은 주문을 하나로 모아서 대형 시장 플레이어가 모두 뒤에 있는지 파악할 수있는 알고리즘을 제안했습니다.
당신이 짐작했듯이, 금융 시장 분석과 컴퓨터 프로그래밍에 대한 확실한 배경을 가지고 그러한 정교한 거래 알고리즘을 설계 할 수 있습니다. 정량 분석가 또는 퀀트는 일반적으로 C + +, C # 또는 Java 프로그래밍에서 트레이닝되어 알고리즘 거래 시스템을 개발할 수 있습니다.
그게 너를 낙담시키지 마라! 알고리즘 트레이딩 전략의 처음 세 가지 또는 네 가지는 이미 꽤 익숙한 것입니다. 오랫동안 거래를 해왔거나 Pepology School에서 열심히 공부 한 학생이라면 요.
이 시리즈의 다음 부분을 계속 지켜봐주십시오. 알고리즘 개발 FX 거래의 최신 발전과 미래에 대해 알려 드리려고합니다. 다음 주까지!
우리는 우리가 반복해서하는 일입니다. 그렇다면 탁월함은 행위가 아니라 습관입니다. 아리스토텔레스.
BabyPips는 개인 트레이더가 외환 시장을 거래하는 방법을 배울 수 있도록 도와줍니다.
우리는 사람들을 통화 거래 세계에 소개하고, 유익한 상인이되는 법을 배우는 데 도움이되는 교육 컨텐츠를 제공합니다. 우리는 일상적인 거래 여행에서 서로를 지원하는 상인 커뮤니티입니다.
스노우 크론.
무료 E. Mail 클래스.
유전 알고리즘을 사용하여 수익성있는 외환 거래 전략 수립. Cortex Neural Networks 소프트웨어의 유전자 알고리즘 Feedforward Backpropagation 신경 회로망 유전자 계산을위한 Forex 거래 기반 응용 프로그램.
이 예제는 이전 기사의 개념과 아이디어를 사용하므로 FOREX Trading Systems의 신경망 유전자 알고리즘을 먼저 읽으십시오. 필수 사항은 아니지만 먼저 읽어보십시오.
이 원본에 관하여.
먼저 면책 조항을 읽어보십시오. 이것은 Cortex Neural Networks 소프트웨어 유전 알고리즘 기능을 사용하는 예입니다. 수익성있는 거래를 수행하는 방법의 예는 아닙니다. 나는 당신의 전문가가 아니며, 귀하의 손실에 대해 책임지지도 않습니다.
Cortex Neural Networks 소프트웨어는 신경망을 가지고 있으며 앞서 논의한 FFBP는 외환 거래 전략을 선택하는 유일한 방법 일뿐입니다. 그것은 강력하고 적절한 적용을하면 훌륭한 기술입니다. 그러나 신경망을 가르치기 위해서는 "원하는 결과물"을 알아야합니다.
우리가 함수 근사를 할 때 수행하기가 쉽습니다. 함수의 "실제"값을 취합니다. 왜냐하면 우리는 그것이 무엇인지 알아야하기 때문입니다.
우리가 신경망 예측을 할 때, 신경망을 역사에 가르치는 기술 (이전 기사에서 설명한)을 사용합니다. 다시 말하면 환율을 예측하면 올바른 예측이 무엇인지 (훈련 중에) 알 수 있습니다. .
그러나 우리는 거래 시스템을 구축 할 때 환율을 알고 있다고하더라도 정확한 거래 결정이 무엇인지 알지 못합니다! 사실상, 우리는 언제든지 사용할 수있는 많은 외환 거래 전략을 가지고 있으며, 좋은 방법을 찾아야합니다 - 어떻게? 우리는 신경망의 원하는 결과물로 무엇을 공급해야합니까?
우리가 이전 기사를 읽었다면, 우리는이 문제를 해결하기 위해 속임수를 쓰고 있다는 것을 알고 있습니다. 우리는 신경망에 환율 (또는 환율 기준 지표) 예측을 수행하도록 강의 한 다음이 예측을 거래에 사용했습니다. 그런 다음, 프로그램의 신경망 부분을 벗어나서, 우리는 어떤 신경 네트워크가 최선인지 결정했습니다.
유전자 알고리즘은이 문제를 직접 처리 할 수 있으며 "최상의 거래 신호 찾기"라는 문제를 해결할 수 있습니다.
이 기사에서는 그러한 프로그램을 작성하기 위해 Cortex 신경망 소프트웨어를 사용할 것입니다.
유전 알고리즘 사용.
유전자 알고리즘은 매우 잘 개발되어 매우 다양합니다. 이 기사는 Cortex Neural Networks 소프트웨어가 수행 할 수있는 것에 관한 내용이므로 Wikipedia를 사용하는 것이 좋습니다.
Cortex Neural Networks 소프트웨어를 사용하면 표시기의 값을 입력 받아 몇 가지 출력, 즉 거래 신호 (구매, 판매, 보류)를 생성하고 위치에 대한 손실 / 이익 수준을 정지시키는 신경망을 만들 수 있습니다 열릴.
물론 우리가이 신경망의 가중치를 무작위로 분류하면 거래 결과는 끔찍합니다. 그러나 그런 NN을 12 개 만들었다 고 가정 해 봅시다. 그런 다음 각 팀의 실적을 테스트하고 최고의 팀을 선정 할 수 있습니다.
이것이 NN의 "1 세대"였습니다. 2 세대를 계속하려면 수상자가 "창작"할 수 있도록해야하지만 동일한 사본을 얻지 않으려면 자손의 가중치에 임의의 노이즈를 추가하십시오.
2 세대에서는 1 세대 우승자가 있으며 불완전한 사본입니다. 다시 테스트 해 봅시다. 우리는 또 다른 승자를 얻게 될 것인데, 그것은 세대에서 다른 신경 네트워크보다 더 낫습니다.
등등. 우리는 단순히 승자가 번식하고 실재 진화와 마찬가지로 패자를 없애기 때문에 거래 시스템 (유전 알고리즘)이 어떤 것인지에 대한 사전 지식 없이도 최상의 거래 신경망을 얻을 수 있습니다.
신경망 유전자 알고리즘 : 예 0.
이것은 최초의 유전자 알고리즘 예제이고, 아주 간단한 알고리즘입니다. 우리는 예제를 통해 사용할 모든 트릭을 배우기 위해 단계별로 살펴볼 것입니다.
코드에는 인라인 코멘트가 있으므로 중요한 순간에만 집중하겠습니다.
첫째, 우리는 신경망을 만들었습니다. 그것은 무작위 무게를 사용하고 있으며, 아직 가르쳐지지 않았습니다.
그런 다음 주기적으로 MUTATION_NN fumction을 사용하여 14 개의 복사본을 만듭니다. 이 함수는 소스 뉴럴 네트워크의 복사본을 만들어 0부터 (이 경우) 0.1의 무작위 값을 모든 가중치에 더합니다.
핸들은 15 개의 NN을 배열로 유지합니다. handle은 정수형이므로 처리 할 수 있습니다.
우리가 15 개의 NN을 사용하는 이유는 거래와는 아무런 관련이 없습니다. Cortex Neural Networks 소프트웨어는 최대 15 개의 라인을 동시에 차트에 표시 할 수 있습니다.
우리는 테스트에 대해 다른 접근법을 사용할 수 있습니다. 첫째, 학습 집합을 한 번에 사용할 수 있습니다. 두 번째로, 우리는 말하자면, 12000 명 (100000 명 중)의 여덟 명을 테스트 할 수 있으며 처음부터 끝까지 학습 세트를 진행할 수 있습니다. 그것은 learnigs를 다른 것으로 만들 것입니다, 우리가 신경 네트워크의 모든 특정 부분에 수익성이 있는지, 전체 집합에 대해서만 찾을 것입니다. 두 번째 방법은 데이터가 처음부터 끝까지 변하면 문제를 일으킬 수 있습니다. 그러면 네트워크가 진화하여 데이터 세트의 끝에서 거래 할 수있는 능력을 얻게되고 처음부터 거래 할 능력을 잃게됩니다.
이 문제를 해결하기 위해 데이터에서 12000 개의 레코드 조각을 무작위로 추출하여 신경망에 공급합니다.
아래에서는 각 네트워크에 대해 하나씩 하위 가중치를 추가합니다. 사실 돌연변이 tange에 대한 0.1이 유일한 선택은 아니며, 이 매개 변수조차 유전 알고리즘을 사용하여 최적화 할 수 있습니다.
새로 생성 된 NN은 15 개의 기존 NN 뒤에 추가됩니다. 이렇게하면 배열에 30 개의 NN이 있고 15 개의 기존 노드와 15 개의 NN이 있습니다. 그런 다음 두 번째 세대의 패자를 죽이기 위해 테스트의 다음 사이클을 수행 할 것입니다.
테스트를 수행하기 위해 데이터에 신경망을 적용하고 출력을 생성 한 다음이 출력을 사용하여 거래를 시뮬레이션하는 테스트 함수를 호출합니다. 거래 결과는 어떤 NN이 최선인지를 판단하는 데 사용됩니다.
nStart에서 nStart + nLearn까지 nLearn 레코드의 간격을 사용합니다. 여기서 nStart는 학습 집합 내의 임의의 지점입니다.
아래의 코드는 트릭입니다. 우리가 사용하는 이유는 유전 알고리즘이 유전 알고리즘을 만들 수 있다는 사실을 설명하는 것입니다. 그러나 그것은 반드시 최선의 알고리즘 일 필요는 없으며 또한 학습에 대한 제한을 암시한다면 우리가 결과를 향상시킬 수 있다고 제안 할 것입니다 방법.
가능한 한, 우리의 거래 시스템은 긴 거래에서 아주 잘 작동하고, 짧은 거래에서는 매우 가난합니다. 말하자면, 긴 거래가 아주 좋은 경우, 이 유전 알고리즘은 짧은 거래에서 큰 손실을 입더라도 승리 할 수 있습니다.
이를 방지하기 위해 우리는 홀수의 긴 거래에 더 많은 가중치를 할당하고 짝수주기의 짧은 거래에 할당합니다. 이것은 단지 예일 뿐이며 어떤 것을 개선 할 것이라는 보장은 없습니다. 아래에서 수정에 대한 논의에서 더 자세히 설명합니다. 기술적으로, 당신은 그것을 할 필요가 없거나 그것을 다르게 할 수 있습니다.
정렬 된 배열에 이익을 추가하십시오. 그것은 삽입 위치를 반환하고, 그런 다음이 위치를 사용하여 신경망 핸들을 추가하고 정렬되지 않은 배열에 이익을 학습하고 테스트합니다. 이제 우리는 이익과 동일한 배열 인덱스에서 현재 신경 네트워크에 대한 데이터를 얻었습니다.
아이디어는 수익성별로 정렬 된 NN 배열에 도달하는 것입니다. 어레이는 이익에 따라 정렬되기 때문에 수익이 적은 네트워크의 1/2을 제거하려면 NN 0 ~ 14 만 제거하면됩니다.
거래 결정은 Neural Network 신호의 가치를 기반으로하며, 이 관점에서 프로그램은 이전 기사의 예와 동일합니다.
FOREX 무역 전략 : 예 0을 논의하십시오.
먼저 차트를 살펴 보겠습니다. 첫 번째 반복 동안 수익에 대한 첫 번째 차트는 전혀 좋지 않습니다. 신경망이 손실됩니다 (이미지 폴더에서 첫 번째 반복 후 이미지 evolution_00_gen_0.png가 복사 됨).
사이클 15에서 이익을 얻는 이미지가 더 좋으며 때로는 유전 알고리즘이 매우 빠르게 배울 수 있습니다.
그러나 채도가 수익 곡선에 표시됩니다.
커브 번호 3은 항상 같은 신경망을위한 것이 아니라, 항상 태어나고 종료된다는 점을 명심하면서 개인 이익이 어떻게 변하는지를 보는 것이 흥미 롭습니다.
또한, 외환 거래 시스템이 부족한 경우 짧은 거래에서 실적이 저조하며, 그 기간 동안 유로화에 비해 달러가 떨어지고 있다는 사실과 관련이있을 수도 있고 아닐 수도있는 long에서 훨씬 잘 수행됩니다. 또한 지표의 매개 변수와 관련이있을 수 있습니다 (아마도 반바지에 다른 기간이 필요합니다). 지표의 선택이 필요할 수 있습니다.
다음은 92 사이클과 248 사이클 후의 역사입니다.
놀랍게도 유전 알고리즘은 완전히 실패했습니다. 왜, 어떻게 상황을 돕는 지 알아 내려고합시다.
우선, 각 세대가 이전 세대보다 낫지 않다고 생각하지 않습니까? 대답은 아니오입니다. 적어도 우리가 사용한 모델은 아닙니다. 한 번에 전체 학습을 설정하고 NN을 가르치기 위해 반복적으로 사용하면 그렇습니다. 각 세대마다 향상 될 것입니다. 그러나 대신 우리는 무작위적인 조각 (12000 개의 레코드)을 가져 와서 사용했습니다.
두 가지 질문 : 시스템이 무작위로 설정된 학습 집합에서 실패한 이유는 무엇입니까? 왜 전체 학습 집합을 사용하지 않았습니까? 잘. 두 번째 질문에 대답하기 위해, 나는했다. NN은 학습 세트에서 크게 성과를 보였습니다. 테스트 세트에서 실패했습니다. FFPB 학습을 사용할 때와 동일한 이유로 실패합니다. 다른 말로 표현하자면, 우리의 NN은 과도하게 특화되어 왔고, 익숙하지 않은 환경에서 살아남을 수있는 방법을 배웠습니다. 이것은 자연에서 많은 일이 발생합니다.
대신 우리가 취한 접근법은 NN이 데이터 집합의 임의의 조각에 대해 좋은 수행을하도록함으로써 보완하기위한 것이므로 잘 알려지지 않은 테스트 집합에서 수행 할 수 있기를 바랍니다. 대신 그들은 테스트와 학습에 실패했습니다.
사막에 사는 동물을 상상해보십시오. 태양이 많고 눈이 전혀 없습니다. 이것은 우리의 NN 데이터가 환경의 역할을하기 때문에 리징 시장을위한 메타 포어입니다. 동물들은 사막에서 사는 법을 배웠습니다.
추운 기후에 사는 동물을 상상해보십시오. 눈과 태양이 전혀 없습니다. 글쎄, 그들은 조정했다.
그러나 실험에서 우리는 NN을 사막, 눈, 물, 나무에 무작위로 배치했습니다. 데이터의 다른 조각 (무작위로 상승, 떨어지는, 평평하게.)으로 그들을 제시함으로써. 동물들이 죽었다.
또는 달리 말하자면, 우리는 상승 시장을 겨냥한 무작위 데이터 세트 1을위한 최상의 신경망을 선택했습니다. 그런 다음 우승자와 자녀에게 낙찰 시장 데이터를 제공했습니다. NN은 제대로 수행되지 못했지만, 우리는 가난한 사람들, 아마도 돌연변이 어린이 중 한 명 이었지만 상승하는 시장에서 거래 할 수있는 능력을 상실했지만 낙상에 대처할 능력이있었습니다.
그런 다음 테이블을 다시 돌렸고 다시 최고의 연기자를 얻었습니다. 우리는 NN에게 보편적 인 기회를주지 않았습니다.
유전자 알고리즘은 오래된 정보에 대한 성능을 잃지 않고 새로운 정보를 학습 할 수있는 기술이 있습니다 (결국 동물은 여름과 겨울에 살 수 있습니다. 그래서 진화는 반복되는 변화를 처리 할 수 있습니다). 우리는 나중에이 기술에 대해 논의 할 수 있습니다. 이 기사에서는 성공적인 외환 자동 거래 시스템을 구축하는 것보다 Cortex 신경망 소프트웨어를 사용하는 방법에 대해 자세히 설명합니다.
신경망 유전자 알고리즘 : 예 1.
이제는 교정에 대해 말할 때입니다. 이전 단계에서 생성 한 간단한 유전자 알고리즘에는 두 가지 주요 결함이 있습니다. 첫째, 이익으로 거래하지 못했습니다. 그것은 괜찮습니다, 우리는 부분적으로 훈련 된 시스템을 사용할 수 있습니다 (처음에는 수익이있었습니다). 두 번째 결함은 더 심각합니다. 우리는이 시스템이하는 일에 대해서는 통제 할 수 없습니다. 예를 들어 수익성이 있다는 것을 배울 수 있지만 엄청난 손실을 감수해야합니다.
실생활에서 진화가 하나 이상의 매개 변수를 동시에 최적화 할 수 있다는 것은 잘 알려진 사실입니다. 예를 들어 우리는 빨리 달릴 수 있고 추위에 잘 견디는 동물을 얻을 수 있습니다. 왜 우리의 외환 자동 거래 시스템에서 같은 일을하려고하지?
우리가 수정을 사용하는 것은 추가 징계의 집합 일뿐입니다. 말하자면, 우리 시스템은 drawdown 0.5로 거래하고, 0-0.3 간격으로 확인하고 싶습니다. 시스템에 실수를했다고 "알리기"위해 우리는 DD의 크기에 비례하여 그 이익을 줄입니다 (어떤 유전자 알고리즘을 결정할 지 결정했습니다). 그런 다음 진화 알고리즘이 나머지를 처리합니다.
우리가 고려해야 할 몇 가지 요소가 더 있습니다. 구매 및 판매 운영 횟수를 동일하게 유지하거나 더 많은 수익성있는 운영을 원한다면 실패로 이어질 수 있습니다. 선형 등등.
evolution_01.tsc에서 우리는 간단한 수정 세트를 구현합니다. 우선, 초기 보정 값으로 큰 숫자를 사용합니다. 우리가 적용하고자하는 "처벌"에 따라 작은 값 (일반적으로 0에서 1 사이의 값)을 곱합니다. 그런 다음 우리는이 이익에 이익을 곱합니다. 결과적으로, 유전자 알고리즘이 우리의 다른 기준과 얼마나 일치하는지 반영하기 위해 이익이 수정됩니다. 그런 다음 결과를 사용하여 승자 신경망을 찾습니다.
FOREX 무역 전략 : 토론 예 1.
예제 1은 예제 0보다 훨씬 잘 작동합니다. 처음 100 사이클 동안 많은 것을 배웠고 수익 차트는 안심했습니다. 그러나 예제 0에서와 같이 긴 거래는 훨씬 수익성이 높습니다. 이는 우리의 접근 방식에 문제가 있음을 의미합니다. 그럼에도 불구하고이 시스템은 상반되는 초기 조건들 사이의 균형을 발견했다.
학습 집합과보다 중요한 테스트 집합에서 긍정적 인 동력이 있습니다.
추후 학습에 관해서는 사이클 278에서 우리 시스템이 과도 해졌다는 것을 알 수 있습니다. 즉, 우리는 여전히 학습 집합에 진전이 있음을 의미합니다.
그러나 테스트 세트는 약점을 보여줍니다.
이것은 NN의 공통적 인 문제입니다 : 우리가 학습 집합에 대해 가르치면, 학습 집합에 대해 학습 할 때 배우고 때로는 학습 집합에서 성능을 잃어 버릴 때까지 너무 잘 학습합니다.
이 문제를 해결하기 위해 "전통적인"솔루션이 사용됩니다. 신경망은 계속해서 새로운 최고치에 도달 할 때마다 이전 세트를 덮어 쓰고 신경 쓰는 것이 좋습니다. 이것은 FFBP 교육에서 사용한 것과 같은 접근법입니다. 이번에는 코드를 추가하고 테스트 세트에서 최상의 신경망을 찾고 SAVE_NN을 호출하거나 뉴럴 네트워크의 가중치를 파일). 이렇게하면 훈련을 중단 할 때 최고의 테스트 수행자가 저장되고 기다리고 있습니다.
또한 최대 값이 아님을 유의하십시오. 이익은 있지만 최적의 성과이므로 테스트 세트에서 최고의 연기자를 찾을 때 수정을 고려하십시오.
FOREX 기술 분석을위한 유전 알고리즘 : 지금 어디 있습니까?
승자 신경망을 얻은 후에는 이전 기사에서 설명한 단계를 수행하여 해당 신경망의 가중치를 내 보낸 다음 Meta Trader, Trade Station 등과 같은 실시간 거래 플랫폼에서 사용할 수 있습니다.
또는 신경 회로망을 최적화하는 다른 방법에 집중할 수 있습니다. FFBP 알고리즘과 달리 학습 및 테스트 세트를 사용하여 avay를 얻고 순차 학습을 이동할 수 있습니다.
알고리즘.
cBots & amp; 설치 방법 지표.
표시기 또는 cBot을 다운로드하십시오. 다운로드 한 파일을 두 번 클릭하십시오. 이렇게하면 cAlgo에 필요한 모든 파일이 설치됩니다. 왼쪽의 메뉴에서 사용할 표시기 / cbot을 찾으십시오. 실행할 인디케이터 / cBot의 인스턴스를 추가하십시오.
표시기 다운로드 다운로드 한 파일을 두 번 클릭하십시오. 그러면 cTrader에 필요한 모든 파일이 설치됩니다. 차트의 상단 중앙에있는 기능 (f) 메뉴에서 사용자 정의에서 표시기를 선택하십시오.
Spotware Systems Ltd. 에서 제공하는 서비스는 미국 시민과 거주자에게는 제공되지 않습니다. 우리 웹 사이트에있는 정보는 미국 시민이나 주민들을 구하는 것이 아닙니다.
Comments
Post a Comment