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
TimeCurrent () gibi özel bir durum elimize geldi.
Şimdi Bars () işleviyle ilgili bu notu daha dikkatli okudum:
"Belirli bir tarih aralığındaki çubuk sayısı istenirken sadece açılış saati bu aralıkta olan çubuklar dikkate alınır . Örneğin, haftanın geçerli günü Cumartesi ise, o zaman ile haftalık çubuk sayısı istenirken start_time=last_Tuesday ve stop_time=last_Friday, haftalık zaman dilimindeki açılış saati her zaman Pazar gününe denk geldiğinden ve haftalık tek bir çubuk belirtilen aralıkta olmadığı için işlev 0 döndürür."
TimeCurrent() zamanı, geçerli çubuğun açılış zamanından hemen hemen her zaman daha sonra olduğundan, bu nedenle, Bars() işlevi 0 döndürür. Saatlik zaman diliminde 02:05'e karşılık gelen zamanı geçersek, start_time parametresini seçin ve çubuğun bize yatırılmasını istiyorsanız, saat 2'de başladı, ardından CopyTime( ) aracılığıyla çubuğun açılış saatini (02:00:00) almanız gerekir. Aksi takdirde , Bars() işlevi bu çubuğu yok sayar.
Onlar. şimdi saat 3:30 ise, saatin saat diliminde 2:05'in indeks 1'e sahip çubuğa atıfta bulunduğunu anlıyorum. Bu indeks 2. sayfadaki hiçbir fonksiyon tarafından döndürülmeyecek. Bu değişiklikle Renat Akhtyamov işlevi beklediğimi döndürdü.
Test olarak kullandığım dizin arama işlevleri için 4 seçenekli bir komut dosyası ekliyorum.
Sunulan işlevi denedim, grafikte olmayan bir zamana sahip bir çubuk istendiğinde bir çubukla uzandığı ortaya çıktı. Onlar. günün ilk çubuğunu bilmek istiyorsak ve "03/28/2018 00:00" saatini talep ediyorsak, ancak böyle bir zamana sahip bir çubuk yoksa, bir öncekinin son çubuğunun indeksini alacağız. gün.
Yoksa bu şekilde mi amaçlandı?
Sunulan işlevi denedim, grafikte olmayan bir zamana sahip bir çubuk istendiğinde bir çubukla uzandığı ortaya çıktı. Onlar. günün ilk çubuğunu bilmek istiyorsak ve "03/28/2018 00:00" saatini talep ediyorsak, ancak böyle bir zamana sahip bir çubuk yoksa, bir öncekinin son çubuğunun indeksini alacağız. gün.
Yoksa bu şekilde mi amaçlandı?
Bir dize olarak zamanı nasıl geçirirsiniz?
Ve bir satırla denedim ve o zamandan beri daha önce yayınlanan kodda.
Ve bir satırla denedim ve o zamandan beri daha önce ortaya konan kodda.
o sahip
yani false varlığı tamamen açık değildir
ve öyle olsa bile:
?Bu koda karar vermiş olsam da, hızlı bir şekilde çalışıyor gibi görünüyor:
Bu kodda herhangi bir eksiklik bulan var mı, yoksa daha hızlı bir seçenek var mı?
Ve, şey, tek olumsuz şey, henüz grafikte olmayan bir çubuk için talepte bulunmanızdır, yani. örneğin bugünün zamanı ile .... belki bu bir şekilde çözülebilir? Bilinen son çubuğu döndürmek mantıklı olacaktır. Bu, geçerli zamanda çalışan algoritmalarla çalışmakla ilgili olabilir.
o sahip
yani false varlığı tamamen açık değildir
false - standardizasyon için hiçbir şeyi etkilemez :) Dürüst olmak gerekirse, bazı işlevlerde bu false'a neden ihtiyaç duyulduğunu bilmiyorum?
Bu koda karar vermiş olsam da, hızlı bir şekilde çalışıyor gibi görünüyor:
Bu kodda herhangi bir eksiklik tespit eden var mı, yoksa daha hızlı bir seçenek var mı?
Ve, şey, tek olumsuz şey, henüz grafikte olmayan bir çubuk için talepte bulunmanızdır, yani. örneğin bugünün zamanı ile .... belki bu bir şekilde çözülebilir? Bilinen son çubuğu döndürmek mantıklı olacaktır. Bu, geçerli zamanda çalışan algoritmalarla çalışmakla ilgili olabilir.
var olmayan bir çubuk numarasını döndürmek iyi değil
geri dönmek daha kolay -1
false - standardizasyon için hiçbir şeyi etkilemez :) Dürüst olmak gerekirse, bazı işlevlerde bu false'a neden ihtiyaç duyulduğunu bilmiyorum?
var olmayan bir çubuk numarasını döndürmek iyi değil
geri dönmek daha kolay -1
Hayır, sadece bilinen son çubuğu döndürmeniz gerekiyor, yani. indeks 0 ile ve şimdi uzun süre oraya ne döneceğini düşünüyor.
İşte bir çubuk yanlış olan kod, doğru çubuğu döndürür - sıfır.
Yoksa tarihte bir bar istendiğinde var olmadığı gerçeğinden mi bahsediyorsunuz? O zaman, çoğu zaman, zamanımıza en yakın olan çubuğu var olanlardan almanız gerektiğini düşünüyorum ve bu durumda kod, geçmişte -1 ofseti olan bir çubuk döndürür, ancak yoksa doğru çalışır. daha fazla geçmiş - hızlı bir şekilde sıfır çubuğu döndürür.
Hayır, sadece bilinen son çubuğu döndürmeniz gerekiyor, yani. indeks 0 ile ve şimdi uzun süre oraya ne döneceğini düşünüyor.
İşte bir çubuk yanlış olan kod, doğru çubuğu döndürür - sıfır.
Yoksa tarihte bir bar istendiğinde var olmadığı gerçeğinden mi bahsediyorsunuz? O zaman, çoğu zaman, zamanımıza en yakın olan çubuğu var olanlardan almanız gerektiğini düşünüyorum ve bu durumda kod, geçmişte -1 ofseti olan bir çubuk döndürür, ancak yoksa doğru çalışır. daha fazla geçmiş - hızlı bir şekilde sıfır çubuğu döndürür.
-1 eksi (belirtilecek) olan bir birimdir, fonksiyon tarafından döndürülen hata böyle bir çubuk olmadığını gösterir
bu benim işlevim
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
iBarShift'e benzer
Renat Akhtyamov , 2017.06.08 01:19
Eh, bu da mümkün
ayrıca iyileştirmeye ihtiyacı var
rağmen...
Belgeler:
" not
Bars() işlevi çağrılırken belirtilen parametrelere sahip zaman serisi verileri henüz terminalde oluşturulmadıysa veya zaman serisi verileri, işlev çağrısı sırasında ticaret sunucusuyla senkronize edilmemişse, o zaman işlev null döndürür. "
====
res==0 ise, fonksiyondan -1 yakalarız.
===
Yani her şey çalışıyor, sağlığınız için kullanın!