![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Tüm çubuklar için gösterge bir kez hesaplanır - yani. büyük bir tarihe başlarken biraz yavaşlayabilir.
Gelecekte, birkaç değer yeniden hesaplanır - lyat olmalıdır :)
Programcıların aynı zamanda boş zamanlarında programlamadan zaman dilimlerini manuel olarak atlamayı seven insanlar olduğunu unutmayın. Ve her yeni TF, göstergenin tüm anatomisinin başka bir başlatma-başlatma işlemidir, tüm hesaplamalar yenisinde yapılacaktır. Bu nedenle, ArrayInitialize() , TF'den TF'ye sonraki her atlamada tetiklenecektir. Gösterge, yeniden başlatılması gereken birkaç arabellekle karmaşıksa, gecikmeler acımasızca birikir ve otomatik olarak tahsis edilen belleğin aşırı kullanımından bahsetmiyorum bile.
Ne kadar saf bir yoldaşım!.. Ne de olsa, OnInit() 'te başlatma gerçekleştirmenin ve bu aşamada bundan muzdarip olmanın, OnCalculate() 'e daha acil görevlere dalmanın yeterli olduğundan her zaman eminim. Ama hayır, bana borular. Bu arada, genel olarak, karmaşık göstergelerin az ya da çok başarılı bir şekilde yazılması, ArrayInitialize() öğesinin neden tam olarak OnCalculate() içinde yer alması, her bir onay işaretini kontrol etmesi ve birincil ve yalnızca ile çıkmaması gerektiği konusunda net bir anlayış vermedi. OnInit() içinde başlatma. Ampirik olarak, yalnızca bu seçeneğin reddedilmesinin hemen sorunları ortaya çıkardığı durumlar buldum, ancak daha sonraları. Bu arada, basit ve bariz insan mantığı (kod mantığı değil) açısından, OnCalculate( ) içindeki ArrayInitialize() öğesinin çok kışkırtıcı göründüğünü, hiçbir zaman böyle durumlarla karşılaşmadığım gerçeği göz önüne alındığında not ediyorum.
birden fazla işe yarar - ilk başlangıçta. Yani yeni fraktallar ortaya çıkar, ancak durum sessizdir. Öyleyse OnCalculate() içinde ne yapıyor?!İnancımda daha da safım
sözde , dizilerin bu çok temizlemelerini ve ekonomik algoritmanın etkisini , yine orada bulunan, ancak biraz farklı bir biçimde olan orijinal Fractals.mq5'ten otomatik olarak devralmalıdır. Ama - tekrar tekrar borular! Kendim iki kez düşünüp, tutacağını kullandığım indikatörden kopyala-yapıştır ile kendi kodumu şişirmek zorunda kaldım. Fractals.mq5 ile yardımdaki iFractals örneğini karşılaştırırken, ikinci kodun ilkinden daha büyük olduğunu (hatta maksimum azalma). bilmiyorum. Bana şapka çıkartın, ancak genel olarak, programcılar kodlarına bir şeyi tüm kitaplığa atıfta bulunan bir satıra eklemek için bir şeye güveniyorlar, bir sınıf mı yoksa hacimli başka bir şey var mı, ama burada ...
Şimdi daha önce bahsettiğim sorunun özünü ortaya koyacağım. Üst fraktallara basitleştirilmiş iFractals gösterge kodunu ekliyorum. Orijinal örnekte, arabellek tüm geçmiş için doldurulur. Durumu değiştirelim - hikayenin sadece bir kısmını kopyalayın. Kopyalanan değerlerin ilk hesaplamasındaki ödevi yorumlayalım ve değerimizi daha küçük bir değere ayarlayalım:
values_to_copy= 100 ; // то же, что amount
Şimdi zaman dilimlerine atlayalım ve ortaya çıkan fraktal eserler karşısında dehşete düşelim. Geçmişin fraktalların gerekli olmadığı kısmını temizlemek için Fractals.mq5'ten otomatik olarak devralınmayan temizleme dizileri kod bloğunu kopyalayıp yapıştırmaktan daha iyi bir şey düşünemedim: Artık her şey ( çok fazla olan!! ) mükemmel bir şekilde temizlenir ve aynı zamanda Print() yeniden başlatmanın ne zaman ve kaç kez çalışacağını gösterir, ayrıca arabelleğin boyutunu gösterir. Boyutun 100'den çok uzak olduğuna ikna olduk, ama çok daha fazlası. Masanın tozunu almam gerekirse, tüm daireyi değil masanın tozunu alıyorum. Ya da hile, ne pahasına olursa olsun beni aşırı bellek ve zaman harcamanın önemsiz olduğuna ikna etmektir, sorunu dolaylı olarak çözmenin bir yolunu bulabilir ve ellerime bağlı olmayan kaynakların bariz bir şekilde yutulmasına dikkat etmeyebilir miyim?Bir fi, bazı boyutların ayarlanması gerekecek .. Aynı sınırlarla düz yapmak varken neden diğer sınırlarla kavisli bir döngü yapsın?)
Döngünün boyutunu ayarlamak ve dizinin boyutuna göre dans etmemek Ortodoks'tur .. aksi takdirde gösterge koltuk değneklerine dayanacaktır.
Dürüst olmak gerekirse, yüklemek istemedim, ancak sempatizanların tüm kodu kazma yolunu izleyeceğini önceden biliyordum. Vasily Ivanovich geri döndüğünde bir kürek istediğinde - kırıldığı ortaya çıktı - atı gömdüler - Chapai yokken beyazlar köye saldırdı. Büyük olasılıkla başka birinin kodunun zillerini ve ıslıklarını araştırmak isteyen hiç kimsenin olmayacağını fark ederek, yalnızca, daha fazla yükleme yapmadan, sonunda ortaya çıkacak olan göstergenin sonucuna başvurabilirim (frenleri saymaz ve diğer eksiklikler): https://www.mql5.com /en/forum/1111/page577#comment_119227 . Şimdi düşün ve söyle bana, orada her şeyin basit olduğuna ve görünüşte bariz çözümler sunduğuna inanmaya değer mi?
Herhangi bir belirli parça hakkında herhangi bir şey sormadan önce kodu basitleştirip sınırlandırmam boşuna değil. Bu nedenle, kendinizi sadece bununla sınırlamanızı ve amatör olmadıkça tüm atın mezarını açmamanızı rica ediyorum ...
Genel olarak, dördüncü - özel - tampon, prensipte, ilk üçten daha uzundur (uzunluk olarak birbirine eşittir) ve SetIndexBuffer() nedeniyle, genel olarak tüm tarih boyunca gerilir! Döngünün sınırları dördüncü arabelleğe uzatılırsa ve aynı zamanda ilk üç dizi buna göre yeniden boyutlandırılırsa, en azından döngüdeki öğelerin sayısı artacaktır, bu da tamamen soldaki tarama için tahmini süreyi artıracaktır. tampon elemanlarının segmenti. Bu, algoritmanın bu versiyonuyla ortaya çıkacak problemlerle buzdağının sadece görünen kısmı. Artı, her şeye ek olarak, boyutları büyüdüğü için diğer arabelleklerin yeniden başlatma süresi artacaktır. Dördüncü özel dizi, başka bir yerde EMPTY_VALUE ile açıkça doldurulamaz, çünkü gösterge, ilk üç tampon ile dördüncü tampon arasında indeksler arasında herhangi bir yazışma olmadığı belirli bir algoritmaya göre diğer zaman çerçevelerinden fraktalların en şiddetli yeniden düzenlenmesine maruz kalır. ...
//ve EMPTY_VALUE değerleri 0 ve 1 dizi elemanlarına, mm.. ve son üç çubukta atanır)
Nasıl yani? Neden her şey değil? İşte bunu anlamadım. Açıklamak? Genel olarak, bu sadece gerçek (etkili) değerlerin atanmasıyla ilgili değil, tüm tamponun kaçınılmaz olarak taranmasıyla ilgilidir. ArrayInitialize() , diğer birçok dizi işlevi gibi, son MQL programcıları için örtük olan bir döngüye dayanır.
Bellek taşması sorunu geçerliliğini koruyor ve geliştiricilere , arabellek yeniden başlatmanın miktarını ve hatta daha da iyisi sınırlarını belirleyen ArrayInitialize() işlevine ek bir parametre eklemeyi düşünmeleri için bir istek .
Not: OnInit( ) içindeki ArrayInitialize() öğesinin burada neden verimli olmadığını tahmin ediyor gibiyim. Tamponlar dinamiktir, boyut değiştirirler ve OnInit() içinde yalnızca bir kez ve geçerli uzunluk için değerlerle başlatılırlar, OnCalculate() içindeki gerçek tampon boyutlarının henüz farkında değildirler.
Görselleştiricideki gösterge çalışmıyor:
Çevrimiçi terminalde iyi çalışıyor:
EA koduna aşağıdaki satırları ekliyorum
Bu üç göstergeyi temiz bir tabloya asıyorum ve şablonu bir uzman adı altında kaydediyorum. Bir önceki mesajımda internette resim var.
Uzmanı görselleştiricide başlatıyorum.
1. Kayıtlı şablonu göster
2. Görselleştirmeyi şablon olmadan çalıştırmayı deneyin (yani, önce ilgili tpl dosyasını silin). En son 555 derlemesinde, otomatik olarak eklenen özel göstergeler doğru şekilde görüntülenmelidir.
Her şey çalışıyor. Teşekkür ederim.
Şablon silindi. OnInit() içindeki Expert Advisor'da şunu yazdım:
*.tpl dosyası gönderme
Şimdi şablonla tekrar denedim - çalışmıyor. Şablonu siliyorum - işe yarıyor.
x100intraday :
Şimdi düşün ve söyle bana, orada her şeyin basit olduğuna ve görünüşte bariz çözümler sunduğuna inanmaya değer mi?
fse dahice - basit.
Gerisi işe yaramadı. Forumdaki soruyla ilgili anekdot bademciklerin nasıl çıkarılacağını hatırlatıyor :)
Ortodoks gösterge fraktallarının sınırlı bir örneği. belki yardımcı olur..
fse dahice - basit.
Gerisi işe yaramadı. Forumdaki soruyla ilgili anekdot bademciklerin nasıl çıkarılacağını hatırlatıyor :)
Ortodoks gösterge fraktallarının sınırlı bir örneği. belki yardımcı olur..
Sonraki kod:
Sorunlar:
2011.12.05 22:01:28 RectLabel (EURUSD,H1) konum = {12, 176314750}
2011.12.05 22:01:28 RectLabel (EURUSD,H1) diğer = {123, 456}
Yani, başlatma listesi çalışmadı, yapıda çöp var. Bu bir hata mı, değil mi?
İki aracının bulutla bağlantısı kesildi, ancak yine de her 30 saniyede bir bulut sunucularına bağlanıyorlar.
MO 0 Ağı 00:00:17 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0)
LK 0 Ağı 00:00:47 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
RG 0 Ağı 00:01:17 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0)
NS 0 Ağı 00:01:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
RO 0 Ağı 00:02:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0)
OK 0 Ağ 00:02:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0)
MG 0 Ağı 00:03:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
DR 0 Ağı 00:03:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
DN 0 Ağı 00:04:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
EJ 0 Ağı 00:04:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
GF 0 Ağı 00:05:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
RR 0 Ağı 00:05:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
NN 0 Ağ 00:06:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
KJ 0 Ağı 00:06:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
QF 0 Ağı 00:07:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
HQ 0 Ağı 00:07:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
PM 0 Ağ 00:08:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0)
QI 0 Ağı 00:08:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
KE 0 Ağı 00:09:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
NQ 0 Ağı 00:09:51 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
OM 0 Ağı 00:10:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
RI 0 Ağı 00:10:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
LE 0 Ağı 00:11:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
EP 0 Ağı 00:11:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
IL 0 Ağı 00:12:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0. aracılığıyla)
HH 0 Ağ 00:12:48 2.agents.mql5.com'a bağlı (bir proxy sunucusu 192.168.0)
FD 0 Ağı 00:13:18 2.agents.mql5.com'a bağlı (bir proxy sunucusu aracılığıyla
İki aracının bulutla bağlantısı kesildi, ancak yine de her 30 saniyede bir bulut sunucularına bağlanıyorlar.
Gelelim servis masasına.
Nasıl kapatıldığını açıklar mısınız? Kaldırılan (durdurulan) hizmetler? Sorunlu aracıların günlüklerini ekleyin.
Günlüklerde bazı garip proxy ayarları . Aracı yapılandırmalarında proxy ayarlarını yaptınız mı? Lütfen temsilci yöneticinizin common.ini dosyasını uygulamaya ekleyin.