Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 244

 
forexman77 :
Söyleyin bana, "SymbolInfoTick" dışında, mevcut fiyatı almanın başka hızlı yolları var mı? Mevcut teklifi almanın daha hızlı bir yolu var mı?

SymbolInfoDouble'ı kullanabilirsiniz

SYMBOL_BID ve SYMBOL_ASK tanımlayıcıları ile.  

 
Fleder :

SymbolInfoDouble'ı kullanabilirsiniz

SYMBOL_BID ve SYMBOL_ASK tanımlayıcıları ile.  

Teşekkür ederim!

"SYMBOL_BID"den ne sonuç çıktığı tam olarak belli değil (Teklif satmak için en iyi tekliftir). Hala ESN sipariş defterindeki mevcut fiyat mı yoksa en iyi piyasa fiyatı mı?

 
forexman77 :

Teşekkür ederim!

"SYMBOL_BID"den ne sonuç çıktığı tam olarak belli değil (Teklif satmak için en iyi tekliftir). Hala ESN sipariş defterindeki mevcut fiyat mı yoksa en iyi piyasa fiyatı mı?

ECN camındaki güncel fiyat teklifi ve en iyi fiyat bir ve aynıdır.

 
Fleder :

ECN camındaki güncel fiyat teklifi ve en iyi fiyat bir ve aynıdır.

Genel olarak, talep ederken "SymbolInfoDouble" kullanırsak, bu fiyatta bir anlaşma gerçekleşmeyebileceği, yani mevcut Teklif olduğu ortaya çıkıyor.

"SymbolInfoTick" kullanırsak, fiyat kesinlikle oradaydı, yani, double last kullanıldığında son anlaşmanın gerçekleştiği geçerli fiyattır ; // Son işlemin güncel fiyatı (Son)

 
forexman77 :

Genel olarak, talep ederken "SymbolInfoDouble" kullanırsak, bu fiyatta bir anlaşma gerçekleşmeyebileceği, yani mevcut Teklif olduğu ortaya çıkıyor.

"SymbolInfoTick" kullanırsak, fiyat kesinlikle oradaydı, yani bu, son işlemin gerçekleştiği mevcut fiyattır .

Not

Eğer fonksiyon son tik hakkında bilgi almak için kullanılıyorsa, SymbolInfoTick() kullanmak daha iyidir. Terminalin ticaret hesabına bağlandığı andan itibaren bu sembol için tek bir alıntı yapılmamış olması oldukça olasıdır . Bu durumda istenen değer tanımsız olacaktır.

Terminal sunucuya bağlandığından beri tek bir işaret yoksa SymbolInfoTick tanımsız bir değer döndürebilir.

SymbolInfoDouble bu durumu ortadan kaldırır.

 
Fleder :

Not

Eğer fonksiyon son tik hakkında bilgi almak için kullanılıyorsa, SymbolInfoTick() kullanmak daha iyidir. Terminalin ticaret hesabına bağlandığı andan itibaren bu sembol için tek bir alıntı yapılmamış olması oldukça olasıdır . Bu durumda istenen değer tanımsız olacaktır.

EA grafiğe eklendiğinden beri tek bir onay işareti yoksa SymbolInfoTick tanımsız bir değer döndürebilir.

SymbolInfoDouble bu durumu ortadan kaldırır.

Anladım. Teşekkür ederim! Şimdi geriye her bir fonksiyonun çağrıldığında ne kadar sürdüğünü kontrol etmek için basit bir kod örneği bulmak kalıyor?
 
forexman77 :
Anladım. Teşekkür ederim! Şimdi geriye her bir fonksiyonun çağrıldığında ne kadar sürdüğünü kontrol etmek için basit bir kod örneği bulmak kalıyor?
 uint start= GetTickCount ();
// здесь Ваш код вызова 
Print ( "Вызов прошёл за = " , GetTickCount ()-start);
 
barabashkakvn :

Büyük olasılıkla bu numara bu durumda çalışmayacaktır.

Her zaman sıfır çıktısı olacaktır.

SymbolInfoTick ve SymbolInfoDouble işlevleri çok hızlıdır - birkaç mikrosaniyeden uzun değildir.

 
Fleder :

Büyük olasılıkla bu numara bu durumda çalışmayacaktır.

Her zaman sıfır çıktısı olacaktır.

SymbolInfoTick ve SymbolInfoDouble işlevleri çok hızlıdır - birkaç mikrosaniyeden uzun değildir.

Daha da ilginç olanı, bir kod örneği var. Sonucu bekliyoruz.
 
barabashkakvn :
:

Büyük olasılıkla bu numara bu durumda çalışmayacaktır.

Her zaman sıfır çıktısı olacaktır.

SymbolInfoTick ve SymbolInfoDouble işlevleri çok hızlıdır - birkaç mikrosaniyeden uzun değildir.

Senaryoda şöyle bir şey yaptım:

 void OnStart ()
  {
uint start= GetTickCount ();
double ask= SymbolInfoDouble ( Symbol (), SYMBOL_ASK );
Alert ( "ask=" ,ask);
uint time= GetTickCount ()-start;
Alert ( "time=" ,time);
   
  }
//+------------------------------------------------------------------+

zaman=0

SymbolInfoTick Pazartesi günü kontrol edecek