Amibroker 간단한 거래 시스템


ami 중개인.
AmiBroker의 강력하고 초고속 탐색 도구를 사용하여 시장에서 기회와 비효율을 검색하십시오.
목표 항목 정의 & amp; 거래에서 감정을 제거하는 규칙을 종료하십시오. 포트폴리오 수준의 백 테스팅 & amp; 성능을 미세 조정하기위한 최적화. Walk-forward & amp; 몬테카를로 시뮬레이션.
차트에서 시각적으로 거래하거나 분석 도구를 사용하여 주문 목록을 생성하거나 자동 거래 인터페이스를 사용하여 코드에서 직접 주문합니다. 당신의 스타일이 무엇이든간에. 너의 선택이야.
거래를 다음 단계로 업그레이드하십시오.
강력하고 사용하기 쉽고 아름다운 차트.
드래그 앤 드롭 평균, 밴드 및 기타 표시기의 표시기, 슬라이더를 사용하여 실시간으로 매개 변수 수정 및 다양한 스타일 & amp; 그라디언트를 아름답게 만듭니다.
세계에서 가장 빠른 포트폴리오 백 테스팅 및 최적화.
탁월한 속도는 고급 위치 결정, 점수 및 순위, 순환 거래, 맞춤 측정 항목, 맞춤 백 테스터, 복수 통화 지원과 같은 정교한 기능과 함께 제공됩니다.
자동화 및 일괄 처리.
반복되는 작업에 시간과 노력을 낭비하지 마십시오. AmiBroker가 새로 통합 된 배치 프로세서를 사용하여 일상 업무를 자동화하게하십시오. 지루한 반복 클릭이 없습니다. AmiBroker는 잠자는 동안 작동 할 수 있도록 Windows 스케줄러에서 실행할 수 있습니다.
모든 정보를 손쉽게 찾아 볼 수 있습니다.
이것은 탐험을 사용하여 할 수있는 많은 것들 중 하나 일뿐입니다.
분석 창은 백 테스트, 최적화, 워크 포워드 테스트 및 몬테카를로 시뮬레이션의 본거지입니다.
시스템 트레이더를위한 강력한 도구.
분석 창.
분석 창은 모든 스캔, 탐색, 포트폴리오 백 테스트, 최적화, 워크 포워드 테스트 및 몬테카를로 시뮬레이션의 본거지입니다.
시장에서 기회를 탐색하십시오.
Exploration은 모든 기호 데이터에서 행과 열을 무제한으로 완벽하게 프로그래밍 할 수있는 표 형식 출력을 생성하는 다목적 스크리닝 / 데이터 마이닝 도구입니다.
시스템을 테스트하십시오.
Backtest는 기록 데이터에 대한 시스템 성능을 테스트 할 수 있습니다. 시뮬레이션은 실제와 마찬가지로 포트폴리오 수준에서 수행되며, 동시에 거래되는 여러 증권이 각각 사용자 정의 가능한 포지션 사이징 규칙을 가지고 있습니다.
득점 & amp; 순위.
동일한 바에 여러 입력 신호가 발생하고 구매력이 부족한 경우 AmiBroker는 선호 거래를 찾기 위해 사용자가 지정할 수있는 위치 점수를 기반으로 bar-by-bar 랭킹을 수행합니다.
최적의 매개 변수 값을 찾으십시오.
AmiBroker에게 수천 개의 서로 다른 매개 변수 조합을 시도하여 실적이 가장 우수한 매개 변수 조합을 찾으라고 알려주십시오. 제한된 시간에 거대한 공간을 검색하려면 Smart Artificial Intelligence Optimization (Particle Swarm 및 CMA-ES)을 사용하십시오.
워크 포워드 테스트.
과도한 함정에 빠지지 마십시오. 샘플 내 최적화 프로세스 후 Out-of-Sample 성능을 확인하여 시스템의 견고성을 검증하십시오.
몬테카를로 시뮬레이션.
어려운 시장 상황에 대비하십시오. 최악의 시나리오와 파손 확률을 확인하십시오. 거래 시스템의 통계 특성에 대한 통찰력을 얻으십시오.
간결하고 빠른 수식 언어로 거래 아이디어를 표현하십시오.
빠른 배열 및 매트릭스 프로세싱.
AmiBroker Formula Language (AFL) 벡터 및 행렬은 일반 숫자와 같은 기본 유형입니다. 하이와 로우 어레이의 중간 점을 원소 단위로 계산하려면 MidPt = (H + L) / 2를 입력하면됩니다. // H와 L은 배열이고 벡터화 된 컴퓨터 코드로 컴파일됩니다. 루프를 작성할 필요가 없습니다. 따라서 어셈블러에서 작성된 코드와 동일한 속도로 수식을 실행할 수 있습니다. 기본 고속 행렬 연산자 및 함수를 사용하면 통계 계산을 쉽게 수행 할 수 있습니다.
간결한 언어는 더 적은 작업을 의미합니다.
AFL로 작성된 거래 시스템과 지표는 AFL의 많은 일반적인 작업이 단일 라이너이기 때문에 다른 언어보다 타이핑이 적고 공간이 적습니다. 예를 들어 동적 인 ATR 기반 샹들리에의 중지는 단지 ApplyStop (stopTypeTrailing, stopModePoint, 3 * ATR (14), True, True);
내장 디버거.
디버거를 사용하면 코드를 한 단계 건너 뛰고 런타임에 변수를 관찰하여 수식이하는 일을 더 잘 이해할 수 있습니다.
최첨단 코드 편집기.
구문 강조, 자동 완성, 매개 변수 호출 팁, 코드 접기, 자동 들여 쓰기 및 인라인 오류보고 기능을 갖춘 고급 편집기를 사용하십시오. 오류가 발생하면 의미있는 메시지가 오른쪽에 표시되어 눈을 부담하지 않습니다.
적은 타이핑, 더 빠른 결과.
바로 사용할 수있는 Code 스 니펫으로 수식을 코딩하는 것이 결코 쉬운 일은 아닙니다. 일반적인 코딩 작업과 패턴을 구현하는 수십 개의 사전 작성된 스 니펫을 사용하거나 자신의 스 니펫을 만드십시오!
멀티 스레딩.
모든 수식에 여러 프로세서 / 코어가 자동으로 적용됩니다. 각 차트 수식, 그래픽 렌더러 및 모든 분석 창은 별도의 스레드에서 실행됩니다.
선택할 수있는 3 가지 AmiBroker 에디션.
일반용.
End-of-day 및 스윙 트레이더를위한 엔트리 레벨 버전. 끝과 실시간. 1 분 간격으로 시작하는 일중. 실시간 견적 윈도우에서 10 개의 기호가 제한됩니다. 분석 창당 2 개의 동시 스레드. 32 비트 전용.
프로페셔널 에디션.
고급 백 테스팅 및 최적화 기능을 갖춘 전문 리얼 타임 및 분석 플랫폼. 끝과 실시간. 모든 Intraday Tick / Second / Minute 간격, 실시간 견적 창에서 무제한 기호. Time & amp; Sales의 기호는 무제한입니다. MAE / MFE 통계가 포함되어 있습니다. 분석 창당 최대 32 개의 동시 스레드. 64 비트 및 32 비트 버전을 모두 포함합니다.
Ultimate Pack Pro.
AmiBroker Professional Edition에는 다음과 같은 두 가지 유용한 프로그램이 있습니다.
AmiQuote - 무료 EOD와 일중 데이터 및 무료 기본 데이터를 갖춘 여러 온라인 소스에서 다운로더를 견적합니다.
AFL 코드 마법사 - 일반 영어 문장으로 AFL 수식을 만듭니다. 초보자를위한 귀중한 학습 도구. (AmiQuote 및 AFL Code Wizard 라이센스는 별도로 구입할 경우 $ 198의 가치가 있으므로이 팩을 구입할 때 8 %를 절약 할 수 있습니다)
시스템 요구 사항 : Microsoft Windows 10, 8.1, 7, Vista, XP, 2000, 최소 512MB RAM. Apple Mac 사용자는 Bootcamp / Parallels / VMWare를 사용하여 AmiBroker를 실행할 수 있습니다.
회사 소개 브랜드 소개 & amp; 조건 개인 정보 보호 정책 Us & # x2709; 문서 기능 목록 새로운 기능 사용자 가이드 데이터 소스 동영상 지원 기술 지원 & amp; 영업 멤버 영역 지식 데이터베이스 DevLog 사용자 KB 기타 AmiBroker YahooGroup 유용한 링크.
이 사이트는 쿠키를 사용합니다. 이 사이트를 탐색하면 개인 정보 보호 정책에 동의하게됩니다. 쿠키 정책.

Amibroker 단순 거래 시스템
참고 : 이것은 상당히 고급 주제입니다. 먼저 이전 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 = 100 만 개 단계)의 솔루션을 찾을 수 있습니다.
멀티 스레드 개별 최적화.
다중 심볼 멀티 스레딩 외에도 AmiBroker 5.70부터 멀티 스레드 단일 심볼 최적화를 수행 할 수 있습니다. 이 기능에 액세스하려면 & quot; 최적화 & quot; 옆의 드롭 다운 화살표를 클릭하십시오. 버튼을 클릭하고 & quot; 개별 최적화 "를 선택하십시오.
& quot; 개별 최적화 & quot; 사용 가능한 모든 프로세서 코어를 사용하여 단일 기호 최적화를 수행하므로 일반 최적화보다 훨씬 빠르게 처리됩니다.
1. 사용자 정의 백 테스터는 지원되지 않습니다 (아직).
2. 스마트 최적화 엔진은 지원되지 않습니다. 소극적 최적화 만 작동합니다.
결국 AmiBroker가 변경되어 사용자 정의 백 테스터가 OLE를 더 이상 사용하지 않을 때 제한 (1)을 제거 할 수 있습니다. 그러나 (2) 아마 오래 머무를 것입니다.

Amibroker 단순 거래 시스템
최고의 포트폴리오 관리 솔루션.
WiseTrader 도구 상자.
Amibroker (AFL)를위한 스윙 트레이딩 시스템
아주 간단한 공식이지만 좋은 결과.
높게 구매하고 낮은 가격으로 판매하십시오.
초록색 선은 후행 정지 선입니다.
스크린 샷.
비슷한 지표 / 수식.
표시기 / 공식.
5 개의 댓글.
네, 간단합니다. 하지만 공유 할 수있게되어서 감사합니다.
나는 왜 당신이 High보다 높게 매도하고 Low보다 낮은 것을 팔 것인가에 대해 혼란 스럽다. ??
이 공식은 정말 좋아 보이지만 문제는 높고 낮은 의미가 무엇입니까?
나는 구매 / 판매는 관련 화살표의 출현 후에 완료되어야한다고 생각합니다.
크로스 오버를 확인하십시오, 빨간 선은 위에 = 시장은 완고하다, 빨간 선은 바닥에 = 시장은 약세에 있습니다.
(나는 왜 당신이 높고 낮은 것 아래에서 팔 것인가에 대해 혼란스러워합니다.)

