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
OnInit'te olanı OnCalculate'de neden tekrarlıyorsunuz? Bu bir tür büyü mü?
Bu basit bir kopyala/yapıştır sihridir))
Tamam, popüler olarak açıklayacağım. Verilerin hazır olup olmadığının İnternet'te tek bir kontrolü yeterli değildir. Veriler asenkron olarak üretildiğinden (ana işlemi yavaşlatmamak için), o zaman İnternette kontrol sırasında bir veri hatası almak oldukça mümkündür (birçok faktöre bağlıdır).
Bu nedenle, kontrol yapılmalı ve (veya sadece) hesap makinesinde yapılmalı ve gerekli tüm veriler görünene kadar ana hesaplamalara başlamamalıdır - yani, her işarette hazır olana kadar kontrol edin.
Bu basit bir kopyala/yapıştır büyüsüdür))
Tamam, popüler olarak açıklayacağım. Verilerin hazır olup olmadığının İnternet'te tek bir kontrolü yeterli değildir. Veriler asenkron olarak üretildiğinden (ana işlemi yavaşlatmamak için), o zaman İnternette kontrol sırasında bir veri hatası almak oldukça mümkündür (birçok faktöre bağlıdır).
Bu nedenle, kontrol yapılmalı ve ( veya sadece ) hesap makinesinde yapılmalı ve gerekli tüm veriler görünene kadar ana hesaplamalara başlamamalıdır - yani, her işarette hazır olana kadar kontrol edin.
Ne hakkında konuşuyoruz, göstergedeki OnInit işlevi bir pervane veya geliştiriciler hackliyor.
Kopyala / yapıştır harika bir şey, kendimi günah işliyorum))
Çukçi diye bağırdılar ama sorun çözülmedi!
İndirme geçmişini henüz yazmadım, AMA veriler terminalde ve ilk seferinde ondan ALMIYORLAR!
Tamam, ilginç!
Göstergeler kendi işlerinde, Uzman Danışmanlar kendi işlerinde çalışır. Tabii tek çekirdekli bir taş değilse.
Her şey tam olarak belgelerde yazıldığı gibi olur. :)
Doğrulama için bir gösterge ve bir EA + videodaki sonucu çizdim.
1) İlk olarak, OnTick içinde 20 saniye çalışan bir işlevi olan bir Uzman Danışmanı çizelgeye atıyorum.
Sonuç - sohbet çalışmaya ve her şeyi olması gerektiği gibi görüntülemeye devam eder. Cam da olması gerektiği gibi çalışıyor.
2) Ardından, OnCalculate içinde 20 saniye boyunca çalışan bir işlevi olan bir göstergeyi çizelgeye atıyoruz.
Sonuç - sohbet kilitleniyor. Ayrıca farklı bir periyodun ayarlandığı aynı sembole sahip komşu sohbet de donuyor. Cam olması gerektiği gibi çalışmaya devam ediyor. İşlev çalıştıktan sonra her şey normale döner.
3) Bu videoda yok - ancak bir sohbete (60 saniye ayarlayın) ve başka bir uzmana bir gösterge koyarsanız, uzman diğer sohbetteki gösterge kapanana kadar çalışmaya başlamaz!!!
Videoyu ayrı olarak ekledim - tarayıcımda yavaşlıyor.
Her şey tam olarak belgelerde yazıldığı gibi olur. :)
Doğrulama için bir gösterge ve bir uzman + videodaki sonucu çizdim.
1) İlk olarak, OnTick içinde 20 saniye çalışan bir işlevi olan bir Uzman Danışmanı çizelgeye atıyorum.
Sonuç - sohbet çalışmaya ve her şeyi olması gerektiği gibi görüntülemeye devam eder. Cam da olması gerektiği gibi çalışıyor.
2) Ardından, OnCalculate içinde 20 saniye boyunca çalışan bir işlevi olan bir göstergeyi çizelgeye atıyoruz.
Sonuç - sohbet kilitleniyor. Ayrıca farklı bir periyodun ayarlandığı aynı sembole sahip komşu sohbet de donuyor. Cam olması gerektiği gibi çalışmaya devam ediyor. İşlev çalıştıktan sonra her şey normale döner.
3) Bu videoda yok - ama bir sohbete (60 saniye koyun) ve başka bir uzmana bir gösterge koyarsanız - uzman, diğer sohbetteki gösterge kapanana kadar çalışmaya başlamaz!!!
Videoyu ayrı olarak ekledim - tarayıcımda yavaşlıyor.
Teşekkürler, videoyu izleyemiyorum, çalışacağım.
Bir göstergeden çalışırken ticaret ortamından veri almaya çalışıyorsanız, OnInit()'te istek ayarlamaya bile çalışmayın. Sorgular yapın ve yanıtı OnCalculate() içinde kontrol edin. Başka birinin cihazından veya başka bir zaman diliminden veri alırken, ilk seferde OnCalculate() içinde bile veri alamayacağınız pratik olarak garanti edilir. Bu nedenle, dönüş değerlerini kontrol edin. Değerler alınmazsa, OnCalculate() içindeki bir sonraki tikteki verileri almaya çalışın.
Servis masası yanıtı da ilginçtir - sağlanan kod.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
FORTS Lütfen yardım edin
alexvd , 2015.03.26 15:48
Servis masasında size kaynak verildi. Son kodunuzu Test() işlevine koymayı deneyin.Zaten bir spor ilgisi - yazar kendi kodunu yazmaya devam ediyor ve hizmet masası kodunu görmezden mi geliyor?
Bir göstergeden çalışırken ticaret ortamından veri almaya çalışıyorsanız, OnInit()'te sorguları ayarlamaya bile çalışmayın. Sorgular yapın ve yanıtı OnCalculate() içinde kontrol edin. Başka birinin cihazından veya başka bir zaman diliminden veri alırken, ilk seferde OnCalculate() içinde bile veri alamayacağınız pratik olarak garanti edilir. Bu nedenle, dönüş değerlerini kontrol edin. Değerler alınmazsa, OnCalculate() içindeki bir sonraki tikteki verileri almaya çalışın.
+++ ve benzeri zafere kadar. Yani veri yoksa - dönüş;
Ne sorduğuna bağlı. Ve kaç tane istekte bulunulacağı - zaten tamamen kod yazarının tercihlerine bağlı.
Bunu anlıyor musun
terminalde veri varsa, o zaman fonksiyon
YANLIŞ döndürmeli değil mi?
P/S SD kodu İLK KEZ ÇALIŞMIYOR!
YENİDEN.
yardımdan:
SeriBilgiTamsayı
Geçmiş verilerin durumu hakkında bilgi verir. İşlev için 2 seçenek vardır.
İkinci seçenek:
SERIES_TERMINAL_FIRSTDATE
Dönemden bağımsız olarak, istemci terminalinde sembolle tarihteki ilk tarih
tarih saat
TERMİNALDE VERİ VARSA FONKSİYON YANLIŞ DÖNMEMELİDİR!!!
Onu nerede aramazsın!