![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
İhtiyacınız olanı kendinize bir kez büyük bir derinliğe indirmek ve ardından mikrosaniyeler içinde yakındaki önbellekten yalnızca yenisini indirmek en uygunudur.
Diskte bir arıza ile her derin istekte bulunursanız, elbette suçlanacaksınız.
Eylül ayının ilk haftası için kene geçmişini almanın en uygun yolunun kodunu gösterebilir misiniz?
Kendin yaz, bu zor bir iş değil.
Kesin tarihler için yerel dizide sorgulayın ve saklayın. Önbellek dışında çalışırken optimallik yoktur. Optimizasyon, yalnızca önbellekten son 4096 tıklamayı sürdürürken anlamlıdır.
Kendin yaz, bu zor bir iş değil.
Kesin tarihler için yerel dizide sorgulayın ve saklayın.
Bu nedenle, gerekli aralıkta kaç kene olduğunu önceden bilmek imkansızdır. Sayı parametresi tanımlı değil. Sorunun olduğu yer burası.
Sayım = trilyon ayarlanarak Eylül başından itibaren TÜM geçmişi indirmek elbette mümkündür. Ardından ikili arama ile dizideki bitiş tarihini bulun ve kesin.
Ama bu trilyon hiç de teknik bir yaklaşım değil. from, to ile bir işlev aşırı yüklemesine ihtiyacınız var. Veya dizine göre veritabanına erişim.
Optimizasyon, yalnızca önbellekten son 4096 tıklamayı sürdürürken anlamlıdır.
Yardımdan:
Düzenleme hızı: terminal, hızlı erişim için önbellekteki her sembol için son 4096 onay işaretini saklar (çalışan camlı semboller için - 65536 işaret)
Bir sonraki derlemede CopyTicks için iyileştirmeler hazırlayacağız:
Bir sonraki derlemede CopyTicks için iyileştirmeler hazırlayacağız:
Teşekkür ederim!
& to'dan tamamen indirilmiş bir geçmiş, muhtemelen boş bir GetLastError ile gösterilecektir.
Lütfen şimdi (ve belirttiğiniz iyileştirmelerin tanıtılmasıyla) o zamandan önce olan bir onay işareti almanın son derece zor olduğunu unutmayın. Bu nedenle, sayımı da negatif yapmayı öneriyorum - yalnızca geleceğe (sağda) değil, aynı zamanda geçmişe de (== 0'dan olduğu gibi) işaretler isteyin.
O zaman önceki geçmişi sorgulamak her zaman uygun ve optimal olacaktır (uygulamanız).
Teşekkür ederim!
Görünüşe göre, tamamen indirilen geçmiş hakkında, sıfır GetLastError konuşacak.
Lütfen şimdi (ve belirttiğiniz iyileştirmelerin tanıtılmasıyla) o zamandan önce olan bir onay işareti almanın son derece zor olduğunu unutmayın. Bu nedenle, sayımı da negatif yapmayı öneriyorum - yalnızca geleceğe (sağda) değil, aynı zamanda geçmişe de (== 0'dan olduğu gibi) işaretler isteyin.
O zaman önceki geçmişi sorgulamak her zaman uygun ve optimal olacaktır (uygulamanız).
CopyTicks() aşırı yüklemelerini diğer Copy...() işlevleriyle aynı şekilde hemen yapmak daha iyidir.
O zaman varsayılan sayımı ve itibaren terk etmeniz gerekir.
Niye ya? CopyBuffer'ı örnek olarak kullanarak , şimdi şuna sahibiz:
int gösterge_belirteç , // gösterge tutamacı
int buffer_num , // gösterge arabellek numarası
tarih saat start_time , // hangi tarihten itibaren
int say , // ne kadar kopyalanacak
çift tampon[] // verilerin kopyalanacağı dizi
);
Count ve from (start_time) vardır.
Bunu eklemenizi önerirsiniz:
int gösterge_belirteç , // gösterge tutamacı
int buffer_num , // gösterge arabellek numarası
tarih saat start_time , // hangi tarihten itibaren
tarih saat stop_time , // hangi tarih
çift tampon[] // verilerin kopyalanacağı dizi
);
Böylece her iki yönde de kopyalayabilirsiniz, değil mi? Yalnızca tarih saat yerine - ulong (mikrosaniye cinsinden).
Gelecekte, başka amaçlar için böyle bir aşırı yük eklemek kalacaktır:
int CopyBuffer (
int gösterge_belirteç , // gösterge tutamacı
int buffer_num , // gösterge arabellek numarası
int start_pos , // nereden başlamalı
int say , // ne kadar kopyalanacak
çift tampon[] // verilerin kopyalanacağı dizi
);
Ve bu kadar.
O zaman varsayılan sayımı ve itibaren terk etmeniz gerekir.
İlk başta dikkatsizce okudum ... evet, zorunda kalacağım. Ne olmuş? Geliştiriciler önbelleği genişletirse, yalnızca yeterince büyük bir onay geçmişi yüklenirken daha yavaş olacaktır ve bunun genellikle yapılması gerekmez. Ve gerçek zamanlı yüklemeyi hiçbir şekilde etkilemeyecektir (önbellekten alınacaktır).
Varsayılan ayarları kaydetmeye çalışmaktansa, tarihten bugüne yükleme yapmanın çok daha önemli olduğunu düşünüyorum.