Hatalar, hatalar, sorular - sayfa 1808

 
fxsaber :
_TimeCurrent = MathMax ( SymbolInfoInteger (Symbol1, SYMBOL_TIME ), SymbolInfoInteger (Symbol2, SYMBOL_TIME ), ...);
Burada, gerçekten, şimdiye kadar etrafta dolaşmanın tek yolu. En uzun zamanın seçimi. Ancak bu, her OnBookEvent() üzerinde iki zaman değeri elde etmenin ekstra maliyetidir...
 
Alexey Kozitsyn :
Burada, gerçekten, şimdiye kadar etrafta dolaşmanın tek yolu. En uzun zamanın seçimi. Ancak bu, her OnBookEvent() üzerinde iki zaman değeri elde etmenin ekstra maliyetidir...
GetMicrosecondCount aracılığıyla TimeTradeServer öykünmesi yapın. Veya %99 BookEvent'te TimeTradeServer ve TimeCurrent arasındaki farkı ekleyin.
 

SD'de Uygulama #1674783

Lütfen bir an önce karar verin!

 
fxsaber :
GetMicrosecondCount aracılığıyla TimeTradeServer öykünmesi yapın. Veya %99 BookEvent'te TimeTradeServer ve TimeCurrent arasındaki farkı ekleyin.
Hala birden fazla parametre alıyor.
 
Alexey Kozitsyn :
Hala birden fazla parametre alıyor.
Soru, parametre sayısında değil, toplam ucuzluklarındadır.
 
fxsaber :
Soru, parametre sayısında değil, toplam ucuzluklarındadır.
Onlar. TimeTradeServer() 'ın SymbolInfoInteger( _Symbol, SYMBOL_TIME )'den daha hızlı olacağını düşünüyor musunuz?
 
Alexey Kozitsyn :
Onlar. TimeTradeServer() 'ın SymbolInfoInteger( _Symbol, SYMBOL_TIME )'dan daha hızlı olacağını düşünüyor musunuz?

TimeTradeServer, TimeCurrent'a uygun farkı ekleyerek GetMicrosecondCount aracılığıyla çalışır.

Ne elde etmeniz gerekiyor - bilmiyorum. Ancak mikrosaniye birimlerinden tasarruf etmek bana uygun değil.

 
fxsaber :

TimeTradeServer, TimeCurrent'a uygun farkı ekleyerek GetMicrosecondCount aracılığıyla çalışır.

Ne elde etmeniz gerekiyor - bilmiyorum. Ancak mikrosaniye birimlerinden tasarruf etmek bana uygun değil.

Geçerli zamanın doğru değerini almam gerekiyor. Zamana bağlı bir parametrenin değerini yazmak için şu anki OnBookEvent() işlevinden bir istekte bulunuyorum. Ve geçmişe değil, şimdiki zamana ve tercihen en büyük değerin seçimiyle birkaç zaman değeri elde etme şeklinde koltuk değneği olmadan ihtiyacım var. TimeCurrent(), teoride (ve belgelerdeki açıklamaya göre) bu görevle başa çıkmalıdır. Ama şimdi olmadığı ortaya çıktı!
 
Alexey Kozitsyn :
Geçerli zamanın doğru değerini almam gerekiyor. Zamana bağlı bir parametrenin değerini yazmak için şu anki OnBookEvent() işlevinden bir istekte bulunuyorum. Ve geçmişe değil, şimdiki zamana ve tercihen en büyük değerin seçimiyle birkaç zaman değeri elde etme şeklinde koltuk değneği olmadan ihtiyacım var. TimeCurrent(), teoride (ve belgelerdeki açıklamaya göre) bu görevle başa çıkmalıdır. Ama şimdi olmadığı ortaya çıktı!
kontrol etmedi
datetime NewTimeCurrent( void )
{
   static ulong PrevStartTime = GetMicrosecondCount ();
   static datetime PrevTimeCurrent = TimeCurrent (); // TimeTradeServer()
  
   const datetime NewTimeCurrent = TimeCurrent (); // TimeTradeServer()
   const ulong NowTime = GetMicrosecondCount ();
  
   if (PrevTimeCurrent < NewTimeCurrent)  
  {
    PrevTimeCurrent = NewTimeCurrent;
    
    PrevStartTime = NowTime;
  }
  
   return (PrevTimeCurrent + ( datetime )((NowTime - PrevStartTime) / 1000000 ));
}
Daha kesin olabilirdi. Örneğin, bir SymbolInfoTick (+ CopyTicks) isteğinde bulunarak tüm simgeleri gözden geçirin. Oradan, zamanı milisaniye cinsinden çizin. Bunun pratik uygulamasının ne olabileceğini anlamıyorum.
 
fxsaber :
bir SymbolInfoTick (+ CopyTicks) isteğinde bulunarak tüm sembolleri gözden geçirin. Oradan, zamanı milisaniye cinsinden çizin.
TimeCurrent'ın normal milisaniyelik analogu, GUI'deki yansımasıyla uzun süredir gecikmiştir.
Neden: