Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Hmm.. Prensipte her şey aynı..
Yeni yapı, basit yapıları bir döngüde kopyalamayı durdurdu. İşte test komut dosyası:
Sonuç:
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) 'E:\Program Files\Championship_2011\MQL5\Scripts\Test_Copy_Struct.ex5' içinde 0x00000000209FFFAC olarak erişim ihlali okundu
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) i=0
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=3000.00 MAPPeriod=100 MA_use=1 Lot=0.10 alprofit=1000
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Ayar yeniden açıldı=110 overpo=130 TrailingStop=200 KayıpsızLevel=1300KayıpsızKar=1500
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=1000.00 MAPPeriod=85 MA_use=0 Lot=0.15 kar al=1700
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Ayar yeniden açıldı=110 overpos=140 TrailingStop=200 KayıpsızLevel=600KayıpsızKar=800
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=2000.00 MAPPeriod=105 MA_use=1 Lot=0.13 kar al=2700
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Ayar yeniden açıldı=60 overpos=90 TrailingStop=1000 KayıpsızLevel=100KayıpsızKar=900
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=0,00 MAPeriod=0 MA_use=0 Lot=0,00 kar al=0
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Ayar yeniden açıldı=0 overpos=0 TrailingStop=0 LossLevel=0 WithoutlossProfit=0
https://www.mql5.com/ru/docs/basis/function/events'in sonunda şöyle yazıyor: " Daha iyi anlamak için kodu aşağıda eklenmiş olan göstergeyi çalıştırmak faydalı olacaktır. "
Kod başladı. Haftasonunda. Daha iyi bir anlayış olmadı - bence normaldi, ancak en kötü izlenimler eklendi. Hafta sonları tik yoktur, bu nedenle prev_calculated = 0 şu anda zaman diliminden zaman dilimine geçiş yaparken her zaman:
Ancak, güzel bir anda ortaya çıkıyor (yeniden bağlantı yoktu, dürüst olmak gerekirse asil!) İşte değer:
ve grafikteki komik satırlar:
ya da iki kat daha az komik, bunun gibi:
Hatta hikayenin başında ZigZag şeklinde satırlar bile vardı (ne yazık ki ekran görüntüsü almayı unuttum ama çoğaltmak mümkün olmadı).
Çizgiler ayrıca diğer TF'lerde de görünüyor, ancak daha seyrek. Bunu kendiniz kolayca doğrulayabilirsiniz.
Yazarların söylemek istediği tam olarak bu mu?
Neden prev_calculated'ın sonucu kenelerin yokluğunda en azından aynı değil, hatta tamamen garip? TF'den TF'ye atlarken bir şeyler başarısız mı oluyor?
Bu (veya başka) çizgiler kenelerin dışında görünmeli mi?
Nadir durumlarda, zaman diliminden zaman dilimine nispeten sık bir atlama, geçmişteki çubuk değerlerinin hesaplanmasını vb. başlatan sahte bir onay işareti gibi bir şey üretebilir mi?
Terminal değişkenliğinin sabitlenmesini beklemeli miyiz? Yoksa malzeme mi öğrenmeliyim?
İstenmemesi gereken bir şey mi yapmaya çalışıyorum? Bu durumda, bakış açınızı haklı çıkarın.
Bir çok soru birikmiş ... ancak, bu sadece başlangıç ...
Devamı...
Aynı bağlantı şu ifadeyi içerir: " Not : OnCalculate işlevi sıfır değeri döndürürse, gösterge değerleri istemci terminalinin DataWindow'unda görüntülenmez. "
Bakın sorun ne... Ellerimin büyüdüğü her yeri seve seve kabul eder, gerekirse hemen düzeltirim. Ancak. Basit göstergelerde ve orta karmaşıklıkta, yine de bir şekilde bazı durumlardan hatalarla çıkabilirsiniz. Ancak kodun karmaşıklığı arttıkça, herhangi bir Copy...() kopyalama işlevi (hem başka bir göstergenin tutamağını bir argüman olarak kabul eden hem de onsuz) durumu önemli ölçüde karmaşıklaştırmaya başlar, kişisel olarak bana göründüğü gibi, kim var? bir haftadan daha az süredir MQL programlama yapıyor. Kodda başka nelerin değiştirilebileceğini artık bilmediğiniz bir eşik anı gelir, çünkü değiştirebileceğiniz her şey ve o zaman göründüğü gibi geri kalanına hiç dokunulması gerekmez, çünkü değiştirecek hiçbir şeyi yoktur. sorunla yapın. Veya tamamen silahsızlandıran bir düşünce içeri girer: algoritmayı tamamen değiştirmek, çünkü yaşamın özellikleri ve terminalin kaprisleri önceden dikkate alınmamıştır. Ne de olsa, belgelerden MQL'yi inceleme sürecinde, geliştiricilerin büyük olasılıkla yanlışlıkla gizlediği nüanslarla uğraşmak gerekir. Ne de olsa, bir MQL programcısı, belgeleri tam olarak inceledikten sonra fazla bir şey öğrenmez... Ve en rahatsız edici olan şey, terminalin pek çok değişkeni MQL aracılığıyla hiçbir şekilde düzeltilemez, ya da Şüpheli koltuk değneklerinin şifresi ve bir gün çarpmak canımı acıtıyor...
Tamam... Bugün çıldırdım. Hala bir gün izin.
Ve işte sabahın erken saatlerinde söylemek istediklerim...
https://www.mql5.com/ru/forum/1111/page570#comment_117425 - terminalin ilk lansmanı sırasında göstergenin çizilmemesinin ana sorunu bir şekilde çözüldü (umarım kimse bunun gerçeğiyle tartışmayacaktır). en azından fraktal göstergenin hiçbir şeyi yok, kenelerin yokluğunda bile tüm geçmişi düzgün bir şekilde çizmeyi engellemeli mi?).
Öyleydi:
ile değiştirildi:
Dikkatsizliğimi ve sonuç olarak zararlı biçimciliği kabul ediyorum.
Ancak. Bu, en basit durumda yardımcı oldu (orijinal göstergeyi özel olarak basitleştirdi). Daha karmaşık bir göstergede, bu tür hileler artık yardımcı olmadı - bir noktada, özellikle orada çok sayıda kopyalama işlevi olduğundan, değişiklikler herhangi bir farklılık göstermeyi bıraktı. Ve nereye ve nasıl devam edeceğime dair anlaşılır bir talimat almayı çok isterim. Ne de olsa, güvertenin kütüğünden geçenlere çok fazla zaman harcanıyor. Şimdiye kadar, bunun benim cant mı yoksa terminal mi olduğunu bile anlamadım. Ve birincil oluşturma sorununun yalnızca if ve dönüşün olmamasından kaynaklandığından emin değilim ... bazı yerlerde şüpheli görünüyor, örneğin, başka ...
Geliştiriciler - Gerekirse kodu PM olarak atacağım; Aynı zamanda, amaçlanan amacı için benzer bir tane ekleyebilirim, ancak farklı şekilde uygulandı ve sorunsuz bir şekilde hemen çalıştı (gerçi ustalaşılan görevlere ve hedeflere tam olarak uymasa da).
Terminalin önbellek konusunda garip olduğuna dair güçlü şüpheler var (neredeyse konunun dışındayım, yani ...). Daha da kötüsü, MetaEditor bile o sırada terminalde neler olup bittiğinin işlenmesini bir şekilde etkiler.
Bir MQL programının (hata ayıklama verilerini Expert'in sekme günlüğüne yazdıran) kodunu değiştirdiğimde, onu yeniden derlediğimde, terminal penceresine gittiğimde ve önceki sonuçların nasıl tekrarlandığını gördüğünde tekrar tekrar bir sorunla karşılaştım, ancak kesinlikle şunu söyleyebilirim ki bu önceki bitmemiş bir programın başlatılmasının gecikmeli tamamlanması gibi bir şey değildir. MetaEditor'daki F7 aracılığıyla, güncellenmiş kodu başlatma için derleyip gönderdiğim ortaya çıktı ve bu arada, terminale eskisini yeniden kaydırması için bir komut verildi (önbellekten falan mı? .. işletim sistemi "arma" bellek sayfalarına benziyor). "Dişte sıkışmış" .ex5 kodunun önceki sürümünün yalnızca terminal.exe işlemini tamamen boşaltarak değil, bazı nadir durumlarda MetaEditor'u kapatarak da iptal edilebilmesi/boşaltılabilmesi ilginçtir. Siz böyle istiyorsunuz ve anlayın, şahsen gözlemlediğim şeyi tekrar anlattım.
Son zamanlarda inşaatın olduğu bir durum vardı:
yalnızca ilk Baskıdaki değeri görüntüledi, ancak dizi öğelerinin değerlerinin daha sonra görüntülenmesini beklemek faydasızdı. İlk Print'i kaldırdıktan ve yeniden derledikten sonra, dizi öğelerinin döngüsel çıktısı anında başladı. Prints'in MQL5-Community'ye karşı gizli komplosu mu yoksa tek şanssız olan ben miyim?Ek olarak, bu garip terminal davranışı vakalarının, grafik pencereleri, grafik nesneler ve MQL programları ile aşırı yüklenmiş bir MT5 örneğinde değil, yalnızca tek bir temiz (çalışan gösterge taslağı sayılmaz) grafik penceresinde gözlemlendiğini not ediyorum.
1. ArrayInitialize kodu çalışmaz, döngünün yorumunu kaldırırsanız, her şey yolunda demektir.
2. Yine de sınıftaki değişkenleri ve global düzeydeki göstergeyi aynı isimlerle bildirirken bir uyarı çıkıyor.
1. PlotIndexSetDouble (z,EMPTY_VALUE) init içindeki gösterge arabellekleri için kullanılır .
2. Açılır. Bu konuda bir şeyler yapılması gerekiyor, sınıf üyelerini "m_" öneki ile işaretlemeniz önerilir.