거래 시스템 최적화
거래 시스템 최적화
참고 : 이것은 상당히 고급 주제입니다. 먼저 이전 AFL 자습서를 읽으십시오.
최적화의 기본 개념은 간단합니다. 먼저 거래 시스템을 가져야합니다. 예를 들어 단순한 이동 평균 크로스 오버가 될 수 있습니다. 거의 모든 시스템에는 주어진 시스템의 동작 방식을 결정하는 몇 가지 매개 변수 (평균 기간)가 있습니다 (예 : 장기 또는 단기에 적합, 변동성이 큰 주식에 어떻게 반응하는지 등). 최적화는 주어진 기호 (또는 기호 포트폴리오)에 대해 해당 매개 변수의 최적 값을 찾는 프로세스입니다 (시스템에서 최대 이익을 얻음). AmiBroker는 한 번에 여러 기호로 시스템을 최적화 할 수있는 아주 소수의 프로그램 중 하나입니다.
시스템을 최적화하려면 최적화 할 매개 변수를 최대 10 개까지 정의해야합니다. 매개 변수의 최소 및 최대 허용 값을 결정하고이 값을 갱신해야하는 단위를 결정합니다. 그런 다음 AmiBroker는 매개 변수 값의 가능한 모든 조합을 사용하여 시스템에서 다중 백 테스트를 수행합니다. 이 프로세스가 완료되면 AmiBroker는 순이익별로 정렬 된 결과 목록을 표시합니다. 최상의 결과를 제공하는 최적화 매개 변수의 값을 볼 수 있습니다.
AFL 수식 작성.
백 테스터의 최적화는 새로운 기능인 최적화를 통해 지원됩니다. 이 함수의 구문은 다음과 같습니다.
변수 - 최적화 함수에 의해 반환 된 값이 할당되는 일반 AFL 변수입니다.
일반적인 backtesting, scanning, exploration 및 comentary 모드에서는 optimize 함수가 기본값을 반환하므로 위의 함수 호출은 다음과 같습니다. variable = default;
최적화 모드에서 최적화 함수는 스텝 스테핑을 사용하여 최소값에서 최대 값까지 (연속적으로) 연속적인 값을 반환합니다.
& quot; 설명 & quot; 최적화 변수를 식별하는 데 사용되며 최적화 결과 목록에 열 이름으로 표시되는 문자열입니다.
기본값은 탐색, 표시기, 주석, 스캔 및 일반 백 테스트 모드에서 함수 반환을 최적화하는 기본값입니다.
min은 최적화되는 변수의 최소값입니다.
max는 최적화되는 변수의 최대 값입니다.
step은 min에서 max로 값을 증가시키는 데 사용되는 간격입니다.
AmiBroker는 함수를 최적화하기 위해 최대 64 개의 호출을 지원하므로 (최대 64 개의 최적화 변수까지), 철저한 최적화를 사용하는 경우 최적화 변수의 수를 극소수로 제한하는 것이 좋습니다. 최적화를위한 각 호출은 생성 (최대 - 최소) / 단계 최적화 루프와 최적화를위한 다중 호출을 통해 필요한 실행 횟수를 곱합니다. 예를 들어 10 단계를 사용하여 두 개의 매개 변수를 최적화하려면 10 * 10 = 100 최적화 루프가 필요합니다. 각 호출이 새로운 최적화 루프를 생성 할 때 수식의 시작 부분에서 변수 당 오직 한 번만 호출하십시오. 다중 심볼 최적화는 AmiBroker가 완벽하게 지원합니다. 최대 검색 공간은 2 64 (10 19 = 10,000,000,000,000,000,000) 조합입니다.
1. 단일 변수 최적화 :
sigavg = 최적화 ( "신호 평균", 9, 2, 20, 1);
매도 = 십자가 (신호 (12, 26, sigavg), MACD (12, 26));
2. 2 변수 최적화 (3D 차트 작성에 적합)
per = Optimize ( "per", 2, 5, 50, 1);
Level = Optimize ( "level", 2, 2, 150, 4);
매도 = 십자가 (수준, CCI (당));
3. 다중 (3) 변수 최적화 :
mfast = 최적화 ( "MACD Fast", 12, 8, 16, 1);
mslow = 최적화 ( "MACD Slow", 26, 17, 30, 1);
sigavg = 최적화 ( "신호 평균", 9, 2, 20, 1);
구입 = 십자가 (MACD (mfast, mslow), 신호 (mfast, mslow, sigavg));
매도 = 십자가 (신호 (mfast, mslow, sigavg), MACD (mfast, mslow));
수식 입력 후 & quot; 자동 분석 & quot;에서 최적화 버튼을 클릭하십시오. 창문. AmiBroker는 가능한 모든 최적화 변수의 조합을 테스트하고 결과를 목록에보고합니다. 최적화가 완료되면 결과 목록이 Net % 이익별로 정렬되어 표시됩니다. 결과 목록에서 결과를 정렬 할 수 있기 때문에 최저 손익, 최저 거래 횟수, 최대 이익 요인, 최저 시장 노출 및 최고 위험 조정 연간 수익률에 대한 매개 변수의 최적 값을 쉽게 얻을 수 있습니다. 결과 목록의 마지막 열은 주어진 테스트의 최적화 변수 값을 나타냅니다.
필요에 맞는 매개 변수 조합을 결정할 때 최적의 함수 호출의 기본값을 최적의 값으로 바꾸면됩니다. 현재 단계에서 직접 수식 편집 창 (함수 호출 최적화 함수의 두 번째 매개 변수)에 직접 입력해야합니다.
3D 애니메이션 최적화 차트 표시.
3D 최적화 차트를 표시하려면 먼저 두 변수 최적화를 실행해야합니다. 두 개의 변수 최적화에는 두 개의 Optimize () 함수 호출이있는 수식이 필요합니다. 예제 2 변수 최적화 공식은 다음과 같습니다.
per = Optimize ( "per", 2, 5, 50, 1);
Level = Optimize ( "level", 2, 2, 150, 4);
매도 = 십자가 (수준, CCI (당));
수식을 입력 한 후 & quot; 최적화 & quot;를 클릭해야합니다. 단추.
최적화가 완료되면 최적화 버튼의 드롭 다운 화살표를 클릭하고 3D 최적화 그래프보기를 선택해야합니다. 몇 초 안에 다채로운 3 차원 표면 플롯이 3D 차트 뷰어 창에 나타납니다. 위 공식을 사용하여 생성 된 3D 차트의 예가 아래와 같습니다.
기본적으로 3D 차트에는 최적화 변수에 대한 순 이익의 값이 표시됩니다. 그러나 최적화 결과 테이블의 모든 열에 대해 3D 표면 형 차트를 그릴 수 있습니다. 열 헤더를 클릭하여 정렬하십시오 (파란색 화살표가 나타나 최적화 결과가 선택된 열로 정렬됨을 나타냄). 그런 다음 3D 최적화 그래프보기를 다시 선택하십시오.
시스템의 매개 변수가 거래 실적에 미치는 영향을 시각화함으로써 "깨지기 쉬운"매개 변수를 생성하는 매개 변수 값을보다 쉽게 결정할 수 있습니다. 및 "견고한" 시스템 성능. 견고한 설정은 3D 그래프에서 서페이스 플롯의 갑작스러운 변화가 아닌 점진적인 영역을 나타냅니다. 3D 최적화 차트는 커브 피팅을 방지하는 훌륭한 도구입니다. 커브 피팅 (또는 과다 최적화)은 시스템이 필요한 것보다 더 복잡 할 때 발생하며, 모든 복잡성은 결코 다시는 발생할 수없는 시장 상황에 초점을 맞추고 있습니다. 3D 최적화 차트의 급격한 변화 (또는 스파이크)는 최적화 최적화되지 않은 영역을 명확하게 보여줍니다. 실제 거래를 위해 3D 차트에서 넓고 넓은 고원을 생산하는 매개 변수 영역을 선택해야합니다. 이익 급증을 일으키는 매개 변수 세트는 실제 거래에서 안정적으로 작동하지 않습니다.
3D 차트 뷰어 컨트롤.
AmiBroker의 3D 차트 뷰어는 전체 그래프 회전 및 애니메이션으로 전체보기 기능을 제공합니다. 이제 모든 가능한 관점에서 시스템 결과를 볼 수 있습니다. 마우스, 툴바 및 키보드 단축키를 사용하여보다 쉽게 찾을 수있는 차트의 위치 및 기타 매개 변수를 제어 할 수 있습니다. 아래에서 목록을 찾을 수 있습니다.
- 회전하려면 - 왼쪽 마우스 버튼을 누른 상태에서 X / Y 방향으로 움직입니다.
- 확대, 축소 - 마우스 오른쪽 버튼을 누른 상태에서 X / Y 방향으로 이동합니다.
- 이동 (번역) - 왼쪽 마우스 버튼과 CTRL 키를 누른 상태에서 X / Y 방향으로 이동합니다.
- 애니메이트하려면 - 왼쪽 마우스 버튼을 누른 상태에서 드래그하면서 빠르게 드래그하고 버튼을 놓습니다.
공간 - 애니메이션 효과 (자동 회전)
왼쪽 화살표 키 - 회전합니다. 왼쪽.
오른쪽 화살표 키 - vert. 권리.
화살표 키 - 회전합니다. 쪽으로.
아래쪽 화살표 키 - 수평선을 회전합니다. 하위.
NUMPAD + (더하기) - 근처 (확대)
NUMPAD - (MINUS) - 멀리 (축소)
NUMPAD 4 - 왼쪽으로 이동합니다.
NUMPAD 6 - 오른쪽으로 이동하십시오.
NUMPAD 8 - 위로 이동하십시오.
NUMPAD 2 - 아래로 이동하십시오.
PAGE UP - 수위 상승.
PAGE DOWN - 수위가 내려갑니다.
스마트 한 (비 철저한) 최적화.
AmiBroker는 이제 정규적이고 철저한 검색 외에도 스마트 한 (비 철저한) 최적화 기능을 제공합니다. 비 포괄적 검색은 주어진 거래 시스템의 모든 매개 변수 조합의 수가 단순히 너무 커서 포괄적 인 검색이 가능하지 않은 경우 유용합니다.
철저한 검색은 사용하기에 합당한 한 완벽하게 훌륭합니다. 1에서 100까지 범위가 각각 2 개의 매개 변수가 있다고 가정 해 보겠습니다 (1 단계).
10000 개의 조합입니다. 철저한 검색으로 완벽하게 사용할 수 있습니다. 이제 3 개의 매개 변수를 사용하면 1 백만 가지 조합을 얻을 수 있습니다. 철저한 검색 (그래도 수 있습니다)은 여전히 유효합니다. 4 개의 매개 변수로 1 억 개의 조합을 가지며 5 개의 매개 변수 (1..100)를 사용하면 100 억 개의 조합을 가질 수 있습니다. 이 경우 모든 항목을 확인하는 데 너무 많은 시간이 걸릴 수 있으며, 이는 철저한 검색을 사용하여 합리적인 시간에 해결할 수없는 문제를 비 철저한 스마트 검색 방법으로 해결할 수있는 영역입니다.
여기에 새로운 비 철저한 옵티 마이저 (이 경우 CMA-ES)를 사용하는 방법에 대한 간단한 설명이 있습니다.
1. 수식 편집기에서 수식을 엽니 다.
2.이 한 줄을 수식의 맨 위에 추가하십시오 :
OptimizerSetEngine ( "cmae"); // & quot; spso & quot;를 사용할 수도 있습니다. 또는 "trib" 이리.
3. (선택 사항) 자동 분석, 설정, & quot; 도보로 이동 & quot;에서 최적화 대상을 선택하십시오. 탭, 최적화 대상 필드. 이 단계를 건너 뛰면 CAR / MDD (복합 연간 수익률을 최대 % 하락률로 나눈 값)로 최적화됩니다.
이제이 공식을 사용하여 최적화를 실행하면 새로운 진화 (비 포괄적) CMA-ES 옵티 마이저가 사용됩니다.
어떻게 작동합니까?
최적화는 주어진 함수의 최소 (또는 최대)를 찾는 과정입니다. 모든 거래 시스템은 특정 수의 인수의 함수로 간주 될 수 있습니다. 입력은 매개 변수 및 견적 데이터이며 출력은 최적화 대상입니다.
(CAR / MDD). 그리고 주어진 기능의 최대를 찾고 있습니다.
일부 스마트 최적화 알고리즘은 자연 (동물 행동) - PSO 알고리즘 또는 생물학적 프로세스 - 유전자 알고리즘,
일부는 인간이 파생 한 수학적 개념 인 CMA-ES를 기반으로합니다.
이러한 알고리즘은 금융을 포함하여 다양한 분야에서 사용됩니다. & quot; PSO finance & quot;를 입력하십시오. 또는 "CMA-ES finance" Google에서는 많은 정보를 찾을 수 있습니다.
비 - 철저 (또는 "스마트") 방법은 글로벌 또는 로컬 최적을 발견 할 것이다. 목표는 물론 글로벌 목표를 찾는 것입니다. 단 하나의 첨예 한 피크가있는 경우입니다.
zillions 매개 변수 조합 중 비 - 철저한 방법은이 단일 피크를 찾지 못할 수도 있지만, 그 결과를 불안정하고 너무 실제 거래에서 복제 할 수 없기 때문에 단일 날카로운 피크를 찾는 것은 거래에 쓸모가 없습니다. 최적화 과정에서 우리는 안정된 파라미터를 가진 고원 지대를 찾고 있으며 지능적인 방법이 빛나는 영역입니다.
비 - 철저한 검색에 의해 사용 된 알고리즘은 다음과 같습니다 :
a) 옵티마이 저는 매개 변수 세트의 시작 (일반적으로 임의의) 시작 인구를 생성합니다.
b) 백 테스트는 모집단에서 설정된 각 매개 변수에 대해 AmiBroker에 의해 수행됩니다.
c) 백 테스트의 결과는 알고리즘의 논리에 따라 평가됩니다.
새로운 인구는 결과의 진화에 기초하여 생성되며,
d) 새로운 최상의 것이 발견되면 - 그것을 저장하고 기준을 충족시킬 때까지 b) 단계로 진행하십시오.
정지 기준의 예로는 다음을들 수 있습니다.
a) 지정된 최대 반복에 도달.
b) 마지막 X 세대의 최상의 객관적인 값의 범위가 0 인 경우 중지합니다.
c) 주축 방향으로 0.1 표준 편차 벡터를 더하면 목표 값의 값이 변하지 않는다.
AmiBroker에서 스마트 (비 한정적인) 옵티 마이저를 사용하려면 OptimizerSetEngine 함수를 사용하여 AFL 수식에 사용할 옵티 마이저 엔진을 지정해야합니다.
이 함수는 이름으로 정의 된 외부 최적화 엔진을 선택합니다. AmiBroker는 현재 Standard Particle Swarm Optimizer ( "spso"), Tribes ( "trib") 및 CMA-ES ( "cmae")의 3 가지 엔진과 함께 제공됩니다 - 중괄호 안에있는 이름은 OptimizerSetEngine 호출에 사용됩니다.
최적화 엔진을 선택하는 것 외에도 일부 내부 매개 변수를 설정할 수 있습니다. 이렇게하려면 OptimizerSetOption 함수를 사용하십시오.
OptimizerSetOption ( "name", value) 함수.
이 함수는 외부 최적화 엔진에 대한 추가 매개 변수를 설정합니다. 매개 변수는 엔진에 따라 다릅니다.
AmiBroker (SPSO, Trib, CMAE)와 함께 제공되는 세 가지 최적화 도구는 두 개의 매개 변수를 지원합니다 : "실행" (런 횟수) 및 "MaxEval" (단일 실행 당 최대 평가 (테스트)). 각 매개 변수의 동작은 엔진에 따라 다르므로 동일한 값이 사용되는 엔진에 따라 다른 결과가 발생할 수 있습니다.
Runs와 MaxEval의 차이점은 다음과 같습니다. 평가 (또는 테스트)는 단일 백 테스트 (또는 목적 함수 값의 평가)입니다.
RUN은 (최적의 값을 찾는) 알고리즘의 하나의 완전한 실행입니다 - 일반적으로 많은 테스트 (평가)가 필요합니다.
각각은 새로운 시작 (새로운 초기 랜덤 모집단)으로부터 전체 최적화 프로세스를 간단히 복구합니다.
따라서 각 실행은 다른 로컬 최대 / 분을 찾도록 유도 할 수 있습니다 (글로벌 하나를 찾지 못하면). 따라서 Runs 매개 변수는 후속 알고리즘 실행 횟수를 정의합니다. MaxEval은 단일 실행의 평가 (bactest)의 최대 수입니다.
문제가 상대적으로 간단하고 1000 개의 테스트로 글로벌 최대 값을 찾으면 5x1000은 글로벌 최대 값을 찾을 가능성이 큽니다.
로컬 맥스에 걸릴 확률이 더 적기 때문에 후속 실행은 다른 초기 무작위 채우기부터 시작됩니다.
매개 변수 값을 선택하는 것은 까다로울 수 있습니다. 테스트중인 문제, 복잡성 등에 따라 다릅니다.
확률 론적 인 비 철저한 방법은 테스트의 수가 적 으면 테스트 횟수에 관계없이 글로벌 최대 / 최소 찾기를 보장하지 않습니다.
철저한 것보다. 가장 쉬운 대답은 완료하는 데 필요한 시간면에서 합리적인만큼 많은 수의 테스트를 지정하는 것입니다.
또 다른 간단한 조언은 새로운 차원을 추가하면서 테스트의 수를 곱하는 것입니다. 그것은 숫자를 과대 평가하는 결과를 가져올 수 있습니다.
테스트가 필요하지만 꽤 안전합니다. 선적 된 엔진은 사용하기 쉽도록 설계되었으므로, "합리적인" 기본값 / 자동 값이 사용되므로 아무 것도 지정하지 않고 최적화를 실행할 수 있습니다 (기본값 허용).
모든 스마트 최적화 방법은 연속 매개 변수 공간과 상대적으로 부드러운 목적 함수에서 가장 잘 작동한다는 것을 이해하는 것이 중요합니다. 매개 변수 공간이 분리 된 경우 진화 알고리즘은 최적 값을 찾는 데 어려움이있을 수 있습니다. 바이너리 (on / off) 매개 변수에 특히 적합합니다. 객관적인 함수 변경 그라디언트를 사용하는 검색 방법에는 적합하지 않습니다 (대부분의 스마트 메서드가 그렇듯이). 거래 시스템에 많은 바이너리 매개 변수가 포함되어 있다면 스마트 옵티 마이저를 직접 사용해서는 안됩니다. 대신 스마트 옵티 마이저를 사용하여 연속 매개 변수를 최적화하고 수동 또는 외부 스크립트를 통해 바이너리 매개 변수를 전환하십시오.
SPSO - 표준 입자 군 최적화.
Standard Particle Swarm Optimizer는 SPSO2007 코드를 기반으로합니다. SPSO2007 코드는 특정 문제에 대해 올바른 매개 변수 (예 : Run, MaxEval)가 제공되면 좋은 결과를 산출해야합니다.
PSO 최적화 프로그램의 올바른 옵션을 선택하는 것은 까다로울 수 있으므로 결과가 사례별로 크게 다를 수 있습니다.
SPSO. dll은 & quot; ADK & quot; 내부에 전체 소스 코드가 포함되어 있습니다. 하위 폴더.
(10000 조합의 검색 공간 내에서 1000 개의 테스트에서 최적 값을 찾음)
구매 = 십자가 (MACD (fa, sl), 0);
매도 = 크로스 (0, MACD (fa, sl));
트라이브 (TRIBES) - 적응 형 매개 변수가없는 입자 군 최적화 도구.
Tribes는 PSO (Partial Swarm Optimization) 비 포괄적 최적화 프로그램의 적응 형 매개 변수없는 버전입니다. 과학적 배경에 대해서는 다음을 참조하십시오 :
이론적으로 일반 PSO보다 더 나은 성능을 발휘해야합니다. 문제의 해결을 위해 웜 크기와 알고리즘 전략을 자동으로 조정할 수 있기 때문입니다.
연습을 통해 성능이 PSO와 매우 유사하다는 것을 알 수 있습니다.
Tribes. DLL 플러그인은 & quot; 부족 - D & quot; (즉, 무차 원) 변이체이다. Maurice Clerc의 clerc. maurice. free. fr/pso/Tribes/TRIBES-D. zip을 기반으로합니다. 작성자의 허가를 받아 사용 된 원본 소스 코드.
Tribes. DLL에는 전체 소스 코드가 들어 있습니다 ( "ADK"폴더 내부)
"MaxEval" - 실행 당 최대 평가 수 (백 테스트) (기본값 = 1000).
기본 1000은 2 또는 최대 3 차원에 적합합니다.
& quot; 실행 & quot; - 실행 횟수 (재시작). (기본값 = 5)
실행 횟수는 기본값 인 5로 둘 수 있습니다.
기본적으로 실행 횟수 (또는 다시 시작 횟수)는 5로 설정됩니다.
Tribes Optimizer를 사용하려면 코드에 한 줄만 추가하면됩니다.
OptimizerSetOption ( "MaxEval", 5000); // 최대 5,000 개의 평가
CMA-ES - 공분산 매트릭스 적응 진화 전략 최적화 프로그램.
CMA-ES (공변량 행렬 적응 진화 전략)는 고급 비 최적화 알고리즘입니다.
과학적 배경에 대해서는 다음을 참조하십시오 :
과학적 벤치 마크에 따르면 9 가지 다른 인기있는 진화 전략 (예 : PSO, 유전 및 차등 진화)보다 성능이 우수합니다.
CMAE. DLL 플러그인은 & quot; 전역 & quot; 인구 증가와 함께 몇 가지 재시작 검색의 변형.
CMAE. DLL은 전체 소스 코드 ( "ADK"폴더 내부)와 함께 제공됩니다.
기본적으로 실행 횟수 (또는 다시 시작 횟수)는 5로 설정됩니다.
기본 재시작 횟수를 그대로 두는 것이 좋습니다.
OptimizerSetOption ( "Runs", N) 호출을 사용하여 변경할 수 있습니다. 여기서 N은 1..10 범위에 있어야합니다.
가능하면 10 회 이상의 실행을 지정하지 않는 것이 좋습니다.
각 실행은 이전 실행 인구의 크기가 TWICE이므로 기하 급수적으로 커집니다.
따라서 10 회 실행하면 첫 번째 실행보다 인구 2 ^ 10 (1024 배) 증가합니다.
다른 파라미터 "MaxEval"이있다. 기본값은 0입니다. 즉, 플러그인이 자동으로 MaxEval을 계산합니다. 기본적으로 잘 작동하므로 MaxEval을 직접 정의하지 않는 것이 좋습니다.
이 알고리즘은 필요한 평가 횟수를 최소화 할 수있을만큼 똑똑하며 솔루션 포인트에 매우 빠르게 수렴하므로 종종 다른 전략보다 솔루션을 더 빨리 찾습니다.
솔루션이 발견되면 플러그인이 일부 평가 단계를 건너 뛰는 것이 일반적이므로 최적화 진행률 막대가 일부 지점에서 매우 빠르게 움직일 수 있다는 사실에 놀라지 말아야합니다. 또한 플러그인은 솔루션을 찾는 데 필요한 경우 초기 예상 값보다 단계 수를 늘릴 수 있습니다. 그 적응 성질로 인해, "추정 된 남은 시간" 및 / 또는 "단계의 수" 진행 대화 상자에 의해 디스플레이 된 "가장 좋은 추측은 단지 시간" 최적화 과정 중에 다를 수 있습니다.
CMA-ES 옵티 마이저를 사용하려면 코드에 한 줄만 추가하면됩니다.
그러면 대부분의 경우 기본 설정으로 최적화가 실행됩니다.
많은 연속 공간 - 공간 탐색 알고리즘의 경우에서와 같이, "단계"를 감소시키는 것이 주목되어야한다. Optimize () 함수 호출의 매개 변수는 최적화 시간에 큰 영향을주지 않습니다. 문제가되는 유일한 것은 문제 "치수", 즉 상이한 파라미터의 수 (최적화 함수 호출의 수)이다. "단계들"의 수는 " 매개 변수 당 최적화 시간에 영향을주지 않고 설정할 수 있으므로 원하는 최상의 해상도를 사용하십시오. 이론적으로 알고리즘은 많아야 900 * (N + 3) * (N + 3) 백 테스트에서 솔루션을 찾을 수 있어야합니다. 차원입니다. 실제로 그것은 훨씬 빠르게 수렴합니다. 예를 들어, 500-900 CMA-ES 단계에서 3 (N = 3) 차원 매개 변수 공간 (예 : 100 * 100 * 100 = 1 백만 철저한 단계)의 솔루션을 찾을 수 있습니다.
멀티 스레드 개별 최적화.
다중 심볼 멀티 스레딩 외에도 AmiBroker 5.70부터 멀티 스레드 단일 심볼 최적화를 수행 할 수 있습니다. 이 기능에 액세스하려면 & quot; 최적화 & quot; 옆의 드롭 다운 화살표를 클릭하십시오. 버튼을 클릭하고 & quot; 개별 최적화 "를 선택하십시오.
& quot; 개별 최적화 & quot; 단일 심볼 최적화를 수행하기 위해 사용 가능한 모든 프로세서 코어를 사용하므로 일반 최적화보다 훨씬 빠릅니다.
1. 사용자 정의 백 테스터는 지원되지 않습니다 (아직).
2. 스마트 최적화 엔진은 지원되지 않습니다. 소극적 최적화 만 작동합니다.
결국 AmiBroker가 변경되어 사용자 정의 백 테스터가 OLE를 더 이상 사용하지 않을 때 제한 (1)을 제거 할 수 있습니다. 그러나 (2) 아마 오래 머무를 것입니다.
무역 전략 최적화.
거래 전략은 과거의 시장 행동에 대한 거래 개념, 아이디어 및 관찰을 받아 거래 시스템에 구현함으로써 만들어집니다. 일상 생활에서 무엇인가를하기위한 최적의 솔루션을 찾을 때마다 실제로 암시 적 최적화를 수행하고 있습니다. 따라서 사람들은 종종 거래 전략을 수립 할 때 거래 시스템 최적화를 사용합니다. 이 기능에 대한 기술 정보는 관련 Wiki 페이지를 참조하십시오.
어떻게 작동합니까?
모든 최적화의 목표는 거래 시스템을보다 효과적으로 만들기 위해 조정하는 것입니다. 전략 최적화는 미리 정의 된 기준에 대한 최적의 매개 변수를 검색합니다. 다양한 전략 입력 값을 테스트하여 최적화는 히스토리 데이터를 기반으로 최적의 전략 성능에 해당하는 값을 선택합니다. 결과적으로 상인은 여러 가지 가능한 입력 조합을 얻어 최상의 성과를내는 조합을 찾습니다.
광범위한 선택.
MultiCharts는 포괄적 인 유전 최적화뿐만 아니라 워크 포워드 테스트도 제공합니다. 각 최적화 유형에는 고유 한 장점과 단점이 있으며 각각은 특정 작업을 수행하는 데 적합합니다. 이들을 개별적으로 사용하거나 조합하여 전략 실적을 완벽하게 파악할 수 있습니다. 워크 포워드 테스트는 최적화와 백 테스트를 결합합니다. 프로세스 중에 최적의 입력을 실제 시장 조건에 따라 테스트하여 성능을 확인합니다.
최적화 속도를 높입니다.
MultiCharts는 사용 가능한 모든 CPU에서 최적화주기를 분산시키는 기술인 멀티 스레딩을 사용합니다. 여러 개의 코어가있는 경우 이들 모두가 동시에 실행되는 최적화의 인스턴스로 사용됩니다. 데이터는 빠른 최적화를 위해 동시에 각 코어에 개별적으로로드되어 본질적으로 가상 차트를 생성합니다. MultiCharts의 64 비트 버전은이 작업에 필요한 대용량 데이터를 쉽게 처리 할 수 있으므로 최적화 과정에서보다 효율적이고 효과적으로 시간을 사용할 수 있습니다.
최적화 보고서.
이 보고서는 최적화 결과를 보여 주며, 열은 현재 실행 중에 최적화 된 18 개의 전략 실적 필드와 모든 입력을 나타냅니다. 각 행은 주어진 입력 조합에 대한 일련의 테스트 결과를 나타냅니다. 하나 이상의 기준으로 출력을 필터링 할 수 있습니다. 예를 들어 최대 순이익과 최소 최대 수익률을 가진 전략을 찾으려면 먼저 순이익을 오름차순으로 정렬 한 다음 내림차순으로 줄여서 정렬합니다.
철저한 검색과 유전 알고리즘 중에서 선택하십시오.
각 최적화 유형에는 장점과 단점이 있습니다. 작업을 완료하고 필요한 결과를 찾으려면 올바른 도구를 선택해야합니다. 많은 가능성을 테스트하는 경우, 멀티 스레딩을 사용하는 경우에도 철저한 최적화가 매우 오랜 시간이 걸립니다. 철저한 최적화의 장점은 테스트 범위에서 절대적인 최적 입력을 찾을 수 있다는 것입니다. 따라서 가능성의 수가 상대적으로 적거나 절대 최적의 솔루션을 찾아야하는 곳에서 사용해야합니다. 또 다른 뉘앙스는 절대적인 최상의 투입물이 실제로 이상치가 될 수 있기 때문에 일관된 성능을 발휘하지 못한다는 것입니다. 유전 최적화는 전략 최적화를 다르게 수행하기 때문에이 문제를 해결합니다.
철저한 (Brute-Force) 최적화.
전략 최적화는 좋은 매개 변수를 찾고 나쁜 매개 변수를 제거하기 위해 수행됩니다. 철저한 최적화는 선택한 기준에 대해 가장 높은 결과를 가진 솔루션을 검색 할 때 체계적으로 모든 잠재적 조합을 거칩니다. 순소득을 극대화하거나, 인출을 최소화하거나, 거래가 가장 적은 입력을 찾을 수 있습니다. 철저한 최적화 기능이 솔루션을 찾는 데 필요한 시간은 테스트 할 수있는 가능한 조합의 수와 직접 관련이 있습니다. 더 많은 조합을 사용할수록 길어집니다. 단 몇 개의 매개 변수 만 단거리에 대해 테스트되는 경우이 방법은 최상의 입력을 찾는 데 최적입니다.
유전 최적화.
Genetic Algorithms Optimization은보다 유망한 조합만을 평가하여 brute-force 접근 방식에 필요한 시간에 비해 최적의 솔루션을 거의 찾아내어 수백 가지 매개 변수가있는 전략을 분석 할 수있는 강력한 Genetic Algorithms를 만듭니다. Genetic Optimizer 설정은이 기술에 유연성을 추가합니다. 알고리즘은 여러 가지 임의의 조합을 테스트하고 가장 잠재적인 조합을 선택한 다음 결합 및 수정하여 최종적으로 최상의 입력 설정에 도달하는 것으로 시작합니다. 보존 적 조합을 기계적으로 검사하는 대신 유전 알고리즘은 가장 수익성이 높고 안정적인 분야를 찾아 집중함으로써 잠재적 인 수상자 수를 신속하게 좁 힙니다. 따라서 유전자 알고리즘은 최저 순이익 잠재 영역에서 불필요한 계산을 피한다.
맞춤식 피트니스 기능 최적화.
이 기능을 사용하면 하나의 전략이 아닌 여러 조건을 사용하여 전략을 최적화 할 수 있습니다. 예를 들어 최대 이익, 최저 손실 및 수익성이 높은 거래의 가장 높은 비율을 결합한 전략을 찾을 수 있습니다. 유전 및 철저한 거래 시스템 최적화는 물론 정규 및 포트폴리오 백 테스팅에서 맞춤 피트니스 기능 최적화를 사용할 수 있습니다. PowerLanguage에는 SetCustomFitnessValue라는 키워드가 있습니다. 이 단어는 GrossProfit 및 TotalTrades와 같은 다른 키워드와 함께 사용하여 전략을 최적화 할 수있는 맞춤 방정식을 만들 수 있습니다. 해당 언어에 더 익숙한 경우 Java 스크립트에서도 비슷한 방정식을 만들 수 있습니다. 보다 구체적인 정보는 관련된 Wiki 페이지에서 찾을 수 있습니다.
3D 최적화 그래프.
3D 최적화 그래프는 전략 매개 변수가 거래 실적에 미치는 영향을 시각적으로 보여줍니다. 3D 그래프는 가장 강력한 매개 변수 영역을 나타내며 과도한 최적화를 피하는 훌륭한 도구이며 커브 피팅이라고도합니다. 작은 매개 변수 변경으로 인해 급격한 성능 저하가있는 전략은 강력한 것으로 간주 될 수 없습니다. 서로 다른 최적화 결과를 서로 겹쳐서 결과를 비교하고 발견 한 최적의 입력이 다른 테스트에 의해 확인되었는지 확인할 수 있습니다. 중첩을 사용하여 유전 적 및 철저한 최적화 결과를 비교할 수 있으며 결과가 얼마나 강력한 지 평가할 수 있습니다. 3D 표면은 최적화 보고서에서 사용할 수있는 모든 기준 (예 : 순익, 수익률 및 최대 수익률)에 따라 그릴 수 있습니다. 관련 입력 및 출력 값은 마우스 커서가 그래프 표면의 특정 지점을 가리킬 때 표시됩니다.
OwnData 및 모든 MCFX 제품은 단종되었습니다. 여기서 MCFX 대체품을 찾으십시오. TradingView에서 Bitcoin 달러 차트.
자금 관리 최적화.
금전 관리 알고리즘 도구에는 최적화 도구도 포함되어 있습니다. 전략에 사용할 알고리즘을 효율적으로 최적화하기 위해 Revision 4.1에 Optimizer Tool을 도입했습니다. 금전 관리 알고리즘을 사용하여 최적화 할 수 있지만 모든 규칙 조합에 대해 13 개의 규칙을 최적화하는 경우 (원하는만큼 많은 규칙을 조합하거나 개별적으로 교환 할 수 있기 때문에) 총 조합 수 및 최적화 수 (각 규칙에 대한 매개 변수를 최적화하지 않고도) 8,192가됩니다. 각 규칙 1 - 13에 대한 최적화를 0에서 1까지 증가시키면서 (각 규칙을 On (1) 또는 Off (0)으로 테스트하고 이산 수학 및 부울을 생각할 때) 여기 논리).
개별 매개 변수는 Optimizer가 실행되기 전에 최적화 될 수도 있습니다.
OPT 자금 관리 알고리즘 전략을 사용하면 규칙 1-13을 신속하게 최적화하여 각각의 개별적인 순위를 확인할 수 있습니다. 그런 다음 OPT 전략의 최상위 규칙을 자금 관리 알고리즘 전략 (MM : Equity Curve Algorithms Rev 4.0)에 다시 적용 할 수 있습니다. 이에 대해서는 아래 비디오에서 자세히 설명합니다.
돈 관리 알고리즘.
거래 시스템 최적화 도구 비디오.
Cobra CT에서의 지분 곡선 알고리즘 최적화 결과
가상의 성능 결과에는 다음과 같은 몇 가지 고유 한 제한이 있습니다. 어떠한 진술도 모든 계정이 이익 또는 손실과 유사한 손실을 성취 할 가능성이 있는지 여부를 나타내지 않습니다. 실제로, 가상의 성과 결과와 특정 거래 프로그램에 의해 달성 된 실제 결과 사이에는 종종 뚜렷한 차이가 있습니다. 가상 성능 결과의 한계 중 하나는 일반적으로 추후의 이점으로 준비된다는 것입니다. 또한, 가설 거래는 재무 위험을 포함하지 않으며, 가상 거래 기록은 실제 거래의 재무 위험에 대한 완전한 책임을 설명 할 수 없습니다. 예를 들어 손실을 견디거나 특정 거래 프로그램을 준수하는 능력 거래 손실에도 불구하고 실제 거래 결과에 악영향을 미칠 수있는 물질 포인트. 일반적으로 시장에 관련된 수많은 다른 요소들이 있거나 가상의 성과 결과의 준비에서 완전히 설명 될 수없는 특정 거래 프로그램의 구현 및 거래 결과에 악영향을 미칠 수있는 모든 것이 있습니다. 이러한 성능 테이블과 결과는 자연 상태에서는 가설이며 실제 계정에서 거래를 나타내지는 않습니다.
거래 시스템 최적화 및 시각화.
Seer는 거래 시스템 최적화를 한 걸음 더 앞당겼습니다.
마진에 대한 외환 거래는 높은 위험을 수반하며 모든 투자자에게 적합하지 않을 수 있습니다. 높은 레버리지는 당신뿐만 아니라 당신을 도울 수 있습니다. 외환에 투자하기로 결정하기 전에 투자 목표, 경험 수준 및 위험 식욕을 신중하게 고려해야합니다. 초기 투자의 일부 또는 전부를 상실 할 가능성이 있기 때문에 잃을 수없는 돈을 투자해서는 안됩니다. 외환 거래와 관련된 모든 위험에 대해 알고 있어야하며, 의심스러운 점이 있으면 독립적 인 재정 고문에게 조언을 구해야합니다.
No comments:
Post a Comment