voidOnStart()
{
uchar max=0;
for(int t=0;t<LONG_MAX;t++) {max++;} //так получаем предупреждение expression is always true, цикл работаетfor(int t=0;t<LONG_MAX+1;t++) {max++;} //так предупреждение есть, но цикл не работаетfor(int t=0;t<ULONG_MAX;t++) {max++;} //так нет предупреждения и цикл не пашетPrint("Done!");
}
voidOnStart()
{
uchar max=0;
for(int t=0;t<ULONG_MAX-1e0;t++) {max++;} //так цикл работает, предупреждения нет так как ULONG_MAX-1e0 имеет тип doublefor(int t=0;t<ULONG_MAX-1;t++) {max++;} //а так нет и предупреждения тоже нетPrint("Done!");
}
저는 가속화된 데이터 처리에 우선순위를 두고 MT4의 Expert Advisor를 위해 TOR를 작성하고 있습니다.
작업 속도를 높이는 데 계산 또는 선택(정확한 이름이 무엇입니까? 대표자)의 실행 순서가 중요한지 여부를 알려주시기 바랍니다.
블록 다이어그램을 보여주는 두 가지 옵션을 그림 형식으로 첨부합니다.
가능하다면 블록의 선택적 실행이 발생하는 경우 코드가 어떻게 생겼는지 작성하십시오. 순전히 원시적인 레이아웃이며 속도가 크게 향상됩니다!?
테스터에서 그러한 포지션의 폐쇄는 어떻게 설명됩니까? 확산 확장?
MetaTrader 거래 플랫폼의 스크린샷
EURUSD, M20, 2014.04.12
알파 포렉스, 메타 트레이더 5, 리얼
임시 파일_스크린샷_63279.png
테스터에서 그러한 포지션의 폐쇄는 어떻게 설명됩니까? 확산 확장?
[img]https://charts.mql5.com/4/434/eurusd-m20-alfa-foreks-temp-file-screenshot-63279-png.png[/img]
스프레드의 확장이 있었다면(그리고 화면으로 판단 - 720 포인트! 5자리) 모든 것이 정확합니다.
매도 포지션은 매도호가에서 마감되었습니다. 발이 노출된 경우입니다.
그건 그렇고, 귀하의 중개인 Alfa-Forex는 주말과 초반에 엄청난 스프레드를 가지고 있습니다.
그들은 아마도 시세의 이력을 입력했고 테스터는 이에 대한 거래를 시뮬레이션했습니다.
주말에 정류장을 떠나는 것은 위험합니다. 여전히 갭에서 당신을 구할 수 없으며 확산 확장을 쉽게 잡을 수 있습니다.
LONG_MAX + 1 < 0 이므로 여기에 오류가 없습니다.
여기서 경고가 정당화됩니다(t가 int인 경우 t< LONG_MAX 는 항상 true임). 무한 루프ULONG_MAX - 1 < 0이므로 오류가 없습니다. 비교 작업에서 int로 캐스트하기 때문입니다.
그런 다음 그것을 설명하는 방법:
ULONG_MAX - 1 < 0, 즉 비교 연산에서 int 또는 long으로 캐스트
루프에서 확인된 표현식의 비교를 의미합니까?
단순 비교에서는 그렇지 않은 것처럼 보이기 때문입니다.
그냥 교환하세요 :)
그리고 이 순열은 무엇을 제공합니까? t는 ULONG_MAX -1보다 작으므로 동일하게 유지되었다.