if(!trend)
{
(if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cnt++; // .. прибавим 1 к счётчикуif (Close[i] < Open[i]) // Если бар, не соответствует основному признаку..
cnt = 0;
}
else
{
...
}
테스터의 작업에 대해 질문이 있습니다 . 테스트를 통과한 후 매개변수(날짜, 통화 쌍, 기간)를 변경하고 테스트를 다시 시작합니다. 테스트가 계속되고 완료되면 "차트 " 및 "보고서" 탭은 전혀 변경되지 않습니다. 모든 것이 이전 테스트에서 그대로 유지됩니다. 저장된 보고서도 오래되었습니다. 그 이유는 무엇이며 해결 방법은 무엇입니까? 결과를 재설정하는 기능이 있습니까?
TarasBY : 나는 논리를 많이 탐구하지 않았지만 뭔가가 나에게 추가 계산이 있음을 알려줍니다. 1년 반 전에 나는 천문분의 시작 부분에 명료한 컷이 있는 M1 양초 형성과 인용문 수집으로 같은 유형의 작업을 해결했습니다. 관심이 있는 경우 순전히 코드(파일) 최적화에 대한 몇 가지 사항을 확인할 수 있습니다. 사실, 최적화에 대해 진지하다면 코드의 실행 시간을 측정해야 합니다. ;)
지금은 처음부터 완전히 다른 것을 시도하고 있습니다.
매핑에 관해 Vadim에게 질문합니다. 그래서. 처음부터 모든 것을 시작했습니다. 소유자의 원래 틱 TF를 사용합니다.
여기에서 논리는 원칙적으로 간단하고 가장 단순합니다. 우리는 입찰 요청을 포착하고 RateInfo를 형성하지만 시간을 볼륨에 입력하고 시간을 시뮬레이션합니다. 이제 Time이 어떻게 모델링되는지 이해하지 못한 채 시뮬레이션을 완전히 제거하고 표준 TOLHCV에 따라 수행하고 그 전에 "마지막 시작() 호출 이후 0초 이상 경과한 경우"를 설정합니다. 동일한 조건의 다른 분기에서 less가 통과했다면 High-Low를 편집하고 Volume을 증가시키십시오. 즉, 실제로 완전히 제거 된주기, 즉 배치 된 것과 동일한 것입니다. "구멍이 있는" 두 번째 TF를 얻습니다(초 간격 포함).
이것은 두 번째 tf 코드에 있습니다. 바로 두 번째 TF에서 중단되는 EA의 경우 x초 전의 TOLHCV 값은 다음을 제외하고 ind[GlobalVariableGet("final")]-ind[GlobalVariableGet("final")-x]+1로 얻을 수 있습니다. 물론 이 배열은 전달하는 것입니다. 따라서 매핑을 사용합니다.
//в шапке#import "SharedMemoryMT4.dll"int MemoryCreate( int nArea, string sPrefixArea, int hFileUser, int nIndex, string sName, int nSize);
bool MemoryWriteInt( int nArea, string sPrefixArea, int nIndex, string sName, int nStartByte, int nValue);
bool MemoryCloseHandle( int nArea, string sPrefixArea, int hMemory);
#import//в инит
hMapping=MemoryCreate( 1 , "" , NULL , - 1 , "ind" , 60 * GlobalVariableGet ( "ADXBars" ));
//в деинит
MemoryCloseHandle( 1 , "" , hMapping);
//в старт вместо for (; i<Σ; i++) MemoryWriteInt( 1 , "" , - 1 , "ind" , i, iBars(sn, 1 )); //ind[i]=iBars(sn, 1);
몇 초 동안 멈추고 x초 전에 TOLHCV 값을 읽는 테스트 스크립트를 작성합니다(촛불 아님):
#property show_inputs#import "SharedMemoryMT4.dll"int MemoryOpen( int nArea, string sPrefixArea, int nIndex, string sName);
int MemoryReadInt( int nArea, string sPrefixArea, int nIndex, string sName, int nStartByte);
#importexternint x; //сколько секунд назад с данного момента прикрепления смотрим значения TOLHCVint init()
{
MemoryOpen( 1 , "" , - 1 , "ind" );
return ( 0 );
}
int start()
{
//MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1int n=MemoryReadInt( 1 , "" , - 1 , "ind" , GlobalVariableGet ( "final" ))-MemoryReadInt( 1 , "" , - 1 , "ind" , GlobalVariableGet ( "final" )-x)+ 1 ;
Alert (TimeToStr( TimeCurrent (),TIME_SECONDS), ": Time=" , TimeToStr(Time[n], TIME_SECONDS), ", Open=" , Open[n], ", High=" , High[n], ", Low=" , Low[n], ", Close=" , Close[n], ", Volume=" , Volume[n]);
return ( 0 );
}
두 번째 기간을 시작합니다. 초기화되면 창이 표시됩니다.
Ошибка в методе "Utils::Memory::Mapping::Create()" .
В файловом отображении ""
не выделена память при отсутствии дескриптора пользовательского файла.
로그에서 58.572회
10:45:42 SandyEw7-2.4 EURUSD,M1: function 'MemoryWriteInt' call from dll 'SharedMemoryMT4.dll' critical error c0000005 at 02CA05A3.
...
10:48:43 SandyEw7-2.4 EURUSD,M1: function 'MemoryWriteInt' call from dll 'SharedMemoryMT4.dll' critical error c0000005 at 02CA05A3.
초기화 해제되면 창을 표시합니다.
В методе "MT4::Memory::SearchIndexOrHandle()" не установлен параметр для поиска в области памяти терминала.
글쎄, 비초기화는 나중에, 나는 스크립트를 넣었다 - 절대 경고하지 않는다. MemoryCreate 및 MemoryCloseHandle을 주석 처리하면 로그에 아무 것도 출력하지 않습니다(경고 스크립트 표시).
안녕하세요 프로그래밍 전문가
차트 위와 전문가가 표시한 텍스트 아래에 작은 들여쓰기(미학용)가 있는 왼쪽 상단 모서리 에 배경색으로 채워진 사각형을 그리는 방법을 알려주실 수 있습니까?
미리 감사드립니다
이것은 같은 것입니다. 다른 상황에 대해서만 페인트도 칠하십시오.
그래서, 그렇지 않습니까?
Artyom, 업무에 사용하지 말고 코드를 작성 하십시오. 응? 아니면 당신의 손에 그 물건을 주십시오, 내가 이 고통을 끝내겠습니다...
테스터의 작업에 대해 질문이 있습니다 . 테스트를 통과한 후 매개변수(날짜, 통화 쌍, 기간)를 변경하고 테스트를 다시 시작합니다. 테스트가 계속되고 완료되면 "차트 " 및 "보고서" 탭은 전혀 변경되지 않습니다. 모든 것이 이전 테스트에서 그대로 유지됩니다. 저장된 보고서도 오래되었습니다. 그 이유는 무엇이며 해결 방법은 무엇입니까? 결과를 재설정하는 기능이 있습니까?
나는 매뉴얼, 기사, 포럼 검색 - 그런 문제에 대한 언급을 보지 못했습니다.
이렇지 않아야 합니다. 아마도 "최적화" 확인란이 선택되어 있습니까?
이렇지 않아야 합니다. 아마도 "최적화" 확인란이 선택되어 있습니까?
아, 이런 경우가 있는 것 같습니다. 새 테스트를 시작할 때 최적화가 활성화되어 있다는 사실에 주목하지 않고 중요하지 않다고 생각했습니다. 약간 이상한 UI...
그러나 이제 모든 것이 작동합니다. 대단히 감사합니다!
나는 논리를 많이 탐구하지 않았지만 뭔가가 나에게 추가 계산이 있음을 알려줍니다. 1년 반 전에 나는 천문분의 시작 부분에 명료한 컷이 있는 M1 양초 형성과 인용문 수집으로 같은 유형의 작업을 해결했습니다.
관심이 있는 경우 순전히 코드(파일) 최적화에 대한 몇 가지 사항을 확인할 수 있습니다. 사실, 최적화에 대해 진지하다면 코드의 실행 시간을 측정해야 합니다. ;)
지금은 처음부터 완전히 다른 것을 시도하고 있습니다.
매핑에 관해 Vadim에게 질문합니다. 그래서. 처음부터 모든 것을 시작했습니다. 소유자의 원래 틱 TF를 사용합니다.
여기에서 논리는 원칙적으로 간단하고 가장 단순합니다. 우리는 입찰 요청을 포착하고 RateInfo를 형성하지만 시간을 볼륨에 입력하고 시간을 시뮬레이션합니다. 이제 Time이 어떻게 모델링되는지 이해하지 못한 채 시뮬레이션을 완전히 제거하고 표준 TOLHCV에 따라 수행하고 그 전에 "마지막 시작() 호출 이후 0초 이상 경과한 경우"를 설정합니다. 동일한 조건의 다른 분기에서 less가 통과했다면 High-Low를 편집하고 Volume을 증가시키십시오. 즉, 실제로 완전히 제거 된주기, 즉 배치 된 것과 동일한 것입니다. "구멍이 있는" 두 번째 TF를 얻습니다(초 간격 포함).
또한 완전히 강세 - 약세에 그라데이션을 떠났다. 게임은 촛불의 가치가 있습니까? 이 옵션과 소유자의 초기 옵션을 인쇄하여 GetTickCount() 를 확인하고 설정하고 동일한 차트에서 동시에 실행하고 로그를 확인합니다.
예상했던 것입니다. 눈금 - 원본, 간격이 있는 초 - 수정됨. 이제 time=TimeCurrent() 전에 보조 배열을 형성합니다.
이것은 두 번째 tf 코드에 있습니다. 바로 두 번째 TF에서 중단되는 EA의 경우 x초 전의 TOLHCV 값은 다음을 제외하고 ind[GlobalVariableGet("final")]-ind[GlobalVariableGet("final")-x]+1로 얻을 수 있습니다. 물론 이 배열은 전달하는 것입니다. 따라서 매핑을 사용합니다.
몇 초 동안 멈추고 x초 전에 TOLHCV 값을 읽는 테스트 스크립트를 작성합니다(촛불 아님):
두 번째 기간을 시작합니다. 초기화되면 창이 표시됩니다.
로그에서 58.572회
초기화 해제되면 창을 표시합니다.
В методе "MT4::Memory::SearchIndexOrHandle()" не установлен параметр для поиска в области памяти терминала.
글쎄, 비초기화는 나중에, 나는 스크립트를 넣었다 - 절대 경고하지 않는다. MemoryCreate 및 MemoryCloseHandle을 주석 처리하면 로그에 아무 것도 출력하지 않습니다(경고 스크립트 표시).
- 그리고 그게 다야. 따라서 논리적으로 잘못된 순서로 호출을 사용하고 있습니다. 또는 선언 중이거나 잘못된 것을 선언하고 있습니다. 축 WinXP. Vadim, 적어도 이동 방향을 알려주세요.