Gerçek zamanlı keneler

 

Hepinize iyi günler.

Ticaret algoritmasını Otkritie brokerinin gerçek keneleri üzerinde test etmeye ihtiyaç vardı.
Bu nedenle, algoritma çevrimiçi olarak ve test cihazında gerçek keneler modunda farklı sonuçlar gösterir.
Buna dayanarak, bir sonraki adım, gerçek zamanlı keneler (gerçek keneler) toplamak ve bunları CopyTicksRange() işlevi aracılığıyla elde edilen tik geçmişiyle (geçmiş tikler) karşılaştırmaktı.
Keneler 21/01/2020 tarihinde SBRF vadeli işlemlerinde toplanmıştır.

İlginç sonuçlar elde edildi ve bazı sorular ortaya çıktı.

1. Gerçek tik sayısı ve geçmiş tik sayısı önemli ölçüde farklılık gösterir, ancak işlem gününün başındaki ve sonundaki tikler aynıdır.
Belki bu, OnTick() işleyicisinin kene işlemeyi atlayabilen bir özelliğinden etkilenir.

2. Standart işaretlere (TICK_FLAG_BID ... vb.) ek olarak, geçmiş işaretlerin yarısından fazlasında ek bir 9 bit işaret etkinleştirilmiştir.
Bu, gerçek kenelerde gözlenmez - 9 bitlik bayrağın açık olduğu tek bir tik yoktur.

3. Gerçek ve tarihsel kenelerden farklı olarak herhangi bir tutarlılık bulamadık, ayrıca tarihsel kenelere 9 bitin dahil edilmesi.
Tarihsel işaretler tam olarak gerçek olanlara karşılık gelebilirken, bayraktaki 9 bit onlar için etkinleştirilebilir veya devre dışı bırakılabilir.
Gerçek ve geçmiş tikler, terminale kene akışının çok yoğun olmadığı düşük ticaret faaliyeti döneminde bile eşleşmeyebilir.

keneler

Ve ilgili sorular:

Geliştiriciler için - kene bayrağında 9 bit ne anlama geliyor?

Ve topluluğa - benzer bir çatışmayla karşılaşan var mı?
Algoritmaları gerçek keneler üzerinde nasıl test edersiniz? Sadece çevrimiçi mi?

Ekli, kene toplayıcı ve analizörlü dosyalardır.
Ve 21/01/2020 için SBRF-3.20'de gerçek keneler.

Dosyalar:
ticks.zip  553 kb
 
Vladimir Mikhailov :

Hepinize iyi günler.

Ticaret algoritmasını Otkritie brokerinin gerçek keneleri üzerinde test etmeye ihtiyaç vardı.
Bu nedenle, algoritma çevrimiçi olarak ve test cihazında gerçek keneler modunda farklı sonuçlar gösterir.
Buna dayanarak, bir sonraki adım, gerçek zamanlı keneler (gerçek keneler) toplamak ve bunları CopyTicksRange() işlevi aracılığıyla elde edilen tik geçmişiyle (geçmiş tikler) karşılaştırmaktı.
Keneler 21/01/2020 tarihinde SBRF vadeli işlemlerinde toplanmıştır.

İlginç sonuçlar elde edildi ve bazı sorular ortaya çıktı.

1. Gerçek tik sayısı ve geçmiş tik sayısı önemli ölçüde farklılık gösterir, ancak işlem gününün başındaki ve sonundaki tikler aynıdır.
Belki bu, OnTick() işleyicisinin kene işlemeyi atlayabilen bir özelliğinden etkilenir.

2. Standart işaretlere (TICK_FLAG_BID ... vb.) ek olarak, geçmiş işaretlerin yarısından fazlasında ek bir 9 bit işaret etkinleştirilmiştir.
Bu, gerçek kenelerde gözlenmez - 9 bitlik bayrağın açık olduğu tek bir tik yoktur.

3. Gerçek ve tarihsel kenelerden farklı olarak herhangi bir tutarlılık bulamadık, ayrıca tarihsel kenelere 9 bitin dahil edilmesi.
Tarihsel işaretler tam olarak gerçek olanlara karşılık gelebilirken, bayraktaki 9 bit onlar için etkinleştirilebilir veya devre dışı bırakılabilir.
Gerçek ve geçmiş tikler, terminale kene akışının çok yoğun olmadığı düşük ticaret faaliyeti döneminde bile eşleşmeyebilir.

Ve ilgili sorular:

Geliştiriciler için - kene bayrağında 9 bit ne anlama geliyor?

Ve topluluğa - benzer bir çatışmayla karşılaşan var mı?
Algoritmaları gerçek keneler üzerinde nasıl test edersiniz? Sadece çevrimiçi mi?

Ekli, kene toplayıcı ve analizörlü dosyalardır.
Ve 21/01/2020 için SBRF-3.20'de gerçek keneler.

Beni kene seçicinle güldürdün :)

"Tüm işlemlerin kasetini" temel alın

https://www.mql5.com/ru/code/16210

Katma

Ve Exchange Instruments için test cihazını unutun

Лента всех сделок
Лента всех сделок
  • www.mql5.com
Хитрый усреднитель Hello Smart Эксперт усредняет убыточные позиции по определенному алгоритму. ColorJSatl_Digit Сглаженный быстрый цифровой фильтр JSatl с цветовой индикацией направления движения, с отображением последнего значения в виде ценовой метки и с возможностью округлять уровни...
 
prostotrader :

Beni kene seçicinle güldürdün :)

"Tüm işlemlerin kasetini" temel alın

https://www.mql5.com/ru/code/16210

Katma

Ve Exchange Instruments için test cihazını unutun

Yukarıdaki örnek, işlem beslemesini toplamanın yalnızca bir yoludur ve yine referans geçmişe yöneliktir.
Algoritmayı yavaşlattığı için yapmak istemediğim şey. Her şeyden önce, OnTick() olayı tarafından işlenen tiklerle ilgileniyoruz.

Genel olarak Exchange Instruments test cihazını veya MT5'teki test cihazını unuttunuz mu?

 
Vladimir Mikhailov :

Yukarıdaki örnek, işlem beslemesini toplamanın yalnızca bir yoludur ve yine referans geçmişe yöneliktir.
1. Algoritmayı yavaşlattığı için yapmak istemediğim şey. Her şeyden önce, OnTick() olayı tarafından işlenen tiklerle ilgileniyoruz.

2. Genel olarak Exchange enstrümanları için test cihazını mı yoksa MT5'teki test cihazını mı unuttunuz?

1. Hiçbir şey yavaşlamaz ve yavaşlamayacak.

Size sadece ihtiyaçlarınıza göre ayarlamanız gereken anahtar teslimi bir çözüm verildi.

OnTick() olayı, sipariş defterindeki tüm değişiklikleri göstermez, yani tüm onayları hesaba katmaz !

İşte kontrol etmeniz için basit bir örnek

 //+------------------------------------------------------------------+
//|                                                   Ticks_test.mq5 |
//|                                      Copyright 2019 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019 prostotrader"
#property link        "https://www.mql5.com"
#property version    "1.00"
//---
bool is_book;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
    is_book = MarketBookAdd ( Symbol ());
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
     if (is_book == true ) MarketBookRelease ( Symbol ());
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
     Print ( __FUNCTION__ + " Tick is done!" );
   
  }
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent ( const string &symbol)
  {
     if ( Symbol () == symbol)
    {
       Print ( __FUNCTION__ + " Tick is done!" );
    }
   
  }
//+------------------------------------------------------------------+ 
2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.930	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.016	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.280	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.392	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!

2. Borsa araçları için (Bunu Borsa araçları için zaten yazdınız)

Katma

FOREX'ten Exchange'e "taramaya" karar verirseniz, bu konuda bir konu bulmanızı öneririm.

"Yeni başlayanlara yardımcı olmak için" bölümü ve onunla ayrıntılı olarak tanışın.

Borsada her şeyin "başı" OnTick() değil Glass'dır.
 
prostotrader :

1. Hiçbir şey yavaşlamaz ve yavaşlamayacak.

Size sadece ihtiyaçlarınıza göre ayarlamanız gereken anahtar teslimi bir çözüm verildi.

OnTick() olayı, sipariş defterindeki tüm değişiklikleri göstermez, yani tüm onayları hesaba katmaz !

İşte kontrol etmeniz için basit bir örnek

2. Borsa araçları için (Bunu Borsa araçları için zaten yazdınız)

Katma

FOREX'ten Exchange'e "taramaya" karar verirseniz, bu konuda bir konu bulmanızı öneririm.

"Yeni başlayanlara yardımcı olmak için" bölümü ve onunla ayrıntılı olarak tanışın.

Borsada her şeyin "başı" OnTick() değil Glass'dır.

1. Haklısın. OnTick() olayı, OnBookEvent() olayıyla tam olarak ilişkili değildir.
İlk olay, yeni kenelerin gelişini ele alır - fiyat tekliflerindeki değişiklikler, takas işlemleri.
İkincisi, her zaman bir takas işlemine yol açmayan camdaki bir değişikliktir.
Bir takas işlemi gibi, bir bardaktan geçmesi gerekmez.
Onlar. İlk olayın işlem kasetine, ikincisinin sipariş defterine atıfta bulunduğunu söyleyebiliriz.

2. Analiz ve karar verme için ne kullanılır - bir işlem kaseti veya bir bardak veya her iki seçenek, ticaret algoritmasına bağlıdır.

Anlaşmalar bandını analiz etmek için OnTimer() olayını milisaniyelik bir periyotla kullanmanız gerekecek gibi görünüyor.
Daha fazla deneyeceğim.

 
Vladimir Mikhailov :

1. Haklısın. OnTick() olayı, OnBookEvent() olayıyla tam olarak ilişkili değildir.
İlk olay, yeni kenelerin gelişini ele alır - fiyat tekliflerindeki değişiklikler, takas işlemleri.
İkincisi, her zaman bir takas işlemine yol açmayan sipariş defterindeki bir değişikliktir.
Bir takas işlemi gibi, bir bardaktan geçmesi gerekmez.
Onlar. İlk olayın işlem kasetine, ikincisinin sipariş defterine atıfta bulunduğunu söyleyebiliriz.

