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

 
Slawa :
또는 방금 말했듯 이 막대의 수와 몇 사이클을 요청하십시오.
긴 유휴 시간 후에 Bars() 함수에 대한 호출이 있는 경우 표시기의 시작은 SymbolIsSynchronized()?를 확인하는 것과 유사합니다.
 
Slawa :
지표에도 동일하게 적용됩니다. 1분 타이머를 만들고 관심 있는 모든 시계열 의 막대 수를 물어보세요.

동기화 사실 확인에 의해 동기화가 보류되지 않습니다.
이것을 문서에 추가하는 것이 좋을 것입니다 ...
 
Market Watch의 Metaquotes-Demo에 MOEX 기호만 남은 경우 TimeCurrent 는 15분 늦습니다. TimeCurrent가 즉시 15분 앞으로 이동하므로 하나의 FOREX 기호만 추가하면 됩니다.
 

친애하는 개발자 여러분! 다시 한 번, 감정 값( SYMBOL_SESSION_ ...) 및 주문서( OnBookEvent())에 대해 가능한 한 빨리 시간을 ms 단위로 추가해 주시기 바랍니다. 사용 가능한 모든 데이터를 동기화할 수 있는 기회를 주십시오!

 

메타따옴표-데모, 기호 DIG-20170330

SymbolInfoDouble (Symb,:: SYMBOL_ASK ) = 29006.0
SymbolInfoDouble (Symb, SYMBOL_SESSION_PRICE_LIMIT_MIN ) = 29528.0
( ENUM_SYMBOL_TRADE_MODE ) SymbolInfoInteger (Symb, SYMBOL_TRADE_MODE ) = SYMBOL_TRADE_MODE_FULL ( 4 )

SYMBOL_SESSION_PRICE_LIMIT_MIN 오류: 위의 요청 - BuyLimit을 설정할 수 없습니다.

 
fxsaber :

당신의 자전거를 공유하세요: 심볼이 거래할 준비가 되었는지 여부를 알려주는 bool 함수.

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
   MqlDateTime sTime = { 0 };

   TimeToStruct (time, sTime);
  
   return (( ENUM_DAY_OF_WEEK )sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( string Symb = NULL )
{  
   datetime TimeNow = TimeTradeServer ();
  
   const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);
  
  TimeNow %= 24 * 60 * 60 ;
  
   if ((Symb == NULL ) || (Symb == "" ))
    Symb = Symbol ();  
  
   bool Res = false ;
   datetime From, To;    

   for ( int i = 0 ; SymbolInfoSessionTrade (Symb, DayOfWeek , i, From, To) && (!Res); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));
    
   return (Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( string Symb = NULL , const int Pause = - 1 )
{
   MqlTick Tick;
  
   if ((Symb == NULL ) || (Symb == "" ))
    Symb = Symbol ();
    
   if (Pause >= 0 )
     Sleep (Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
  
   return ( SymbolInfoTick (Symb, Tick) ? ((Tick.bid != 0 ) && (Tick.ask != 0 ) && SessionTrade(Symb) &&
         (( ENUM_SYMBOL_TRADE_MODE ) SymbolInfoInteger (Symb, SYMBOL_TRADE_MODE ) == SYMBOL_TRADE_MODE_FULL )) : false );
}
 
fxsaber :
   
   if (Pause >= 0 )
     Sleep (Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
   
지표에 있다면?
 
Artyom Trishkin :
지표에 있다면?
여기에서 다리

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2017.02.14 12:31

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

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

따라서 SymbolSelect(true)가 수행되지 않고 Pause가 구체적으로 설정되지 않은 경우 슬립이 발생하지 않습니다.
 
fxsaber :
여기에서 다리
따라서 SymbolSelect(true)가 수행되지 않고 Pause가 구체적으로 설정되지 않은 경우 슬립이 발생하지 않습니다.
솔직히 말해서, 나는 이해하지 못했다. 표시기에서 기호의 준비 상태를 찾는 방법이 궁금합니다. Sleep() 은 표시기에서 작동하지 않습니다.
표시기가 테이블에서 이전에 알려지지 않은 기호에 대한 일부 통계 데이터를 표시하는 경우 패널에서 다음 기호를 선택할 때 매우 자주 해당 데이터를 즉시 가져올 수 없고 테이블에 잘못된 정보가 표시됩니다... 방법 기호에서 추가 계산을 위해 수신된 데이터가 정확하고 추가 정확한 계산을 수행하기에 충분한 양인지 확인합니까?
 
Artyom Trishkin :
솔직히 말해서, 나는 이해하지 못했다. 표시기에서 기호의 준비 상태를 찾는 방법이 궁금합니다. Sleep()은 표시기에서 작동하지 않습니다.
표시기가 테이블에서 이전에 알려지지 않은 기호에 대한 일부 통계 데이터를 표시하는 경우 패널에서 다음 기호를 선택할 때 매우 자주 해당 데이터를 즉시 가져올 수 없고 테이블에 잘못된 정보가 표시됩니다... 방법 기호에서 추가 계산을 위해 수신된 데이터가 정확하고 추가 정확한 계산을 수행하기에 충분한 양인지 확인합니까?
수면 은 기호가 Market Watch에 없는 경우에만 필요합니다. 지표의 출시 전(및 작동 중) 시장 감시에 있는 모든 기호에는 전표가 필요하지 않습니다.