유전자 알고리즘을 이용한 거래 전략 생성
App Store를 통해 가져 오기 우리의 응용 프로그램 에서이 게시물을 읽으십시오!
금융 시장 예측을위한 유전 알고리즘은 얼마나 유용합니까?
일반적으로 진화 알고리즘의 적용과 특히 유전자 알고리즘의 "성공"에 대한 문헌은 금융 시장에 많이 있습니다.
그러나이 문헌을 읽을 때마다 나는 불편 함을 느낍니다. 유전 알고리즘은 기존 데이터에 적합하지 않을 수 있습니다. 조합이 너무 많아서 작동하는 몇 가지 규칙을 생각해내는 것은 쉽습니다. 그것은 강력하지 않을 수 있으며이 규칙이 작동하는 이유에 대한 일관된 설명이 없으며 이러한 규칙은 "테스트 결과 작동하기 때문에 작동합니다"라는 단순한 (원형) 주장을 넘어서지 않습니다.
금융에서 유전자 알고리즘의 적용에 대한 현재의 합의는 무엇인가?
GA에서 파생 된 전략을 허용하는 헤지 펀드에서 일했습니다. 안전을 위해 모든 모델을 생산 전부터 제출하여 백 테스팅에서 여전히 작동하는지 확인해야했습니다. 따라서 모델이 실행되기까지 최대 몇 개월의 지연이있을 수 있습니다.
또한 샘플 유니버스를 분리하는 데 도움이됩니다. GA 분석을 위해 가능한 주식의 무작위 절반을 사용하고 확인 테스트를 위해 나머지 절반을 사용하십시오.
유전자 알고리즘이 가지고있는 가장 큰 문제는 지나치게 치우쳐 있고, 데이터 기웃 거리는 편견이며, 블랙 박스 (Neural Networks와 많이 다르지는 않지만 여전히 구현 방법에 달려 있음)라고 생각합니다.
나는 그들이 많이 사용되지 않는다고 생각한다. 나는 헤지 펀드를 사용하는 헤지 펀드가 몇 개 있다고 생각합니다. (하지만 그들은 종이를 받아들이는 데 여전히 유용합니다 ;-)
BTW : 금융 분야에서는 결코 실제적인 합의가 없습니다. 모두가 모두를 능가하려고합니다. 그래서 흥미 롭습니다. (또는 다른 방법을 넣으십시오 : 이것이 구매자와 판매자가있는 이유입니다 - 실제 합의는 충돌입니다 ;-)
나는 GA를 모든 종류의 것에 적용했습니다. 나는 패턴이 실제로 존재하고 어떤 물리적 구조가 존재한다는 것을 알고있는 결정론적인 세계에서 약간의 성공을 거두었습니다 (지진 분석, 진동 분석, 재고 계산 등). 작동 한 GA 모델을 찾았 으면 실제 작업이 시작되었습니다. 그것이 왜 행동했는지 알아내는 것.
또한 재무 데이터에서 많은 양의 GA 쓰레기를 생성 해 역진으로 보았지만 쓸모가 없었습니다.
기술은 금융에서 문제가되지 않습니다. 구조입니다. 그리고 물론, 충분한 데이터 (유용한 데이터).
GAs가 경험적이며, 이론적 토대를 가지지 않고, 블랙 박스 (black-box) 같은 방식을 사용하는지에 대해 이야기하는 많은 사람들이 있습니다. 나는 달라 지길 간청한다! 진화론의 은유를 통해 시장을 바라 보는 경제학의 모든 분야가 있습니다 : 진화론자!
나는 Dopfer 책인 The Evolutionary Foundations of Economics를 소개로 추천한다. cambridge. org/gb/knowledge/isbn/item1158033?site_locale=en_GB.
시장이 기본적으로 거대한 카지노 또는 게임이라는 철학적 견해가 있다면 GA는 단순히 블랙 박스에 불과하며 이론적 근거는 없습니다. 그러나 시장이 생존의 가장 적합한 생태계라는 철학을 갖고 있다면 GA는 이론적 토대를 많이 갖고 있으며 기업 종별, 시장 생태학, 포트폴리오 게놈, 거래 환경 및 기타 요인을 논의하는 것이 합리적입니다. 처럼.
데이터 스누핑 바이어스와 미래를 예측하기 위해 과거를 사용하는 모든 잠재적 함의를 피하면 "올바른"솔루션을 찾기 위해 유전 알고리즘을 신뢰하는 것은 정량적이든 아니든 적극적으로 포트폴리오를 관리 할 때와 똑같은 방식으로 진행됩니다 또는 자유 재량. 시장 효율성을 믿는다면 능동적 인 관리에서 거래 비용을 증가시키는 것은 비논리적입니다. 그러나 구조적이고 & amp; 심리적 패턴 또는 "결함"이 악용 될 수 있으며, 결과적으로 수익을 창출 할 수있는 전략을 연구하고 구현하는 데있어 논리적 인 선택은 능동적 인 관리입니다.
GA에서 파생 된 전략을 실행하는 것은 시장 효율성에 대한 암묵적인 내기입니다. 기본적으로 말하기를 "나는 어떤 이유에서 발생하는 잘못된 평가가 있다고 생각합니다."(불합리한 사람들의 대량, 잘못된 인센티브로 인해 뮤추얼 펀드를 모으는 것 등) "이 GA를 실행하면이 대량의 데이터를 분류 할 수 있습니다. 내가 할 수있는 것보다 훨씬 빨리. "
저는 여러분 모두 (저는 프로그래머 일뿐입니다)의 "퀀텀 전문가"는 아니지만, 여기 제가 찾은 것이 있습니다.
1.) 제약 조건을 올바르게 설정하면 결과가 놀랍습니다. 예 : 매우 높은 수익률과 낮은 위험을 지닌 포트폴리오를 얻을 수 있습니다. 그러나 좋은 결과를 얻으려면 상충되는 제약 조건 (예 : 부모가 많은 자녀를 가질 수 있지만 한 세대의 총 어린이 수가 특정 수를 초과 할 수 없음)을 갖는 것이 매우 중요합니다.
2.) GA가 지나치게 적합하다고 생각하지 않습니다. 오히려 "나는 너무 많은 유전자 (주식)를 가지고 있기 때문에 몇 가지를 골라서 가끔씩 돌연변이를 제외하고는 이것들을 고수 할 것"이라고 말한다. 그런 다음, 세대를 넘어서서 시작한 "유전자"(a. k.a) 주식과 함께 시작하여 (최적의 포유류를 만드는 것, 그리고 소수의 돌연변이를 가지고) 시작한 것을 최대한 활용하는 방법을 찾아냅니다. 가정용 창고에있는 건축가 같아. Home Depot에는 많은 도구가 있지만 빌더는 몇 가지 도구 만 선택합니다.
IMHO, Genetic Algorithms는 인간의 두뇌가 할 수없는 문제를 해결하는 놀라운 도구입니다.
GA (과거 데이터 만 사용하여 지표의 시간 계열을 생성)를 올바르게 백 테스트하면 결과를 신뢰할 수 있습니다.
그러나 유전 알고리즘은 순전히 경험적이며 따라서 나는 그것들을 사용하는 것이 매우 편하다고 느끼지 않습니다.
자신의 세대의 선도적 인 "정보 이론가"인 토마스 카가마 (Thomas Cover)는 진정한 유전자 알고리즘으로서 데이터 압축 및 포트폴리오 배분과 같은 것들에 대한 "유니버설"접근법으로 여겨졌다.
진화에는 적합하거나 훈련 할 수있는 매개 변수가 없습니다. 왜 진정한 유전자 알고리즘을 사용해야합니까?
보편적 접근법은 데이터의 기본 분포에 대한 가정을하지 않습니다. 그들은 패턴이나 다른 어떤 것으로부터 미래를 예측하려고 시도하지 않습니다.
유니버설 접근법의 "이론적 인"효과 (중요한 구현 과제는 내 최근의 질문 : 유니버설 포트폴리오의 기하학? 을 참조하십시오)은 진화가 요구하는 것을 수행합니다. 가장 빠르고, 가장 똑똑하고, 강한 사람이 반드시 다음 세대에서 생존 할 필요는 없습니다. 진화는 유전자, 유기체, 밈, 포트폴리오 또는 데이터 압축 알고리즘이 다음에 일어날 일에 가장 쉽게 적응할 수 있도록하는 것을 선호합니다.
또한 이러한 접근 방식은 가정을 만들지 않고 매개 변수가 아닌 방식으로 작동하기 때문에 모든 기록 데이터를 포함하여 모든 샘플을 out-of-sample로 간주 할 수 있습니다.
확실하게 그들은 한계를 가지고 있습니다. 분명히 우리는 우리가 우리의 영역에서 직면하는 모든 종류의 문제에 대해 일할 수는 없지만, 이런, 그 것들에 대해 얼마나 흥미로운 생각을 할 수 있습니까?
음, 유전자 알고리즘의 목표는 너무 길기 때문에 모든 가능한 시나리오를 거치지 않고 최상의 솔루션을 찾는 것입니다. 물론 커브 피팅이 목표입니다.
스노우 크론.
무료 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를 얻고 순차 학습을 이동할 수 있습니다.
유전 알고리즘을 사용하여 기술 거래 규칙 찾기 1.
우리는 유전 알고리즘을 사용하여 1928 년에서 1995 년까지의 일일 가격을 사용하여 S & P 500 지수에 대한 기술 거래 규칙을 학습합니다. 거래 비용 후, 규칙은 외환 시장에서 간단한 구매 및 보류 전략에 대해 일관된 초과 수익을 얻지 못합니다. of-sample 테스트 기간. 이 규칙은 일일 수익률이 긍정적이고 변동성이 낮고 그 반대가 사실 일 때 지수에 포함될 기간을 식별 할 수 있습니다. 이러한 후자의 결과는 주가 지수 수익률의 낮은 순차적 상관 관계에 의해 설명 될 수 있습니다.
JEL 분류.
이 기사를 찾고 액세스 할 수있는 옵션을 선택하십시오.
로그인 자격 증명이나 기관을 통해 액세스 할 수 있는지 확인하십시오.
태그 : 유전 알고리즘을 사용하여 거래 전략 생성.
Bitcoin 포크 & # 8211; 어디에 투자해야합니까?
이 글을 쓰는 시점에서 Bitcoin (BTC)은 사상 최고를 기록했습니다. 미쳤어?
이 새로운 돈은 어디에서 오는거야?
Bitcoin 탱크가 있다면 어디로 갈 것입니까?
내 BTC를 판매하고 다른 곳에 투자해야합니까, 아니면 달의 Lambo shop으로 향하고 있습니까?
위 / 아래 / 옆으로가는 경우 어떻게해야합니까?
이 들어오는 Bitcoin 포크는 어떻게됩니까?
이들은 지금 모든 사람들의 마음을 통해 갈 가능성이 가장 큰 질문입니다. 나는 내 마음이 대체 우주가 어떻게 생겼는지에 대한 과학 채널의 그래픽과 비슷한 어떤 가능성을 가진 트위스티드 포크의 토끼 구멍을 뛰어 내려 왔다는 것을 알고있다.
이제는 가장 단순한 형태로 잠시 멈추게하십시오.
Bitcoin은 위 또는 아래로 이동할 수 있습니다. 어떤 사람들은 세 번째 옵션 (옆으로)이 있다고 주장하지만, 어려운 현실은 시장의 유일한 변화가 위 아래라는 것입니다. 우리가 여기에서 선택할 수있는 마음가짐은 2 가지 밖에 없으며 (강세와 약세), 결정할 수있는 유일한 방법은 시장을 둘러싼 다른 사실을 살펴 보는 것입니다. 들어오는 하드 Bitcoin 포크는 10 월 25 일에 Bitcoin이 다시 분리되어 BitcoinGold (BTG)를 만듭니다. 몇 달 되감습니다. 8 월 초, Bitcoin Cash (BCC)를 만든 어려운 Bitcoin 포크가있었습니다. 그 당시에 일어난 일을 살펴보면 왜 Bitcoin이 현재 매우 완고한 지 이해할 수있게되며이 하드 포크 이후에 어떤 일이 일어날 지 이해할 수 있습니다.
8 월의 하드 포크 이전에는 BTC가 최근 3000 ~ 1800 달러까지 폭락했다. 이것은 약 40 %의 딥이었습니다. 그 당시에는 의미가있었습니다. 상인들은 포크가 가져올 수있는 것에 대해 확신하지 못했습니다. Bitcoin 현금이 새로운 디지털 Gold가되어 BTC를 쓸모 없게 만들지 않습니까? 아니면 Bitcoin이 상승 추세를 강화하고 계속 유지할 것입니까? 그 다음에 일어난 일은 황홀하고 좌익 투자자들은 기절했습니다. BTC는 예상치를 추락 시켰고 5000 달러의 최고 기록을 갱신했습니다.
투자자들은 이제 또 하나의 포크와 얇은 공기에서 만들어 질 또 다른 통화에 대해 경고를 받았다. 그들은 이것을 이용하여 유사한 결과가 나타날 것으로 기대하고있다. altcoins의 보유를 가진 모두는 판매하고 지금 bitcoin를 붙드는 다. 공급은 수요에 도달하는 데 어려움을 겪고 있으며, 물론 & # 8211; 가격은 이것을 반영합니다. 대체 동전은 고군분투 중이며 Bitcoin은 호황을 누리고 있습니다. 더 나은 & # 8211; BTC를 가진 사람이라면 Bitcoin Gold를 무료로 얻을 수 있습니다! 얼마나 멋진 지. 포프 (cryptocurrency)에 수십억 달러 상당의 가치가 있습니다. 이전 이벤트를 기반으로합니다. 낙관적 인 추세가 지속될 가능성은 어느 정도입니까?
개인적으로 나는 슬림하고 아무 말도하지 않는다. 시장은 25-30 %의 조정이 필요합니다.
이 포크는 마지막 포크와 정반대의 위치에 있으며 시장 판매업자가 선적 할 것입니다.
포크가 시작되면 BTC는 투자자들이 자신들의 이윤을 얻고 지금은 값싼 동전에 투자함으로써 약세를 보일 것입니다. 게으른 장기 투자자들이 이익을 잃고, 판매업자가 이익을 얻고, 상인들이 불안한 일일 시장을 이용하게되고, 삶은 계속 될 것입니다.
내가 어떻게 생각하니?
이러한 모든 점을 염두에두고 나는 상인으로 생각해야 할 논리적 인 생각을 가지고 그 감정을 잊어 버리고 현재 값이 싼 알트 동전 시장을 이용한다. 한 가지 확실한 점은 변경 사항입니다. 시장이 변할 것입니다. 나는 승리의 측면에서 내가 확신 할 수있는 최고의 확률을 얻는다.
시장의 어느쪽에있을 것입니까?
내 Youtube 채널을 확인하십시오.
내가 투자 한 모든 동전에 관한 다음 글을 기대해주십시오!
Comments
Post a Comment