Yerel saat ile taze kene saati arasında bir buçuk dakikalık fark. Ne yapalım. - sayfa 3

 
pivomoe :

TimeCurrent() - Son sembol işaretinin zamanı, gecikme süresinden daha az olacaktır, bu nedenle kullanılabilir. İlk sürümde yerel saati kullanmak iyi bir fikir değildi.

Vay be... peki, şu anki sürüm de başarısız görünüyor.

TimeCurrent() tanımını okuma:

ZamanAkım

Sunucunun bilinen son zamanını, "Piyasa İzleme"de seçilen sembollerden biri için son teklifin varış zamanını döndürür.

Bunlardan biri, en sık değişen (basitlik için - en sıvı) zamanın görüntülendiği anlamına gelir. Ve bu ihtiyacın olan şey değil. SymbolInfoInteger'a ihtiyacınız var ( falan filan, SYMBOL_TIME ). Öyle gibi.

 
Alexey Kozitsyn :

Vay be... peki, şu anki sürüm de başarısız görünüyor.

TimeCurrent() tanımını okuma:

Bunlardan biri, en sık değişen (basitlik için - en sıvı) zamanın görüntülendiği anlamına gelir. Ve bu ihtiyacın olan şey değil. SymbolInfoInteger'a ihtiyacınız var( falan filan, SYMBOL_TIME ). Öyle gibi.

Sorun olarak gördüğüm prostotrader için taşımaya çalıştığım şey bu. En son sürümde, tüm sembolleri gözden geçiriyorum ve en son alınan onayın maksimum süresini alıyorum.

   for ( int i= 0 ; i<KolichestvoSimvolov; i++)     
   if ( InformaziaOPoslednemTike[i].LastTick.time_msc > VremaySamogoSvegegoTikaPoVsemSimvolam ) VremaySamogoSvegegoTikaPoVsemSimvolam= InformaziaOPoslednemTike[i].LastTick.time_msc;
Alexey Kozitsyn :

Birisi 17:59:00'da 17:59:01'de kene hakkında bilgi aldıysa ve ben 18:00'de bile almadıysam - bu büyük bir problem.

Ve işte soru. Sorun nedir (ve var mı)? Uzun süre (herkese) onay vermeyen broker sunucusunda veya uzun süre almayan MT5'te.

Bir yanda "TimeCurrent" ile son tikin varış zamanı arasındaki ortalama süre 5 milisaniye iken, diğer yanda onlarca saniyelik düşüşle gelen tikler var. Örneğin, 18 25'ten. 45 saniye gecikmeli bir kene yakalamayı başardım. Ve bu birkaç on sıvı olmayan sembolde.


+ Bunun için, son tik almak için CopyTicks kullanılarak terimin sorunu daha da kötüleştirilebilir.
 if ( CopyTicks ( Symbol (),ticks, COPY_TICKS_TRADE , 0 , 1 )== 1 ) 

Sadece bazen daha yavaş olmakla kalmaz, aynı zamanda bir buçuk saniye boyunca birdenbire de yapılabilir.

Ayrıca OnBookEvent'in yalnızca bir sembol üzerinde işlem yapmaya uygun olduğunu da anladım.

 
pivomoe :

Sorun olarak gördüğüm prostotrader için taşımaya çalıştığım şey bu. En son sürümde, tüm sembolleri gözden geçiriyorum ve en son alınan onayın maksimum süresini alıyorum.

Bir yanda "TimeCurrent" ile son tikin varış zamanı arasındaki ortalama süre 5 milisaniye iken, diğer yanda onlarca saniyelik düşüşle gelen tikler var. Örneğin, 18 25'ten. 45 saniye gecikmeli bir kene yakalamayı başardım. Ve bu birkaç on sıvı olmayan sembolde.


+ bunun için, terimin sorunu, son tik almak için CopyTicks kullanılarak daha da kötüleştirilebilir.

Sadece bazen daha yavaş olmakla kalmaz, aynı zamanda bir buçuk saniye boyunca birdenbire de yapılabilir.

Ayrıca OnBookEvent'in yalnızca bir sembol üzerinde işlem yapmaya uygun olduğunu da anladım.

Yelken. Sipariş defterinin her döviz çifti için ayrı ayrı oluşturulduğunu yeni fark ettiğiniz ortaya çıktı, bu nedenle verilerine göre farklı çiftlerle işlem yapamayacaksınız.

Farklı sipariş defterlerinin verilerini belirttiğiniz belirli bir sırayla sıralamanın, yeni kenelere ilişkin verilerin farklı döviz çiftlerinin sipariş defterlerine ulaşma sırasına hiçbir şekilde karşılık gelmediğini yakında anlayacağınızı umabilirsiniz.

Bu nedenle, siparişinizde önce EURUSD camı kontrol edilirse ve BTCUSD sonuncusuysa ve aralarında birkaç düzine farklı likidite sembolü varsa, o zaman kene varış zamanı şöyle görünebilir:

18:50:00.000; 18:48:59.018; 18:51:00.001; 18:47:59.000 vb. Herhangi bir komplo teorisi olmadan, MT hisseleri ve bir komisyoncu. Programlanan, alınan şeydir.

 
Алексей Тарабанов :

Yelken. Sipariş defterinin her döviz çifti için ayrı ayrı oluşturulduğunu yeni fark ettiğiniz ortaya çıktı, bu nedenle verilerine göre farklı çiftlerle işlem yapamayacaksınız.

Farklı sipariş defterlerinin verilerini belirttiğiniz belirli bir sırayla sıralamanın, yeni kenelere ilişkin verilerin farklı döviz çiftlerinin sipariş defterlerine ulaşma sırasına hiçbir şekilde karşılık gelmediğini yakında anlayacağınızı umabilirsiniz.

Bu nedenle, siparişinizde önce EURUSD camı kontrol edilirse ve BTCUSD sonuncusuysa ve aralarında birkaç düzine farklı likidite sembolü varsa, o zaman kene varış zamanı şöyle görünebilir:

18:50:00.000; 18:48:59.018; 18:51:00.001; 18:47:59.000 vb. Herhangi bir komplo teorisi olmadan, MT hisseleri ve bir komisyoncu. Programlanan, alınan şeydir.

OnBookEvent aracılığıyla yeni keneler yakalamak için "daha doğru" olduğunu yazan prostotrade bana tavsiyede bulundu. Camın kendisinden hiç bahsetmiyorum, sadece piyasa incelemesindeki tüm semboller için güncellemelerine abone oluyorum. Esasen OnBookEven'i yalnızca sipariş defterinin güncellendiği sembolü belirlemek için kullanıyorum. Ardından yeni bir onay işareti geliyor ve ardından EA'nın yeni anti-kayıtlar belirleyip belirlemediğine bakıyorum. İşte tüm fonksiyon:

 void OnBookEvent ( const string &symbol)
  {   
   if ( MestoPoluchenieTikov == ON_TIMER ) return ;
//--- Ищем индекс символа для которого полученно событие OnBookEvent
   int IndeksSimvola= - 1 ;
   for (   int i= 0 ;  i < KolichestvoSimvolov; i++ )
   if (  symbol == GCInformaziaOPoslednemTike[i].Simvol  ) { IndeksSimvola= i; break ; }
   
   if ( IndeksSimvola== - 1 ){ Print ( __FUNCTION__ , "Не удалось найти символ по которому полученно событие OnBookEvent " ); ExpertRemove (); return ;}
   
   bool PoluchiliNoviiTick= false ;
          
     //--- Получаем тик заданным в настройках способом.
   if ( SposobPoluchenieTikov == SYMBOL_INFO_TICK  ) PoluchiliNoviiTick= PolychaemNoviiTickSymbolInfoTick(GCInformaziaOPoslednemTike[IndeksSimvola]);
   if ( SposobPoluchenieTikov == COPY_TICKS       )  PoluchiliNoviiTick= PolychaemNoviiTickCopyTicks(GCInformaziaOPoslednemTike[IndeksSimvola]);    
       
     //--- Смотрим не установлены ли новые рекорды.  
   if (  PoluchiliNoviiTick ) PitaemsayObnovitRekordi( GCInformaziaOPoslednemTike, IndeksSimvola );                 
   
   ObnovlaemInformacyyNaGrafikeEslePora();
 
  }   
Alexey Tarabanov :

Farklı sipariş defterlerinin verilerini belirttiğiniz belirli bir sırayla sıralamanın, yeni kenelere ilişkin verilerin farklı döviz çiftlerinin sipariş defterlerine ulaşma sırasına hiçbir şekilde karşılık gelmediğini yakında anlayacağınızı umabilirsiniz.

Anladığım kadarıyla MarketBookGet'i kullanarak bir bardak alamazsam hiçbir şeyi ayırmam. Muhtemelen ikinci sayfadaki koduma bakmadın.

 
pivomoe :

OnBookEvent aracılığıyla yeni keneler yakalamak için "daha doğru" olduğunu yazan prostotrade bana tavsiyede bulundu. Camın kendisinden hiç bahsetmiyorum, sadece piyasa incelemesindeki tüm semboller için güncellemelerine abone oluyorum. Esasen OnBookEven'i yalnızca sipariş defterinin güncellendiği sembolü belirlemek için kullanıyorum. Ardından yeni bir onay işareti geliyor ve ardından EA'nın yeni anti-rekorlar belirleyip belirlemediğine bakıyorum. İşte tüm fonksiyon:

Anladığım kadarıyla MarketBookGet'i kullanarak bir bardak alamazsam hiçbir şeyi ayırmam. Muhtemelen ikinci sayfadaki koduma bakmadın.

MT'deki sinyal, önceki sinyal işlenene kadar işlenmez.

 
pivomoe :

OnBookEvent aracılığıyla yeni keneler yakalamak için "daha doğru" olduğunu yazan prostotrade bana tavsiyede bulundu. Camın kendisinden hiç bahsetmiyorum, sadece piyasa incelemesindeki tüm semboller için güncellemelerine abone oluyorum. Esasen OnBookEven'i yalnızca sipariş defterinin güncellendiği sembolü belirlemek için kullanıyorum. Ardından yeni bir onay işareti geliyor ve ardından EA'nın yeni anti-rekorlar belirleyip belirlemediğine bakıyorum. İşte tüm fonksiyon:

Anladığım kadarıyla MarketBookGet'i kullanarak bir bardak alamazsam hiçbir şeyi ayırmam. Muhtemelen ikinci sayfadaki koduma bakmadın.

izlemedim

 
pivomoe :

Mantıkla, seninle her şey yolunda, geçenleri dinleme.

1. 3-5 alet (biri sıvı olmayan) bırakmaya çalışın. Oynayacak mı?

2. İnterneti kullanan başka bir yazılım olmadan temiz bir makinede çalıştırın. Tekrar olacak mı?

3. Farklı Uzman Danışmanlarda (enstrüman başına 1) gecikme yakalamayı yaymaya çalışın.

Sorun kaynaklarda değilse (bir terminale tahsis edilen iş parçacığı sayısında bir miktar sınır vardı), o zaman hata düzeltilmelidir.

 
Andrey Khatimlianskii :

Mantıkla her şey yolunda, yanından geçenleri dinleme.

1. 3-5 alet (biri sıvı olmayan) bırakmaya çalışın. Oynayacak mı?

2. İnterneti kullanan başka bir yazılım olmadan temiz bir makinede çalıştırın. Tekrar olacak mı?

3. Farklı Uzman Danışmanlarda (enstrüman başına 1) gecikme yakalamayı yaymaya çalışın.

Sorun kaynaklarda değilse (bir terminale tahsis edilen iş parçacığı sayısında bir miktar sınır vardı), o zaman hata düzeltilmelidir.

Cevap için teşekkürler. Bugün bu sorunu çözmede biraz ilerleme kaydettim. SymbolInfo() çağrıları arasında Sleep() komutu ile işlenir. Daha önce, tüm piyasa incelemesini duraklamalar olmadan dolaştım. Bugün bir partide 40 karakterle test ettim. Eğer Sleep(5) ise, yaklaşık iki saniye önce gelmesi gereken bir "yeni kene" yakalanmıştır. Ancak Sleep(10)'da 400 milisaniyelik bir gecikmeyle her şey mükemmeldir (bu Sleep(10) (40 karakter *10) nedeniyle). Akşam en likit olan 4 tanesinde denemeye çalıştım. Uyku(1) ile gecikme yoktur... her şey mükemmeldir. O yüzden bu nasıl oluyor anlamıyorum, incelemedeki sembol yeterli değilse hiç duraklama olmadan SymbolInfo kullanılabilir. Ve çok fazla karakter varsa, duraklamaları kullanmanız gerekir.

Şimdi cevaplar:

1) Akşamları sıvı üzerinde oynamayınız.

2) 40 karakterde, yazılım kapalıyken bile tekrar eder.

3) Ne önerdiğini anlamadım. Tek bir terminalde aynı anda iki Uzman Danışmandan yeni onaylar mı yakalayacaksınız?

ZY Şimdi bir uygunluk yönünde SymbolInfo çağrısı yapıyorum. Örneğin, piyasa incelemesindeki bir sembolün bile 3.5 milisaniyeden daha sık yeni keneler veremeyeceğini öğrendik (bu gerçekten akşam oldu).

 
pivomoe :

1) Akşamları sıvı üzerinde oynamayınız.

2) 40 karakterde, yazılım kapalıyken bile tekrar eder.

3) Ne önerdiğini anlamadım. Tek bir terminalde aynı anda iki Uzman Danışmandan yeni onaylar mı yakalayacaksınız?

ZY Şimdi bir uygunluk yönünde SymbolInfo çağrısı yapıyorum. Örneğin, piyasa incelemesindeki bir sembolün bile 3.5 milisaniyeden daha sık yeni keneler veremeyeceğini öğrendik (bu gerçekten akşam oldu).

1. Bir likit olmayan eklemeyi deneyin

3. Bir Uzman Danışmandan bir enstrüman için geçiş kartı almak. Ve 40 danışman çalıştırın.

 
pivomoe :

Cevap için teşekkürler. Bugün bu sorunu çözmede biraz ilerleme kaydettim. SymbolInfo() çağrıları arasında Sleep() komutu ile işlenir. Daha önce, tüm piyasa incelemesini duraklama olmadan dolaştım. Bugün bir partide 40 karakterle test ettim. Eğer Sleep(5) ise, yaklaşık iki saniye önce gelmesi gereken bir "yeni kene" yakalanmıştır. Ancak Sleep(10)'da 400 milisaniyelik bir gecikmeyle her şey mükemmeldir (bu Sleep(10) (40 karakter *10) nedeniyle). Akşam en likit olan 4 tanesinde denemeye çalıştım. Uyku(1) ile gecikme yoktur... her şey mükemmeldir. O yüzden bu nasıl oluyor anlamıyorum, incelemedeki sembol yeterli değilse hiç duraklama olmadan SymbolInfo kullanılabilir. Ve çok fazla karakter varsa, duraklamaları kullanmanız gerekir.

Lütfen gecikmeleri yakalayan bir kod parçası sağlayın. Tam burada, kod ekleme düğmesi aracılığıyla.