Saturday 24 February 2018

옵션 전략 테스터


OptionStack.


무역처럼 프로.


OptionStack을 사용하면 몇 분 안에 스톡 및 옵션 트레이딩 전략을 자동으로 역으로 테스트 할 수 있습니다!


우리의 미션.


월스트리트의 815 야구 경기장.


OptionStack은 주식을 만들고 테스트 할 수있는 제도적 플랫폼입니다. 옵션 거래 전략. 우리의 사명은 모든 투자자가 재정적 목표를 달성 할 수 있도록 지원하는 것입니다. 우리는 아무도 당신보다 돈에 대해 더 신경 쓰지 않는다고 믿습니다. 적절한 도구 세트를 사용하면 월가의 어느 누구보다 투자를 효과적으로 관리 할 수 ​​있습니다!


자동 옵션 백 테스트.


다른 옵션 분석 소프트웨어와 달리 Option Stack의 특허 출원중인 소프트웨어는 주식 및 옵션 거래 전략에 대한 백 테스팅의 전체 프로세스를 자동화합니다! 직접 손으로 데이터를 수동으로 넘기지 않아야합니다!


주식 및 옵션 거래 시스템.


실수로 단일 풋 / 통화 구매에서 복잡한 옵션 스프레드 (나비, 콘도르, 수직 스프레드, 스 트래들 등) 조정에 이르기까지 옵션 거래 전략을 만들고 테스트하기 쉽습니다.


당신이 주식 및 옵션 거래를 완벽하게 통제하고자하는 사람이라면, 특허 출원중인 옵션 분석 및 Backtesting 플랫폼이 그 혜택을 누릴 수 있습니다!


세계적 수준의 기술, 커뮤니티 등을 제공합니다.


자동화 된 백 테스트.


자동화 된 백 테스팅의 힘으로 더 나은 투자 의사 결정을 내릴 수 있습니다. 10 년 이상의 주식 및 옵션 거래 전략을 자동으로 백 테스트합니다.


드래그 앤 드롭.


불평형 철 콘센트 판매에 이르기까지 프로그래밍 지식없이 가장 복잡한 주식 및 옵션 전략까지도 백 테스팅하십시오.


시각적 위험 그래프.


강력한 분석, 대화식 포트폴리오 위험 그래프 및 고급 주식 및 연구 차트로 거래 전략을 최적화하십시오.


고급 전략.


복잡한 주식 및 옵션 스프레드, 고급 무역 조정, 포트폴리오 재조정, 자본 배분, 포지션 사이징, 알파 생성 등을 만듭니다.


연구 & 지표.


변동성 / 기술 / 통계 / 옵션 그리스 / 수익 연구 등 수백 가지의 유용한 연구 및 지표 중에서 선택하십시오.


무역 아이디어와 전략을 노련한 트레이더들에게 공유하십시오.


이진 옵션 가장자리.


이진 옵션 MT4 전략 테스터 (비디오.


2014 년 10 월 15 일 데이비드와 달리


그래서 제가 MT4 전략 테스터에 대해 여러 번 질문을 받았기 때문에 간단한 규칙으로 어떻게 사용할 수 있는지 보여주는 약간의 비디오를 작성하기로했습니다. (SignalPush의 Ryan이 사용하도록 코딩 해 주신 것에 대해 큰 감사드립니다.)


여기 파일뿐입니다. 나는 질문에 답하려고 노력할 것이다. 그러나 나는 아직도 이것에서뿐만 아니라 초보자이다는 것을 기억해라.


2014 년 10 월 17 일 ichidakiller와 달리


RuLLerZ와는 달리 2014 년 10 월 17 일


2014 년 10 월 17 일 데이비드와 달리


당신은 대단히 환영합니다! 나는 너희들이 내가 가지고있는 것처럼 그것에서 약간의 사용을 얻을 것이기를 희망한다!


2014 년 10 월 20 일 건담과는 달리.


나는 USDJPY, 15min 도표에 당신의 지시자 검사자를 시도했다.


승리 : 195, 동점자 : 0 손실 : 43, 합계 : 238, 비율 : 81.9 %


09.19.2014 00:45 1 개월 테스트로 다시 테스트합니다.


유일한 문제는 어떻게 작동하는지 이해할 수 없다는 것입니다.


이것은 내가 테스트에 넣은 코딩입니다.


Down [i] = High [i] + 5 * Point;


WinBuffer [i-1] = 하이 [i-1] + 5 * 포인트;


Print ( "Win at"+ TimeToStr (Time [i]));


> else if (Open [i] == Close [i-1])


인쇄 ( "Tie at"+ TimeToStr (Time [i]));


LossBuffer [i-1] = High [i-1] + 5 * Point;


LossBuffer [i-1] = High [i-1] + 5 * Point;


인쇄 ( "손실"+ TimeToStr (시간 [i]));


Up [i] = Low [i] - 5 * Point;


WinBuffer [i-1] = 로우 [i-1] - 5 * 포인트;


Print ( "Win at"+ TimeToStr (Time [i]));


> else if (Open [i] == Close [i-1])


인쇄 ( "Tie at"+ TimeToStr (Time [i]));


LossBuffer [i-1] = High [i-1] + 5 * Point;


LossBuffer [i-1] = 로우 [i-1] - 5 * 포인트;


인쇄 ( "손실"+ TimeToStr (시간 [i]));


이것을 이해하는 데 도움이 될 것입니다. 어떻게해야 다시 테스트를 통해이 작업을 수행 할 수 있습니까? 아니면 이해가 필요하고 전화가 걸려 올 때까지 넣어야합니다.


미안해. 이 용어에 대해 거의 이해하지 못해서 새삼 스럽다.


2014 년 10 월 20 일 데이비드와 달리


나는 USDJPY, 15min 도표에 당신의 지시자 검사자를 시도했다.


승리 : 195, 동점자 : 0 손실 : 43, 합계 : 238, 비율 : 81.9 %


09.19.2014 00:45 1 개월 테스트로 다시 테스트합니다.


유일한 문제는 어떻게 작동하는지 이해할 수 없다는 것입니다.


이것은 내가 테스트에 넣은 코딩입니다.


Down [i] = High [i] + 5 * Point;


WinBuffer [i-1] = 하이 [i-1] + 5 * 포인트;


Print ( "Win at"+ TimeToStr (Time [i]));


> else if (Open [i] == Close [i-1])


인쇄 ( "Tie at"+ TimeToStr (Time [i]));


LossBuffer [i-1] = High [i-1] + 5 * Point;


LossBuffer [i-1] = High [i-1] + 5 * Point;


인쇄 ( "손실"+ TimeToStr (시간 [i]));


Up [i] = Low [i] - 5 * Point;


WinBuffer [i-1] = 로우 [i-1] - 5 * 포인트;


Print ( "Win at"+ TimeToStr (Time [i]));


> else if (Open [i] == Close [i-1])


인쇄 ( "Tie at"+ TimeToStr (Time [i]));


LossBuffer [i-1] = High [i-1] + 5 * Point;


LossBuffer [i-1] = 로우 [i-1] - 5 * 포인트;


인쇄 ( "손실"+ TimeToStr (시간 [i]));


이것을 이해하는 데 도움이 될 것입니다. 어떻게해야 다시 테스트를 통해이 작업을 수행 할 수 있습니까? 아니면 이해가 필요하고 전화가 걸려 올 때까지 넣어야합니다.


미안해. 이 용어에 대해 거의 이해하지 못해서 새삼 스럽다.


현재 막대 '0'을 사용하는 항목은 백 테스트를 올바르게 수행하지 못합니다. 전체 막대를 사용하고 사용자가 얻은 정확한 항목을 올바르게 사용하지 않기 때문입니다.


2014 년 10 월 20 일 코미디언과는 달리


MT4 빌드는 무엇입니까? MQ4가 아니기 때문에 오류가 발생합니다. ex4입니까? 나는 운이없는 컴파일을 시도했다.


그것에 대한 조언은 감사합니다.


2014 년 10 월 20 일 데이비드와 달리


MT4 빌드는 무엇입니까? MQ4가 아니기 때문에 오류가 발생합니다. ex4입니까? 나는 운이없는 컴파일을 시도했다.


그것에 대한 조언은 감사합니다.


Traders Way - 버전 4.00 빌드 711 (2014 년 9 월 27 일)을 사용 중이며 오류가 게시됩니다. 아무것도 변경하지 않은 경우 매개 변수 오류가 원인 일 수 있습니다.


2014 년 10 월 21 일 코미디언과는 달리


나랑 똑같아 내가 틀린 일을해야만 해. 내가 갇히면 다시 그것을 통과하여 게시 할 것입니다.


2014 년 10 월 21 일 데이비드와 달리


좋은 소리, 코미디언이 어떻게되는지 알게 해줘. 그래서 우리는 나중에 그것을 고정 시키려고 노력할 수있다.


2014 년 10 월 21 일 코미디언과는 달리


좋아, 모두 고마워.


MA 코딩 방법을 이해하려고 시도합니다.


2014 년 10 월 22 일 코미디언과는 달리


좋은 소리, 코미디언이 어떻게되는지 알게 해줘. 그래서 우리는 나중에 그것을 고정 시키려고 노력할 수있다.


데이비드, MA9 MA20에 대한 테스트를 끝내기 위해 노력하고 있지만 올바른 촛불에 칠할 수는 없습니다.


이를 사용하여 EMA 외부로 칠해도됩니다. 나는 '이중 EMA'를 만들었 어.


2014 년 10 월 22 일 코미디언과는 달리


나는 모든 것을 지워 버렸습니다. 다시 적용했고 지금은 훨씬 나아졌습니다. 조정할 필요없이 다시 적용하는 것이 좋습니다.


2014 년 10 월 22 일 데이비드와 달리


데이비드, MA9 MA20에 대한 테스트를 끝내기 위해 노력하고 있지만 올바른 촛불에 칠할 수는 없습니다.


이를 사용하여 EMA 외부로 칠해도됩니다. 나는 '이중 EMA'를 만들었 어.


그것이 옳은 것 같습니다. 현재의 + 1이 마지막 막대를 닫을 때를 기억하십시오. 따라서 스크린 샷이 올바르게 보입니다.


나는 모든 것을 지워 버렸습니다. 다시 적용했고 지금은 훨씬 나아졌습니다. 조정할 필요없이 다시 적용하는 것이 좋습니다.


reapplying 대 비틀기 및 재실행에 관해서는, 나는 실제로 당신의 것이 그 방법인지 확실하지 않은 차이를 발견 한 것을 기억하지 않습니다.


2014 년 10 월 22 일 코미디언과는 달리


네가 옳아. 그것은 화살표가 있어야하는 곳의 나의 이해입니다. 비디오가 깨끗하고 내 잘못이야.


어떤 생각을 어떻게 시간 프레임을 조정할 수 있습니까? 예를 들어 15m 만료 된 5m 차트를 사용하고자한다면?


2014 년 10 월 22 일 데이비드와 달리


네가 옳아. 그것은 화살표가 있어야하는 곳의 나의 이해입니다. 비디오가 깨끗하고 내 잘못이야.


어떤 생각을 어떻게 시간 프레임을 조정할 수 있습니까? 예를 들어 15m 만료 된 5m 차트를 사용하고자한다면?


그래, 라이언이 우리 한테 대답 해줄거야. 따라서 변경해야 할 사항은 다음과 같습니다.


근본적으로 [i-1]은 미래에 촛불이 1 개 있다는 것을 의미합니다. 그것을 [i-2]로 옮기는 것은 미래로 향하는 2 개의 양초를 의미합니다. 열기 & gt; 설정의 두 설정에서 모두 변경해야합니다. 닫히고, 승리와 손실 버퍼가 올바르게 그려집니다.


2014 년 10 월 22 일 코미디언과는 달리


훌륭해 - 고마워.


그것이 어떻게되는지 보게 될 것입니다.


2014 년 10 월 30 일 데이비드와 달리


Strategy Tester에서 맞춤형 지표를 사용하는 것과 관련된 계속되는 비디오.


2014 년 11 월 10 일 Pizzacut와 달리


나는 MT4에 익숙하지 않고 표시기 추가에 몇 가지 문제가 있습니다. 나는 그들을 다운로드 할 수 있으며, 표시기 파일에 tham을 넣고 MT4 플랫폼을 열면 그들을 볼 수 없습니다! 메타 에디터를 열었을 때 사용할 수없는 것들에 대해서만 모든 지표를 찾을 수 있습니다. 오류가 있습니다!


이것은 표시기 테스터에서도 발생합니다!


어떤 종류의 오류입니까? 어떻게 해결할 수 있습니까?


2014 년 11 월 10 일 데이비드와 달리


나는 MT4에 익숙하지 않고 표시기 추가에 몇 가지 문제가 있습니다. 나는 그들을 다운로드 할 수 있으며, 표시기 파일에 tham을 넣고 MT4 플랫폼을 열면 그들을 볼 수 없습니다! 메타 에디터를 열었을 때 사용할 수없는 것들에 대해서만 모든 지표를 찾을 수 있습니다. 오류가 있습니다!


이것은 표시기 테스터에서도 발생합니다!


어떤 종류의 오류입니까? 어떻게 해결할 수 있습니까?


먼저 MT4 플랫폼을 어떤 웹 사이트에서 다운로드 했습니까? 다음으로 지표를 설치할 때 MT4를 열고 파일 - & gt; 데이터 폴더 열기 & gt; 그런 다음 폴더가 열리면 MQL4 - & gt; 지표. 그것이 당신을 배치하는 곳입니다.


내가 전에 언급 한 오류를 보지 못했다.


이진 옵션의 거래 전략 테스트.


바이너리 옵션 거래 방법. 전략을 시험해 봅시다.


포럼과 인터넷의 다양한 사이트는 바이너리 옵션에 대한 오래된 거래 전략으로 만 등장했습니다. 동시에, 종종 전략과 잠재력에 대한 설명에서 상인들은 엄청난 이윤을 약속하며, 실제 무역 상황에서 완전히 다른 결과를 낳습니다. 이 경우 상인은 그의 예금의 일부를 잃습니다.


바이너리 옵션을 거래하는 방법? 테스트와 거래를 시작하십시오!


테스트 전략을 위해서는 견적의 역사를 따르는 데 사용하는 거래 터미널을 이용할 수 있습니다. 우리는 여기에서 다운로드 할 수있는 테스트에서 MT4를 사용하도록 제안합니다.


특히이 단말기에는 "Strategy Tester"라는 특수 소프트웨어 도구가 있기 때문에 특히 그렇습니다. 그것의 도움으로 과거 일의 실시간 견적을 재현하는 것이 가능합니다.


따라서 자신의 거래에서 사용할 새로운 거래 전략을 발견했을 때 시스템을주의하여 평가할 가치가 있는지 테스트하십시오.


테스트 할 시간대를 선택하십시오.


귀하의 거래 전략이 MT4 거래 터미널에서 사용하도록 설계되어있을 필요는 없습니다. 결국 무역에서 우리는 거래를 위해 모든 단말기에서 동일한 금융 자산의 견적을 처리해야합니다. 즉, 설치된 웹 단말기 및 MT4와 같은 터미널에는 동일한 인용 부호가 들어 있습니다. 그러나 Meta Trader 4 플랫폼의 장점은이 소프트웨어를 통해 과거를 살펴보고 선택한 자산에 대해 하루, 주, 월 또는 1 년 전의 실제 주가를 공개 할 수 있다는 것입니다.


그런 다음 견적을 표시 할 시간 간격을 선택하십시오. 일반적인 웹 터미널에서 브로커는 터미널 MT4에서 M15의 시간 프레임에 해당하는 선 그래프를 제공합니다. 그러나 그래프의 편의를 위해 M5 시간대를 선택해야합니다.


그런 다음 컴퓨터 마우스 휠을 스크롤하면 거의 언제든지 자산 견적 차트로 이동할 수 있습니다.


거래 전략을 테스트하는 방법.


예를 들어 인터넷에서 여러 기술 지표가 포함 된 거래 전략을 발견했습니다. 이 전략이있는 사이트는 거래 체결 규칙을 설명해야합니다. 우리가 취한 전략은 간단합니다. 거래 진입은 거래 진입 지표의 방향에 따른 신호선과 차트상의 가격 이동 캔들과의 교차점의 동시 교차입니다.


바이너리 옵션 거래 방법. 전략 테스트 기술.


가격 견적 운동의 이질성으로 인해, 평 균에서 추세로 또는 그 반대로 추세가 자주 바뀌며, 또한 역사상의 시험 거래 전략에 관해서는 적어도 3 개월의 간격이 필요합니다. 따라서 우리는 상이한 경향 (평행 추세)에서의 견적 이동의 변화를 고려하여 손익에 대한 평균 데이터를 얻습니다.


전략 테스터. 이 소프트웨어 향상을 사용하는 방법.


MT4 거래 단말기는 과거 일정 기간 동안 미리 정해진 속도로 온라인으로 가격 움직임을 수행 할 수있는 전략 테스터를 포함한다. 이것이 우리에게 무엇을 주는가? 우리는 역사의 그 부분에서 가격 움직임의 실제 모습을 재현 할 수 있습니다. 우리는 이미 그 결과를 미리 알고 있습니다. 동시에 터미널의 그래픽 도구를 사용하여 거래 모드에서 우리는 거래 조건에 따라 구매 또는 판매해야하는 차트에 직접 메모를 작성할 수 있습니다. 계약 기간 만료 시점 당신이 이익이나 손실을 얻을 수있는 곳입니다. 동시에 선택한 간격 및 금융 자산에 대해 전략 테스터를 사용할 수 있습니다.


MetaTrader 4 Strategy Tester로 이진 옵션 전략을 작성하고 테스트하는 방법.


목차.


이 기사에서는 바이너리 옵션 전략을 작성하고 Binary-Options-Strategy-Tester 유틸리티를 사용하여 Metatrader 4의 Strategy-Tester에서 테스트하는 방법을 보여줍니다. 기본적으로 Metatrader 4의 Strategy-Tester는 이력 데이터에 대해 전문가 자문 및 지표를 테스트 할 수 있지만 만료 시간이있는 이진 옵션을 처리 할 수는 없습니다. MetaTrader 4의 Strategy-Tester에서 자동화 된 Binary Options 전략을 테스트 할 필요가 있기 때문에 Binary-Options-Strategy-Tester는 이러한 필요에 맞는 유틸리티로 구축되었습니다.


이 개념은 다음과 같은 부분으로 구성됩니다.


이것은 Binary-Options-Strategy-Library (위 이미지에서 녹색으로 표시)를 통해 Binary-Options-Strategy-Library (Binary-Options-Strategy-Library)를 통해 통신하기 위해 표시기에 저장된 이진 옵션 전략을 작성하는 방법 Strategy-Tester (위 이미지에서 파란색으로 표시됨)를 사용하여 가상 주문을하고 백 테스트 및 전달 테스트로 결과를 계산합니다.


유의하시기 바랍니다 : 과거 데이터를 사용한 역 테스팅은 실제 미래를 나타내는 것이 아니라 전략을보다 안정적으로 얻을 수있는 근사치를 제공 할 수 있습니다.


귀하의 백 테스트의 품질은 과거 데이터에 따라 다릅니다. 따라서 고밀도 데이터 세트를 사용하는 것이 좋습니다.


Marketplace에서 Binary-Options-Strategy-Tester 유틸리티 다운로드 및 구매 :


MetaTrader의 Strategy-Tester에서 바이너리 옵션 전략을 테스트하는 테스트 프레임 워크 4.


구매 한 버전의 Binary-Options-Strategy-Tester 유틸리티가 필요한 이유는 무엇입니까?


Binary-Options 전략은 Binary-Options-Strategy-Tester의 기능을 (Binary-Options-Strategy-Library를 통해) 호출하여 가상 거래를 배치해야합니다. MQL4의 라이센스 개념과 관련하여 이는 제품에 작동 라이센스가있는 경우에만 작동합니다. 따라서 바이너리 옵션 전략 또는이 예제를 테스트하기 위해 제품을 구입해야합니다.


무료 BinaryOptionsStrategyLibrary. mqh를 다운로드하여 폴더 \ Include ([MetaTrader 4 경로 \ MQL4 \ Include]에 넣습니다.)


무료 라이브러리는 바이너리 옵션 전략을 쉽게 구축하고 Binary-Options-Strategy-Tester와 통신 할 수있는 몇 가지 기능을 제공합니다. 라이브러리에 대한 자세한 내용은 Binary-Options-Strategy-Library를 참조하십시오.


무료 KVO. mq4 표시기를 다운로드하여 \ Indicators \ Downloads 폴더 ([MetaTrader 4 경로] \ MQL4 \ Indicators \ Downloads)에 저장합니다 (컴파일 된 KVO. ex4 파일).


KVO 인디케이터는 "3.2.6 외부 인디케이터 (ex4 파일) 사용"섹션에 외부 인디케이터 및 ex4 파일에 대한 액세스를 표시하는 예제로 사용됩니다. 표시기에 대한 자세한 내용은 mql5 / en / code / 8677을 참조하십시오.


이제 "3. 바이너리 옵션 전략 예제"섹션으로 이동하여 직접 예제 코드를 작성하거나 아래 예제 코드를 다운로드하십시오.


옵션으로 BinaryOptionsStrategyExample. mq4를 다운로드하여 폴더 및 지시자 ([MetaTrader 4 경로 \ MQL4 \ 지시기)에 넣습니다 (컴파일 된 BinaryOptionsStrategyExample. ex4 파일).


이 이진 옵션 전략 예제 코드를 다운로드하여 직접 빌드하지 않고도 실행할 수 있습니다.


필요한. ex4 파일을 컴파일하려면 MetaQuotes 언어 편집기에서. mq4 파일 (KVO. mq4 및 BinaryOptionsStrategyExample. mq4 - NOT Binary-Options-Strategy-Library. mqh)을 열고 "컴파일"버튼을 클릭하거나 MetaTrader 4를 다시 시작하십시오. 이 파일들은 설명 된 폴더에 저장되며 MetaTrader 4는 자동으로이 작업을 수행합니다.


3. 바이너리 옵션 전략 예제.


다음 단계는 Binary-Options-Strategy-Tester와 통신하기 위해 지표에 저장된 예제 Binary Options 전략을 작성하는 방법에 대한 예를 안내합니다. 직접 빌드하거나 BinaryOptionsStrategyExample. mq4의 코드를 다운로드하면됩니다.


참고 :이 전략은 유익한 이진 옵션 전략이 아닙니다! Binary-Options-Strategy-Tester 유틸리티와 통신하기 위해 지표에서 전략을 작성하는 방법을 보여주는 예일뿐입니다. 물론 당신은 스스로 수익성 높은 전략을 세워야합니다. 그러나 보시다시피이 유틸리티는 바이너리 옵션 전략을 테스트하고 개선하는 데 도움이됩니다.


3.1 바이너리 옵션 전략 정의.


먼저 전략과 변경 가능한 값 (입력 매개 변수)을 정의해야합니다. MQL4 설명서에는 iCustom 인터페이스 (docs. mql4 / indicators)를 통해 해결할 수있는 모든 기술 지표가 나와 있습니다.


서로 교차 한 후 다음 촛불을 거래하기 위해 "빠른"및 "느린"이동 평균을 사용하여 간단한 이동 평균 교차 전략을 만들고 싶다고합시다. 설명서에는 단일 이동 평균의 가치를 얻을 수있는 방법이 나와 있습니다 (docs. mql4 / indicators / ima).


더 나아가 "MA 평균 기간"(빠름과 느림)과 "적용 가격"과 "평균화 방법"에 대한 값을 선택하고자합니다. 다른 값 (예 : 심볼, 시간 프레임 및 시프트)은 테스트 케이스 (예 : 테스터가 실행되는 심볼)에 따라 다르며 자동으로 설정해야합니다. 따라서 기본적으로 이동 평균에 대해 다음 변수가 필요합니다.


십자가를 확인하기 위해 두 가지 이동 평균이 필요하기 때문에 몇 가지 기본값이있는 전략 예제에 대해 다음과 같은 입력 매개 변수가 필요합니다.


int period_slow = 10;


int method_both = 0;


int applied_price_both = 0;


3.2 바이너리 옵션 생성 전략.


Binary-Options-Strategy-Tester가 실행중인 차트에 이진 옵션 전략을 끌어다 놓는 지표를 작성해야합니다.


MetaQuotes 언어 편집기를 엽니 다 (MetaTrader 4에서 "도구"-> "MetaQuotes 언어 편집기"를 클릭하거나 F4를 누름) "새로 만들기"를 클릭하십시오 :


MQL 마법사가 나타납니다. "사용자 지정 표시기"를 선택하여 빈 표시기를 만들고 "다음"을 클릭하십시오 :


"추가"버튼을 클릭하고 "다음"을 누르면 전략의 이름, 저작권 및 입력 매개 변수와 유형 및 기본값 (초기 값)을 입력하십시오 :


탭 이벤트 핸들러에서 "OnCalculate"확인란을 선택하면이 이벤트가 모든 틱에서 전략을 확인하는 데 필요합니다. "다음"을 누르십시오 :


탭 드로잉 속성에서 디버그 값을 출력하기 위해 별도의 창이 필요하므로 "별도의 창에 표시기"확인란을 선택하십시오. "마침"을 누릅니다 :


표시기의 초기 코드가 나타납니다.


// | 저작권 2016, __martin__ |


#property copyright "저작권 2016, __martin__"


#property link "mql5 / en / users / __ martin__"


#property version "1.00"


입력 int 기간 _fast = 5;


입력 int 기간 _ 슬로우 = 10;


입력 int method_both = 0;


입력 int applied_price_both = 0;


// | 사용자 정의 인디케이터 초기화 기능 |


// --- 표시기 버퍼 매핑.


// | 사용자 정의 표시기 반복 기능 |


int OnCalculate (const int rates_total,


const int prev_calculated,


const datetime & amp; time [],


const double & amp; open [],


const double & high [],


const double & low [],


const double & close [],


const long & amp; tick_volume [],


const long & amp; volume [],


const int 및 spread [])


3.2.1 입력 매개 변수.


초기 입력 매개 변수는 MQL 마법사 (3.2 Create Binary Options 전략 참조)를 사용하여 만들어지며 다음 단계를 통해이를 향상시킬 것입니다.


입력 매개 변수에 대한 이동 평균의 적용 가격 및 평균화 방법에 대한 int 값을 입력하지 않으려면 method_both 및 applied_price_both의 유형이 int에서 기본값이있는 enumeration 유형으로 변경됩니다.


또한 입력 매개 변수에 대한 주석이 추가되어 주석을 변수 이름 대신 레이블로 표시합니다.


입력 int 기간 _fast = 5; // 빠른 MA 값.


입력 int 기간 _ 슬로우 = 10; // 느린 MA 값.


입력 ENUM_MA_METHOD method_both = MODE_SMA; // MA 방법.


ENUM_APPLIED_PRICE 입력 된 apply_price_both = PRICE_CLOSE; // MA가 적용된 가격.


이 수정을 통해 입력 매개 변수는 입력 매개 변수의 "레이블"뿐만 아니라 선택할 수있는 값으로 드롭 다운을 제공합니다.


3.2.2 바이너리 옵션 - 전략 - 라이브러리 포함.


\ Include 폴더 ([MetaTrader 4 경로 포함] \ MQL4 \ Include)에 라이브러리 (2. 설치 참조)를 다운로드하여 저장 한 경우 다음과 같이 라이브러리를 포함 할 수 있습니다.


// | 저작권 2016, __martin__ |


#property copyright "저작권 2016, __martin__"


#property link "mql5 / en / users / __ martin__"


#property version "1.00"


라이브러리의 내용을 변경할 필요가 없습니다!


Binary-Options-Strategy-Library는 두 개의 새로운 매개 변수를 사용하여 입력 매개 변수를 향상시킵니다.


촛불 하나만 또는 촛불 당 하나의 거래 만 놓으십시오 전략에 대한 새로운 촛불의 시작 부분에서만 확인하십시오.


3.2.3 CallStrategy () 추가


CallStrategy ()에 대한 호출 추가 - 전략 표시기의 OnCalculate () 함수를 사용하여 새로운 틱마다 전략을 호출합니다. CallStrategy ()는 위에서 설명한 것처럼 Binary-Options-Strategy-Library에서 제공합니다.


// | 사용자 정의 표시기 반복 기능 |


int OnCalculate (const int rates_total,


const int prev_calculated,


const datetime & amp; time [],


const double & amp; open [],


const double & high [],


const double & low [],


const double & close [],


const long & amp; tick_volume [],


const long & amp; volume [],


const int 및 spread [])


따라서 이진 옵션 전략 표시기에 CheckMyRules () 함수를 구현해야합니다.


3.2.4 CheckMyRules ()와 helper-function을 구현하십시오.


Binary-Options-Strategy-Library를 통해 호출되는 CheckMyRules () 함수에서 전략의 조건이 구현되고 거래는 라이브러리의 PlaceTrade () 함수를 통해 수행됩니다. 두 이동 평균의 값은 이동 평균의 값이 헬퍼 함수 GetValuesForMA ()에서 가져 오는 동안 if 조건에서 비교하기 위해 변수에 일시적으로 저장됩니다.


입력 int 기간 _fast = 5; // 빠른 MA 값.


입력 int 기간 _ 슬로우 = 10; // 느린 MA 값.


입력 ENUM_MA_METHOD method_both = MODE_SMA; // MA 방법.


ENUM_APPLIED_PRICE 입력 된 apply_price_both = PRICE_CLOSE; // MA가 적용된 가격.


// | 거래 규칙을 여기에 두십시오 - 아래 예제를보십시오. |


// | StrategyTester는이 기능을 호출하여 거래를합니다. |


// | - 함수 매개 변수를 추가하십시오. CheckMyRules (int a) |


// | - 함수 반환 유형을 변경합니다 (예 : int CheckMyRules () |


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Current = GetValueForMA (period_slow, 0);


double emaFast_Current = GetValueForMA (period_fast, 0);


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Past = GetValueForMA (period_slow, 1);


이중 emaFast_Past = GetValueForMA (period_fast, 1);


& amp; & amp; emaFast_Current & lt; emaSlow_Past) // 느린 MA와 빠른 MA가 교차하는지 확인합니다.


PlaceTrade (OP_SELL); // Strategy-Tester의 SELL-Trade를 배치하면 함수는 BinaryOptionsStrategyFunctions. mqh에 있습니다.


& amp; & amp; emaFast_Current & gt; emaSlow_Past) // 느린 MA와 빠른 MA가 교차하는지 확인합니다.


PlaceTrade (OP_BUY); // Strategy-Tester의 BUY-Trade 장소는 함수는 BinaryOptionsStrategyFunctions. mqh에 있습니다.


// | 도우미 기능을 여기에 배치하십시오 (아래 예 참조).


// | 기간, 방법, 적용 가격 및 교대에 대한 MA 값을 얻으십시오. |


// | iMA ()에 대한 자세한 내용은 docs. mql4 / indicators / ima |를 참조하십시오.


double GetValueForMA (int _period, int _shift)


iMA 반환 (NULL, 0, _period, 0, method_both, applied_price_both, _shift);


3.2.5 디버그 값을 출력하십시오.


함수 PrintDebugValue ()는 테스터가 실행되는 동안 디버그 값을 출력 할 수있는 권한을 부여합니다. 아래 예에서 이동 평균의 값은 변수 이름과 함께 라벨로 인쇄됩니다.


입력 int 기간 _fast = 5; // 빠른 MA 값.


입력 int 기간 _ 슬로우 = 10; // 느린 MA 값.


입력 ENUM_MA_METHOD method_both = MODE_SMA; // MA 방법.


ENUM_APPLIED_PRICE 입력 된 apply_price_both = PRICE_CLOSE; // MA가 적용된 가격.


// | 거래 규칙을 여기에 두십시오 - 아래 예제를보십시오. |


// | StrategyTester는이 기능을 호출하여 거래를합니다. |


// | - 함수 매개 변수를 추가하십시오. CheckMyRules (int a) |


// | - 함수 반환 유형을 변경합니다 (예 : int CheckMyRules () |


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Current = GetValueForMA (period_slow, 0);


double emaFast_Current = GetValueForMA (period_fast, 0);


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Past = GetValueForMA (period_slow, 1);


이중 emaFast_Past = GetValueForMA (period_fast, 1);


PrintDebugValue ( "emaFast_Current :", (문자열) emaFast_Current, 1); // 1 행의 라벨과 값.


PrintDebugValue ( "emaSlow_Past :", (문자열) emaSlow_Past, 2); // 2 행의 레이블 및 값.


PrintDebugValue ( "emaFast_Past :", (문자열) emaFast_Past, 3); // 3 행에 라벨을 지정하고 값을 지정합니다.


& amp; & amp; emaFast_Current & lt; emaSlow_Past) // 느린 MA와 빠른 MA가 교차하는지 확인합니다.


PlaceTrade (OP_SELL); // Strategy-Tester의 SELL-Trade를 배치하면 함수는 BinaryOptionsStrategyFunctions. mqh에 있습니다.


& amp; & amp; emaFast_Current & gt; emaSlow_Past) // 느린 MA와 빠른 MA가 교차하는지 확인합니다.


PlaceTrade (OP_BUY); // Strategy-Tester의 BUY-Trade 장소는 함수는 BinaryOptionsStrategyFunctions. mqh에 있습니다.


// | 도우미 기능을 여기에 배치하십시오 (아래 예 참조).


// | 기간, 방법, 적용 가격 및 교대에 대한 MA 값을 얻으십시오. |


// | iMA ()에 대한 자세한 내용은 docs. mql4 / indicators / ima |를 참조하십시오.


double GetValueForMA (int _period, int _shift)


iMA 반환 (NULL, 0, _period, 0, method_both, applied_price_both, _shift);


외부 지시자의 사용 (ex4 파일)


또한 버퍼에 값을 저장하는 외부 표시기는 컴파일 된 ex4 파일 만 존재하는 경우에도 바이너리 옵션 전략에 액세스 할 수 있습니다.


신호 라인이 BUY 거래의 경우 0 이상이고 SELL 거래의 경우 0 인 경우에만 거래를하기 위해 KVO 표시기 mql5 / en / code / 8677의 신호 라인을 포함한다고 가정합시다. KVO. mq4 지시기를 다운로드하고 \ Indicators \ Downloads 폴더 ([MetaTrader 4 경로 \ MQL4 \ Indicators \ Downloads])에 컴파일 된 (ex4 파일)을 놓습니다.


필요한. ex4 파일을 컴파일하려면 MetaQuotes 언어 편집기에서 KVO. mq4를 열고 "컴파일"버튼을 클릭하거나 파일이 설명 된 폴더에 저장된 후 MetaTrader 4를 다시 시작하면 MetaTrader 4가 자동으로이 작업을 수행합니다.


먼저 액세스 할 관련 값을 저장하는 관련 버퍼를 식별해야합니다. 따라서 우리는 MetaTrader 4의 "데이터 창"버튼을 눌러 사용 된 표시기의 사용 가능한 모든 버퍼를 표시하고 KVO 표시기를 차트로 끌어옵니다. 그래프 위에 마우스를 놓고 십자가를 가리키면 십자가를 표시하는 데 걸리는 시간의 표시기의 버퍼 값이 데이터 창에 표시됩니다.


데이터 윈도우 레이블은 인디케이터의 두 번째 버퍼 값이 신호 라인을 저장한다는 것을 알려줍니다. 표시기 버퍼에 레이블이 없으면 버퍼 값과 차트 및 표시기의 십자가 아래 표시된 값을 비교하여 올바른 버퍼를 찾을 수 있습니다. 표시기의 버퍼는 0으로 시작하므로 버퍼 값 1 = 버퍼 0, 버퍼 값 2 = 버퍼 1 등이 있고 신호 값을 얻기 위해 버퍼 1에 액세스해야합니다.


다음으로 우리가 접근하고자하는 외부 지시기의 모든 입력 매개 변수를 알아야합니다. 차트에서 지표를 드레그함으로써 모든 입력 파라미터를 볼 수 있습니다.


우리는 (기본값) 값 (34, 55, 13)으로 지표에 액세스하고자합니다. iCostum을 기반으로하는 헬퍼 함수를 ​​사용하여 다음과 같은 매개 변수로 지표의 값을 얻을 수있는 가능성을 제공합니다. 버퍼 및 시프트, shift 0은 현재 양초의 값이고, 1은 마지막 양초의 값이고, 2는 두 번째 값의 마지막 양들 등입니다. 또한 지표 버퍼의 값을 임시 저장하고 전략의 if-condition을 향상시킵니다.


입력 int 기간 _fast = 5; // 빠른 MA 값.


입력 int 기간 _ 슬로우 = 10; // 느린 MA 값.


입력 ENUM_MA_METHOD method_both = MODE_SMA; // MA 방법.


ENUM_APPLIED_PRICE 입력 된 apply_price_both = PRICE_CLOSE; // MA가 적용된 가격.


// | 거래 규칙을 여기에 두십시오 - 아래 예제를보십시오. |


// | StrategyTester는이 기능을 호출하여 거래를합니다. |


// | - 함수 매개 변수를 추가하십시오. CheckMyRules (int a) |


// | - 함수 반환 유형을 변경합니다 (예 : int CheckMyRules () |


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Current = GetValueForMA (period_slow, 0);


double emaFast_Current = GetValueForMA (period_fast, 0);


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Past = GetValueForMA (period_slow, 1);


이중 emaFast_Past = GetValueForMA (period_fast, 1);


double kvoSignal = GetValuesFromIndicator__KVO __ (1, 0);


PrintDebugValue ( "emaFast_Current :", (문자열) emaFast_Current, 1); // 1 행의 라벨과 값.


PrintDebugValue ( "emaSlow_Past :", (문자열) emaSlow_Past, 2); // 2 행의 레이블 및 값.


PrintDebugValue ( "emaFast_Past :", (문자열) emaFast_Past, 3); // 3 행에 라벨을 지정하고 값을 지정합니다.


& amp; & amp; emaFast_Current & lt; emaSlow_Past // 느린 MA와 빠른 MA가 교차하는지 확인합니다.


& amp; & amp; kvoSignal & lt; 0) // KVO의 신호 값이 0 미만인지 확인하십시오.


PlaceTrade (OP_SELL); // Strategy-Tester의 SELL-Trade를 배치하면 함수는 BinaryOptionsStrategyFunctions. mqh에 있습니다.


& amp; & amp; emaFast_Current & gt; emaSlow_Past // 느린 MA와 빠른 MA가 교차하는지 확인합니다.


& amp; & amp; kvoSignal & gt; 0) // KVO의 신호 값이 0 이상인지 확인하십시오.


PlaceTrade (OP_BUY); // Strategy-Tester의 BUY-Trade 장소는 함수는 BinaryOptionsStrategyFunctions. mqh에 있습니다.


// | 도우미 기능을 여기에 배치하십시오 (아래 예 참조).


// | 기간, 방법, 적용 가격 및 교대에 대한 MA 값을 얻으십시오. |


// | iMA ()에 대한 자세한 내용은 docs. mql4 / indicators / ima |를 참조하십시오.


double GetValueForMA (int _period, int _shift)


iMA 반환 (NULL, 0, _period, 0, method_both, applied_price_both, _shift);


// | 외부 지시자로부터 값을 얻는 방법의 예 |


// | int _buffer - 지시자 버퍼 (0부터 시작) |


// | int _shift - 시프트 할 값. 0 = 현재 양초, 1 = 이전 양초 |


double GetValuesFromIndicator__KVO __ (int _buffer, int _shift = 0) // "__KVO__"을 표시기 이름으로 변경합니다.


NULL, // 테스터에서 선택한 현재 시간 틀에 대한 NULL - 변경 필요 없음.


테스터에서 선택된 현재 기호에 대해 0, // 0 - 변경 필요 없음.


"\\ Downloads \\ KVO. ex4", // 파일 경로 및 파일 이름 (*.ex4 파일)


// 지시기 입력 시작.


_shift // Shift (현재 촛불의 경우 0), _shift는 함수 매개 변수에 적용됩니다 - 변경 필요 없음.


또한 사용 된 KVO 표시기의 값으로 전략 표시기의 입력 매개 변수를 향상시키고 변수로 도우 퍼 기능의 값을 설정할 수 있습니다. 이 자습서는 예제 일 뿐이며 "가능한 한 간단하게"이 변형은 표시되지 않습니다.


3.3 완전한 코드.


아래는 Binary-Options-Strategy-Tester를 드래그하여 차트에서 테스트하고 결과를 볼 수 있도록 위의 모든 단계에서 Binary-Options-Strategy-Example의 전체 코드를 찾을 수 있습니다.


// | 저작권 2016, __martin__ |


#property copyright "저작권 2016, __martin__"


#property link "mql5 / en / users / __ martin__"


#property version "1.00"


// | 입력 매개 변수를 입력하십시오 - 아래 예제 참조 |


입력 int 기간 _fast = 5; // 빠른 MA 값.


입력 int 기간 _ 슬로우 = 10; // 느린 MA 값.


입력 ENUM_MA_METHOD method_both = MODE_SMA; // MA 방법.


ENUM_APPLIED_PRICE 입력 된 apply_price_both = PRICE_CLOSE; // MA가 적용된 가격.


// | 사용자 정의 인디케이터 초기화 기능 |


// --- 표시기 버퍼 매핑.


// | 사용자 정의 표시기 반복 기능 |


int OnCalculate (const int rates_total,


const int prev_calculated,


const datetime & amp; time [],


const double & amp; open [],


const double & high [],


const double & low [],


const double & close [],


const long & amp; tick_volume [],


const long & amp; volume [],


const int 및 spread [])


// | 거래 규칙을 여기에 두십시오 - 아래 예제를보십시오. |


