MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1740
![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
insanlara kötü şeyler öğretme.
verilerinizi hatırlamanız ve üzerinde çalışmanız gerekir
Maxim, bu durumda hiçbir yerde hiçbir şey hatırlamana gerek yok. Sadece son kapatılan pozisyona bakmak çok daha güvenilirdir.
Acil bir durumdan sonra daha sonra kurtarılmaları ile verileri depolamak için orada hiçbir şey icat etmeye gerek yoktur. Terminal kapatılırsa konum verileri kaybolur. Buna göre, onları ezberlerken, hızlı ve etkili bir şekilde iyileşme olasılığını derhal dikkate almalısınız.
(Yorumdaki sırayı hatırlamak - Bunun güvenilir bir karar olduğunu söyleyemem - komisyoncu / DC'nin iradesine güvenmek anlamına gelir)
Ve en ilginç olanı, her durumda, bu verileri bir yerden okuyacaktır. Yani onları orijinal kaynaktan hemen okumak daha kolay değil mi?
derleyiciyi MT5 için değil MT4 için derlemeye nasıl zorlayabilirim?
Maxim, bu durumda hiçbir yerde hiçbir şey hatırlamana gerek yok. Sadece son kapatılan pozisyona bakmak çok daha güvenilirdir.
Acil bir durumdan sonra daha sonra kurtarılmaları ile verileri depolamak için orada hiçbir şey icat etmeye gerek yoktur. Terminal kapatılırsa konum verileri kaybolur. Buna göre, onları ezberlerken, hızlı ve etkili bir şekilde iyileşme olasılığını derhal dikkate almalısınız.
(Yorumdaki sırayı hatırlamak - Bunun güvenilir bir karar olduğunu söyleyemem - komisyoncu / DC'nin iradesine güvenmek anlamına gelir)
Ve en ilginç olanı, her durumda, bu verileri bir yerden okuyacaktır. Yani onları hemen kaynağından okumak daha kolay değil mi?
ve ardından "OnTimer neden birkaç saniyeye sığmıyor veya OnTick çılgınca özlüyor" konularını takip edin :-)
Başlatma sırasında durumu 1 kez geri yükleyin (bir dosyadan okuyarak veya geçmişi/ortamı görüntüleyerek) ve bu kadar... Son sıra, özellikleriyle birlikte bir değişkende saklanır ve her zaman bilinir
ve ardından "OnTimer neden birkaç saniye içinde sığmıyor veya OnTick çılgınca özlüyor" konularını takip edin :-)
Başlatma sırasında durumu 1 kez geri yükleyin (bir dosyadan okuyarak veya geçmişi/ortamı görüntüleyerek) ve hepsi bu... Son sıra, özellikleriyle birlikte bir değişkende saklanır ve her zaman bilinir
Son pozisyonun nasıl kapatıldığını öğrenmek için onu bulmanız gerekir. Sonuçta, açıkken nasıl kapatıldığını kaydetmenin ve hatırlamanın bir yolu yok - hala açık.
Son açık pozisyonun biletini saklayabilir ve nasıl kapandığını belirlemek için kullanabilirsiniz, ancak ... açıkken pozisyonu manipüle ederken bileti değişebilir. Buna göre, değiştirilen biletin yeniden yazılması için işlevsellik yapılması gerekir. Bütün bunlar kodu karmaşıklaştırıyor.
Ben sadece son kapatılan pozisyonu aramayı önerdim. Ve bu, danışmanı yeniden başlatırken tüm pozisyonların sayımını ve yenisini kapatırken sadece bir pozisyonun verilerini okurken birleştirir.
Sonuçta, umarım herkes bunun için tüm tarihsel konumlar arasında bir döngü yapmanın gerekli olmadığını, sadece sonuncusu üzerinden bir döngü yapmanın gerekli olduğunu anlar. Yani, yalnızca bir döngü indeksi değişkenini hatırlıyoruz - mevcut değeri ve sıfırdan değil, bu değişkenin değerinden yeni bir döngü başlatıyoruz (geçmiş siparişlerin sayısı arttığında). Ve bu değişkenin değeri, Expert Advisor'ı başlatırken ve yeniden başlatırken ve yeni bir pozisyonu kapatırken OnInit()'e girilir. Yani, bu şekilde konum verilerini yazma ve okuma ihtiyacını ortadan kaldırır ve sürücü ile çalışırız.
Bu yaklaşımın en faydalısı olduğunu düşünüyorum, çünkü
1. Yalnızca döngü indeksinin değerini hatırlamanız gerekir
2. Endeksine göre kapalı bir siparişe doğrudan erişerek verileri yalnızca doğru anda alın.
3. Veri okuma/yazma işlevselliğini korumaya gerek yok
4. Hem işte hem de yazmada daha hızlıdır.
Ve evet, tüm verilerinizi bilmeniz gerektiğine katılıyorum - bunu kendim yapıyorum. Ancak bunları bilmek, programın ve kendinizin yararına arzu edilir.
Bilgi için teşekkürler!
Zaman varsa, nasıl düzeltileceğini cevaplamanızı rica ediyorum:
N mumların geçmişinde, iki farklı yönlendirilmiş hedef belirlenir: Kapat[N]+50*Puan ve Kapat[N]-50*Nokta.
O zaman fiyatın hedeflerden birine ulaşması şartı (if (Yüksek[i]> Kapat[N]+50*Puan) veya (if (Düşük[i]<) Kapat[N]-50*Nokta)
Koşul karşılandığında, Kapat[N] ile Yüksek[i] arasındaki mesafe x[high]=High[i] dizisine girilir.
Ardından, herhangi bir zamanda rastgele herhangi bir çizelgeye koşar.
Ve Print( x[high]) ile kontrol ederken, on değerden 1-2'si 50'den az gösteriyor! Biri 12, diğeri 49'dur. Ancak +50 * Puan kesinlikle belirtilmiştir. 8-9 doğru (50'den fazla) ve 1-2 anormal. Bu bir test cihazı aracılığıyla değil, gerçek bir grafikte bir danışman atıyorum (ticaret işlevleri olmadan), ancak yalnızca yukarıdakilerle, tarihle çalışır ve böyle yazar.
Değer ne kadar büyük olursa, bu tür hatalar o kadar az olur. Yayılmanın yolda olduğunu düşündüm, ama... MT4'te tarihte bir yayılma yok gibi görünüyor.
Karar verildi.
güncellenmiyor
teşekkürler
Son pozisyonun nasıl kapatıldığını öğrenmek için onu bulmanız gerekir. Sonuçta, açıkken nasıl kapatıldığını kaydetmenin ve hatırlamanın bir yolu yok - hala açık.
Son açık pozisyonun biletini saklayabilir ve nasıl kapandığını belirlemek için kullanabilirsiniz, ancak ... açıkken pozisyonu manipüle ederken bileti değişebilir. Buna göre, değiştirilen biletin yeniden yazılması için işlevsellik yapılması gerekir. Bütün bunlar kodu karmaşıklaştırıyor.
Ben sadece son kapatılan pozisyonu aramayı önerdim. Ve bu, danışmanı yeniden başlatırken tüm pozisyonların sayımını ve yenisini kapatırken sadece bir pozisyonun verilerini okurken birleştirir.
Sonuçta, umarım herkes bunun için tüm tarihsel konumlar arasında bir döngü yapmanın gerekli olmadığını, sadece sonuncusu üzerinden bir döngü yapmanın gerekli olduğunu anlar. Yani, yalnızca bir döngü indeksi değişkenini hatırlıyoruz - mevcut değeri ve sıfırdan değil, bu değişkenin değerinden yeni bir döngü başlatıyoruz (geçmiş siparişlerin sayısı arttığında). Ve bu değişkenin değeri, Expert Advisor'ı başlatırken ve yeniden başlatırken ve yeni bir pozisyonu kapatırken OnInit()'e girilir. Yani, bu şekilde konum verilerini yazma ve okuma ihtiyacını ortadan kaldırır ve sürücü ile çalışırız.
Bu yaklaşımın en faydalısı olduğunu düşünüyorum, çünkü
1. Yalnızca döngü indeksinin değerini hatırlamanız gerekir
2. Endeksine göre kapalı bir siparişe doğrudan erişerek verileri yalnızca doğru anda alın.
3. Veri okuma/yazma işlevselliğini korumaya gerek yok
4. Hem işte hem de yazmada daha hızlıdır.
Ve evet, tüm verilerinizi bilmeniz gerektiğine katılıyorum - bunu kendim yapıyorum. Ancak bunları bilmek, programın ve kendinizin yararına arzu edilir.
Pozisyon biletinin açıkken değiştiğini fark etmedim. Genellikle bu pozisyonu açan ilk emrin bilete eşittir.
Son kapanan - ve birden fazla danışman bir sembol üzerinde işlem yapıyorsa, artı manuel işlem?Pozisyon biletinin açıkken değiştiğini fark etmedim. Genellikle bu pozisyonu açan ilk emrin bilete eşittir.
Son kapanan - ve birden fazla danışman bir sembol üzerinde işlem yapıyorsa, artı manuel işlem?Doldurma veya kısmi kapatma ve bilet zaten farklı. Hangi biletin hangisinden kaynaklandığını belirlemek ve hatırlanan biletin üzerine yazmak gerekir. Ancak hangi platformdan bahsettiğimiz net değil - ikisi de biraz farklı, ancak yine de izlemeniz gerekiyor.
"Son kapalı, bu danışmana ait" anlamına gelir.