사용자 기술 자료.
2011 년 10 월 14 일
EOD Gap-Trading 포트폴리오 시스템.
2012 년 2 월 29 일 추가 고려해야 할 점이 추가되었습니다.
1)이 시스템은 공개 가격으로 정확한 채우기에 달려 있습니다. 이러한 채우기를 얻으려면 무역 자동화를 구현하기위한 최소 최소 지연 데이터 피드와 고급 프로그래밍 기술이 필요합니다.
2) 입장 가격을 공개 가격보다 약간 낮게 설정하면 (성능 향상을 위해) 시스템이 비참하게 실패합니다. 가격을 1 센트 만 올리더라도 시스템이 죽습니다. 이는 오픈 가격이 일일 최저 가격과 같은 날부터 수익의 대부분을 얻는다는 것을 의미합니다. 즉, 가격이 오픈에서 상승하여 결코 그 밑으로 떨어지지 않은 것입니다. 물론 이것은 분명합니다. 이를 확인하기 위해이 테스트 조건을 추가하여 Open == Low 일 수를 제외했습니다.
구매 = 구매 AND NOT O == L;
이것은 시스템을 죽이고 대부분의 이익이 O == L 인 날로부터 나온다는 것을 증명합니다. 이것을 확인하기 위해 나는 반대 조건을 추가했다 :
구매 = 구매 AND O == L;
이것은 거의 무한한 이익을 가져다 주며, 대부분의 이익은 오픈으로부터 즉시 상승하고 결코 그 아래로 돌아 가지 않는 날로부터옵니다. 입장료를 높이려고하는 것은 실수입니다. 오픈 가격보다 1 ~ 2 ct 높게 설정된 Stop을 입력하면 가격이 하락하고 결코 되돌아 가지 않는 날을 없애줍니다. 이렇게하면 성능이 크게 향상됩니다.
3)이 시스템은 knee-jerk trader-responses / patterns를 거래합니다. 이러한 패턴은 대용량 거래에 의해 익사됩니다. 따라서이 시스템은 일당 500,000 ~ 5,000,000 주 사이의 볼륨을 가진 시세 표시기를 선택할 때 훨씬 잘 작동합니다. 또한 성능이 크게 향상됩니다.
위의 두 가지 기능을 추가하면 아래에 표시된 것보다 훨씬 나은 형평성 곡선이됩니다. 죄송합니다. 위의 내용을 자세히 문서화 할 시간이 없습니다. 행운을 빕니다!
이 게시물은 어제보다 낮은 주어진 비율로 구매하고 다음 날 영업 종료시 종료되는 아주 간단한 Long-only 거래 아이디어를 간략하게 설명합니다. 때로는 정확한 오픈 가격을 얻는 것이 어려울 수 있지만, 이 시스템의 높은 수익성은 더 많은 실험을위한 좋은 후보자가됩니다. 이 시스템은 N100, SP500, SP1500, Russel 1000 등과 같은 Watchlists와 잘 작동합니다. Russel 1000의 성능은 최대입니다. 미결 위치가 1로 설정된 경우, 기간 12/10/2003에서 12/10/2011까지 다음과 같이 표시됩니다.
다른 워치리스트 중 일부는 노출 (수익)이 적지 만 DD는 낮아집니다. 커미션은 주당 0.005 달러로 설정되었습니다. 마진은 사용되지 않습니다.
명시적인 순위는 사용되지 않습니다. 시세 표시는 감시 목록의 알파벳순 정렬을 기반으로 거래됩니다. 이것은 이상하게 보일지 모르지만 중요합니다. 이 분류를 바꾸면 시스템이 실패합니다. 즉, 실시간 검색 문제로 인해 맨 위에 나열된 기호가 맨 아래에 나열된 기호와 다르게 거래 될 수 있습니다.
유동성 (하나 이상의 포지션을 거래하고 싶을 수도 있음)과 미끄러짐 (엔트리는 다소 위험이 없지만 출구는 문제가 될 수 있음)에주의하십시오. DD는 중요하지만 향상된 실시간 거래 엔트리 및 ​​종료로 상쇄 될 수 있습니다. 자동 거래를 할 때 모든 신호에 대해 OCA DAY-LMT 항목을 주문할 수 있으며, 채워지는 부분을 기다리고 볼 수 있습니다. 출구가 입장보다 어렵 기 때문에 다른 출구 전략을 탐색 할 수 있습니다.
매개 변수 기본값은 모자에서 선택됩니다. 거의 확실하게 개별 최적화를 위해 최적화하거나 동적으로 조정할 수 있습니다. Walk-Forward 모드에서이 시스템을 간단히 테스트 한 결과 테스트 한 모든 기간 동안 수익이있었습니다. 주식의 수를 제외하면 거래 된 매개 변수는 그리 중요하지 않습니다. 이 경우 최적화를하지 않으면 문제가되는 것 같습니다.
아래의 코드는 매우 간단하며 설명이 거의 필요하지 않습니다. 그러나이 시스템은 Open에서 거래하고 같은 공개 가격을 사용하여 TrendMA를 계산함으로써 작은 이점을 누리고 있음을 이해하는 것이 중요합니다. 일부는 이것을 미래의 누수로 해석 할 수도 있지만, 이 시스템을 실시간으로 교환한다면 그렇지 않습니다. Many people do not realize that if you trade at the Open you can also use this price in your calculations — as long as you perform them in real-time — this is where AmiBroker and technology can give you an edge. If you Ref() back the TrendMA by one bar the system is still very profitable however DDs increase for some Watchlists. If you use fixed investments the difference is negligible.
The trading procedure would be to start scanning before the market opens and remove tickers that are priced so remote that they are unlikely to meet the OpenThresh. Thus you may start scanning 1000 symbols but very quickly the number scanned will dwindle to just a dozen or so tickers. When you approach 9:30am your real-time scan will be very fast and you will be able to place your LMT order very close to the Open – you may even be able to improve on the Open price.
Even though a few people looked at the code below and found nothing wrong, the profits seem rather high for such a simple system. Please report errors you may see.
Filed by Herman at 7:03 pm under Ideas (Experimental)
Comments Off on EOD Gap-Trading Portfolio system.
September 1, 2011.
A Long-only EOD Gap trading idea.
This idea was posted ( #161332 ) on the main AmiBroker list on July 3, 2011. There were numerous excellent comments on the list and if you are interested in working on this system you do well to read them all before starting. After posting I found a number of posts on the web discussing this trading idea, some claimed to be trading a similar system with good success.
I referred to this system a “Gap Trading” system but this may be a bit of a misnomer, “Mean reversion” might be a better classification. Googling for it will get you many more hits to similar systems. Here are a few links:
It appears to be a fairly widely discussed trading idea and I suggest you’ll do some Googling on your own to learn the latest. As an Amibroker user you have better tools than most traders and you have a better chance than most to come up with a variation that works. Perhaps with a little less profits, and with a significant amount of additional code — it won’t be a “quicky” project :-)
Some people commented that this system will not work in real trading, while they may be right others say schemes like this work. I didn’t finish the system and can’t claim to know whether it is tradable or not.
The system Buys at a certain percentage below yesterday’s Low, on a LMT order, and exits in the same day at the Close.
Filed by Herman at 6:53 pm under Ideas (Experimental)
Comments Off on A Long-only EOD Gap trading idea.
November 28, 2007.
Inverse Return To Mean System.
Filed by brian_z at 11:54 pm under Ideas (Experimental)
Comments Off on Inverse Return To Mean System.
October 22, 2007.
MACD Trend System.
I use a small setup criteria to scan for my stocks.
I look for Histogram 4 down bars and 1 up bar for buy signal(I have the histogram set to red for down and blue for up so I can see.
MACD above Zero Line.
This system is base on trend trading. Buying on pullback when the market continues its up trend.
To scan for MACD Trend setups:
1) Insert the following formula into a chart.
Stocks that meet the criteria will be reported in the Results list.
Note: Some variations of the setup rules can define signals that are quite rare and in small databases it is possible that there will be no setups on any given day (hence no stock will be reported by the scan).
3) Click on any symbol in the Results pane to view the chart, for that symbol, in the background.
Note: In this example a training database, that only contains data up to 5/11/2007, was used.
Trading idea by protraderinc. Comments and formula by Bill – WaveMechanic .
Filed by brian_z at 11:06 pm under Ideas (Experimental)
Comments Off on MACD Trend System.
October 14, 2007.
15 Day Performers Trading System.
Filed by brian_z at 10:43 pm under Ideas (Experimental)
Comments Off on 15 Day Performers Trading System.
August 19, 2007.
KISS-001: Intraday Gap Trading.
This is the first in a series off KISS (keep it simple, stupid) trading ideas for you to play with. All system ideas presented here are unproven, unfinished, and may contain errors. They are intended to show possible patterns for further exploration. As always, you are invited to make comments and/or add your own ideas to this series.
I prefer real-time systems that trade fast, are automated, and are devoid of traditional indicators. Preferably, they should have no optimizable parameters; however, I may not always be able to meet this objective. Not all systems will be ‘that’ simple; there will be some that use simple averaging or HHV/LLV type functions. The first system shown below is a copy of the demo system I use to develop Trade-Automation routines elsewhere on this site.
To see how this works, you should Backtest it on 1-minute data with a periodicity in the range of 5-60 minutes. Your first impression may be that these profits are simply due to an up market, however, the fact that Long and Short profits are about equal suggests there is more to it. Because 98% of all trades fall between 9:30 AM and 10:30 AM, this type of system is nice if you just want to trade a short time each day. This reduces risk with respect to market exposure and gives you more time to enjoy other activities.
Backtesting this on the NASDAQ-100 watchlist (individual backtests, 15 min. Periodicity) gives the profits shown below for the period of 1 MAR 2007 to 17 AUG 2007. Ticker names are omitted to keep the chart compact; the chart simply shows a net profit bar for each ticker tested. Average exposure for this system is about 15%; hence, you may be able to trade portfolios to increase profits and smooth the equity curves. Be cautioned that in its raw form the drawdowns are unacceptable and that there may be volume restrictions for many tickers.
Since this system has low exposure, it may be a candidate for market scanning and ranked portfolio trading. RARs would be an indication of the absolute maximum profits that could be obtained if one succeeded to increase exposure to near 100%. However, price movement from different tickers may be correlated, and trades from different tickers may overlap. If many tickers trade at the same time, it would be difficult to increase system exposure.
Edited by Al Venosa.
Filed by Herman at 1:49 pm under Ideas (Experimental)
Comments Off on KISS-001: Intraday Gap Trading.
August 17, 2007.
System Ideas on the Internet.
You are invited to submit links to system ideas in comments to this post.
Filed by Herman at 7:46 pm under Trading Systems.
July 16, 2007.
Introduction to Trading Systems – Practical.
This category is reserved for real working trading systems, i. e. that you have traded at some point in time or would consider trading. Since the criteria for tradability varies from person to person, and since systems may work or not depending on how they are traded, it will be difficult to screen contributions here. With respect to what is posted here, keep an open mind and consider that the poster considers the system tradable.
You can contribute by posting as an author (requires registration) or in a comment to this post.
Filed by Herman at 11:14 am under Practical (Profitable)
Comments Off on Introduction to Trading Systems – Practical.
Introduction to Trading Systems – Ideas.
This is where you can share trading systems that are marginally profitable, i. e., those that should not be traded as they are but that show potential. Typically this would be a basic system that is profitable but experiences draw downs of 50%. Such systems can often be improved by adding Stops, Targets, Money Management, Portfolio techniques, etc. The reality is that while you may not have the expertise to make it work someone else may.
Almost all of us find trading system ideas in books and magazines that we then code in AFL for evaluation. Some of these systems may have been around for many years while others are new ideas. After coding them, almost always, we are disappointed and chuck out the system (work!). Instead of throwing out your work you are invited to post the system here to give another developer a chance to fix it.
You are invited to contribute as an author (requires registration) or in a comment to this post.
Filed by Herman at 11:04 am under Ideas (Experimental)
Comments Off on Introduction to Trading Systems – Ideas.
최근 게시물.
최근 댓글.
Richard Dale on Data Resources – Forex Herman on Request Real-Time Topics here Mike B on Request Real-Time Topics here Tomasz Janeczko on US-Stocks Database (v2) brian_z on Setup A Custom Database – 나스닥
카테고리.
October 2011 (1) September 2011 (1) August 2011 (1) July 2011 (1) April 2011 (2) March 2011 (6) February 2011 (2) January 2011 (2) February 2009 (2) August 2008 (1) April 2008 (1) March 2008 (20) February 2008 (6) January 2008 (1) December 2007 (4) November 2007 (18) October 2007 (17) September 2007 (17) August 2007 (26) July 2007 (20) June 2007 (17) May 2007 (8) April 2007 (16) January 2007 (1)
This site uses WordPress Page generated in 0.858 seconds.

Comments

Popular Posts