// | StrategyTester는이 기능을 호출하여 거래를합니다. |


// | - 함수 매개 변수를 추가하십시오. CheckMyRules (int a) |


// | - 함수 반환 유형을 변경합니다 (예 : int CheckMyRules () |


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Current = GetValueForMA (period_slow, 0);


double emaFast_Current = GetValueForMA (period_fast, 0);


// 헬퍼 함수 GetValueForMA ()를 호출하여 값을 얻습니다. 아래 헬퍼 함수를 ​​참조하십시오.


double emaSlow_Past = GetValueForMA (period_slow, 1);


이중 emaFast_Past = GetValueForMA (period_fast, 1);


double kvoSignal = GetValuesFromIndicator__KVO __ (1, 0);


PrintDebugValue ( "emaFast_Current :", (문자열) emaFast_Current, 1); // 1 행의 라벨과 값.


PrintDebugValue ( "emaSlow_Past :", (문자열) emaSlow_Past, 2); // 2 행의 레이블 및 값.


PrintDebugValue( "emaFast_Past: " ,( string )emaFast_Past, 3 ); //Label and value in line 3.


&& emaFast_Current < emaSlow_Past //Check if slow MA and fast MA crosses.


&& kvoSignal < 0 ) //Check if signal value of KVO is under 0.


PlaceTrade( OP_SELL ); //Place SELL-Trade for Strategy-Tester, function is located in BinaryOptionsStrategyLibrary. mqh.


&& emaFast_Current > emaSlow_Past //Check if slow MA and fast MA crosses.


&& kvoSignal > 0 ) //Check if signal value of KVO is over 0.


PlaceTrade( OP_BUY ); //Place BUY-Trade for Strategy-Tester, function is located in BinaryOptionsStrategyLibrary. mqh.


//| Place your Helper-Functions here, see example below |


//| Get MA values for period, method, applied price and shift. |


//| For details of iMA() see docs. mql4/indicators/ima |


double GetValueForMA( int _period, int _shift)


return iMA ( NULL , 0 ,_period, 0,method_both, applied_price_both,_shift);


//| Example how to get values from external indicators, |


//| int _buffer - indicator-buffer (starts with 0) |


//| int _shift - value to shift; 0 = current candle, 1 = prev candle |


double GetValuesFromIndicator__KVO__( int _buffer, int _shift= 0 ) //Change "__KVO__" to indicator name.


NULL , //NULL for current timeframe selected in tester - NO CHANGES NEEDED.


0 , //0 for current symbol selected in tester - NO CHANGES NEEDED.


"\\Downloads\\KVO. ex4" , //Filepath and filename of the indicator (*.ex4 file)


//BEGIN INDCATORS INPUTS.


_shift //Shift (0 for current candle), _shift is adressed over function parameter - NO CHANGES NEEDED.


4. Run a backtest (video)


The following video shows how to run a backtest of your Binary Options strategy in Strategy-Tester of MetaTrader 4:


Start Binary-Options-Strategy-Tester in Strategy-Tester of MetaTrader 4 and set the input parameters Drag your Binary Options strategy indicator on the chart, set the input parameters and check "Allow external expert imports" on the "common" tab Drag your used indicators with their used input parameters on the chart to see their values while tester is running (optional) Save all settings in a template to run the test with all settings again - using the pause button of the Strategy-Tester (optional) See the results of your Binary Options strategy on the Strategy-Tester chart.


5. Run a forward test.


To do a forward test simply drag the Binary-Options-Strategy-Tester utility and your strategy indicator on your demo or live chart of your broker instead of using it in Strategy-Tester:


Drag Binary-Options-Strategy-Tester utility on demo or live chart and set the input parameters Drag your Binary Options strategy indicator on the chart, set the input parameters and check "Allow external expert imports" on the "common" tab Drag your used indicators with their used input parameters on the chart to see their values while forward test is running (optional) Save all settings in a template to run the test again with all settings (optional) See the results of your Binary Options strategy on demo or live chart.


Question: Why do you show an example of a non profitable Binary Options strategy?


Answere: This is just an example how to build a strategy in an Indicator to communicate with the Binary-Options-Strategy-Tester utility in marketplace to test and improve your strategy.


Question: Binary-Options-Strategy-Tester stops after the exact amount of losses with error "Array out of range". 왜?


Answere: Binary-Options-Strategy-Tester can rise an error after x losses to stop Tester and to analyse the situaion on the chart. If you do not want to, just switch off the option in settings.


Question: No arrows appear on chart after I draged my indicator with a working strategy on it. 어떻게 된 거예요?


Answere: You have to enable "Allow external expert imports" on the "common" tab while you drag your strategy-indicator on the chart (log message will show an error in this case).


Question: No arrows appear on chart after I draged my indicator with a working strategy on it with "Allow external expert imports" enabled. 왜?


Answere: A strategy has to call a function of Binary-Options-Strategy-Tester to place virtual trades. Related to the MQL4 license concept this only works if the product has a working license. Therefore you have to purchase the product.


Question: No arrows appear on chart after I dragged my indicator with a working strategy on it and I got errors like "Cannot call .." or "Cannot load .." in the log of MetaTrader 4. What can I do?


Answere: Use the latest version (greater v1.00) of BinaryOptionsStrategyLibrary. mqh. Check version tag in code of your BinaryOptionsStrategyLibrary. mqh and see changelog v1.01 of BinaryOptionsStrategyLibrary.


Question: I see no results on Strategy-Tester tabs "Results", "Graph", "Report". Where I can see the results?


Answere: Strategy-Tester of MetaTrader 4 can not handle Binary Options so these tabs con not be used. Therefore this utility calculates all wins and losses and prints the results on the chart.


As I need a possibility to test Binary Options strategies automated in Strategy-Tester of MetaTrader 4 for long time periods in a short time and to do foward tests on the chart of the broker, this utility was build. I have spent a lot of time for the concept and the implementation of the Binary-Options-Strategy-Tester as well as for the documentation. Maybe there is a better way to do it and maybe some improvements will bring it closer to fit the needs of you. So please feel free to contact me for ideas for improvements!

No comments:

Post a Comment