이해합니다 - 코드를 게시하지만 아직 지불하지 않은 거래 기능 에 대한 클래스를 사용합니다 ...
하지만 MT5의 프로파일링 결과를 보여드릴 준비가 되어 있습니다. 제가 알기로는 거래 기능에는 문제가 없습니다.
OHLC 환경의 경우 다음 기능을 사용합니다.
//-------------------------------------------------------------------//==MQL4toMQL5//+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ doubleOpen ( int index)
{
double open= 0 ;
ArraySetAsSeries ( Open , true );
int copied= CopyOpen ( Symbol (), 0 , 0 , Bars ( Symbol (), 0 ), Open );
if (copied> 0 && index<copied) open= Open [index];
return (open);
}
//+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ doubleLow ( int index)
{
double low= 0 ;
ArraySetAsSeries ( Low , true );
int copied= CopyLow ( Symbol (), 0 , 0 , Bars ( Symbol (), 0 ), Low );
if (copied> 0 && index<copied) low= Low [index];
return (low);
}
//+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ doubleHigh ( int index)
{
double high= 0 ;
ArraySetAsSeries ( High , true );
int copied= CopyHigh ( Symbol (), 0 , 0 , Bars ( Symbol (), 0 ), High );
if (copied> 0 && index<copied) high= High [index];
return (high);
}
//+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ doubleClose ( int index)
{
double close= 0 ;
ArraySetAsSeries ( Close , true );
int copied= CopyHigh ( Symbol (), 0 , 0 , Bars ( Symbol (), 0 ), Close );
if (copied> 0 && index<copied) close= Close [index];
return (close);
}
나는 당신의 조리법에 따라 그것을 바꿨고 고문은 주문 개시를 중단했습니다 ... 아마도 그가 다시 망쳤습니까?
doubleClose ( int index)
{
double close= 0 ;
ArraySetAsSeries ( Close , true );
int copied= Copy High ( Symbol (), 0 ,index, 1 , Close );
if (copied> 0 && index<copied) close= Close [index];
return (close);
}
그래서 그것이 거래 기능에 관한 것인지 확실하지 않습니다 ...
거기에는 누구나 재현할 수 있는 건설적인 진술의 예가 있습니다.
이해합니다 - 코드를 게시하지만 아직 지불하지 않은거래 기능 에 대한 클래스를 사용합니다 ...
렌더링할 때 점진적인 속도 저하(최대 속도에서 막대당 거의 몇 초)를 관찰합니다. 어떤 아이디어가 있습니까?
바이러스 백신이 검사하지 않음, SSD 나사, 공간이 있습니다...
EA 를 MT4에서 MT5로 다시 작성했습니다.
이야기는 동일하며 몇 분 안에 체크포인트를 테스트합니다.
MT5
2017.07.20 20:01:38.059 코어 1 Si-9.17,M1: 107509틱, 35385바 생성. 환경이 0:00:00.078에 동기화되었습니다. 테스트는 0:03:52.707에 통과했습니다 (0:00:00.031을 사전 처리하는 틱 포함).
MT4
2017.07.20 20:02:32.696 RUBRUR,M1: 0:00:04.259(총 시간 0: 00:11.310)에 처리된 225314개의 틱 이벤트(35701개 막대, 231783개 막대 상태)
두 전문가의 코드를 보여줍니다. 기본 MQL5 대신 지연 MQL4 에뮬레이터가 있습니까?
이유가 있어 아직 코드를 표시할 준비가 되지 않았습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
Aleksey Vyazmikin , 2017.07.20 23:28
이해합니다 - 코드를 게시하지만 아직 지불하지 않은 거래 기능 에 대한 클래스를 사용합니다 ...
하지만 MT5의 프로파일링 결과를 보여드릴 준비가 되어 있습니다. 제가 알기로는 거래 기능에는 문제가 없습니다.
내가 뭔가 잘못하고 있는 건 아닐까?OHLC 환경의 경우 다음 기능을 사용합니다.
이유가 있어 아직 코드를 표시할 준비가 되지 않았습니다.
하지만 MT5의 프로파일링 결과를 보여드릴 준비가 되어 있습니다. 제가 알기로는 거래 기능에는 문제가 없습니다.
OHLC 환경의 경우 다음 기능을 사용합니다.
내가 뭔가 잘못하고 있는 건 아닐까?기록에서 사용 가능한 모든 막대를 복사하고 있지만 실제로는 검색된 인덱스 가 하나만 필요합니다.
기록에서 사용 가능한 모든 막대를 복사하고 있지만 실제로는 검색된 인덱스 가 하나만 필요합니다.
나는 당신의 조리법에 따라 그것을 바꿨고 고문은 주문 개시를 중단했습니다 ... 아마도 그가 다시 망쳤습니까?
나는 당신의 조리법에 따라 그것을 바꿨고 고문은 주문 개시를 중단했습니다 ... 아마도 그가 다시 망쳤습니까?
닫기 != 높음
추신. 여기 에 쓰십시오. 이것은 주제가 아닙니다.
나는 이것을 쓰레기로 만들지 않도록 중재자에게 게시물을 올바른 주제로 이동하도록 요청합니다.
닫기 != 높음
추신. 여기 에 쓰십시오. 이것은 주제가 아닙니다.
나는 이것을 쓰레기로 만들지 않도록 중재자에게 게시물을 올바른 주제로 이동하도록 요청합니다.
감사합니다 - 수정했습니다.
결국 코드는 다음과 같습니다
테스터의 시간이 길어졌습니다 - 나는 이미 기다림에 지쳤습니다 :)
나는 이번 달의 기록에서 거래된 랏을 계산합니다.
예를 들어 지난 3일 동안 터미널 기록에 주문을 표시하면 OrdersHistoryTotal ()은 지난 3일만 볼 수 있습니다.
이것이 올바르지 않다고 생각합니다. OrdersHistoryTotal ()은 전체 기록의 모든 주문을 보고, 프로그래머는 날짜와 기간으로 필터링해야 합니다.
그렇지 않으면 사용자가 이력을 잘못 숨기면 문제가 발생할 수 있습니다....