거래 시스템 유전 알고리즘
양적 거래.
양적 투자 및 거래 아이디어, 연구 및 분석.
2015 년 10 월 16 일 금요일
오픈 소스 유전자 알고리즘 소프트웨어 (Guest post)
최근 Genotick은 거래 시스템 그룹을 만들고 관리 할 수있는 오픈 소스 소프트웨어입니다. Genotick의 핵심은 한마디로 중요한 요소입니다. 소수의 어셈블러 지침만으로 소프트웨어를 만들 수 있다면 비슷한 간단한 지침을 사용하여 거래 시스템을 생성 할 수 있어야합니다. 이렇게 간단하고 의미가없는 명령어는 함께 사용될 때 매우 강력 해집니다. 올바른 순서의 올바른 지침은 추세 추적, 평균 복귀 또는 기본 데이터를 기반으로하는 모든 유형의 기계 시스템을 만들 수 있습니다.
거래 시스템 유전 알고리즘
거래 시스템 연구실 내 거래 시스템 구축
트레이딩 시스템 랩 (Trading System Lab)은 AIMGP (Automatic Induction of Machine Programming with Genetic Programming)라는 매우 진보 된 컴퓨터 프로그램을 사용하여 몇 분 안에 모든 시장에서 트레이딩 시스템을 자동으로 생성합니다. 트레이딩 시스템 랩 내 트레이딩 시스템 생성은 3 단계로 간단하게 수행됩니다. 첫째, 작업하고자하는 시장에서 필요한 데이터를 자동으로 추출하고 사전 처리하는 간단한 전처리 기가 실행됩니다. TSL은 CSI, MetaStock, AIQ, TradeStation, 무료 인터넷 데이터, ASCII, TXT, CSV, CompuTrac, DowJones, FutureSource, TeleChart2000v3, TechTools, XML, Binary 및 Internet Streaming 데이터를 허용합니다. 둘째, 거래 시스템 생성기 (GP)가 몇 분 이상 실행되어 새로운 거래 시스템을 발전시킵니다. 귀하는 TSL 내에서 귀하 자신의 데이터, 패턴, 지표, 인터 마켓 관계 또는 기본 데이터를 사용할 수 있습니다. 셋째, 진화 된 Trading System은 TradeStation ™ 또는 다른 많은 거래 플랫폼에서 새로운 Trading System 신호를 생성하도록 형식이 지정됩니다. TSL은 자동으로 Easy Language, Java, Assembler, C 코드, C # 코드 및 WealthLab Script Language를 작성합니다. 그러면 거래 시스템을 수동으로 거래하거나 브로커를 통해 거래하거나 자동으로 거래 할 수 있습니다. 직접 거래 시스템을 만들 수도 있고 우리가 대신 할 수도 있습니다. 그런 다음 귀하 또는 귀하의 중개인이 수동 또는 자동으로 시스템을 교환 할 수 있습니다.
트레이딩 시스템 랩의 유전 프로그램에는 커브 피팅 가능성을 줄이거 나 향후 수행을 지속하지 않는 트레이딩 시스템을 생산하는 몇 가지 기능이 있습니다. 첫째, 진화 된 트레이딩 시스템은 최소한의 설명 길이라는 개념에서 파생 된 Parsimony Pressure를 통해 가능한 한 가장 작은 크기로 잘라냅니다. 따라서 결과적인 거래 시스템은 가능한 한 간단하며 거래 시스템이 단순할수록 미래에 더 잘 수행 될 것이라고 일반적으로 믿어집니다. 둘째, 진화 과정에 무작위성이 도입되어 국부적으로는 있지만 전 세계적으로 최적이 아닌 해결책을 찾는 가능성을 줄입니다. 무작위성은 진화 된 거래 시스템에서 사용 된 유전 물질의 조합뿐만 아니라 파시모니 압력, 돌연변이, 교차 및 기타 상위 수준의 GP 매개 변수에 도입됩니다. 샘플 밖 테스트는 In Sample 및 Out of Sample 거래 시스템 테스트에서 제공되는 통계 정보를 사용하여 교육이 진행되는 동안 수행됩니다. 실행 로그는 훈련, 유효성 검사 및 시료 없음 데이터에 대해 사용자에게 제공됩니다. 잘 수행 된 샘플 밖의 성과는 트레이딩 시스템이 강력한 특성을 가지고 진화하고 있음을 나타냅니다. In Sample 테스트와 비교하여 자동 Out of Sample 테스트가 크게 저하되면 강력한 Trading System을 만들지 못하거나 Terminal 또는 Input Set를 변경해야 할 수도 있습니다. 마지막으로, 터미널 세트는 특정 시장 바이어스 또는 정서를 향한 초기 유전 물질의 선택을 지나치게 편향시키지 않도록 신중하게 선택됩니다.
TSL은 사전 정의 된 거래 시스템으로 실행을 시작하지 않습니다. 사실, 자동 입력 검색 및 지정을위한 입력 설정 및 시장 진입 모드 또는 모드의 선택 만 초기에 만들어집니다. 낙관적 인 상황으로 생각할 수있는 패턴 또는 지표 행동은 GP 내에서 사용, 폐기 또는 반전 될 수 있습니다. 패턴이나 표시기는 특정 시장 이동 편향에 사전 할당되지 않습니다. 이것은 수동으로 생성 된 트레이딩 시스템 개발에서의 급진적 인 출발입니다.
트레이딩 시스템은 특정 시장을 매매 할시기를 상인에게 알려주는 논리적 인 지침 세트입니다. 이 지침에서는 상인이 개입 할 필요가 거의 없습니다. 거래 시스템은 컴퓨터 화면에서 거래 지시를 관찰하여 수동으로 거래하거나 컴퓨터가 자동으로 시장에 거래하도록 허용함으로써 거래 될 수 있습니다. 두 가지 방법 모두 오늘날 널리 보급되어 있습니다. 자신이 "임의"라고 생각하는 사람들보다 자신을 "체계적 또는 기계적"거래자로 생각하는 전문적인 돈 관리자가 있으며 체계적인 돈 관리자의 성과는 일반적으로 임의의 돈 관리자의 실적보다 우수합니다. 연구에 따르면 거래 계좌는 일반적으로 고객이 거래 시스템을 사용하지 않는 경우 더 자주 돈을 잃는 것으로 나타났습니다. 지난 10 년간 무역 시스템의 급격한 증가는 상품 중개 회사에서 특히 두드러졌지만 주식 및 채권 시장 중개 회사는 Trading Systems의 사용을 통해 그 혜택을 점차 인식하고 있으며 일부는 트레이딩 시스템을 자신들에게 제공하기 시작했습니다 소매 고객.
대부분의 뮤추얼 펀드 매니저들은 이미 정교한 컴퓨터 알고리즘을 사용하여 어떤 "뜨거운 주식 선택"또는 "섹터 순환"이 유리한지에 대한 결정을 안내합니다. 컴퓨터와 알고리즘은 투자에서 주류가되었으며 우리는 더 젊고 컴퓨터에 익숙한 투자자들이 위험을 줄이고 수익을 높이기 위해 트레이딩 시스템에서 돈의 일부를 계속 관리 할 수있게되면서 이러한 경향이 계속 될 것으로 기대합니다. 지난 몇 년 동안 주식 시장이 녹 으면서 주식 및 뮤추얼 펀드를 매입하는 투자자들이 겪었던 엄청난 손실은 주식 시장 투자에 대한보다 규율되고 논리적 인 접근으로 나아가는 움직임을 더욱 가속화하고 있습니다. 평균 투자자는 현재 자신의 삶의 여러 측면과 사랑하는 사람들의 삶이 교통 수단으로 사용되는 자동차 및 항공기와 같은 컴퓨터, 건강 관리를 위해 사용하는 의료 진단 장비, 우리가 온도 제어를 위해 사용하는 난방 및 냉동 컨트롤러, 우리가 인터넷 기반 정보를 위해 사용하는 네트워크, 심지어 우리가 엔터테인먼트 용으로 즐기는 게임까지도 포함합니다. 그렇다면 왜 일부 소매 투자자들은 "무엇"의 주식이나 뮤추얼 펀드를 사거나 팔고 돈을 벌어들이 겠다는 의사 결정에서 "엉덩이에서 쏘을"수 있다고 믿는가? 마지막으로 평범한 투자자는 파렴치한 중개인, 회계사, 기업 법무사 및 재무 고문이 전달하는 조언과 정보를 경계합니다.
지난 20 년 동안 수학자들과 소프트웨어 개발자들은 주식 시장과 상품 시장에서 시장의 방향을 가리킬 수있는 정보를 찾는 지표와 패턴을 수색했습니다. 이 정보는 거래 시스템의 성과를 향상시키는 데 사용될 수 있습니다. 일반적으로이 검색 프로세스는 시행 착오와보다 정교한 "데이터 마이닝"을 결합하여 수행됩니다. 일반적으로 개발자는 잠재적 인 거래 시스템을 생성하기 위해 수 주 또는 수개월의 번호를 처리해야합니다. 많은 경우이 트레이딩 시스템은 "커브 피팅 (curve fitting)"으로 인해 미래에 실제로 사용될 때 잘 수행되지 않습니다. 수년에 걸쳐 그들의 거래 시스템이 생방송으로 실패함에 따라 많은 거래 시스템 (및 거래 시스템 개발 회사)이 생겨났다. 윤리적 개발자 나 자금 관리자가 어떠한 트레이딩 시스템이나 주식, 채권 또는 뮤추얼 펀드에 대해서도 계속해서 무조건적인 보증을 제공하지는 않지만 앞으로도 계속 수행 할 수있는 트레이딩 시스템 개발은 어렵지 만 불가능한 것은 아닙니다. 미래의 영원한 이익을 창출하십시오.
트레이딩 시스템 개발자가 과거에 생산하기까지 몇 주 또는 몇 달이 걸렸던 것이 이제는 트레이딩 시스템 랩을 사용하여 수분 만에 생산 될 수 있습니다. Trading System Lab은 Trading Systems 및 Trading Indicators의 자동 생성을위한 플랫폼입니다. TSL은 고속 Genetic Programming Engine을 사용하고 56 개의 입력을 기반으로 초당 1,600 만 개 이상의 시스템 바를 처리하는 거래 시스템을 생산합니다. 단지 약간의 입력 만이 실제로 사용되거나 필요할 것이므로 일반적으로 단순한 진화 된 전략 구조가됩니다. 컨버전스에 필요한 시스템 수는 약 40,000 ~ 200,000이며, 모든 데이터 세트의 수렴 시간을 근사 할 수 있습니다. 이미 구조화 된 거래 시스템에서 사용할 최적의 매개 변수를 찾는 기존 지표의 무차별 최적화 만 실행하는 것이 아닙니다. Trading System Generator는 미래 시장의 움직임에 대해 아무런 가정을하지 않는 제로 포인트 원점에서 시작하여 시장에 존재하는 정보를 결합하고 새로운 필터, 기능, 조건 및 관계를 공식화하는 매우 빠른 속도로 Trading System을 "발전"시킵니다 그것이 "유전자 조작 된"거래 시스템으로 진행됨에 따라. 그 결과, 거의 모든 시장에서 20-30 년의 일일 시장 데이터를 바탕으로 몇 분 내에 우수한 거래 시스템이 생성 될 수 있습니다.
지난 몇 년 동안 덜 강력한 유전 "알고리즘"을 사용하는 거래 시스템 최적화에 대한 몇 가지 접근 방식이있었습니다. 유전자 프로그램 (Genetic Programs, GP)은 몇 가지 이유로 유전자 알고리즘 (GA)보다 우수합니다. 첫째, GP는 솔루션에 지수 적 속도로 수렴합니다 (매우 빠르고 빨라짐). 반면에 유전 알고리즘은 선형 속도로 수렴합니다 (훨씬 느리고 빠르게 진행되지 않음). 둘째, GP는 실제로 유전 물질 (지표, 패턴, 시장 간 자료)을 독특한 방식으로 결합한 거래 시스템 기계 코드를 생성합니다. 이러한 고유 한 조합은 직관적으로 명확하지 않을 수 있으며 시스템 개발자가 초기 정의를 요구하지 않습니다. 생성 된 독특한 수학적 관계가 아직 개발되지 않았거나 발견되지 않은 새로운 지표 또는 기술 분석의 변형이 될 수 있습니다. 반면에 GA는 매개 변수 범위에서 진행될 때 최적 솔루션을 찾습니다. 그들은 새로운 수학적 관계를 발견하지 못하고 자신의 트레이딩 시스템 코드를 작성하지 않습니다. GP의 다양한 길이의 거래 시스템 코드는 가변 길이 게놈을 사용하여 비 동질 교차 (non-homologous crossover)를 통해 거래 시스템의 길이를 수정하고 거래 시스템의 효율성에 기여하지 않는 지표 또는 패턴을 완전히 폐기합니다. GA는 고정 크기 명령 블록만을 사용하며 동종 크로스 오버 만 사용하고 가변 길이 트레이딩 시스템 코드를 생성하지 않으며 비효율적 인 지표 또는 패턴을 GP처럼 쉽게 폐기하지 않습니다. 마지막으로 유전학 프로그램은 기계 학습 분야에서 최근 발전된 기술이지만 유전 알고리즘은 30 년 전에 발견되었습니다. 유전 프로그램은 유전 알고리즘의 주요 기능을 모두 포함합니다. 크로스 오버, 복제, 돌연변이 및 피트니스를 포함하지만, GP에는 훨씬 빠르고 견고한 기능이 포함되어있어 GP를 거래 시스템 생산을위한 최상의 선택으로 만듭니다. TSL의 Trading System Generator에 채용 된 GP는 현재 사용 가능한 가장 빠른 GP이며 세계의 다른 금융 시장 소프트웨어에서는 사용할 수 없습니다.
TSL 내에서 사용되는 유전 프로그래밍 알고리즘, 트레이딩 시뮬레이터 및 헬스 엔진은 제작하는데 8 년 이상을 소비했습니다.
트레이딩 시스템 랩은 엔지니어, 과학자, 프로그래머 및 거래자 팀이 수년간 열심히 노력한 결과물로, 오늘날 시장 거래를위한 가장 진보 된 기술이라고 할 수 있습니다.
거래 시스템 유전 알고리즘
시장에서 여전히 우위를 찾고 있다면 자동 거래 시스템이 최상의 방법입니다. 자세히 알아보기.
Copyright (c) 2010 Adaptrade Software. 판권 소유.
HYPOTHETICAL 또는 SIMULATED PERFORMANCE 결과에는 고유 한 내재 된 제한이 있습니다. 실제 성과 기록과 달리, 시뮬레이션 된 결과는 실제 거래를 나타내지 않습니다. 또한 거래가 실제로 실행되지 않았기 때문에 결과가 유동성 부족과 같은 특정 시장 요인에 영향을 미치거나 과다 또는 과소 보상을받을 수 있습니다. 시뮬레이션 된 거래 프로그램은 일반적으로 통보의 이익을 고려하여 설계되었다는 사실을 인정합니다. 어떠한 계정도 이익이나 손실을 달성 할 가능성이있는 것으로 나타나지 않습니다.
EasyLanguage와 TradeStation은 TradeStation Technologies, Inc. 의 등록 상표입니다.
지난 10 년간의 소매 거래에서 가장 큰 트렌드 중 하나는 자동 거래의 인기 증가입니다. 자동화 된 주문 실행이라고도하는 이러한 유형의 거래에서 거래 시스템에 의해 생성 된 매매 신호는 거래자의 중개 계좌에 연결된 플랫폼에 의해 자동으로 실행됩니다. 이를 통해 핸즈프리 거래가 가능해 지므로 실행 속도가 빠르고 오류가 적으며 빈도가 높은 전략으로 짧은 시간대를 거래 할 수 있습니다.
자동 코드 생성을 사용하여 거래 시스템을 구축하기위한 기본 알고리즘은 아래 그림 1과 같습니다. 거래 전략의 여러 요소를 결합하는 방법부터 시작합니다. 이러한 요소에는 이동 평균, stochastics 등과 같은 다양한 기술 지표가 포함될 수 있습니다. 다양한 유형의 출입 명령. 시장 진입 및 탈출을위한 논리적 조건
그림 1. 자동화 된 전략 수립을위한 기본 알고리즘.
서로 다른 요소들이 일관된 전략으로 결합 된 후에는 시장 또는 관심 대상 시장에서 평가할 수 있습니다. 이를 위해서는 각 시장에 대한 시장 데이터 (가격, 수량, 미결제 등)가 필요합니다. 일반적으로 각 전략의 순위를 매기거나 점수를 매기는 데 도움이되는 일련의 빌드 목표를 가지고 있습니다. 구축 목표의 예로는 순익, 인출, 승자의 비율, 수익 요인 등과 같은 다양한 성과 지표가 있습니다. 최소 2.0 이상의 수익 요소와 같은 최소 요구 사항 또는 순이익 극대화와 같은 최대 목표로 명시 할 수 있습니다.
자동 코드 생성의 이론적 근거.
위에서 설명한 것처럼 자동 코드 생성을 사용하여 거래 시스템을 구축하는 것이 본질적으로 최적화 문제입니다. 빌드 목표를 최대화하는 전략 요소의 조합이 최종 전략으로 간주됩니다. 일부 거래자는 시장 행동이나 행동에 대한 가설에 기초하여 거래 시스템을 구축해야한다는 것을 반대합니다. 시장이 어떻게 작동하는지에 대한 좋은 가설이 있다면 그 가설을 바탕으로 전략을 세우고 테스트 할 수 있습니다. 그것이 작동하면 가설을지지하고 전략 거래를 정당화합니다.
TradeStation 용 패턴 시스템 코드 생성기.
이 섹션에서는 TradeStation 용 트레이딩 시스템이 TradeStation 용 다른 패턴 기반 트레이딩 시스템을 자동으로 생성하는 자동 코드 생성에 대한 임시 접근 방식에 대해 설명합니다. AutoSystemGen 시스템은 지정된 성능 요구 사항 집합을 충족시키는 관련 매개 변수 값과 함께 일련의 거래 규칙을 검색합니다.
거의 모든 유형의 표시기 또는 거래 논리가 여기에 설명 된 거래 시스템 생성기에 포함될 수 있지만 상당히 단순하게 유지하기 위해 생성 된 시스템의 규칙은 가격 패턴으로 제한됩니다. 생성 된 거래 시스템의 각 입력 규칙은 다음 형식을 갖습니다.
이 과정의 핵심은 후보 거래 시스템을 찾는 것입니다. 시스템은 위에 표시된 양식의 규칙 1 개에서 10 개 사이로 구성 될 수 있습니다. 모든 규칙이 사실이라면 거래가 시장에 시작되고 거래는 나중에 일정 수의 바에서 종료됩니다. 이것이 최대 10 개의 규칙이있는 전통적인 TradeStation 시스템으로 코딩 된 경우 52 개의 입력이 있습니다. 이것은 성가신 전략을 만들 것입니다.
AutoSystemGen 시스템 및 관련 기능 코드는 무료 다운로드 페이지의 Breakout Futures (breakoutfutures /)에서 사용할 수 있습니다.
예를 들어, 30 년 만기 국채 선물 시장 (TradeStation 8의 기호 US. P)을 고려하십시오. AutoSystemGen은 OptStep 입력이 1에서 10000까지 증가한 T-bond 가격의 지난 20 년 동안 최적화되었습니다. 이것은 시스템이 10,000 개의 서로 다른 거래 시스템을 평가했음을 의미합니다. 최적화는 긴 거래의 경우 한 번, 짧은 거래의 경우 한 번 두 번 실행되었습니다. 다음 성능 요구 사항이 사용되었습니다. 최소 30,000 달러의 순 이익, 7500 달러 이하의 최악의 경우 감소, 최소 200 회 이상의 거래, 최소 50 %의 수익률 및 최소 1.2의 수익률이 사용되었습니다. Vista를 실행하는 듀얼 코어 컴퓨터에서 각 최적화를 실행하는 데 약 10 분이 걸렸습니다 (최적화 당 10,000 시스템).
System 2332, US. P, 9/17/2007 12:23:00, Long Trades.
순이익 = 53562.50, 최대 DD = -7381.25, 거래 횟수 = 250, 승리 비율 = 56.80, Prof factor = 1.631.
변수 : EntNext (거짓);
EntNext = Open [2] & gt; = Low [16].
닫기 [14] ≤ 낮음 [6] 및.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 2이면.
시장에서 다음 바 판매;
System 5771, US. P, 9/17/2007 12:27:00, Long Trades.
순이익 = 42145.00, 최대 DD = -5733.75, 거래 횟수 = 207, 승리 비율 = 57.00, Prof factor = 1.631.
변수 : EntNext (거짓);
EntNext = 하이 [7] ≥ 로우 [19] 및.
닫기 [20] ≥ 닫기 [5] 및.
High [18]> Low [2] 및.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 2이면.
시장에서 다음 바 판매;
시스템 7622, US. P, 9/17/2007 12:29:00, Long Trades.
순이익 = 59348.75, 최대 DD = -7222.50, 거래 횟수 = 208, WINS = 60.58, Prof factor = 1.924.
변수 : EntNext (거짓);
EntNext = Low [2] ≤ High [9] 및.
열기 [11] & gt; = 열기 [18] 그리고.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 3이면.
시장에서 다음 바 판매;
System 7718, US. P, 9/17/2007 12:29:00, Long Trades.
순이익 = 35526.25, 최대 DD = -6936.25, 거래 횟수 = 292, 승리 비율 = 56.85, Prof factor = 1.418.
변수 : EntNext (거짓);
EntNext = Close [3] & gt; = High [19]와.
High [6] ≤ Open [10] 및.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 1이면.
시장에서 다음 바 판매;
System 6160, US. P, 9/17/2007 12:42:00, 짧은 거래.
순이익 = 31277.50, 최대 DD = -6846.25, 거래 횟수 = 369, 승리 비율 = 51.76, Prof factor = 1.297.
변수 : EntNext (거짓);
EntNext = 하이 [9] ≥ 로우 [6] 및.
닫기 [15] ≥ 하이 [8] 및.
High [7] ≤ Low [20] 및.
EntNext이면.
시장에서 짧은 다음 바 판매;
BarsSinceEntry = 1이면.
시장에서 다음 바를 충당하기 위해 구입하십시오.
각 시스템의 목록에는 시스템 번호 (OptStep 입력에 해당), 마켓 심볼, 현재 날짜 및 시스템이 long-only인지 또는 short-only인지가 포함됩니다. 다음 줄에는 각 시스템을 평가하는 데 도움이되는 몇 가지 요약 성능 통계가 포함되어 있습니다. 마지막으로 시스템 코드가 표시됩니다. TradeStation의 시스템을 평가하기 위해 두 개의 주석 행 () 사이의 코드를 복사하여 TradeStation의 전략에 붙여 넣은 다음 차트 창에서 실행할 수 있습니다.
출력 파일의 마지막 시스템은 짧은 시스템 (# 6160)입니다. TradeStation에서 전략으로 저장하고 동일한 T - 채권 차트에 적용하면 다음과 같은 형평 곡선이 생성됩니다.
그림 3. 시스템 AutoSystemGen에서 생성 한 거래 당 15 달러의 T - 채권에 대한 Short-only 시스템. 지난 20 년.
자동 코드 생성을위한 유전 프로그래밍.
이전 단원에서 설명한 임시 방편은 간단하지만 두 가지 제한이 있습니다. (1) 무작위로 생성 된 전략이 빌드 목표에 수렴하지 않음, (2) 패턴 시스템의 템플릿이 더 복잡한 전략으로 일반화하기 어렵다 . 이것은보다 정교한 접근법이 필요하다는 것을 의미합니다.
이 두 가지 문제를 모두 해결하는 자동 코드 생성 방법을 진화 알고리즘이라고하는 일련의 기술에 속하는 유전 프로그래밍 (GP)이라고합니다. 특히 진화 알고리즘과 GP는 생식과 진화의 생물학적 개념을 기반으로하는 인공 지능 연구원에 의해 개발되었습니다. GP 알고리즘은 무작위로 생성 된 구성원의 초기 모집단에서 거래 전략의 인구를 "발전"시킵니다. 인구의 구성원은 자신의 "적합성"에 따라 서로 경쟁합니다. 구성원은 신입 회원을 창출하기 위해 "부모"로 선택되며 약한 (덜 적합) 회원을 대신합니다.
기술 지표 및 전략 설계 지식에 대한 필요성을 줄입니다. GP 알고리즘은 개별 거래 규칙, 지표 및 기타 전략 요소를 선택합니다.
규칙 구축 프로세스는 비선형 거래 규칙을 포함하여 상당한 복잡성을 허용합니다.
GP 프로세스는 전통적인 전략 개발 프로세스에서 가장 노동 집약적이고 지루한 요소를 제거합니다. 즉, 새로운 거래 아이디어를 얻고, 프로그래밍하고, 코드를 검증하고, 전략을 테스트하고, 코드를 수정하고, 반복하는 것입니다. 이것은 모두 GP에서 자동으로 수행됩니다.
GP 프로세스는 편견이 없습니다. 대부분의 거래자들은 특정 지표 및 / 또는 거래 논리에 대해 또는 그에 대한 편향을 일으켰지 만, GP는 무엇이 작동하는지에 의해서만 안내됩니다.
적절한 거래 규칙 의미론을 통합함으로써 GP 프로세스는 논리적으로 정확한 거래 규칙과 오류없는 코드를 생성하도록 설계 될 수 있습니다.
GP 프로세스는 종종 고유하지만 명백하지 않은 결과를 생성합니다. 대부분의 경우 이러한 숨겨진 보석은 다른 방법으로 찾기가 거의 불가능합니다.
빌드 프로세스를 자동화함으로써 입력 가격 데이터 파일 및 기타 빌드 설정의 길이에 따라 실행 가능한 전략을 개발하는 데 필요한 시간을 수 주 또는 수개월에서 몇 분으로 단축 할 수 있습니다.
유전자 프로그래밍은 신호 및 이미지 처리, 프로세스 제어, 생물 정보학, 데이터 모델링, 프로그래밍 코드 생성, 컴퓨터 게임 및 경제 모델링 등 다양한 분야에서 성공적으로 사용되었습니다. 예를 들어 Poli et al. 2 재무에서 GP 사용에 대한 개요는 Chen이 제공합니다. 3 Colin 4는 거래 전략에 대한 규칙의 조합을 최적화하기 위해 GP를 사용하는 방법을 처음으로 설명했습니다.
코자. 유전 프로그래밍. MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon 및 N. F. McPhee. 유전자 프로그래밍 분야 가이드. lulu를 통해 배포되고 gp-field-guide. org. uk, 2008에서 무료로 사용할 수 있습니다 (J. R. Koza의 기고).
Shu-Heng Chen (편집자). 전산 금융에서 유전 알고리즘과 유전 프로그래밍. Kluwer Academic Publishers, Norwell, MA. 2002.
A. 콜린. 금융 모델링을위한 유전 알고리즘, Edge on Trading. 1994, pages 165-168. John Wiley & amp; Sons, Inc. 뉴욕.
Risto Karjalainen. S & P 500 선물에 대한 진화하는 기술적 거래 규칙, Advanced Trading Rules, 2002, Pages 345-366. Elsevier Science, Oxford, 영국.
진 이브 스 Potvin, Patrick Soriano, Maxime Vallee. 유전 프로그래밍으로 주식 시장에서 거래 규칙 생성. 컴퓨터 & amp; Operations Research, Volume 31, Issue 7, 2004 년 6 월, 페이지 1033-1047.
Massimiliano Kaucic. 진화 학습 방법과 기술 규칙을 이용한 투자. European Journal of Operational Research, Volume 207, Issue 3, 2010 년 12 월 16 일, 페이지 1717-1727.
유전자 프로그래밍을 이용한 빌드 알고리즘.
이전에 제시된 빌드 알고리즘 (그림 1 참조)을 확장하면 유전 알고리즘을 기반으로 한보다 자세한 알고리즘이 그림 4에 나와 있습니다. 회색 음영 상자는 관심있는 시장에 대한 가격 데이터, 이른바 빌드 세트의 지표 및 주문 유형, 그리고 해당 시장의 가격 옵션 데이터에 의해 선택된 옵션 및 성능 기준 (빌드 목표)을 포함하는 입력 데이터를 나타냅니다. 사용자.
그림 4. 유전자 프로그래밍으로 자동 코드 생성을위한 빌드 알고리즘.
GP 프로세스는 진입 조건 및 진입 및 퇴장 명령과 같은 두 가지 필수 전략 요소를 동시에 진화시키는 데 사용할 수 있습니다. 엔트리 조건은 일반적으로 아래 그림 5와 같이 트리 구조로 표시됩니다.
유전 프로그래밍을 사용하여 진화하는 진입 및 퇴출 명령의 핵심은 일반화 된 방식으로 다양한 유형의 주문을 나타내는 것입니다. 예를 들어, stop 및 limit entry 가격은 다음과 같이 나타낼 수 있습니다.
유전 프로그래밍은 상당한 다양성을 가진 거래 전략을 생성 할 수 있지만, 따라야 할 전략에 대한 일반화 된 구조로 시작하는 것이 필요합니다. 아래에서 의사 코드로 표시된 전략 구조는 위에서 언급 한 것과 같은 진입 조건 및 주문 유형을 기반으로 전략을 수립하기위한 프레임 워크를 제공합니다.
입력 : N1, N2, N3, ...
position이 일정하고 LongEntryCondition이 true 인 경우
긴 입력 주문 ...
필요한 경우 긴 종료 주문 초기화 ...
position가 편평하고 ShortEntryCondition이 true 인 경우
짧은 주문 주문 ...
필요한 경우 짧은 이탈 명령 초기화 ...
위치가 길다면
긴 종료 주문 1 ...
긴 종료 주문 2 ...
자세가 짧은 경우.
짧은 출구 주문 1 ...
짧은 이탈 명령 2 ...
[선택 종료일 종료]
전략은 입력 목록으로 시작합니다. 표시기 매개 변수, 가격 패턴 룩백 길이 및 ATR의 룩 백 길이와 같은 입력 및 종료 명령에 필요한 매개 변수에 대한 입력이 제공됩니다.
전략적 건물에서 자동 코드 생성을 위해 유전 프로그래밍을 사용하는 방법을 설명하기 위해, 프로그램 Adaptrade Builder는 소규모 인구와 한정된 수의 세대를 대상으로 주식 인덱스 선물 시장의 일일 막대에서 운영되었습니다. 프로세스를 안내하기 위해 선택된 성과 메트릭스는 순이익, 거래 수, 상관 계수, 통계적 유의성 및 수익률 / 하락률이었습니다. 거래 수 및 수익률 / 수익률에 대한 구체적인 목표가 설정되었습니다. 다른 선택된 측정 항목이 최대화되었습니다. 적합성 기능은 각 측정 항목에 대한 용어의 가중치 평균이었습니다.
그림 6. 표본 순이익이 1,000 달러 이상인 인구 집단의 비율.
유사하게, 인구의 OOS 순이익의 평균은 5 세대와 10 세대 후에 그림 7과 같이 증가했다. 이 결과는 OOS 순이익에 대한 것이다. 정의에 따르면, 샘플 밖의 데이터는 빌드에서 사용되지 않으므로 OOS 결과는 편향되지 않습니다. 그들은 뒤늦은 지혜에서 이익을 얻지 못한다. 이것은 GP 프로세스가 GP 알고리즘의 직접적인 효과 인 연속 세대에 걸친 샘플 내 결과를 향상시키는 경향이있을뿐만 아니라 OOS 결과도 전략이 발전함에 따라 향상되는 경향이 있음을 의미합니다. 이것은 고품질 빌드를 나타냅니다.
TradeStation의 EasyLanguage 전략 코드.
인구 회원 : 46.
만든 사람 : Adaptrade Builder 버전 1.1.0.0.
작성일 : 10/19/2010 2:19:52 PM.
TS 6 이상의 TradeStation 코드.
가격 파일 : C : \ TestData. txt.
변수 : EntCondL (거짓),
EntCondL = (가장 높은 (볼륨, NL1) & gt; = 가장 낮음 (볼륨, NL2)) 또는 (볼륨 & lt; 평균 (볼륨, NL3));
MarketPosition = 0이고 EntCondL이 시작되면.
XAverage (L, NBarEnL1) + EntFrL * ATREnL 정류장에서 다음 바 구매.
MarketPosition = 0이고 EntCondS가 시작되면.
Highest (H, NBarEnS1) - EntFrS * AbsValue (최저 (L, NBarEnS2) - 최저 (H, NBarEnS3))에서 다음 바로 가기 바 중지;
SStop = 전력 (10, 10);
MarketPosition & gt; 0으로 시작합니다.
BarsSinceEntry & gt; = NBarExL이면.
시장에서 다음 바 판매;
EntryPrice + TargFrL * ATRTargL 한도에서 다음 바 판매.
MarketPosition & lt; 0으로 시작합니다.
EntryPrice-C & gt; 그런 다음 ATRFrTrailS * ATRTrailS.
그러면 STrailOn이 시작됩니다.
NewSStop = EntryPrice - TrailPctS * (EntryPrice-C) / 100 .;
SStop = MinList (SStop, NewSStop);
BarsSinceEntry & gt; = NBarExS이면
시장에서 다음 바를 충당하기 위해 구입하십시오.
그렇다면 STrailOn.
SStop 정류장에서 다음 바를 덮기 위해 구입하십시오.
자동 코드 생성을 통한 거래 시스템 구축은 일종의 최적화입니다. 대부분의 체계적인 거래자는 전략에 대한 입력을 최적화하는 매개 변수 최적화에 익숙합니다. 매개 변수 최적화와 달리 자동 코드 생성은 전략의 거래 논리를 최적화합니다. 그럼에도 불구하고 매개 변수 최적화와 마찬가지로 자동 최적화 코드에 대한 과도한 최적화 또는 "과다 맞춤"의 위험이 자동 코드 생성에 중요합니다.
유전 프로그래밍을 이용한 거래 전략 수립 소프트웨어에 대한 정보는 여기를 클릭하십시오.
Adaptrade Software의 새로운 개발, 뉴스 및 특별 제안에 대한 정보를 얻으려면 당사 목록에 가입하십시오. 고맙습니다.
저작권 © 2004-2015 Adaptrade Software. 판권 소유.
유전자 알고리즘에 기반한 외환 거래 시스템.
Luís Mendes Pedro Godinho Joana Dias 작성자.
이 논문에서는 Forex 시장을위한 거래 시스템을 구성하는 일련의 규칙을 최적화하는 것을 목표로하는 유전자 알고리즘에 대해 설명합니다. 모집단의 각 개인은 10 개의 기술 거래 규칙 (5 개는 입장에 들어가고 나머지 5 명은 퇴장)을 나타냅니다. 이 규칙에는 총 31 개의 매개 변수가 있으며 이는 개인의 유전자에 해당합니다. 인구는 특정한 통화 쌍의 시계열에 의해 정의 된 주어진 환경에서 진화 할 것입니다. 주어진 개체의 적합성은 해당 환경에 얼마나 잘 적응할 수 있었는지를 나타내며 해당 규칙을 시계열에 적용한 다음 이익과 최대 인출률 (스털링 비율) 간의 비율을 계산하여 계산됩니다. . EUR / USD와 GBP / USD의 두 가지 통화 쌍이 사용되었습니다. 다른 데이터는 인구의 진화와 최고의 인물 테스트에 사용되었습니다. 시스템에 의해 얻어진 결과가 논의된다. 최고의 개인은 훈련 시리즈에서 아주 좋은 결과를 얻을 수 있습니다. 테스트 시리즈에서 개발 된 전략은 거래 비용을 고려할 때 긍정적 인 결과를 얻는 데 어려움을 나타냅니다. 거래 비용을 무시하면 그 결과는 대부분 긍정적 인 결과를 낳습니다.
노트.
감사 인사.
익명의 심판에게 감사의 말을 전한다.
참조.
저작권 정보.
저자 및 제휴사.
Luís Mendes 1 Pedro Godinho 2 Joana Dias 3 저자 1. Coimbra Universidade de Coimbra 코임브라 포르투갈 2. Economia 및 GEMF Facildade de Coimbra Universite de Coimbra Coimbra 포르투갈 3. Economia 및 Inesc-Coimbra Universidade de Coimbra Coimbra 포르투갈.
이 기사에 관하여.
개인화 된 권장 사항.
기사를 인용하십시오.
.RIS 논문 참조 관리자 RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
기사 공유.
해당 기사에 대한 무제한 액세스 즉석 다운로드 해당되는 경우 현지 판매 세 포함.
기사를 인용하십시오.
.RIS 논문 참조 관리자 RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
기사 공유.
손끝에서 천만 가지 이상의 과학적 문서를 제공합니다.
전환 판.
&부; 2017 Springer International Publishing AG. 스프링거 자연의 일부입니다.
시장에서 여전히 우위를 찾고 있다면 자동 거래 시스템이 최상의 방법입니다. 자세히 알아보기.
Copyright (c) 2010 Adaptrade Software. 판권 소유.
HYPOTHETICAL 또는 SIMULATED PERFORMANCE 결과에는 고유 한 내재 된 제한이 있습니다. 실제 성과 기록과 달리, 시뮬레이션 된 결과는 실제 거래를 나타내지 않습니다. 또한 거래가 실제로 실행되지 않았기 때문에 결과가 유동성 부족과 같은 특정 시장 요인에 영향을 미치거나 과다 또는 과소 보상을받을 수 있습니다. 시뮬레이션 된 거래 프로그램은 일반적으로 통보의 이익을 고려하여 설계되었다는 사실을 인정합니다. 어떠한 계정도 이익이나 손실을 달성 할 가능성이있는 것으로 나타나지 않습니다.
EasyLanguage와 TradeStation은 TradeStation Technologies, Inc. 의 등록 상표입니다.
지난 10 년간의 소매 거래에서 가장 큰 트렌드 중 하나는 자동 거래의 인기 증가입니다. 자동화 된 주문 실행이라고도하는 이러한 유형의 거래에서 거래 시스템에 의해 생성 된 매매 신호는 거래자의 중개 계좌에 연결된 플랫폼에 의해 자동으로 실행됩니다. 이를 통해 핸즈프리 거래가 가능해 지므로 실행 속도가 빠르고 오류가 적으며 빈도가 높은 전략으로 짧은 시간대를 거래 할 수 있습니다.
자동 코드 생성을 사용하여 거래 시스템을 구축하기위한 기본 알고리즘은 아래 그림 1과 같습니다. 거래 전략의 여러 요소를 결합하는 방법부터 시작합니다. 이러한 요소에는 이동 평균, stochastics 등과 같은 다양한 기술 지표가 포함될 수 있습니다. 다양한 유형의 출입 명령. 시장 진입 및 탈출을위한 논리적 조건
그림 1. 자동화 된 전략 수립을위한 기본 알고리즘.
서로 다른 요소들이 일관된 전략으로 결합 된 후에는 시장 또는 관심 대상 시장에서 평가할 수 있습니다. 이를 위해서는 각 시장에 대한 시장 데이터 (가격, 수량, 미결제 등)가 필요합니다. 일반적으로 각 전략의 순위를 매기거나 점수를 매기는 데 도움이되는 일련의 빌드 목표를 가지고 있습니다. 구축 목표의 예로는 순익, 인출, 승자의 비율, 수익 요인 등과 같은 다양한 성과 지표가 있습니다. 최소 2.0 이상의 수익 요소와 같은 최소 요구 사항 또는 순이익 극대화와 같은 최대 목표로 명시 할 수 있습니다.
자동 코드 생성의 이론적 근거.
위에서 설명한 것처럼 자동 코드 생성을 사용하여 거래 시스템을 구축하는 것이 본질적으로 최적화 문제입니다. 빌드 목표를 최대화하는 전략 요소의 조합이 최종 전략으로 간주됩니다. 일부 거래자는 시장 행동이나 행동에 대한 가설에 기초하여 거래 시스템을 구축해야한다는 것을 반대합니다. 시장이 어떻게 작동하는지에 대한 좋은 가설이 있다면 그 가설을 바탕으로 전략을 세우고 테스트 할 수 있습니다. 그것이 작동하면 가설을지지하고 전략 거래를 정당화합니다.
TradeStation 용 패턴 시스템 코드 생성기.
이 섹션에서는 TradeStation 용 트레이딩 시스템이 TradeStation 용 다른 패턴 기반 트레이딩 시스템을 자동으로 생성하는 자동 코드 생성에 대한 임시 접근 방식에 대해 설명합니다. AutoSystemGen 시스템은 지정된 성능 요구 사항 집합을 충족시키는 관련 매개 변수 값과 함께 일련의 거래 규칙을 검색합니다.
거의 모든 유형의 표시기 또는 거래 논리가 여기에 설명 된 거래 시스템 생성기에 포함될 수 있지만 상당히 단순하게 유지하기 위해 생성 된 시스템의 규칙은 가격 패턴으로 제한됩니다. 생성 된 거래 시스템의 각 입력 규칙은 다음 형식을 갖습니다.
이 과정의 핵심은 후보 거래 시스템을 찾는 것입니다. 시스템은 위에 표시된 양식의 규칙 1 개에서 10 개 사이로 구성 될 수 있습니다. 모든 규칙이 사실이라면 거래가 시장에 시작되고 거래는 나중에 일정 수의 바에서 종료됩니다. 이것이 최대 10 개의 규칙이있는 전통적인 TradeStation 시스템으로 코딩 된 경우 52 개의 입력이 있습니다. 이것은 성가신 전략을 만들 것입니다.
AutoSystemGen 시스템 및 관련 기능 코드는 무료 다운로드 페이지의 Breakout Futures (breakoutfutures /)에서 사용할 수 있습니다.
예를 들어, 30 년 만기 국채 선물 시장 (TradeStation 8의 기호 US. P)을 고려하십시오. AutoSystemGen은 OptStep 입력이 1에서 10000까지 증가한 T-bond 가격의 지난 20 년 동안 최적화되었습니다. 이것은 시스템이 10,000 개의 서로 다른 거래 시스템을 평가했음을 의미합니다. 최적화는 긴 거래의 경우 한 번, 짧은 거래의 경우 한 번 두 번 실행되었습니다. 다음 성능 요구 사항이 사용되었습니다. 최소 30,000 달러의 순 이익, 7500 달러 이하의 최악의 경우 감소, 최소 200 회 이상의 거래, 최소 50 %의 수익률 및 최소 1.2의 수익률이 사용되었습니다. Vista를 실행하는 듀얼 코어 컴퓨터에서 각 최적화를 실행하는 데 약 10 분이 걸렸습니다 (최적화 당 10,000 시스템).
System 2332, US. P, 9/17/2007 12:23:00, Long Trades.
순이익 = 53562.50, 최대 DD = -7381.25, 거래 횟수 = 250, 승리 비율 = 56.80, Prof factor = 1.631.
변수 : EntNext (거짓);
EntNext = Open [2] & gt; = Low [16].
닫기 [14] ≤ 낮음 [6] 및.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 2이면.
시장에서 다음 바 판매;
System 5771, US. P, 9/17/2007 12:27:00, Long Trades.
순이익 = 42145.00, 최대 DD = -5733.75, 거래 횟수 = 207, 승리 비율 = 57.00, Prof factor = 1.631.
변수 : EntNext (거짓);
EntNext = 하이 [7] ≥ 로우 [19] 및.
닫기 [20] ≥ 닫기 [5] 및.
High [18]> Low [2] 및.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 2이면.
시장에서 다음 바 판매;
시스템 7622, US. P, 9/17/2007 12:29:00, Long Trades.
순이익 = 59348.75, 최대 DD = -7222.50, 거래 횟수 = 208, WINS = 60.58, Prof factor = 1.924.
변수 : EntNext (거짓);
EntNext = Low [2] ≤ High [9] 및.
열기 [11] & gt; = 열기 [18] 그리고.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 3이면.
시장에서 다음 바 판매;
System 7718, US. P, 9/17/2007 12:29:00, Long Trades.
순이익 = 35526.25, 최대 DD = -6936.25, 거래 횟수 = 292, 승리 비율 = 56.85, Prof factor = 1.418.
변수 : EntNext (거짓);
EntNext = Close [3] & gt; = High [19]와.
High [6] ≤ Open [10] 및.
EntNext이면.
시장에서 다음 술집을 사세요.
BarsSinceEntry = 1이면.
시장에서 다음 바 판매;
System 6160, US. P, 9/17/2007 12:42:00, 짧은 거래.
순이익 = 31277.50, 최대 DD = -6846.25, 거래 횟수 = 369, 승리 비율 = 51.76, Prof factor = 1.297.
변수 : EntNext (거짓);
EntNext = 하이 [9] ≥ 로우 [6] 및.
닫기 [15] ≥ 하이 [8] 및.
High [7] ≤ Low [20] 및.
EntNext이면.
시장에서 짧은 다음 바 판매;
BarsSinceEntry = 1이면.
시장에서 다음 바를 충당하기 위해 구입하십시오.
각 시스템의 목록에는 시스템 번호 (OptStep 입력에 해당), 마켓 심볼, 현재 날짜 및 시스템이 long-only인지 또는 short-only인지가 포함됩니다. 다음 줄에는 각 시스템을 평가하는 데 도움이되는 몇 가지 요약 성능 통계가 포함되어 있습니다. 마지막으로 시스템 코드가 표시됩니다. TradeStation의 시스템을 평가하기 위해 두 개의 주석 행 () 사이의 코드를 복사하여 TradeStation의 전략에 붙여 넣은 다음 차트 창에서 실행할 수 있습니다.
출력 파일의 마지막 시스템은 짧은 시스템 (# 6160)입니다. TradeStation에서 전략으로 저장하고 동일한 T - 채권 차트에 적용하면 다음과 같은 형평 곡선이 생성됩니다.
그림 3. 시스템 AutoSystemGen에서 생성 한 거래 당 15 달러의 T - 채권에 대한 Short-only 시스템. 지난 20 년.
자동 코드 생성을위한 유전 프로그래밍.
이전 단원에서 설명한 임시 방편은 간단하지만 두 가지 제한이 있습니다. (1) 무작위로 생성 된 전략이 빌드 목표에 수렴하지 않음, (2) 패턴 시스템의 템플릿이 더 복잡한 전략으로 일반화하기 어렵다 . 이것은보다 정교한 접근법이 필요하다는 것을 의미합니다.
이 두 가지 문제를 모두 해결하는 자동 코드 생성 방법을 진화 알고리즘이라고하는 일련의 기술에 속하는 유전 프로그래밍 (GP)이라고합니다. 특히 진화 알고리즘과 GP는 생식과 진화의 생물학적 개념을 기반으로하는 인공 지능 연구원에 의해 개발되었습니다. GP 알고리즘은 무작위로 생성 된 구성원의 초기 모집단에서 거래 전략의 인구를 "발전"시킵니다. 인구의 구성원은 자신의 "적합성"에 따라 서로 경쟁합니다. 구성원은 신입 회원을 창출하기 위해 "부모"로 선택되며 약한 (덜 적합) 회원을 대신합니다.
기술 지표 및 전략 설계 지식에 대한 필요성을 줄입니다. GP 알고리즘은 개별 거래 규칙, 지표 및 기타 전략 요소를 선택합니다.
규칙 구축 프로세스는 비선형 거래 규칙을 포함하여 상당한 복잡성을 허용합니다.
GP 프로세스는 전통적인 전략 개발 프로세스에서 가장 노동 집약적이고 지루한 요소를 제거합니다. 즉, 새로운 거래 아이디어를 얻고, 프로그래밍하고, 코드를 검증하고, 전략을 테스트하고, 코드를 수정하고, 반복하는 것입니다. 이것은 모두 GP에서 자동으로 수행됩니다.
GP 프로세스는 편견이 없습니다. 대부분의 거래자들은 특정 지표 및 / 또는 거래 논리에 대해 또는 그에 대한 편향을 일으켰지 만, GP는 무엇이 작동하는지에 의해서만 안내됩니다.
적절한 거래 규칙 의미론을 통합함으로써 GP 프로세스는 논리적으로 정확한 거래 규칙과 오류없는 코드를 생성하도록 설계 될 수 있습니다.
GP 프로세스는 종종 고유하지만 명백하지 않은 결과를 생성합니다. 대부분의 경우 이러한 숨겨진 보석은 다른 방법으로 찾기가 거의 불가능합니다.
빌드 프로세스를 자동화함으로써 입력 가격 데이터 파일 및 기타 빌드 설정의 길이에 따라 실행 가능한 전략을 개발하는 데 필요한 시간을 수 주 또는 수개월에서 몇 분으로 단축 할 수 있습니다.
유전자 프로그래밍은 신호 및 이미지 처리, 프로세스 제어, 생물 정보학, 데이터 모델링, 프로그래밍 코드 생성, 컴퓨터 게임 및 경제 모델링 등 다양한 분야에서 성공적으로 사용되었습니다. 예를 들어 Poli et al. 2 재무에서 GP 사용에 대한 개요는 Chen이 제공합니다. 3 Colin 4는 거래 전략에 대한 규칙의 조합을 최적화하기 위해 GP를 사용하는 방법을 처음으로 설명했습니다.
코자. 유전 프로그래밍. MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon 및 N. F. McPhee. 유전자 프로그래밍 분야 가이드. lulu를 통해 배포되고 gp-field-guide. org. uk, 2008에서 무료로 사용할 수 있습니다 (J. R. Koza의 기고).
Shu-Heng Chen (편집자). 전산 금융에서 유전 알고리즘과 유전 프로그래밍. Kluwer Academic Publishers, Norwell, MA. 2002.
A. 콜린. 금융 모델링을위한 유전 알고리즘, Edge on Trading. 1994, pages 165-168. John Wiley & amp; Sons, Inc. 뉴욕.
Risto Karjalainen. S & P 500 선물에 대한 진화하는 기술적 거래 규칙, Advanced Trading Rules, 2002, Pages 345-366. Elsevier Science, Oxford, 영국.
진 이브 스 Potvin, Patrick Soriano, Maxime Vallee. 유전 프로그래밍으로 주식 시장에서 거래 규칙 생성. 컴퓨터 & amp; Operations Research, Volume 31, Issue 7, 2004 년 6 월, 페이지 1033-1047.
Massimiliano Kaucic. 진화 학습 방법과 기술 규칙을 이용한 투자. European Journal of Operational Research, Volume 207, Issue 3, 2010 년 12 월 16 일, 페이지 1717-1727.
유전자 프로그래밍을 이용한 빌드 알고리즘.
이전에 제시된 빌드 알고리즘 (그림 1 참조)을 확장하면 유전 알고리즘을 기반으로 한보다 자세한 알고리즘이 그림 4에 나와 있습니다. 회색 음영 상자는 관심있는 시장에 대한 가격 데이터, 이른바 빌드 세트의 지표 및 주문 유형, 그리고 해당 시장의 가격 옵션 데이터에 의해 선택된 옵션 및 성능 기준 (빌드 목표)을 포함하는 입력 데이터를 나타냅니다. 사용자.
그림 4. 유전자 프로그래밍으로 자동 코드 생성을위한 빌드 알고리즘.
GP 프로세스는 진입 조건 및 진입 및 퇴장 명령과 같은 두 가지 필수 전략 요소를 동시에 진화시키는 데 사용할 수 있습니다. 엔트리 조건은 일반적으로 아래 그림 5와 같이 트리 구조로 표시됩니다.
유전 프로그래밍을 사용하여 진화하는 진입 및 퇴출 명령의 핵심은 일반화 된 방식으로 다양한 유형의 주문을 나타내는 것입니다. 예를 들어, stop 및 limit entry 가격은 다음과 같이 나타낼 수 있습니다.
유전 프로그래밍은 상당한 다양성을 가진 거래 전략을 생성 할 수 있지만, 따라야 할 전략에 대한 일반화 된 구조로 시작하는 것이 필요합니다. 아래에서 의사 코드로 표시된 전략 구조는 위에서 언급 한 것과 같은 진입 조건 및 주문 유형을 기반으로 전략을 수립하기위한 프레임 워크를 제공합니다.
입력 : N1, N2, N3, ...
position이 일정하고 LongEntryCondition이 true 인 경우
긴 입력 주문 ...
필요한 경우 긴 종료 주문 초기화 ...
position가 편평하고 ShortEntryCondition이 true 인 경우
짧은 주문 주문 ...
필요한 경우 짧은 이탈 명령 초기화 ...
위치가 길다면
긴 종료 주문 1 ...
긴 종료 주문 2 ...
자세가 짧은 경우.
짧은 출구 주문 1 ...
짧은 이탈 명령 2 ...
[선택 종료일 종료]
전략은 입력 목록으로 시작합니다. 표시기 매개 변수, 가격 패턴 룩백 길이 및 ATR의 룩 백 길이와 같은 입력 및 종료 명령에 필요한 매개 변수에 대한 입력이 제공됩니다.
전략적 건물에서 자동 코드 생성을 위해 유전 프로그래밍을 사용하는 방법을 설명하기 위해, 프로그램 Adaptrade Builder는 소규모 인구와 한정된 수의 세대를 대상으로 주식 인덱스 선물 시장의 일일 막대에서 운영되었습니다. 프로세스를 안내하기 위해 선택된 성과 메트릭스는 순이익, 거래 수, 상관 계수, 통계적 유의성 및 수익률 / 하락률이었습니다. 거래 수 및 수익률 / 수익률에 대한 구체적인 목표가 설정되었습니다. 다른 선택된 측정 항목이 최대화되었습니다. 적합성 기능은 각 측정 항목에 대한 용어의 가중치 평균이었습니다.
그림 6. 표본 순이익이 1,000 달러 이상인 인구 집단의 비율.
유사하게, 인구의 OOS 순이익의 평균은 5 세대와 10 세대 후에 그림 7과 같이 증가했다. 이 결과는 OOS 순이익에 대한 것이다. 정의에 따르면, 샘플 밖의 데이터는 빌드에서 사용되지 않으므로 OOS 결과는 편향되지 않습니다. 그들은 뒤늦은 지혜에서 이익을 얻지 못한다. 이것은 GP 프로세스가 GP 알고리즘의 직접적인 효과 인 연속 세대에 걸친 샘플 내 결과를 향상시키는 경향이있을뿐만 아니라 OOS 결과도 전략이 발전함에 따라 향상되는 경향이 있음을 의미합니다. 이것은 고품질 빌드를 나타냅니다.
TradeStation의 EasyLanguage 전략 코드.
인구 회원 : 46.
만든 사람 : Adaptrade Builder 버전 1.1.0.0.
작성일 : 10/19/2010 2:19:52 PM.
TS 6 이상의 TradeStation 코드.
가격 파일 : C : \ TestData. txt.
변수 : EntCondL (거짓),
EntCondL = (가장 높은 (볼륨, NL1) & gt; = 가장 낮음 (볼륨, NL2)) 또는 (볼륨 & lt; 평균 (볼륨, NL3));
MarketPosition = 0이고 EntCondL이 시작되면.
XAverage (L, NBarEnL1) + EntFrL * ATREnL 정류장에서 다음 바 구매.
MarketPosition = 0이고 EntCondS가 시작되면.
Highest (H, NBarEnS1) - EntFrS * AbsValue (최저 (L, NBarEnS2) - 최저 (H, NBarEnS3))에서 다음 바로 가기 바 중지;
SStop = 전력 (10, 10);
MarketPosition & gt; 0으로 시작합니다.
BarsSinceEntry & gt; = NBarExL이면.
시장에서 다음 바 판매;
EntryPrice + TargFrL * ATRTargL 한도에서 다음 바 판매.
MarketPosition & lt; 0으로 시작합니다.
EntryPrice-C & gt; 그런 다음 ATRFrTrailS * ATRTrailS.
그러면 STrailOn이 시작됩니다.
NewSStop = EntryPrice - TrailPctS * (EntryPrice-C) / 100 .;
SStop = MinList (SStop, NewSStop);
BarsSinceEntry & gt; = NBarExS이면
시장에서 다음 바를 충당하기 위해 구입하십시오.
그렇다면 STrailOn.
SStop 정류장에서 다음 바를 덮기 위해 구입하십시오.
자동 코드 생성을 통한 거래 시스템 구축은 일종의 최적화입니다. 대부분의 체계적인 거래자는 전략에 대한 입력을 최적화하는 매개 변수 최적화에 익숙합니다. 매개 변수 최적화와 달리 자동 코드 생성은 전략의 거래 논리를 최적화합니다. 그럼에도 불구하고 매개 변수 최적화와 마찬가지로 자동 최적화 코드에 대한 과도한 최적화 또는 "과다 맞춤"의 위험이 자동 코드 생성에 중요합니다.
유전 프로그래밍을 이용한 거래 전략 수립 소프트웨어에 대한 정보는 여기를 클릭하십시오.
Adaptrade Software의 새로운 개발, 뉴스 및 특별 제안에 대한 정보를 얻으려면 당사 목록에 가입하십시오. 고맙습니다.
저작권 © 2004-2015 Adaptrade Software. 판권 소유.
유전자 알고리즘에 기반한 외환 거래 시스템.
Luís Mendes Pedro Godinho Joana Dias 작성자.
이 논문에서는 Forex 시장을위한 거래 시스템을 구성하는 일련의 규칙을 최적화하는 것을 목표로하는 유전자 알고리즘에 대해 설명합니다. 모집단의 각 개인은 10 개의 기술 거래 규칙 (5 개는 입장에 들어가고 나머지 5 명은 퇴장)을 나타냅니다. 이 규칙에는 총 31 개의 매개 변수가 있으며 이는 개인의 유전자에 해당합니다. 인구는 특정한 통화 쌍의 시계열에 의해 정의 된 주어진 환경에서 진화 할 것입니다. 주어진 개체의 적합성은 해당 환경에 얼마나 잘 적응할 수 있었는지를 나타내며 해당 규칙을 시계열에 적용한 다음 이익과 최대 인출률 (스털링 비율) 간의 비율을 계산하여 계산됩니다. . EUR / USD와 GBP / USD의 두 가지 통화 쌍이 사용되었습니다. 다른 데이터는 인구의 진화와 최고의 인물 테스트에 사용되었습니다. 시스템에 의해 얻어진 결과가 논의된다. 최고의 개인은 훈련 시리즈에서 아주 좋은 결과를 얻을 수 있습니다. 테스트 시리즈에서 개발 된 전략은 거래 비용을 고려할 때 긍정적 인 결과를 얻는 데 어려움을 나타냅니다. 거래 비용을 무시하면 그 결과는 대부분 긍정적 인 결과를 낳습니다.
노트.
감사 인사.
익명의 심판에게 감사의 말을 전한다.
참조.
저작권 정보.
저자 및 제휴사.
Luís Mendes 1 Pedro Godinho 2 Joana Dias 3 저자 1. Coimbra Universidade de Coimbra 코임브라 포르투갈 2. Economia 및 GEMF Facildade de Coimbra Universite de Coimbra Coimbra 포르투갈 3. Economia 및 Inesc-Coimbra Universidade de Coimbra Coimbra 포르투갈.
이 기사에 관하여.
개인화 된 권장 사항.
기사를 인용하십시오.
.RIS 논문 참조 관리자 RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
기사 공유.
해당 기사에 대한 무제한 액세스 즉석 다운로드 해당되는 경우 현지 판매 세 포함.
기사를 인용하십시오.
.RIS 논문 참조 관리자 RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
기사 공유.
손끝에서 천만 가지 이상의 과학적 문서를 제공합니다.
전환 판.
&부; 2017 Springer International Publishing AG. 스프링거 자연의 일부입니다.
Comments
Post a Comment