int bars= Bars ( _Symbol , _Period );
if ( bars> 0 )
{
Print ( "Количество баров в истории терминала по символу-периоду на данный момент = " ,bars);
}
else//нет доступных баров
{
//--- видимо, данные по символу не синхронизированы с данными на сервереbool synchronized= false ;
//--- счетчик циклаint attempts= 0 ;
// сделаем 5 попыток дождаться синхронизацииwhile (attempts< 5 )
{
if ( SeriesInfoInteger ( Symbol (), 0 , SERIES_SYNCHRONIZED ) )
{
//--- есть синхронизация, выходим
synchronized= true ;
break ;
}
//--- увеличим счетчик
attempts++;
//--- подождем 10 миллисекунд до следующей итерацииSleep ( 10 );
}
//--- вышли из цикла по факту синхронизацииif (synchronized)
{
Print ( "Количество баров в истории терминала по символу-периоду на данный момент = " ,bars);
Print ( "Самая первая в истории терминала дата по символу-периоду на данный момент = " ,
( datetime ) SeriesInfoInteger ( Symbol (), 0 , SERIES_FIRSTDATE ));
Print ( "Самая первая дата в истории по символу на сервере = " ,
( datetime ) SeriesInfoInteger ( Symbol (), 0 , SERIES_SERVER_FIRSTDATE ));
}
//--- синхронизация данных так и не была достигнутаelse
{
Print ( "Не удалось получить количество баров на " , _Symbol );
}
}
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b)은 올바르게 사용될 때 항상 값으로 채워집니다. 어떤 이유로 원하는 문자에 대한 올바른 값이 오지 않습니다. 그리고 충전은 분명히 이전에 받은 값에 따라 발생하며 이것은 다른 7개 통화 중 하나의 값입니다.
해결책이 없고 한 달 이상 이 해결책을 찾고 있다면 테스터 버그일 뿐이라고 생각합니다. 개발자들은 이 점에 유의하시기 바랍니다. 이것이 버그라면 수정
정확히 기억나지 않는다. 그러나 다중 문자 표시기 중 하나를 테스트할 때 입력 매개변수에 있는 문자열의 문자 목록이 OnInit에 로드됩니다. 가격은 OnCalculate에서 액세스할 수 있습니다. 또한 설정에서 Market Watch에서 심볼 로딩을 설정하면 테스터에 하나의 메인 심볼만 나타납니다. 나는 로봇에 대해 잘 모르지만 모든 것이 똑같다고 생각합니다.
일관성을 유지하십시오. 확인하면
그런 다음 확인하고
:)
이렇게 하고 코드에 7쌍에 대한 7줄이 있는 경우 시장 검토에는 하나의 통화에 대한 견적만 포함됩니다.
일관성을 유지하십시오. 확인하면
그런 다음 확인하고
:)
그냥보다 훨씬 낫다
euSY01b> 0
동기화를 확인하면 하나의 통화에 대해서만 작동합니다. 그리고 현재 7개 통화를 분석해야 합니다.
OnInit()에서 해야 할 일
동기화를 확인하면 하나의 통화에 대해서만 작동합니다. 그리고 현재 7개 통화를 분석해야 합니다.
버팀목으로 쌍이 마지막으로 동기화된 시간을 기억하고 이를 기반으로 구축할 수 있습니다.
또한 요청 및 입찰에 대해 SymbolInfoTick()을 사용할 수 있습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
유리 레메셰프 , 2022.01.02 08:54
그냥보다 훨씬 낫다
euSY01b> 0
true == true, 결과: true와 같습니다. 및 false == true, 결과: false :)
이것은 다음과 같은 결과입니다.
또는
이렇게 하고 코드에 7쌍에 대한 7줄이 있는 경우 시장 검토에는 하나의 통화에 대한 견적만 포함됩니다.
OnTick에서 Bar를 호출해 보세요.
https://www.mql5.com/ru/docs/series/bars
기사에서 :
또한 OnTick에 가격에 대한 참조가 있어야 합니다(제3자 기호가 로드되도록).OnTick에서 Bar를 호출해 보세요.
https://www.mql5.com/ru/docs/series/bars
기사에서 :
또한 OnTick에 가격에 대한 참조가 있어야 합니다(제3자 기호가 로드되도록).이것은 원래의 문제를 해결하지 못한다
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b)은 올바르게 사용될 때 항상 값으로 채워집니다. 어떤 이유로 원하는 문자에 대한 올바른 값이 오지 않습니다. 그리고 충전은 분명히 이전에 받은 값에 따라 발생하며 이것은 다른 7개 통화 중 하나의 값입니다.
해결책이 없고 한 달 이상 이 해결책을 찾고 있다면 테스터 버그일 뿐이라고 생각합니다. 개발자들은 이 점에 유의하시기 바랍니다. 이것이 버그라면 수정OnInit()에서 해야 할 일
정확히 기억나지 않는다. 그러나 다중 문자 표시기 중 하나를 테스트할 때 입력 매개변수에 있는 문자열의 문자 목록이 OnInit에 로드됩니다. 가격은 OnCalculate에서 액세스할 수 있습니다. 또한 설정에서 Market Watch에서 심볼 로딩을 설정하면 테스터에 하나의 메인 심볼만 나타납니다. 나는 로봇에 대해 잘 모르지만 모든 것이 똑같다고 생각합니다.