voidOnTimer ()
{
//+------------------------------------------------------------------+// Перебор всех символов, которые указаны в внешних переменных// Recursion of all symbols that are specified in external variables//+------------------------------------------------------------------+string SymbolToTick= "" ;
for ( int si= 0 ; si< 12 ; si++)
{
if (si== 0 )
SymbolToTick=PAIR1;
if (si== 1 )
SymbolToTick=PAIR2;
if (si== 2 )
SymbolToTick=PAIR3;
if (si== 3 )
SymbolToTick=PAIR4;
if (si== 4 )
SymbolToTick=PAIR5;
if (si== 5 )
SymbolToTick=PAIR6;
if (si== 6 )
SymbolToTick=PAIR7;
if (si== 7 )
SymbolToTick=PAIR8;
if (si== 8 )
SymbolToTick=PAIR9;
if (si== 9 )
SymbolToTick=PAIR10;
if (si== 10 )
SymbolToTick=PAIR11;
if (si== 11 )
SymbolToTick=PAIR12;
if (SymbolToTick== "" && si== 0 )
{
SymbolToTick= Symbol ();
}
if (SymbolToTick== "" )
continue ;
//|#############################################################################################+// проверяем текущий Бид АскMqlTick last_tickSymbol;
SymbolInfoTick (SymbolToTick,last_tickSymbol);
double currentBid=last_tickSymbol.bid;
double currentAsk=last_tickSymbol.ask;
//|#############################################################################################+// Если тик изменился, запускаем тик этого символаif (currentBid!=LastBid[si] || currentAsk!=LastAsk[si])
{
// Запускаем исполнение тика
OnTickSymbol(si,SymbolToTick);
LastBid[si]=currentBid;
LastAsk[si]=currentAsk;
TicksAllNumbers[si]++;
}
//|#############################################################################################+
}
}
몇 틱을 건너뜁니다. 따라서 결과의 차이. 차이는 매우 작습니다. 그러나 1틱을 놓치면 충분하고 모든 것이 뒤집어집니다.
빈도가 결과를 향상시킨다는 사실은 아니지만 테스트 속도는 확실히 감소합니다. 타이머 이벤트는 완벽하지 않으며 거의 항상 오류가 있습니다. 빈 타이머에서도 오류를 볼 수 있습니다. 타이머 기능 내부에 계산이 있는 경우 오류가 더 높을 가능성이 높습니다. 타사 작업으로 컴퓨터를 로드하는 것도 타이머에 영향을 줄 수 있습니다. 모든 열기/닫기/수정 신호가 같은 시간에 같은 틱으로 떨어지지 않을 가능성이 있습니다.
이 모든 관찰은 거의 30개에 달하는 상품을 동시에 사용하는 대규모 다중 통화 플랫폼에서 몇 년 전에 이루어졌다는 점을 언급할 가치가 있습니다. 결과의 우연은 타이머가 꺼져있을 때만 발생했습니다. 지금은 별로 달라진 게 없는 것 같아요.
이 문제도 볼 수 있습니까?
중재자는 내 요청에 따라 손으로 업데이트했습니다. 하지만 매번 물어볼 수는 없다. 기계가 작동하지 않습니다.
수정했습니다.
수정했습니다.
알겠습니다. 감사합니다.
사용된 모든 악기의 진드기 기준.
다음은 새 틱을 확인하는 코드입니다.
틱 수를 확인하기 위한 배열을 만들었습니다.
EURUSD GBPUSD 2쌍 테스트
GBPUSD에서 테스트를 실행합니다.
EURUSD에서 테스트를 실행합니다.
틱은 동일한 것 같습니다. ... ... ... 그래서 어딘가에 내가 뭔가를 놓친 .....
감사합니다 계속 파헤쳐보겠습니다
해결: _Digit은 코드에 숨어 있었고, 아마도 보지 않고 환경에 추가했을 것입니다.....
댓글은 필요없습니다 :-)
아카이브의 mql5pack-ico.zip 파일을 폴더로 이동하십시오.
이 파일을 MQL5/Scripts 폴더로 이동했습니다. 도움이되지 않았습니다. 그런 다음 MQL5/Files 폴더로 이동합니다. 그것도 도움이 되지 않았습니다.
무슨 말씀을 하시는지 이해가 안 될 것 같습니다.
MQL5/Scripts 폴더로 이동했습니다. 도움이되지 않았습니다.
수정했습니다.
콘스탄틴 그루즈데프
당신은 흥미로운 작가이며 여기에서 가장 흥미 롭습니다. Vladislav에게 질문했습니다. 나는 다중 통화에도 관심이 있습니다. 왜냐하면 새로운 막대에 대한 뉘앙스가 있고 필요한 모든 막대의 적용 불가능성이 있습니다.
타이머를 통해 yes
빈도가 결과를 향상시킨다는 사실은 아니지만 테스트 속도는 확실히 감소합니다. 타이머 이벤트는 완벽하지 않으며 거의 항상 오류가 있습니다. 빈 타이머에서도 오류를 볼 수 있습니다. 타이머 기능 내부에 계산이 있는 경우 오류가 더 높을 가능성이 높습니다. 타사 작업으로 컴퓨터를 로드하는 것도 타이머에 영향을 줄 수 있습니다. 모든 열기/닫기/수정 신호가 같은 시간에 같은 틱으로 떨어지지 않을 가능성이 있습니다.
이 모든 관찰은 거의 30개에 달하는 상품을 동시에 사용하는 대규모 다중 통화 플랫폼에서 몇 년 전에 이루어졌다는 점을 언급할 가치가 있습니다. 결과의 우연은 타이머가 꺼져있을 때만 발생했습니다. 지금은 별로 달라진 게 없는 것 같아요.
콘스탄틴 그루즈데프
당신은 흥미로운 작가이며 여기에서 가장 흥미 롭습니다. Vladislav에게 질문했습니다. 나는 다중 통화에도 관심이 있습니다. 왜냐하면 새로운 막대에 대한 뉘앙스가 있고 필요한 모든 막대의 적용 불가능성이 있습니다.
확인. 정답은 위에 있습니다.