무역 전략 유전 프로그래밍


유전 프로그래밍을 통한 진화하는 무역 전략 - 피트니스 기능.
모든 유전 프로그래밍 (GP) 전략의 핵심은 피트니스 기능입니다. fitness 함수는 모든 진화 과정이 찾고있는 것을 지정합니다. 모든 개인에게는 적합도 함수에 의해 계산 된 적합도 값이 지정됩니다. 높은 적합성 값을 가진 개인은 복제를 위해 선택되어 자손을 만들 기회가 더 많습니다. & quot; 양호한 & quot; 피트니스 기능은 개발 프로세스의 가장 중요한 디자인 측면 중 하나입니다. 피트니스 기능에 대한 첫 번째 아이디어가 이미 훌륭한 결과를 산출하는 경우는 드물지만 문제 도메인 정의에 대한 상당한 이해가 필요합니다. 다음 목록에는 필요한 몇 가지 디자인 결정 사항이 나와 있습니다.
적합도 값 최소화 및 최대화 단일 목표 대 다중 목표 적합성 값 정규화 적합성 기능의 개별 구성 요소에 가중치 지정.
필요한 결정을 자세히 살펴 보겠습니다.
극대화 대 최소화.
피트니스 기능은 물론 특정 목표 측정을 최대화하거나 최소화 할 수 있습니다. 극대화 할 수있는 전형적인 목표 척도는 총 수익, 예상 가치, 승리하는 거래의 평균 크기 또는 적중률 일 수 있습니다. 최소화 할 수있는 전형적인 목표는 최대 손실, 연속 거래 손실의 최대 횟수 또는 자본 곡선의 변동성입니다. 일반적인 상황은 일부를 최대화하고 다른 피트니스 값을 동시에 최소화하는 것입니다.
단일 목적 대 다중 목적.
단일 목표를 갖는 적합도 함수는 단일 적합성 값을 최대화 (또는 최소화)하려고 시도합니다. 이 적합성 값은 예를 들어 여러 개별 구성 요소를 결합한 수식의 결과 일 수 있습니다.
위의 표본 적합도 함수에서 가능하다하더라도 최대 혼화 가치 측정에 음의 값을 사용하는 것은 나쁜 생각입니다 (단점을 음수로 해석 할 수 있다고 주장하는 경우). 이는 매우 혼란 스럽습니다.
이 기사에서, 필자는 이러한 "결합 된 피트니스 기능들"을 계속 언급 할 것이다. 최종 적합성 값이 단일 값이기 때문에 단일 목적으로 사용됩니다. 대조적으로 다목적 피트니스 기능은 여러 대상 측정 값을 단일 적합성 값으로 집계하려고 시도하지 않고 차원 수를 줄이지 않고 직접 다차원 검색 공간에서 작업합니다. GP를위한 다목적 피트니스 기능은 구현하기가 매우 복잡 할 수 있지만, 내 경험에 따르면 단일 목적의 피트니스 기능에 비해 실제로 우수한 결과를 이끌어 낼 수 있습니다. 필자는 이전 기사에서 비제 한 정렬 유전자 알고리즘 (NSGA)과 강도 파레토 진화 알고리즘 (SPEA)의 두 가지 피트니스 기능에 대해 이미 언급했는데, 둘 다 매우 강력하다고 생각합니다. 이들 알고리즘은 실제로 다차원 "휘트니스 조경 (fitness landscape)"에서 직접 동작한다. 풍경을 1 차원 "적합 번호 (fitness number) 광선"으로 감소시키지 않고, 결합 된 단일 목적 피트니스 기능이 그렇듯이. 독자는 또한 설계에 따라 두 알고리즘이 모두 GP 선택 및 돌연변이 연산자를 미리 결정한다는 것을 알아야합니다. 두 알고리즘에 대한 작업 구현은 실제로 ECJ 라이브러리에서 찾을 수 있습니다.
적합성 값의 정규화.
때로는 적합성 값을 미리 지정된 범위로 정규화해야합니다. 예를 들어, 다른 적합성 값에서 아주 멀리 떨어져있는 몇몇 oulier가있는 경우 일 수 있습니다. 적합성 비례 선택 연산자가 적용되면, 이 특이 치는 다른 모든 것을 우세하게 지배 할 수 있습니다. 다른 방법으로는 이러한 문제를 겪지 않으므로 순위 기반 피트니스 값을 사용하는 것입니다.
또 다른 문제점은 관련된 적합성 값 구성 요소의 크기의 상대적 차이입니다. 다음 적합성 함수를 고려하십시오.
이러한 이유로 (특히 단일 목적 적합성 기능을 결합하여 사용하는 경우) 일반적으로 개별 구성 요소의 정규화가 필요합니다. 세 가지 대안이 있습니다.
적합도 함수의 모든 구성 요소가 유사한 분포 (즉, 유사한 평균 및 표준 편차)를 가질 것으로 예상 될 수있는 경우 정규화가 필요하지 않을 수 있습니다. 그러나 이것은 드문 경우입니다. 이상 치는 사실 공통적 인 현상입니다.
비례 거리를 갖는 적합성 값 구성 요소의 정규화.
가장 적합한 적합성 값 구성 요소는 사전 정의 된 값 1.0 (최악의 값 0.0)을받습니다. 다른 모든 적합성 값 구성 요소는 둘 사이의 비례 거리에 있습니다. (Koza는 가장 적합한 적합도 값 구성 요소가 0.0과 1.0을받는 역순을 선호했는데 해당 작업은 최대화보다는 구성 요소를 최소화하는 것입니다.)이 절차는 이상 치가 존재하면 문제가되는 경우가 있습니다. 하나의 선택 연산자를 선택하면 값 사이의 상대 거리를 유지하는 것이 바람직 할 수 있습니다.
3. 우선 순위에 따라 모든 구성 요소를 정렬하여 적합성 구성 요소의 정규화.
prevuos 프로 시저에서와 마찬가지로 최상의 적합성 값 구성 요소는 1.0의 값과 최악의 0.0 (또는 그 반대로)을받습니다. 다른 모든 사람들은 그들의 순위에 따라 같은 거리에 있습니다. 마지막 절차와 달리이 방법은 특이 치 문제를 해결합니다. 그러나 적합성 값 구성 요소 간의 상대 거리에 관한 관련 정보는 취소 할 수 없게 손실됩니다.
일반적인 함정.
내 경험에 비추어 볼 때 피트 니스 기능의 디자인과 관련된 초보자를위한 몇 가지 일반적인 함정이 있습니다. 일반적인 초급자는 단일 객관적인 피트니스 기능을 적용하고 총 수익을 극대화하려고 시도 할 가능성이 큽니다. 이것은 쉽게 이해할 수 있습니다. 궁극적으로 귀하의 거래 전략이 창출 한 현금의 양입니다. 그렇지 않습니까? 이 접근법이 밝혀지면 거의 좋은 결과를 얻지 못합니다. 적용된 논리가 유효하더라도 총 수익을 극대화하는 데는 여러 가지 미해결 문제가 있습니다. 다음은 고려해야 할 몇 가지 사항입니다.
전략은 거의 거래에 따라 다릅니다.
증가하는 가격의 시장에서는 종종 시장을 치고 실제 알파를 생성하기가 어렵습니다. 구매 및 보관 전략에는 거래 비용이 매우 낮다는 장점이 있습니다. 따라서이 상황에서 가장 좋은 실적을내는 거래 전략은 시작 단계에서 단순히 구매하고 끝까지 보유하는 것이 일반적입니다. 가장 진화 된 거래 전략은 그에 상응하여 거래가 거의 없거나 거의 없을 것입니다. 이는 결과적이지만 여전히 바람직하지는 않습니다. 이러한 거래 전략은 성공의 반복적 인 방법을 의미하지 않습니다. 그들은 기본적으로 거래 비용을 피함으로써 수행합니다. 이러한 "게으른 거래 전략"은 또한 받아 들일 준비가되어있는 것보다 더 높은 휘발성을 암시 할 수 있습니다. 이것은 단순히 구매 및 유지 전략으로 인해 시장 가격의 변화를 반복하기 때문입니다.
이런 이유로, 정규화 된 총 수익과 표준화 된 총 거래 수의 합 또는 곱과 같은 거래 수를 보정하는 피트니스 기능의 개선 된 버전을 시험해 보는 것이 흥미로울 수 있습니다. 각 피트니스 구성 요소에 가중치를 추가하는 것도 중요 할 수 있습니다.
전략은 몇 가지 우승 트레이드에 달려 있습니다.
관련된 문제는 많은 손실 거래에 비해 몇 가지 매우 선정 된 승리 거래에 크게 의존하는 전략을 발전시키는 것입니다. 이론적으로는 전반적인 기대 값이 여전히 긍정적 인 한, 이것은 건전한 전략입니다 (아래 참조). 그러나, 하나는 매우주의해야합니다. 이기는 거래가 너무 적 으면 전략이 성공을위한 반복적 인 방법이 될 수 없습니다. 즉, 이기는 거래 대 분실 거래의 분배 역시 중요합니다. 1987 년 10 월 19 일의 Black Monday 이전에 다우 존스 산업 평균 지수 (DJIA)를 매도했다면 당신은 큰 돈을 벌 수있었습니다. (DJIA는 그날 혼자서 22.61 %가 떨어졌습니다.) 당신이 역습 된 전략에서 이와 같은 하나의 무역 만 가지고 있다면 그것은 수년간의 작은 손실을 가져올 수 있습니다. 그러나이 정도의 움직임은 통계적으로 발생하기 때문에 아주 드물게 전략적으로 의존 할 수는 없습니다. (그럼에도 불구하고 당신은 단점에서 일어날 준비가되어 있어야합니다. 그렇지 않으면 그러한 손실이 효과적으로 당신을 닦아 낼 수 있습니다.) 플래시 크래시가 발생하는 빈도가 증가함에 따라이 문제는 오히려 감소한 것보다 증가했습니다.
외계인은 적합성 비례 선택에서 우위를 차지합니다.
또 다른 문제는 아웃 라이어의 존재입니다. 몇 개인이 다른 모든 개인보다 훨씬 우월하여 상대적으로 우수하다는 사실은 상대적으로 자주 발생하지만, 글로벌 최적을 대표하지는 않지만 로컬에만 국한된다. 랭크 기반 선택 연산자 대신에 적합성 비례 선택 연산자가 사용되는 경우, 특이 치는 재생산을 위해 선택 될 확률이 훨씬 높다. 동일한 무작위 종자 (런타임 조건이없는 단일 스레드 응용 프로그램이라고 가정)를 사용하여 진화 프로세스를 다시 실행하는 것은 당연히 결과를 반복하므로 다양한 무작위 종자를 사용하여 다시 실행하는 것이 좋습니다.
이것은 단일 목적 및 다중 목적 적합성 기능 모두에서 발생할 수 있습니다. 때로는 다목적 피트니스 기능에서 개인의 체력이 바로 "경계"에 위치 할 수 있습니다. 예를 들어 하나의 적합성 구성 요소가 모든 값의 최대 값이고 다른 하나는 0입니다. 노출을 얻기 위해 적합성 값의 상대적 분포를 플로팅하는 것이 종종 도움이됩니다.
권장 운동 방법.
이것은 제가 개인적으로 시도해 볼만한 가치가 있다고 생각하는 운동 측정 목록입니다. 아마도 기대치를 극대화하는 일회성 피트니스 기능부터 시작해야 할 것입니다. 나중에 다목적 피트니스 기능이 갖추어지면 다른 피트니스 구성 요소도 추가합니다.
EV (예상 가치 최대화) : 공식은 EV = 평균 승리 * p 승리 - 평균 손실 * p 손실, 평균 승리 (손실)는이기는 (상실) 거래의 평균 수익이며, p 승리 (손실) 이기는 (잃는) 무역에 대한 확률. 물론 p Win = 1.0 - p의 관계가 유지되어야합니다. 기대 값은 양수 여야합니다 - 그렇지 않으면 시스템은 장기적으로 확실하게 돈을 잃을 것입니다! 나는 이것이 모든 거래 시스템을 극대화하는 가장 직접적이고 직관적 인 방법이라고 생각합니다. (제로섬 거래, 즉 돈을 생성하거나 잃지 않는 거래의 경우에도 거의 항상 "위험이없는이자"대안이 있으므로 돈을 할당받을 수 있으므로 분실자로 간주합니다. .)
최대 축소 축소 : 아무도 시장에서 돈을 잃는 것을 좋아하지 않습니다. 하나의 공통적 인 문제는 거래 전략이 더 이상 작동하지 않기 때문에 언제 거래 전략을 종료해야 하는지를 아는 것입니다. 트레이딩은 항상 심리적 인 게임이므로, 당신의 전략을 정말로 신뢰합니까? 큰 결점을 감수하면 최악의 순간에 계정이 폭발하고 마진 전화가 발생할 수 있습니다.
거래 수 극대화 : 초보자가 쉽게 따라 올 수없는 까다로운 거래입니다. 모든 무역에는 수수료가 있습니다. 때로는 GP는 트레이딩 전략에 매우 높은 적합성 기능을 할당 할 수 있습니다 (그러나 모든 우승). 이러한 전략은 의미 있고 재현 가능한 거래 성공을 나타내지 않으므로 임의의 행동을 기반으로 한 산출물입니다. 예상되는 가치와 함께 거래 횟수를 극대화하는 것은이 문제에 대한 대응책입니다. 그럼에도 불구하고이 조치는 많은 단기 거래를 선호하기 때문에 문제가 될 수 있습니다. 따라서이 건강 지수를 사용할 때 거래 수수료 및 미끄러짐을 고려해야합니다.
총 수익 극대화 : 매우 간단하고 직관적이지만 전체 수익을 극대화하는 것은 종종 다른 운동 방법과 함께 사용하는 것이 좋습니다.

유전 프로그래밍을 통한 진화하는 무역 전략 - GP 매개 변수와 연산자.
핵심적인 유전 공학은 연산자 (선택, 돌연변이, 교차, 엘리트 등)와 매개 변수 (세대 수, 인구 크기 등)를 사용합니다. 이 주제에 대한 방대한 문헌이 있기 때문에, 나는 기초를 건너 뛰고 독자가 이미 그 주제에 익숙하다고 가정 할 것이다.
GP 매개 변수와 연산자에 대해 가장 먼저 이해해야 할 점은 본질적으로 복잡한 시스템을 구성한다는 것입니다. 한 매개 변수의 변경은 다른 매개 변수가 작동하는 방식에 영향을 미치거나 미치지 않을 수 있습니다. 한 매개 변수의 작은 변화는 진화 적 결과 전체에서 비선형 적 변화를 일으킬 수 있습니다. 다른 때에 매개 변수의 큰 변화는 전체 결과를 전혀 변경하지 않을 수도 있습니다. 좋은 예는 모집단 크기를 설정하는 것입니다. 초보자는 GP에 신선하게 노출되면 인구 규모가 클수록 더 좋습니다. 결국, 인구가 많은 개인이 많을수록 좋은 검색 결과를 얻을 가능성이 커집니다. 맞습니까? 틀렸어. 종종, 작지만 (너무 작지는 않지만!) 인구 규모는 실제로 더 큰 규모를 선호합니다. 모집단에 더 많은 개인을 배치하고 전반적인 소음 수준을 높이는 것 사이에는 절충안이 있습니다. 인구 당 더 많은 개인을 가짐으로써 상대적으로 적합한 개인 하나가 자손을 만들 수있는 기회를 감소시킵니다. 따라서, 잡음 레벨이 증가한다. 일부 상업적으로 이용 가능한 GP 소프트웨어 시스템은 매우 짧은 시간에 수많은 사람들을 처리 할 수 ​​있도록 광고됩니다. 내 경험에 비추어 볼 때, 인구 1 인당 500 명의 사람들이 필요하다고 생각한다면, 아마도 당신은 뭔가 잘못된 행동을하고있을 것입니다. 일부 매개 변수와 연산자에 대해 자세히 살펴 보도록하겠습니다.
인구 크기.
나는 이미 인구 규모에 대해 언급했다. 100 명 정도의 작은 인구로 시작하십시오. 이렇게하면 계산 시간도 단축됩니다. 위에서 말했듯이, 인구 규모를 늘리더라도 소음 수준이 높아 지므로 결과가 더 나아지지는 않습니다.
세대 수.
GP 알고리즘이 작동한다면 진화 과정 초기에 개개인이 상대적으로 쉽게 발견 될 수 있다는 것을 알 수 있습니다. 때로는 약간의 세대가 다른 큰 개선이 일어나기 전에 어떤 개선없이 통과 할 수도 있습니다. 여러 세대가 지난 후에는 개선이 덜 빈번하게 발생합니다. 어쩌면 10 대에서 15대로 시작하십시오. 첫 번째 세대에서 마지막 세대까지 단지 약간의 개선 만 있다면 아마도 당신은 뭔가 잘못하고있는 것입니다. 또한 특정 세대가 지나도 더 이상의 개선이 관찰되지 않으면 실속 발생 카운터를 도입하고 진화 과정을 중단하는 것이 유용합니다.
의사 결정 트리 및 트리 크기의 수.
이미 의사 결정 트리를 인코딩하는 방법에 대해 설명했습니다. 다시 한 번 트레이드 오프가 있습니다. 트리 깊이 / 크기 및 사용 된 하위 트리 수에 관한 전반적인 의사 결정 규칙이 복잡할수록 초과 구현 가능성이 높아집니다. 덜 복잡한 의사 결정 규칙은 거의 항상 바람직하지만, 길고 짧은 규칙에 전용 의사 결정 트리를 사용하는 것은 여전히 ​​의미가 있습니다. 나는 차후의 기사에서 묵시적인 압력을 통해 복잡성을 징계한다는 주제에 초점을 맞출 것이다.
유전 프로그래밍 알고리즘.
기본 GP 알고리즘은 비교적 간단하지만 선형 유전 프로그래밍, 직교 유전 프로그래밍, NSGA (Non-Dominated Sorting Genetic Algorithm), SPEA (Stareth Pareto Evolutionary Algorithm) 등 여러 가지 대안이 있습니다. 특정 대안의 선택은 개인이 어떻게 암호화되는지, 피트니스 기능에 영향을 주는지, 그리고 선택, 돌연변이 및 교차 연산자의 구현에 영향을 미친다. 전통적으로 돌연변이, 교차 및 엘리트 주의자는 서로 배타적으로 결합되어 사용되지 않습니다. 즉, 이 연산자 중 하나는 연산자 선택 전략에 의해 선택되며이 연산자 만 적용됩니다. 예를 들어, 자손으로 생산 된 2 명의 어린이는 돌연변이가 추가적으로 발생하지 않지만 이는 물론 가능합니다.
선택 연산자는 돌연변이 또는 교차와 같은 특정 목적을 위해 수영장에서 한 명 또는 여러 명을 선택하는 전략입니다. 많은 선택 전략이 있으며 실제로 사용하는 상황에 따라 다릅니다. 모든 선택 전략은 개인을 비교하는 특정 기준에 의존합니다. 대부분의 경우 (피트니스 측면에서) 개인이 필요하지만 때로는 최악의 개인이 될 수도 있습니다. 다목적 피트니스 기능의 경우, 선택 과정이 복잡해질 수 있습니다. 종종 선택 연산자는 두 명의 개인을 선택해야하지만 동일한 개인을 두 번 선택하지 않도록해야합니다. 재생산을위한 최상의 인물 만 선택하는 것은 현명하지 못합니다. 왜냐하면 검색 공간에서 글로벌 최적 대신 로컬에 조기 컨버전스가 발생할 수 있기 때문입니다. 더 약한 개인을 계속 선택하면서 더 나은 개인에게 재생산을 위해 더 높은 기회를 부여하는 균형 잡힌 접근이 필요합니다. 생존 압력과 새로운 해결책을 제시하고 탐구 할 수있는 여지를 남겨 둘 것입니다.
다양한 선택 방법이 있지만 가장 인기있는 선택 전략은 토너먼트 선택입니다. 토너먼트 선택은 2 단계 과정입니다. 먼저, 몇몇 (예를 들어 7 명)의 개인이 무작위로 "토너먼트"로 선택된다. 둘째, 체력에 따라 토너먼트에서 1 ~ 2 명이 선정됩니다. 토너먼트 크기가 커질수록 약한 개인은 전반적으로 선택의 기회가 줄어 듭니다.
때로는 모집단의 한두 명의 개인이 다음 세대로 복사되는 것을 허용하는 것이 좋습니다. 그렇지 않으면 손실 될 수 있기 때문입니다. 엘리트주의의 문제는 일반적으로 후속 세대가 동일한 개인의 많은 복사본으로 채워질 수있는 추가 조치 없이는 취해질 수 없다는 것이다. 개인을 평등하게 비교하는 것은 계산 상 비싼 작업 일 수 있습니다. 나는 개인적으로 이런 이유로 엘리트주의를 사용하지 않기를 바란다.
돌연변이는 낮은 확률로 발생해야합니다. 0 % ~ 2 %의 경우. 일부 GP 구현은 진화 과정에서 돌연변이 가능성을 다양하게합니다. 다른 버전의 돌연변이 (예 : 점 돌연변이 또는 서브 트리 돌연변이)에 대해서는 해당 주제에 대한 많은 문헌 자료를 참조하십시오. 돌연변이는 의사 결정 트리의 노드 유형 지정을 준수해야합니다.
교차 (Crossover)는 자손을 생산하기 위해 선택된 가장 높은 확률 (예 : 80 % - 100 %)을 가진 GP 운영자입니다. 유형이 지정된 노드를 사용하면 교차 연산자에 의해 유효하고 의미있는 자손 만 생성됩니다. 한 가지 문제는 진화 과정에서이 연산자는 의사 결정 트리의 평균 크기를 늘려 코드가 부풀어 오르는 경향이 있다는 것입니다. 종종 적자는 역사적 시계열에 실제로 지나치게 적합합니다. 그들은 또한 가장 큰 의사 결정 규칙을 가진 사람들입니다. 선택 연산자는 가장 높은 확률로이를 선택하므로 크로스 오버 연산자는 후속 적으로 의사 결정 트리 크기를 증가시킵니다. 적절한 대응 조치는 파기 압력입니다. 이에 대해서는 나중에 게시 할 예정입니다.
구조적으로 유사한 개인을 진화시키는 문제.
일반적인 문제는 진화 과정이 종종 거의 동일한 거래 전략을 전개하는 경향이 있다는 것입니다. 모집단은 몇 개의 "기본 유형"으로 채워져 있습니다. 서로 구조적으로 매우 유사하여 매우 유사한 적합성 값을 갖는 개인들로 구성됩니다. 그림을 얻으려면 여러 개인에 대해 동일한 거래 전략을 상상해보십시오. 그러나 각 매개 변수는 단일 매개 변수에서만 매우 약간의 변화가 있습니다. 이 현상이 발생하는 데는 여러 가지 이유가 있습니다. 하나는 인구의 가장 우수한 개인의 적합성의 변화가 불 연속적이라는 것입니다. 중요한 & quot; 점프 & quot; 한 세대에서 다음 세대에 이르기까지 최고의 적합성에있어서, 최고의 개인이 다음 몇 세대 동안 가장 적합한 체력을 유지할 가능성이 높습니다. 이는 인구 집단에서 두 번째 및 세 번째로 우수한 개인에게도 마찬가지입니다. 따라서 여러 세대에 걸쳐 적자가 가장 적은 사람들은 자손을 만들 가능성이 가장 높으며 자연적으로 자손은 구조적으로 부모와 유사합니다. 결과적으로, 점점 더 많은 구조적으로 유사한 개체가 모집단의 첫 번째 위치를 채워 전체 인구의 유전 적 다양성을 효과적으로 감소시킬 것입니다.
이 문제에 대한 만족스러운 해결책을 찾는 것은 종종 어려운 일입니다. 하나의 가능성은 높은 수준에서 돌연변이 매개 변수를 유지하는 것입니다. 또 다른 해결책은 적응 GP 파라미터를 도입하는 것입니다 (예 : 진화 과정 전반에 걸쳐 돌연변이 및 / 또는 교차 확률 변경). 또는 선택 연산자를 동적으로 변경하십시오. 불행히도, 이러한 대안들은 종종별로 효과적이지 못하며 적절하게 구현하거나 조정하기가 까다로울 수 있습니다. 계산적으로 매우 비싼 해결책은 각 세대의 거래 전략을 비교하고 인구가 구조적으로 동등한 개인을 포함하지 못하도록하는 것입니다. 이것은 차세대 인구를 구축 할 때 각 개인을 서로 비교해야하며, 이는 진화 과정을 크게 늦추게됩니다.
흥미롭게도, 내 경험에 비추어 볼 때, NSGA (non-dominated sorting genetic algorithm) 및 SPEA (poware pareto evolutionary algorithm) 알고리즘과 같이 단일 목적에서 강력한 다목적 적합성 기능 / 진화 과정으로 전환 할 때이 문제는 현저히 줄어 듭니다. . 이러한 알고리즘은 생식을 위해 개체를 선택하는 데있어 근본적으로 다른 접근 방식을 정의하며, 이는 단일 목적의 적합성 기능보다 훨씬 적은 유전자 기반에서 원하는 다양성을 줄입니다. 나중에 두 가지 알고리즘에 대해 더 자세히 기술 할 것입니다.

유전 프로그래밍을 통한 방향 기반 변화 기반의 거래 전략 생성.
Jeremie Gypteau Fernando E. B. Otero Michael Kampouridis 저술가.
대부분의 예측 도구는 금융 시장의 가격 변동을 연구하기 위해 실제 시간 척도를 사용하여 실제 시간의 흐름을 불 연속적으로 만듭니다. 따라서 실제 시간 척도를 사용하면 몇 가지 중요한 활동을 모르고 있기 때문에 위험에 노출 될 수 있습니다. 이 논문에서는 시장에서 중요한 활동을 포착하기 위해 대안적이고 새로운 접근법을 연구합니다. 주요 아이디어는 방향 변경에 기반한 본질적인 시간 척도를 사용하는 것입니다. 유전자 프로그래밍과 결합하여, 제안 된 접근법은 금융 시장의 미래 가격 움직임을 예측하기위한 최적의 거래 전략을 찾는 것을 목표로한다. 예측 도구로서의 효율성과 견고성을 평가하기 위해 일련의 실험을 수행하여 예측 성능에 대한 중요한 정보를 얻을 수있었습니다. 실험 결과는이 새로운 프레임 워크가 새롭고 수익성있는 거래 전략을 창출 할 수 있음을 나타냅니다.
참조.
저작권 정보.
저자 및 제휴사.
Jeremie Gypteau 1 Fernando E. B. Otero 1 Michael Kampouridis 1 저자 1. 영국 University of Kent Canterbury의 컴퓨터 스쿨.
이 백서에 대해서.
개인화 된 권장 사항.
종이를 인용하십시오.
.RIS 논문 참조 관리자 RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
용지를 공유하십시오.
즉시 다운로드 모든 장치에서 읽을 수 있음 영원히 소유 가능 해당되는 경우 현지 판매 세 포함.
종이를 인용하십시오.
.RIS 논문 참조 관리자 RefWorks Zotero.
.BIB BibTeX JabRef Mendeley.
용지를 공유하십시오.
손끝에서 천만 가지 이상의 과학적 문서를 제공합니다.
전환 판.
&부; 2017 Springer International Publishing AG. 스프링거 자연의 일부입니다.

거래 전략 유전 프로그래밍
유전 프로그래밍의 유효성 사전 테스트.
Michael R. Bryant.
유전 전략 (GP)을 사용하여 거래 전략을 개발할 때 발생하는 질문 중 하나는 GP 프로세스가 본질적으로 시장에 과도하게 적합하지 않은 전략을 구축 할 수 있는지 여부입니다. 수천 개의 거래 전략이 GP 알고리즘에 의해 구축되고 테스트 될 때, 샘플 밖의 결과가 의미가 있는지 또는 임의의 기회로 인한 결과인지 궁금해하는 것이 현명합니다. 그것은 "무한 원숭이 정리"입니다 : 당신이 원숭이가 임의로 타자기의 키를 치게하면, 충분히 오래 주어져서 셰익스피어의 작품을 작곡 할 것입니다. 그렇다면 GP의 거래 결과가 원숭이 사료가 아니라는 것을 어떻게 알 수 있습니까?
다행히도 통계는 답을 제공합니다. 특히 통계적 null 테스트. GP의 맥락에서, 이들은 pretests라고 불렸다. 1 기본적으로 GP 프로세스의 결과를 무작위로 생성 된 거래 전략의 동등한 세트와 비교하려고합니다. GP에 의해 생성 된 전략이 무작위로 생성 된 전략보다 훨씬 우수하다면 GP 프로세스에 장점이 있음을 알 수 있습니다.
올바른 질문하기.
주어진 시장에 대한 거래 전략을 수립 할 때 항상 샘플 내 또는 훈련 데이터로 알려진 전략이 구축 된 데이터에는 표본 외 데이터로 알려진 보이지 않는 데이터와 관련된 정보가 포함되지 않을 수도 있습니다 또는 테스트 데이터. 즉, 표본 기간에 결과를 일반화 할 수있는 악용 가능한 패턴이나 기타 정보가 샘플 내에있을 수 없습니다. 예를 들어, 시장이 너무 효율적으로 이용 될 수 없거나 샘플 내 및 샘플 외 기간이 데이터를 나누는 불행한 선택 때문에 근본적으로 달라질 수 있습니다. 그렇다면 샘플 밖의 테스트는 임의의 기회의 결과 일뿐입니다.
특정 시장에 잠재 성이 있다고하더라도 GP 프로세스가 효과적으로 활용할 수 있는지 여부를 알아야합니다. GP 프로세스에 선택된 입력이 효과가 없거나 시장 지표를 악용하는 데 필요한 지표 또는 기타 요소를 사용할 수없는 경우 일 수 있습니다.
이러한 점을 염두에두고 사전 테스트의 목표는 거래 전략 개발에서 GP 사용에 관한 다음과 같은 두 가지 주요 질문에 답하는 것입니다. (1) 샘플 내 데이터 세그먼트에 거래 전략을 외부에 공개 할 수있는 정보가 포함되어 있습니까? (2) GP 프로세스가 그 정보를 효과적으로 활용할 수 있는가? GP 프로세스가 트레이딩 전략 개발 접근법으로 유용하기 위해서는이 두 가지 질문에 모두 긍정으로 대답해야합니다.
효과적인 사전 테스트.
위의 두 가지 질문에 답하기 위해 사용할 예비 테스트는 매우 간단합니다. GP 프로세스는 무작위로 생성 된 거래 전략으로 시작된다는 사실을 이용합니다. 이 초기 모집단은 생성 된 전략이 샘플 내 또는 샘플 밖의 데이터에서 어떻게 수행 될지 고려하지 않고 작성되므로 전략이 시장 데이터에 적합하지 않을 수 있습니다. 전략 수립의 유일한 제약은 (1) 전략 수립의 의미 규칙을 따라야하고, (2) 사용자가 선택한 설정 (지표, 주문 유형 등)을 활용해야한다는 것입니다.
전략 수립의 의미 론적 규칙은 전략이 기본적인 의미를 갖도록 보장합니다. 예를 들어, 마감일의 이동 평균과 비교하여 시간을 방지하고 확률 론적 발진기가 0 ~ 100 범위의 값 또는 동일한 범위의 다른 발진기와 비교되는지 확인합니다. 그러나 장기적인 상승 추세 속에서 단기적인 추세를 따르는 탈주 사고와 같은 직관적 인 거래 감각을 만드는 전략을 창안하지는 않습니다. 이는 GP 프로세스의 목적을 무효화 할 수 있습니다. GP 프로세스의 목적은 샘플 내 성능에 이점을 제공하는 경우 해당 규칙을 발견하도록 설계되었습니다.
초기 모집단이 무작위로 생성되었다는 것을 감안할 때, 샘플 내 및 표본 세그먼트에서의 성능은 유사하게 무작위 적입니다. 특히 수익성이있는 전략과 수익성이 낮은 전략을 기대할 수 있습니다. 대부분의 경우 초기 인구의 평균 성과는 이익이되지 않습니다.
GP 프로세스의 초기 세대가 여러 세대에 걸쳐 진화 한 후에 GP 프로세스가 효과적으로 작동하면 샘플 밖의 결과가 향상 될 것으로 기대합니다. 모집단의 일부 구성원 (즉, 전략)은 수익성이 있고 일부는 수익성이 떨어질 수 있지만 전반적으로 평균 샘플 이탈률은 향상됩니다. 우리의 사전 테스트는 진화 된 인구의 평균 밖 표본 성과를 초기 인구의 평균 표본 밖 성과와 비교하는 것입니다.
2 가지 측정 기준이 검토 될 것입니다 : 평균 샘플 이탈 순이익과 전략의 샘플 이탈 순이익은 적합도에 따라 가장 높은 순위가 매겨집니다. 적합성은 샘플 내 성능을 기반으로 계산되며 진화 과정의 주요 동인입니다. 이 연구에서는 사용되지 않을 샘플 밖의 성능을 기반으로 모집단을 재설정하는 옵션을 제외하고 적합성 계산 또는 빌드 프로세스의 다른 측면에서 샘플 밖의 데이터는 사용되지 않습니다.
진화 된 모집단의 평균 표본 밖 성과를 계산하려면 고유 한 전략 만 계산됩니다. 빌드 과정에서 일부 중복 전략은 피할 수없고 세대가 많을수록 복제가 더 많이 발생하는 경향이 있습니다. 양수 또는 음수 결과를 이중 계산하지 않고 결과를 바이어 싱하지 않으려면 성능을 기준으로 중복이 검색됩니다. 2 개의 전략에 대해 ( "복잡도"로 나열된 입력 수를 제외한) 모든 성능 메트릭이 각각 (수치 정밀도 내에서) 동일한 경우, 두 전략은 동일하게 간주 될 것이다. 이 방법은 (전략 코드를 기반으로) 구문 론적으로가 아니라 의미 론적으로 중복을 정의합니다. 예를 들어, 결과에 영향을 미치지 않는 코드 차이가있는 두 가지 전략은 중복으로 간주됩니다. 무작위로 생성 된 초기 인구의 크기는 진화 된 인구 집단의 고유 전략 수와 일치하도록 설정되었습니다.
진화 집단과 무작위로 생성 된 집단 사이의 비교는 Student 's t test를 사용하여 이루어졌으며, 모든 시험은 Adaptrade Builder 소프트웨어를 사용하여 수행되었습니다.
테스트 케이스 및 결과.
아래 표와 같이 네 개의 테스트 케이스가 실행되었습니다.
2 제한된 출입 제한 (주문이 초과 된 경우에만 채워짐) 및 고정 크기 통화 관리로 제한되는 주문 유형은 $ 12.50에서 $ 175 사이에 중단됩니다. 입장은 8:30 - 10:00 am (교환 시간) 사이에 가능합니다. 오후 3시 이후에 나가십시오. 복잡성에 대한 가중치가 작은 순이익, 거래 수 및 유의성 (동등한 가중치)을 극대화하십시오. 단순한 이동 평균, 최고, 최저, 가격 패턴, 위 / 아래 교차 및 지표 빌드 세트의 절대 값 만 표시합니다.
각각의 경우 인구 규모는 100이었고 5 세대가 운영되었다. 데이터는 샘플 내외에서 75/25로 분할되었습니다. 구축은 각 시장에 대해 25 회 반복되었으며, 최종 인구에 대한 평균 표본 밖 순이익 및 각 시험 후에 적자 인구에 대한 표본 순이익이 기록되었습니다. 위에서 설명한 것처럼 인구 규모가 진화 집단의 고유 전략 수와 일치하도록 설정된 초기 (무작위로 생성 된) 인구 25 개에 대해 동일한 결과가 기록되었습니다. 진화 집단의 순이익이 최초 집단의 순이익보다 큰지 확인하기 위해 Excel에서 계산 된대로 단측 꼬리표가없는 학생 t 검사를 사용하여 평균값을 비교했습니다.
모집단 규모는 건설 과정을 가속화하기 위해 작게 유지되었습니다. A small number of generations was used in order to ensure adequate variation in the final population. The markets and settings were chosen to illustrate the idea that how well the GP process works depends on such factors. For example, daily bars of the E-mini S&P were chosen because experience has shown that it is fairly easy to find good strategies for this market. Strategies on 1 min bars of the E-mini S&P are much more difficult to generate. The second test with 1 min bars of the E-mini was designed to find strategies with more, shorter trades -- more of a "scalping" strategy -- with a restricted set of indicators in the build set. The forex market was included for variety.
The results are shown below for the average population net profit. In all cases, the average out-of-sample (OOS) net profit across the evolved populations was significantly higher than the average OOS net profit of the randomly generated populations, suggesting that the GP process was effective in evolving strategies that improved upon random results. The fact that the average population net profit was not positive in three of the four cases is discussed in the next section.
3 Average value plus/minus one standard deviation; N = 25 in all cases.
The results for the fittest population member are shown below. In the first two cases, the OOS net profit of the fittest member is greater than that of the average net profit, as can seen by comparing the results in the two tables. This is consistent with the prior results in that it suggests a positive relationship between the fitness, which is calculated on the in-sample data, and the OOS net profit. In all cases except for the third one, the OOS net profit of the fittest member is greater in the evolved population than in the randomly generated population, which is also consistent with the prior results, although due to the high standard deviation, the results are not statistically significant.
The table also shows the percentage of runs where the fittest member had a positive net profit out-of-sample. In three of the four cases, there were more runs where this occurred for the evolved population than was the case for the random populations. For example, for the second test case, in 44% of the evolved populations, the fittest member was profitable OOS, whereas the fittest member was profitable OOS in only 28% of the randomly generated populations.
The results that indicate a potential problem with the GP process are highlighted below in red. The third test case has the most problems. Here, the average OOS net profit of the fittest member in the evolved population was less than the average OOS net profit of the evolved population. This suggests that the fitness was not a good indication of future performance, which contradicts the fact that the OOS net profit significantly improved during the build process. Moreover, the average OOS net profit of the fittest member in test case three was actually lower than the average OOS net profit of the fittest member among the random populations. Lastly, there were fewer builds where the OOS net profit of the fittest member was profitable for the evolved populations than in the random populations. All of these results suggest that, although the build process improved upon the initial population, it would be difficult to use the results to choose a good strategy going forward.
4 Average value plus/minus one standard deviation; N = 25 in all cases.
What it All Means.
The pretest was designed to determine whether or not the GP process was capable of finding and exploiting information in the in-sample period that could be generalized to the out-of-sample (OOS) period. The good news is that in all four test cases, the pretest results suggest that this is in fact the case. The average OOS net profit of the evolved populations was significantly higher than the average OOS net profit of the randomly generated populations in each case.
The bad news is that just because the GP process improves upon the initial population, as measured by the OOS net profit, doesn't mean the resulting strategies are tradable or even profitable. It's just difficult to find good strategies for some markets, as evidenced by the average results for 1 minute bars of the E-mini S&P and 30 minute bars of the EURUSD. In these cases, not only was the average net profit negative, but so was the net profit of the fittest member. However, at least for the first two test cases, the trends were in the right direction. The fact that the average net profit for the fittest member was greater than the average net profit suggests a positive correlation between in-sample and OOS results, which, in turn, suggests it makes sense to choose the strategy based on how well it does historically. Even though the second case didn't produce profitable OOS results based on the fittest member, given that the trends are good, it might be possible to use a larger population with more generations to achieve better results.
The third test case, as discussed in the prior section, presents a counter-example. In this case, although the GP process significantly improved the average OOS net profit, the lack of correlation between the fitness and the OOS net profit suggests the historical results would not be a good guide in selecting a member of the evolved population for trading forward. However, the fact that the GP process was successful in improving the OOS results overall begs the question: why is the fitness not a good indication of OOS performance if the build process, which is based on fitness, was generally successful? The answer may be that the fittest member of the population may be too fit. In other words, while the population overall improved during the generations of GP, the fittest member may have been over-fit to the in-sample data. By being over-fit, it no longer generalized well to the unseen (OOS) data.
This is supported by the fact that in the random populations, the fittest strategy was always better OOS than the average strategy, which suggests a positive correlation between fitness and OOS performance among the randomly generated strategies. Assuming the in-sample data contains information that can be exploited and generalized to the OOS period, which has already been demonstrated, this is what would be expected when the strategies are not over-fit, which is most likely the case for the randomly generated populations. Recall that the third test case differs from the second one, which was not over-fit, only in terms of the settings, not in the market data. This suggests that if the strategies are being over-fit, it may only be necessary to change the settings and try again.
The quality of the results for the fourth test case (EURUSD) lies somewhere between that of the first and third test cases. Because the average OOS net profit of the fittest member was not better than the average OOS net profit, it's possible that the fittest member is over-fit.
The value of performing a pretest prior to performing a full GP is that it provides some indication of how likely it is that the intended effort will not be wasted. While you could always forge ahead and verify everything with real-time tracking or a separate set of out-of-sample data, without knowing whether or not the GP process is inherently well suited to the market and settings, it may take much longer to infer that the process is not working correctly.
Chen, Shu-Heng and Navet, Nicolas, Failure of Genetic-Programming Induced Trading Strategies: Distinquishing between Efficient Markets and Inefficient Algorithms, Springer Verlag, New York, 2007.
*This article appeared in the April 2012 issue of the Adaptrade Software newsletter.
HYPOTHETICAL 또는 SIMULATED PERFORMANCE 결과에는 고유 한 내재 된 제한이 있습니다. 실제 성과 기록과 달리, 시뮬레이션 된 결과는 실제 거래를 나타내지 않습니다. 또한 거래가 실제로 실행되지 않았기 때문에 결과가 유동성 부족과 같은 특정 시장 요인에 영향을 미치거나 과다 또는 과소 보상을받을 수 있습니다. 시뮬레이션 된 거래 프로그램은 일반적으로 통보의 이익을 고려하여 설계되었다는 사실을 인정합니다. 어떠한 계정도 이익이나 손실을 달성 할 가능성이있는 것으로 나타나지 않습니다.
Adaptrade Software의 새로운 개발, 뉴스 및 특별 제안에 대한 정보를 얻으려면 당사 목록에 가입하십시오. 고맙습니다.
저작권 © 2004-2015 Adaptrade Software. 판권 소유.

Comments

Popular posts from this blog

Peluang 거래 forex 하리 ini

Guadagna col forex

Iforex 진짜 오 에스 파파