2. Analiz ve karar verme için ne kullanılır - bir işlem kaseti veya bir bardak veya her ikisi, ticaret algoritmasına bağlıdır.

Anlaşmalar bandını analiz etmek için OnTimer() olayını milisaniyelik bir periyotla kullanmanız gerekecek gibi görünüyor.
Daha fazla deneyeceğim.

Zamanlayıcı kullanmak kötü bir fikirdir .

Ne istediğinize zaten karar verdiniz - gerçek zamanlı veya zamanlayıcıda çalışmak ...

Kafanda "püresi" var.

Sipariş defterindeki herhangi bir değişiklik, "anlaşmalar kasetini" içeren bir onay işaretidir.

OnBookEvent() tetiklendi, bu şu anlama geliyor:

1. Bir işlem oldu veya

2. Yeni bir ASK veya

3. Yeni bir Teklif ortaya çıktı veya

4. Birisi bekleyen emrini iptal etti veya

5. ASK ses seviyesi değişti veya

6 Teklif hacmi değişti

Bütün bunlar OnBookEvent()'e yansıtılır ....

İyi şanlar!

Katma

Bir DC bilgisayarla ticaret yaptığınız FOREX'in aksine,

Borsada gerçek rakipleriniz var (Bireyler ve Yuriki)!

Değişim yalnızca siparişlerinizle "eşleşir" ( ücretsiz değil, elbette :) ).

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 

Bir DC bilgisayarla ticaret yaptığınız FOREX'in aksine,

Borsada gerçek rakipleriniz var (Bireyler ve Yuriki)!

Değişim yalnızca siparişlerinizle "eşleşir" ( ücretsiz değil, elbette :) ).

ECN'yi duydunuz mu?

 
Aleksey Mavrin :

ECN'yi duydunuz mu?

))))))))))

ECN hakkında bilgi edinin


Обсуждение статьи "Выцарапываем профит до последнего пипса"
Обсуждение статьи "Выцарапываем профит до последнего пипса"
  • 2019.07.25
  • www.mql5.com
Опубликована статья Выцарапываем профит до последнего пипса: Автор: fxsaber...
 
Aleksey Mavrin :

ECN'yi duydunuz mu?

Neden buraya geldin?

FOREX'te Kâse'yi aramaya devam edin...

 
prostotrader :

Neden buraya geldin?

FOREX'te Kâse'yi aramaya devam edin...

Özel alanınız nedir?

Ve tanıdık olmayan insanlara ne yapacaklarını söylemek kabalıktır. Bu, gelişiminizin düşük seviyesini gösterir.

 
Vladimir Mikhailov :

Geliştiriciler için - kene bayrağında 9 bit ne anlama geliyor?

9. biti bilmiyorum, belgesiz 7. biti sordular:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaTrader 5 platformunun yeni versiyonu 1930 yapımı: MQL5'te kayan grafik pencereleri ve .Net kitaplıkları

Slava , 2018.12.04 11:09

Alain Verleyen :

2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 1 onay: 2018.12.03 00:52:27.671 1.13338 / 1.13354 / 0.00000 0 bayrak: 230
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 2 onay: 2018.12.03 00:52:27.743 1.13335 / 1.13348 / 0.00000 0 bayrak: 230
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 3 onay: 2018.12.03 00:52:27.821 1.13327 / 1.13343 / 0.00000 0 bayrak: 230
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 4 onay: 2018.12.03 00:52:27.888 1.13326 / 1.13343 / 0.00000 0 bayrak: 226
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 5 onay: 2018.12.03 00:52:27.965 1.13327 / 1.13345 / 0.00000 0 bayrak: 230
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 6 onay: 2018.12.03 00:52:28.194 1.13328 / 1.13346 / 0.00000 0 bayrak: 230
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 7 tick: 2018.12.03 00:52:28.265 1.13328 / 1.13346 / 0.00000 0 bayrak: 96
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 8 tick: 2018.12.03 00:52:28.327 1.13326 / 1.13344 / 0.00000 0 bayrak: 230
2018.12.03 09:58:06.898 TicksInfo (EURUSD, M5) EURUSD: 9 tick: 2018.12.03 00:52:28.405 1.13326 / 1.13344 / 0.00000 0 bayrak: 96
2018.12.03 09:58:06.899 TicksInfo (EURUSD, M5) EURUSD: 10 onay: 2018.12.03 00:52:28.809 1.13326 / 1.13344 / 0.00000 0 bayrak: 96
2018.12.03 09:58:06.899 TicksInfo (EURUSD, M5) EURUSD: 11 onay: 2018.12.03 00:52:29.289 1.13326 / 1.13344 / 0.00000 0 bayrak: 96

Açıkçası, bayrak bit 7 başına bittir (değer 128, belgelenmemiş ), anlamını bilmek mümkün mü?

Bu, herhangi bir nedenle kene TICK_FLAG_BID bayrağına sahip değilse, tik çubuğa uygulanması gerekiyorsa, veri beslemesi tarafından ayarlanan bir hizmet bayrağıdır.


Neden: