MT4'ten MT5'e aktarma sorunu. Veya daha doğrusu, MT5'te bazı algoritmaların hatasız yürütülmesinin imkansızlığı. - sayfa 3

 
Eugeni Neumoin :

sorusuna cevap vermeye çalıştım. Veri mevcut değil.

Oturum aç - araç ipucunda. Araç ipucu kodu gösterilir. Zaman dizileri oluşturuldu. W1 zaman serisine sahip grafik oluşturulmuştur. Erişim eksikti. iBarShift işlevi bir hata verdi. MT4'te böyle bir hata yok.

Kodu ve çalışmanın sonucunu gösterme talebini bir kez daha görmezden geliyorsunuz.

Lütfen tekrar üretilebilir MQL5 kodu sağlayın.

 
Eugeni Neumoin :

Artem ve makalenin tartışma başlığındaki mesajımı silen sendin. Bir forum üyesinin isteklerine nerede cevap verdim?

Forumun bu başlığında gündeme gelen bir konuya değindim. Ve böyle belirsiz bir tavır beni kızdırdı. Ve bu forum başlığını oluşturdum.

======

Daha önce bu forumda anlaşmazlıklar yaşadım. Burada tartışmak istemiyorum. Sansür olmadan çok şey söyleyebileceğiniz birçok forum var.

2005 yılında, bir moderatör (HQ) Alpari forumunda benzer bir şey yaptı. Ve sonra neredeyse tüm forum Alpari'den Onyx'e taşındı.

Hayır, hiçbir şey silmedim.

 
Vladimir Karputov :

Kodu ve çalışmanın sonucunu gösterme talebini bir kez daha görmezden geliyorsunuz.

Lütfen tekrar üretilebilir MQL5 kodu sağlayın.

Gerçek şu ki, kodun yaklaşık 50.000 satırı var. Açıktan yayınlamayacağım.

Durum dalgalanıyor. Ama... Başka bir kod oluşturmaya çalışacağım. Küçük de olmayacak.

Ve zaman alacak.

Umarım bahsettiğim Dil Referansındaki referanslarımı okumuşsunuzdur. Orada, siyah beyaz olarak, Metaquotes çalışanlarından biri verilere erişimin her an sonlandırılabileceğini yazdı.

İşte dil referansından tam alıntı:

Veri kullanılabilirliği

HCC formatında veya hatta kullanıma hazır HC formatında verilerin mevcudiyeti, her zaman bu verilerin bir çizelge üzerinde görüntülenmesi veya mql5 programlarında kullanım için koşulsuz mevcudiyeti anlamına gelmez.

mql5 programlarından fiyat verilerine veya gösterge değerlerine erişirken, bunların belirli bir zamanda veya belirli bir noktadan mevcut olmalarının garanti edilmediğini unutmayın. Bunun nedeni, kaynakları korumak için MetaTrader 5'in mql5 programı için gerekli verilerin tam bir kopyasını saklamaması, ancak terminal veritabanına doğrudan erişim sağlamasıdır.

Tüm zaman dilimleri için fiyat geçmişi, HCC formatının genel verilerinden oluşturulur ve sunucudan herhangi bir veri güncellemesi, tüm zaman dilimleri için verilerin güncellenmesine ve göstergelerin yeniden hesaplanmasına yol açar. Sonuç olarak, veriler bir an önce mevcut olsa bile verilere erişim reddedilebilir .

Ve bunu daha da kolay yapabilirsiniz. Birkaç kişi zaten bu programı benden satın aldı. Bu konu ile ilgili kendi taraflarında iddialar olacaktır, mesajlarını burada yayınlayacağım. Ve bunun dilin geliştiricileri tarafından sağlandığını herkese bildirmek için: bu veriler bir an önce mevcut olsa bile verilere erişim reddedilebilir .

 
Eugeni Neumoin :


