오류, 버그, 질문 - 페이지 1801

 
Dennis Kirichenko :
데모 서버, 특히 그 뒤에 브로커가 없는 서버에 대해 불평하는 것은 부도덕합니다 :-)
모든 것이 데모에서 어떻게든 작동한다면 실제 서버에서 정상적인 작업을 요구하는 것은 부도덕합니다.

그리고 MQ 서버는 일종의 "표준"이어야 하며, 이를 기반으로 algo 개발자가 기술을 테스트하는 것이 가능하고 필요합니다.
 
fxsaber :
SymbolSelect를 여러 번 호출하면 터미널이 정지됩니다.
bool SymbolExist( const string Symb, const bool MarketWatch = true )
{
   bool Res = false ;
  
   for ( int i = SymbolsTotal (MarketWatch) - 1 ; (i >= 0 ) && (!Res); i--)
    Res = (Symb == SymbolName (i, MarketWatch));
    
   return (Res);
}

bool SymbolOnOff( const string Symb )
{
   return ( SymbolSelect (Symb, !SymbolExist(Symb)));
}

void OnStart ()
{
   for ( int i = SymbolsTotal ( false ) - 1 ; i >= 0 ; i--)
  {
     const string Symb = SymbolName (i, false );
    
     if (SymbolOnOff(Symb))
      SymbolOnOff(Symb);
  }
}
 
도움말에서 Market Watch에 기호가 없으면 데이터를 얻을 수 없다는 언급을 보지 못했습니다. 찌르기 방식을 사용해야 했습니다.
 
fxsaber :
도움말에서 Market Watch에 기호가 없으면 데이터를 얻을 수 없다는 언급을 보지 못했습니다. 찌르기 방식을 사용해야 했습니다.
글쎄요. 언급이 있다

반환 값

Double 유형의 값입니다. 실행에 실패한 경우 GetLastError() 함수를 사용하여 오류 에 대한 정보를 얻을 수 있습니다.

  • 5040 - 기호 이름을 지정하기 위한 잘못된 문자열 매개변수,
  • 4301 - 알 수 없는 기호(금융 상품),
  • 4302 - "시장 관찰"에서 기호가 선택되지 않았습니다(사용 가능한 목록에 없음).
  • 4303 - 잘못된 기호 속성 식별자입니다.
 
Slawa :
글쎄요. 언급이 있다

간접적으로 언급해주셔서 감사합니다.

SymbolSelect를 통해 Market Watch에 기호를 추가하면 해당 기호에 대한 Bid/Ask를 사용할 수 있게 되었음을 어떻게 알 수 있습니까? - SymbolIsSynchronized ?

SymbolIsSynchronized - 이러한 목적에는 비용이 많이 드는 것으로 보입니다. 거기에서 M1 기록의 동기화 문제도 제기됩니다.

일부 기호의 ZY SymbolIsSynchronized는 결코 true가 되지 않습니다.

 
fxsaber :

간접적으로 언급해주셔서 감사합니다.

SymbolSelect를 통해 Market Watch에 기호를 추가하면 해당 기호에 대한 Bid/Ask를 사용할 수 있게 되었음을 어떻게 알 수 있습니까? SymbolIsSynchronized?

SymbolIsSynchronized - 이러한 목적에는 비용이 많이 드는 것으로 보입니다. 거기에서 M1 기록의 동기화 문제도 제기됩니다.

일부 기호의 ZY SymbolIsSynchronized는 결코 true가 되지 않습니다.

그것은, 이야기를로드하는 것이 고통스럽게 길다 ....
 
아마 많은 분들이 아실 텐데요, 이제서야 디버깅 중 추적된 값에 _LastError를 포함시키게 된 것 같습니다. 추천하다.
 
기록 동기화 플래그를 확인하기 전에 먼저 CopyRates (Symbol(),PERIOD_M1,0,1000,rates)를 호출해야 합니다.

이 작업이 표시기에서 수행되면 사용 가능한 항목이 정확히 반환되지만 교체를 위해 기록 센터에 요청이 포함됩니다. 그러면 고통스러울 수 있습니다.

이것이 Expert Advisor 또는 스크립트에서 수행되는 경우 응답을 기대하면서 함수 내에서 여러 주기의 요청을 수행할 수 있으며 일반적으로 이러한 호출 후에 기록이 동기화됩니다.
 
fxsaber :

SymbolSelect를 통해 Market Watch에 기호를 추가하면 해당 기호에 대해 입찰/요청을 사용할 수 있게 되었음을 어떻게 알 수 있습니까?

SymbolSelect(true) 직후에 가격을 요청하지만 0입니다. 이 경우 _LastError == 0, SymbolInfoTick == true입니다.

Market Watch의 새 심볼 가격이 Marketwatch에 전달되었음을 이해하는 방법은 무엇입니까?

 
Slawa :
기록 동기화 플래그를 확인하기 전에 먼저 CopyRates (Symbol(),PERIOD_M1,0,1000,rates)를 호출해야 합니다.

이 작업이 표시기에서 수행되면 사용 가능한 항목이 정확히 반환되지만 교체를 위해 기록 센터에 요청이 포함됩니다. 그러면 고통스러울 수 있습니다.

이것이 Expert Advisor 또는 스크립트에서 수행되는 경우 응답을 기대하면서 함수 내에서 여러 주기의 요청을 수행할 수 있으며 일반적으로 이러한 호출 후에 기록이 동기화됩니다.
매 틱마다 이 작업을 수행할 것을 제안합니까?