Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 990
![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
Soru: Bir periyot için ayarlanan tutamak neden diğer zaman dilimlerinde CopyBuffer'a değerleri aktarmıyor. Ve ne yapmalı?
Sorun, arabellek dizisi öğesinin farklı bir zaman diliminde kaydırılmasında olsaydı, sorunu çözerdim. Ve bu yüzden hiç net değil.
Soru: Bir periyot için ayarlanan tutamak neden diğer zaman dilimlerinde CopyBuffer'a değerleri aktarmıyor. Ve ne yapmalı?
Sorun, arabellek dizisi öğesinin farklı bir zaman diliminde kaydırılmasında olsaydı, sorunu çözerdim. Ve bu yüzden hiç net değil.
Tutamaç başarıyla oluşturulduysa, oluştururken ona ilettiğiniz parametrelerle oluşturulmuştur. Ve herhangi bir zaman diliminde gösterge verilerini verecektir. Bu sadece yaratırken kendisine verilen zaman dilimini vereceği veriler. Bunları çalışma zaman diliminde doğru bir şekilde görüntülemek için, gösterge tanıtıcısından alınan verileri göstergenizin üzerinde çalıştığı TF'ye dönüştürmeniz gerekir.
Bunu kontrol ettim. Ancak PROBLEM, tutamacı sabit bir periyot için ayarlayarak,
Diğer zaman dilimlerindeki CopyBuffer değeri AKTARILMAZ. Ayarlanan işleme periyodunda değer, daha küçük zaman dilimlerinde 0.0 (sıfır) idi. Tampon arayışı içinde taşındı ... sıfır. Neden CopyBuffer'a geçirilmiyor?
kopyalıyorum...
başka bir soru da neyin kopyalandığıdır :) Büyük olasılıkla kopyalamak için o TF'de olduğundan daha fazla çubuk istiyorsunuz, yazdır
Tutamaç başarıyla oluşturulduysa, oluştururken ona ilettiğiniz parametrelerle oluşturulmuştur. Ve herhangi bir zaman diliminde gösterge verilerini verecektir. Bu sadece yaratırken kendisine verilen zaman dilimini vereceği veriler. Bunları çalışma zaman diliminde doğru bir şekilde görüntülemek için, gösterge tanıtıcısından alınan verileri göstergenizin üzerinde çalıştığı TF'ye dönüştürmeniz gerekir.
Deneyi doğru yaptım mı?
sana yol tarifi verdim...
Öğrenin :
kopyalıyorum...
başka bir soru da neyin kopyalandığıdır :) Büyük olasılıkla kopyalamak için o TF'de olduğundan daha fazla çubuk istiyorsunuz, yazdır
kopeyka2 :
Верно ли я провел эксперемент.?
...
... Başka bir zaman dilimine geçilirken bile değerler D1 setinden olmalıdır. Ve bu tam olarak benim göremediğim şey. Yoksa yanlış bir şey mi var? Sapı takarken eklenmesi gereken başka bir şey var mı? Çünkü tampona aktarım yoktur.
Basitçe söylemek gerekirse, CopyByffer ile ovma deneyi, içine koyduğunuz şeydir, olması gerekir. Ama yok .
Verilerin kullanılabilirliğini kontrol etmediniz, ancak kopyalamaya çalışıyorsunuz. Yukarıdaki koda bakın - ikinci zamanlayıcıda her bir buçuk dakikada bir yerel olmayan bir zaman dilimine çağrı var - verileri sürekli güncel tutmak için. Ve kodda, önce istenen verilerin kullanılabilirliği kontrol edilir. Henüz hazır değillerse, bir sonraki onay işareti için sıfır döndürün ve göstergenin hesaplanmasını tamamlayın. Ancak, tüm veriler zaten alındığında, hesaplandığında ve görüntülendiğinde, bir sonraki onayda tam bir yeniden hesaplama yapmamak için sonunda hesaplanan veri miktarı döndürülür.
Teşekkür ederim. Her şeyi okudum. Arayacağım.
Bakılacak şey? Yukarıda tamamen çalışan kod var. Dilediğiniz gibi parçalayabilirsiniz. Hatanıza dikkat çektim - verilerin kullanılabilirliğini kontrol etmiyorsunuz.
Bu satırda bile:
int lm=IBarShift(NULL,PERIOD_D1, iTime(NULL, PERIOD_CURRENT , limit));
iTime()'ın döndürdüğü şeyin kontrolü nerede? Doğrulama yok. Ama hemen bilinmeyen bir sonucu iBarShift()'e itersiniz. İşlevlere beklediğiniz şeyi verdiğinizden emin misiniz?
Tutamaç başarıyla oluşturulduysa, oluştururken ona ilettiğiniz parametrelerle oluşturulmuştur. Ve herhangi bir zaman diliminde gösterge verilerini verecektir. Bu sadece yaratırken kendisine verilen zaman dilimini vereceği veriler. Bunları çalışma zaman diliminde doğru bir şekilde görüntülemek için, gösterge tanıtıcısından alınan verileri göstergenizin üzerinde çalıştığı TF'ye dönüştürmeniz gerekir.
Ben de tam bunu düşündüm. "Parametreler" kelimesinde bir yanlış anlama sorunu. Ve tanıtıcıya dahil olan TÜM değişkenlere bakmaya başladım --> CopyBuffer
1) En başından beri sorum, tutamaç verilerini kaydetmek için zaman çerçevesi SCREEN'in değiştirilmesiydi. MT4'te olduğu gibi.
Ve aslında şöyle çıkıyor:
HER ZAMAN ve TÜM zaman dilimlerinde aynı değeri verir 10
Burada hiçbir şey alamayınca yoluma devam ettim.
2) Alıntı yapıyorum: " Belirtilen göstergenin belirtilen arabelleğinin verilerini belirtilen miktarda, arabellek dizisine alır".
Yani, sayımı elle ayarlayarak, değerler içeren bir INTERVAL'a sahip olmalıyız. Ve onlar! ANCAK!!!!!! Yalnızca işlem süresi eşleştiğinde
monitör ekranındaki zaman çerçevesi PERIOD_H1. Tüm değerler net bir şekilde iletilir. Ancak veri ekranında başka bir zaman dilimine geçmek HAYIR.
TRANSFER YAPMAZLAR!!!! Ve sorum tam olarak şuydu. Ve eğer orada değillerse, sayılacak çubukların sayısı burada o kadar önemli değil!!!
Önerilen gösterge MTF_LRMA.mq5'e baktım Ama aynı şeye sahip. Ekranda başka bir zaman dilimine geçiyoruz ve veriler ekranın zaman dilimini takip ediyor. Ve bir handel'e ihtiyacım var.
Örneğin: iClose(NULL, PERIOD_H1, 5); tüm zaman dilimlerinde aynı değeri verecektir: H1'de 5. barda kapanış.
Şimdiye kadar, tüm örnekler CopyBuffer arabelleğinin sayısını ayarlamakla ilgiliydi. AMA dizi BOŞ