Servisler, MT5 mimarisinde yeni bir özellik, MT4'ün ölümü hemen köşede. - sayfa 5

 
Petros Shatakhtsyan :


İlginç bir şekilde dün, çok para birimli bir Uzman Danışman yapmak için MarketBookAdd ve OnBookEvent'in özelliklerini kullanmak istedim.

Ancak bazı nedenlerden dolayı MarketBookAdd, test cihazında çalışmıyor. 4901 hatası veriyor - Pazar Derinliği eklenemiyor.

Yani sadece gerçek zamanlı olarak çalışır...
 
Alexey Kozitsyn :
Yani sadece gerçek zamanlı olarak çalışır...


Ve bir bardak fiyat almam gerekiyor, ancak bu kadar basit özelliklere sahip olmak için:

1. Piyasa İzlemenin içeriğini temizleyin.

2. Gerekli karakterleri oraya ekleyin (öyle)

3. Bir işlev veya olay kullanarak, her bir sembolden Piyasa İzleme'de gösterilen tüm onay işaretlerini alın veya birlikte OnTick ve Multi-tick işlevini yapın.

 
Petros Shatakhtsyan :


Ve bir bardak fiyat almam gerekiyor, ancak bu kadar basit özelliklere sahip olmak için:

1. Piyasa İzlemenin içeriğini temizleyin.

2. Gerekli karakterleri oraya ekleyin (öyle)

3. Bir işlev veya olay kullanarak, her bir sembolden Piyasa İzleme'de gösterilen tüm onay işaretlerini alın veya birlikte OnTick ve Multi-tick işlevini yapın.

Piyasaya genel bakış ve işaretler ile çalışmak istiyorsanız neden Piyasa Derinliği'nden geçmeye karar verdiğiniz tam olarak açık değil mi?
 
Alexey Kozitsyn :
Piyasaya genel bakış ve işaretler ile çalışmak istiyorsanız neden Piyasa Derinliği'nden geçmeye karar verdiğiniz tam olarak açık değil mi?

Ve Market Watch'ta görünen veya eklenen tüm fiyat tekliflerinden verileri nereden alacaksınız.
 
Petros Shatakhtsyan :

Ve Market Watch'ta görünen veya eklenen tüm fiyat tekliflerinden verileri nereden alacaksınız.
Um... OnTimer(), OnTick(), OnCalculate() ...
 
Petros Shatakhtsyan :

Ve Market Watch'ta görünen veya eklenen tüm fiyat tekliflerinden verileri nereden alacaksınız.

 MqlTick tickEUR;
MqlTick tickGBP;
MqlTick tickEURGBP;

GetSymbolByName( string symbol)   {    string symbol_name= "" ;   // Имя символа на сервере //--- Если передали пустую строку, вернем пустую строку    if (symbol== "" )        return ( "" ); //--- Пройтись по списку всех символов на сервере    for ( int s= 0 ; s< SymbolsTotal ( false ); s++)      {        //--- Получим имя символа       symbol_name= SymbolName (s, false );        //--- Если искомый символ есть на сервере        if (symbol==symbol_name)         {          //--- Выберем его в окне "Обзор рынка"          SymbolSelect (symbol, true );          //--- Вернем имя символа          return (symbol);         }      } //--- Если искомого символа нет, вернем пустую строку    Print ( "Символ " +symbol+ " не найден на сервере!" );    return ( "" );   } int OnInit()   { //---    GetSymbolByName("EURUSD"+SymbolSuffix);    GetSymbolByName("GBPUSD"+SymbolSuffix);    GetSymbolByName("EURGBP"+SymbolSuffix); }

void OnTimer() // или OnTick   {       if(!SymbolInfoTick("EURUSD"+SymbolSuffix,tickEUR)) {Print("EURUSD price has not been received"); return;}    if(!SymbolInfoTick("GBPUSD"+SymbolSuffix,tickGBP)) {Print("GBPUSD price has not been received"); return;}    if(!SymbolInfoTick("EURGBP"+SymbolSuffix,tickEURGBP)) {Print("EURGBP price has not been received"); return;} if(tickEUR.ask!=0 && tickEUR.bid!=0) {} // ну и все в этом духе }

 
Maxim Dmitrievsky :

NE TÜR????? Birkaç gönderi için nasıl bu kadar aptal olabiliyorsun?
Yararlı bir şey sunan insanlar, sırtlarından çıkan oklardan tanınabilir. Her yeni her zaman düşmanlıkla kabul edilir. Özellikle hrenfx'ten kopyalanan arbitraj danışmanlarının satışından para kazananlar, bu DC'ye muhalefet nedeniyle piyasada doğrudan kullanımları mümkün değildir.
 
Maxim Dmitrievsky :


Zamanlayıcı milisaniye kullansa bile EA her onay işaretini işlerse bu verimsiz bir şekilde çalışacaktır.

Pazar saatinden tüm onayları almanın daha kolay bir yoluna ihtiyacınız var.

OnTick'ten bir geçiş imkansızdır, çünkü yalnızca danışmanın bulunduğu yere bir sonraki onay geldiğinde çalışır.

 
Petros Shatakhtsyan :

Burada hala zamanlayıcıyı yapmanız gerekiyor. Algoritmayı zamanlayıcıya, son tıklama önceki tıklamadan farklı değilse istekte bulunmayacak şekilde yazmanız yeterlidir.

BookEvent burada size yardımcı olmaz.

 
Alexey Kozitsyn :

Burada hala zamanlayıcıyı yapmanız gerekiyor. Algoritmayı zamanlayıcıya, son tıklama önceki tıklamadan farklı değilse istekte bulunmayacak şekilde yazmanız yeterlidir.

BookEvent burada size yardımcı olmayacaktır.


Evet, ancak aynı zamanda sadece bir zamanlayıcı olduğunu da hesaba katmalısınız, öyle değil, yani VC ++ ve geçici bölümler için çok fazla kontrolünüz varsa, o zaman birçok onay işaretini kaybedebilirsiniz ve her şey dönüşecektir. Dağınıklık.