Birçokları için ilginç bir konu: MetaTrader 4 ve MQL4'te neler olacak - büyük değişiklikler yolda - sayfa 49

 
hrenfx :

Öyle görünmüyor. Gerçekten ihtiyacım olduğunda, yaparım.

Bazı üçüncü taraf yazılım geliştiricileri yeteneklerinizi sınırlandırırsa bu çok kötü.

olduğunu uzun zaman önce yazmıştı. Bulutlarda değil, ama yine de) Ve yapacak bir şeyiniz yok, neye ihtiyacım olduğunu ve neye sahip olduğumu nasıl düşüneceğinizi ve yeteneklerimi uzaktan nasıl değerlendireceğinizi. Saçma sapan şeylerle uğraşmayın, mutfağa daha fazla PR yapın;)
 
hrenfx :


Bu imkansız .

mutfak tarafından beslenen bir kişiden gelen saçmalık))
 
Avals :
Saçma sapan şeylerle uğraşmayın, mutfağa daha fazla PR yapın;)

Ceket , sınıflandırmanıza göre "noobs ve piarastlar" arasındaki görünüşünüzü bozmayın. QQ'nuza gidin.

Not Hisse senedi yatırımcıları için FOREX piyasasının gerçekleri ve alıştıkları borsalardan çeşitli ayırt edici özellikleri hakkında bilgilerini doldurabilecekleri bir eğitim programı vardır. Ufkunuzu genişletin!

Poul Trade Forum: Два ку
  • forex.kbpauk.ru
Как ущербный, могу позволить себе написать правду. И паук и qq - для новичка полное дерьмо. Когда человек, вне зависимости от опыта, приходит на рынок, он сталкивается со сложной задачей: найди то, не знаю что. Но чтобы был профит. И самое сложное определиться, ГДЕ именно копать и КАК копать. На форумах этой информации практически нет. А если и...
 
hrenfx :
Ceket , sınıflandırmanıza göre "noobs ve piarastlar" arasındaki görünümünüzü burada mahvetmeyin. QQ'nuza gidin.
burada insanlar çoğunlukla çaylak değil, ama halkla ilişkiler tek sizsiniz)
 

Depolanan geçmişin biçimiyle (MqlRates), MetaQuotes elbette çok akıllıydı (akıllı değil). Bu anlaşılabilir. Forex piyasasında format geliştirildiğinde, sabit spreadler hakimdi, piyasa (dalgalı) spreadler hala egzotikti. DC'ler, haber bültenleri ve piyasadaki hızlı değişiklikler sırasında sabitliklerini garanti etmedikleri için, sabit spreadlerin bile aslında dalgalı olduğu açık olsa da (buradaki tırnak işaretleri, hemen hemen her DC'nin tipik bir teklifinden bir alıntıyı temsil etmektedir). dönem).

Ancak, zaman değişti ve sahip olduğumuz şeye sahibiz - spreadler her tik üzerinde yüzüyor. Sorun değil. ... Sadece tarihsel alıntılarda yansıtılmaz. Ne yazık ki.

Geçmişte çubuk başına yalnızca bir yayılma değeri saklanır. Ve bu şimdi yeterli değil. Ve geriye dönük test sırasında bozulmalara yol açar, çünkü komisyoncu kesinlikle dürüst (kene akışının gerçek yayınına karşılık gelen) bir tarihsel temel sağlasa bile, test cihazındaki gerçek ticaret geçmişi ile ticaret geçmişi arasında bir eşleşme yoktur. Bunun nedeni, MqlRates formatının yetersiz açıklayıcı gücüdür.

 struct MqlRates
  {
   datetime time;         // время начала периода     8 байт
   double    open;         // цена открытия             8 байт
   double    high;         // наивысшая цена за период  8 байт
   double    low;           // наименьшая цена за период 8 байт
   double    close;         // цена закрытия           8 байт   
   long      tick_volume;   // тиковый объем           8 байт  
   int       spread;       // спред                  4 байта
   long      real_volume;   // биржевой объем            8 байт
  };
// итого: size_of(MqlRates) = 52 байта 

Bu yapı, çubuk içindeki yayılmanın değişmediğini varsayar ve bu, mevcut ticaret gerçeklerine karşılık gelmez.

"Tam" bir formatın ne olabileceği hakkında daha fazla akıl yürütme. Şu anda desteklenmediğini açıkça belirtmek için şartlı olarak "Mql_6_Rates" olarak adlandırdım.

Aşağıda iki seçenek bulunmaktadır. Birincisi paketlenmiş bir yapıdır (disk için). Özel algoritmalar tarafından sıkıştırma olmadan. İletim sırasında trafiği azaltmak için yine de birkaç kez (muhtemelen 2-3) azaltılabilir. Sıkıştırılmış biçim burada tartışılmamaktadır.

 struct Mql_6_PackedRates  
  {
   time_t time;             // время начала периода  4 байта  // восьмибайтный time64_t неактуален до 2038 года
   float     average_price; // средняя цена бара грубо (на три значащих цифры меньше точности _digits) 4 байта
   float     d_open;         // поправка к цене открытия 4 байта
   float     d_high;         // поправка к наивысшей цене за период 4 байта
   float     d_low;         // поправка к наименьшей цене за период 4 байта
   float     d_close;       // поправка к цене закрытия 4 байта
   ushort    spread;         // средний спред 2 байта
   char      d_open_spread; // поправка к спреду открытия 1 байт
   char      d_high_spread; // поправка к спреду high 1 байт
   char      d_low_spread;   // поправка к спреду low 1 байт
   char      d_close_spread; // поправка к спреду close 1 байт
   uint      tick_volume;   // тиковый объем 4 байт
   uint      real_volume;   // биржевой объем  4 байт
   double    OpenBid() { return (average_price+d_open); } // функции на лету вычисляющие точные значения
   double    OpenAsk() { return (average_price+d_open+OpenSpread()); }
   double    HighBid() { return (average_price+d_high); }
   и т.д...... // функции на лету вычисляющие точные значения
   ...
   ...
   double OpenSpread() { return ((spread+d_open_spread) * _digits); }
   ...
   и т.п ......
   Mql_6_Rates UnpackRates() { Mql_6_Rates Rates; .... /*заполняем*/ .....   return (Rates);}
  };
// Итого у меня получилось 38 байт, всё правильно? Вся информация об 4 точках bid-ask упакована без искажений

Tüccar diskinde depolandığında "paketlenmiş" formatın optimal olduğu varsayılır. Diskten belleğe yüklenirken, anında paketten çıkarılabilir, paket açma işlevleri yapıya "bağlanır".

Paketlenmemiş geçmiş (MQL'den erişim için) şöyle olabilir:

 struct Mql_6_Rates
  {
   datetime time;         // время начала периода     8 байт
   double    open_bid;     // цена открытия             8 байт
   double    open_ask;     // цена открытия             8 байт
   double    high_bid;     // наивысшая цена за период  8 байт
   double    high_ask;     // наивысшая цена за период  8 байт
   double    low_bid;       // наименьшая цена за период 8 байт
   double    low_ask;       // наименьшая цена за период 8 байт
   double    close_bid;     // цена закрытия           8 байт   
   double    close_ask;     // цена закрытия           8 байт   
   long      tick_volume;   // тиковый объем           8 байт  
   long      real_volume;   // биржевой объем            8 байт
  };

//итого = 88 байт

Bu şimdi olduğundan daha fazla, ancak çubuğun tüm sabit noktalarındaki yayılmayı hesaplayabiliriz. Yani, bilgileri geleneksel {Açık+Yüksek+Düşük+Kapat} şemasına göre dakika çubuklarında yazarsanız, "tam".

Benim için bu bilgi gereksizdir, ayrıca Açık noktada maksimum yanılsamalar yaratma eğilimindedir. Farklı semboller için çubuk açılış saatleri çakışmazken, (astronomik) dakikanın tam başlangıcında, semboller üzerindeki alış-satış fiyatları tam olarak son kote edilen alış-satış fiyatlarına karşılık gelir, yani. kapanış fiyatları Bu nedenle, en test edilebilir tutanak formatı (gelenek ile sağduyu arasındaki en sağlıklı uzlaşma) şunlar olabilir:

 struct Mql_6_Rates
  {
   datetime time;         // время начала периода     8 байт
   double    high_bid;     // наивысшая цена за период  8 байт
   double    high_ask;     // наивысшая цена за период  8 байт
   double    low_bid;       // наименьшая цена за период 8 байт
   double    low_ask;       // наименьшая цена за период 8 байт
   double    close_bid;     // цена закрытия           8 байт   
   double    close_ask;     // цена закрытия           8 байт   
   long      tick_volume;   // тиковый объем           8 байт  
   long      real_volume;   // биржевой объем            8 байт
  };

//итого = 72 байта

// Paketlenmiş disk biçiminde karşılık gelen tasarruf 7 bayt daha olacaktır, yani. SizeOf(Mql_6_PackedRates) 31 bayta küçülür.

"Açılış fiyatlarında" çevre dostu (en makul) bir test için, bir dakikalık astronomik başlangıç zamanı alınmalıdır, yani. önceki çubuğun Kapanış fiyatı. Bu durumda, tam çoklu para birimi fiyat senkronizasyonu sağlanacaktır. Bu eşzamanlılık, piyasa emirlerinin ticaretini yapan çok para birimli Uzman Danışmanların hatalarını ayıklamak için hayati önem taşır. Alım satım limiti ve stop emirleri için her bir çubuktaki aşırılıklarla ilgili bilgiler hayati önem taşır. Ayrıca tam olarak tartışılan formatta sunulmaktadır.

--

Aslında, bu biçimleri şu anda kişisel amaçlar için geliştiriyorum. Onları burada yayınlamak, geliştirmemin bir yan ürünüdür. Belki birisi işe yarar.

 
MetaDriver :


"Açılış fiyatlarında" çevre dostu (en makul) testte, bir dakikalık astronomik başlangıç zamanı alınmalıdır, yani. önceki çubuğun Kapanış fiyatı.

boşluğu görmezden gelmek, bazı durumlarda kritik olan

ps trafikte tasarrufa ihtiyacınız varsa, o zaman mutlak fiyat değerlerini değil , ancak çok fazla çiftin olduğu ofsetleri saklayabilirsiniz.

Документация по MQL5: Математические функции / MathAbs
Документация по MQL5: Математические функции / MathAbs
  • www.mql5.com
Математические функции / MathAbs - Документация по MQL5
 
MetaDriver :

Depolanan geçmişin biçimiyle (MqlRates), MetaQuotes elbette çok akıllıydı (akıllı değil). Bu anlaşılabilir. Forex piyasasında format geliştirildiğinde, sabit spreadler hakimdi , piyasa (dalgalı) spreadler hala egzotikti. DC'ler, haber bültenleri ve piyasadaki hızlı değişiklikler sırasında sabitliklerini garanti etmedikleri için, sabit spreadlerin bile aslında dalgalı olduğu açık olsa da (buradaki tırnak işaretleri, hemen hemen her DC'nin tipik bir teklifinden bir alıntıyı temsil etmektedir). dönem).

MT5 başlangıçta bir değişim terminali olarak konumlandırılmıştı. Ve borsalarda, ECN fiyatlandırma yasaları ÇOK uzundu. Onlar. başarısızlığın mazereti savunulamaz. Eh, takımlarında dinlenebilecek güçlü bir algo tüccarı yoktu (ve değil). Görünüşe göre, sağlam mantıktan ziyade yalnızca "başarılı platform geliştirme yıllarının sayısı" kuralları.
 
hrenfx :
MT5 başlangıçta bir değişim terminali olarak konumlandırılmıştı. Ve borsalarda, ECN fiyatlandırma yasaları ÇOK uzundu. Onlar. başarısızlığın mazereti savunulamaz. Eh, takımlarında dinlenebilecek güçlü bir algo tüccarı yoktu (ve değil). Görünüşe göre, sağlam mantıktan ziyade yalnızca "başarılı platform geliştirme yıllarının sayısı" kuralları.

haklı çıkarmaya çalışmadım. Haklı çıkmak için önce suçlamak gerekir. Ve bir şekilde buna bağlı değilim .... :)

 

Sonra bu küçümseme (buna dikkat edilmelidir - çıplak eleştiriden daha kötü):

MetaDriver :

Depolanan geçmişin biçimiyle (MqlRates), MetaQuotes elbette çok akıllıydı (akıllı değil). Bu anlaşılabilir . Forex piyasasında format geliştirildiğinde, sabit spreadler hakimdi, piyasa (dalgalı) spreadler hala egzotikti. DC'ler, haber bültenleri ve piyasadaki hızlı değişiklikler sırasında sabitliklerini garanti etmedikleri için, sabit spreadlerin bile aslında dalgalı olduğu açık olsa da (buradaki tırnak işaretleri, hemen hemen her DC'nin tipik bir teklifinden bir alıntıyı temsil etmektedir). dönem).

 
Avals :

boşluğu görmezden gelmek, bazı durumlarda kritik olan

Böyle bir mektup var. Ancak, bir boşluk (süreksiz alıntı atlama) sadece çubuğun başında değil, herhangi bir zamanda olabilir. Dolayısıyla, herhangi bir "inceltilmiş" format, tanımı gereği günahsız değildir. Yalnızca kenelerde tam besleme. Ve camın tarihinde daha da dolu olabilir. Böyle bir uzlaşma bulana kadar kendim için bir dakika formatı oluşturmaya çalışıyorum. Muhtemelen yukarıda açıklandığı gibi bırakacağım (Açık olmadan sadece {Hi-Lo-Close}), tüm eksiklikleri anlıyorum, bu benim test cihazım için kodlamamın versiyonlarından sadece biri. Ayrıca, ham keneler üzerinde veya herhangi bir yöntemle ({bid-ask-time} kene biçimini korurken) yapay olarak inceltilmiş keneler üzerinde test yapılmasını sağlar.