Kodla birlikte, terminal ayarlarını sağlayın: grafikteki çubuk sayısı .

 
Vladimir Karputov :

Kodla birlikte, terminal ayarlarını sağlayın: grafikteki çubuk sayısı .

Varsayılan olarak çubuk sayısı. 100.000 civarında bir yerde. Ve yukarıdaki örneklerde 271 bara erişim reddedildi.

 
Eugeni Neumoin :

Varsayılan olarak çubuk sayısı. 100.000 civarında bir yerde. Ve yukarıdaki örneklerde 271 bara erişim reddedildi.

Halihazırda H1 üzerinde çalışırken, bu önemsiz sayıda çubuktur.

Yani: tekrarlanabilir kod, terminal ayarları ( tablodaki çubuk sayısı ).


Bu minimum olmadan, tartışılacak hiçbir şey yok - şimdiye kadar hava olduğu için.

 
Eugeni Neumoin :

Varsayılan olarak çubuk sayısı. 100.000 civarında bir yerde. Ve yukarıdaki örneklerde 271 bara erişim reddedildi.

Her iki dakikada bir, göstergede kullanılan tüm zaman dilimlerinden ve sembollerden veri almanız gerekir.

OnTimer() işleyicisinde, diğer bir deyişle zamanlayıcıda, göstergenin her 90 saniyede bir çalışması için gereken tüm zaman dilimlerine erişin. Herhangi bir Kopyalama işlevini kullanabilirsiniz. Örneğin, kullanılan her TF için ilk veya geçerli çubuktan "hiçbir yerde" veri alın. Bu, tüm zaman dilimleri için tüm verileri güncel tutmak için yeterli olacaktır.

Ve OnCalculate() 'in en başında, gerekli zaman dilimlerinin verilerine erişerek işlevin ne döndürdüğünü kontrol edin. -1 ise, bir sonraki onay işaretine kadar çıkın.

 
Artyom Trishkin :

Her iki dakikada bir, göstergede kullanılan tüm zaman dilimlerinden ve sembollerden veri almanız gerekir.

OnTimer() işleyicisinde, diğer bir deyişle zamanlayıcıda, göstergenin her 90 saniyede bir çalışması için gereken tüm zaman dilimlerine erişin. Herhangi bir Kopyalama işlevini kullanabilirsiniz. Örneğin, kullanılan her bir TF için ilk veya geçerli çubuktan "hiçbir yerde" veri alın. Bu, tüm zaman dilimleri için tüm verileri güncel tutmak için yeterli olacaktır.

Ve OnCalculate()'in en başında, gerekli zaman dilimlerinin verilerine erişerek işlevin ne döndürdüğünü kontrol edin. -1 ise, bir sonraki onay işaretine kadar çıkın.

OnCalculate() ile ilgili bir sorun değil. GUI'nin tamamı OnChartEvent() aracılığıyla çalışır. Grafik arayüzünde 400'den fazla buton bulunmaktadır.Bazı butonlar zaman serileri ile hiçbir şekilde etkileşime girmemektedir. OnCalculate() ve OnTrade() işlevleri de bir sonraki tik işaretine kadar bekleyebilir. Psikolojik olarak algılanamaz. Ancak OnChartEvent() ile daha karmaşıktır. İşte burada insan psikolojisi devreye giriyor. Programın kullanıcısı grafik arayüzünün düğmesine basar. Ve istenilen cevabı alamamak. Onun tepkisi nedir? Tepkilerden biri - aynı düğmeye tekrar basar. Düğmelerin çoğuna ikinci kez tıklandığında bu düğmeyle bağlanan işlevselliği devre dışı bırakacak şekilde yaptım. Düğme eylemini başka bir şekilde devre dışı bırakma önerinizi öngörüyorum. Ama MT4 için de aynı program var. Orada her şey yolunda gidiyor. MT4'te grafik arayüzle etkileşime geçmek için bir algoritma ve MT5'te başka bir algoritma olduğu ortaya çıktı. Aynı programın bu tür davranışları yalnızca reddedilmeye neden olacaktır.

MT5'e aktarırken benzer bir şey yaptım - OnChartEvent'ten () bir çıkış ekledim. Grafik arayüzünün bu yüzden öldüğü konusunda yalan söylemek istemiyorum.

Evet ve 5 dakika sonra OnTimer() içindeki zaman serilerine erişiyorum. 2 dakika sonra yapacağım. Ne olduğunu kontrol edeceğim.

Artem, önerilerin daha önce yardımcı oldu.

 
Vladimir Karputov :

Halihazırda H1 üzerinde çalışırken, bu önemsiz sayıda çubuktur.

Yani: tekrarlanabilir kod, terminal ayarları ( tablodaki çubuk sayısı ).


Bu minimum olmadan, tartışılacak hiçbir şey yok - şimdiye kadar hava olduğu için.

Forumda dile getirdiğim sorunlara gelecekte müdahale etmemenizi rica ediyorum.

Sizinle iletişimden ne önce ne de şimdi yararlı hiçbir şey yoktu.

Forumun diğer konularına bir şeyler yazabilirsiniz. Ve lütfen şubelerime katılmayınız.

 
Artyom Trishkin :

Her iki dakikada bir tüm TF'ye başvuruda bulundu. OnCalculate() içinde zaman çerçevelerine erişimi kontrol etmek , ilk bakışta programda zorluklara neden olmaz.

Ancak OnChartEvent() içindeki kontrol işi etkiler. Bazı durumlarda, grafik arayüz çalışmayı reddediyor.

Her iki dakikada bir tüm TF'lere erişirken programın nasıl çalıştığını gözlemleyeceğim.

================

Bu arada MT5 ve MT4 arasındaki bir farkı daha ortaya çıkardım.

Grafiksel araçları zagzag ekstremum sayılarına veya dalga sayımı sembollerine bağlamak için grafik arayüzü kullanıyorum.

Bağlama, program sayıyı veya sembolü "gördüğünde" meydana gelir. Bununla ne kastedildiğini açıklayayım. Bir sayının veya sembolün üzerine gelindiğinde bir araç ipucu belirir.

Bir araç ipucu belirirse, program sayıyı veya sembolü "görür". Araç ipucu yoksa, sayı ve sembol görünmez kalır. Bu durumda, grafik aracının bağlanması gerçekleşmez. Ve buna göre, grafik aracı grafikte görüntülenmez.

Belirli bir sayı veya sembol, örneğin Andrews Dirgen ile zaten bağlantılıysa (diğer grafik araçları kontrol etmedi), o zaman MT4'te bir araç ipucu görüntülenir. Ancak MT5'te çok nadiren bir araç ipucu görüntülenir. Ancak bu numarayla ilişkili Andrews dirgenini gizlersem, araç ipucu normal şekilde görüntülenir.

Sayının yanında başka bazı grafik nesneler görüntüleniyorsa, MT5'te araç ipucu görüntülendiğinde hassasiyet kabalaşıyor gibi görünüyor. Ancak bunun, MT5'te MT4'te olmayan zaman serilerinde bazı ek güncellemeler yapmanız gerektiği gerçeğinden kaynaklandığını göz ardı etmiyorum. Bu ek güncellemeler, belirli MT5 işlevlerini geciktirebilir. (Bu benim hayalim. MT5'in iç mekanizmasını bilmiyorum).

Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
  • www.metatrader5.com
Определение трендов, построение каналов, выявление циклов и уровней поддержки/сопротивления — все эти и многие другие задачи решаются при помощи аналитических объектов. Всего в торговой платформе доступно 46 таких инструментов. Среди них имеются геометрические фигуры, различные каналы, инструменты Ганна, Фибоначчи, Эллиотта и многое другое. В...
Neden: