MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1284
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
https://www.mql5.com/ru/docs/dateandtime/timecurrent adresini kullanın
ikinci işlev çağrısı
genel olarak https://www.mql5.com/ru/docs/dateandtime/timetostructDeğerli bilgiler için çok teşekkürler.
Bir yapının ne olduğunu ve nasıl çalıştığını genel olarak anladım. Ama henüz tüm incelikleri tam olarak anlayamadım.
ile ilişkili. Görsel örnekler aracılığıyla yeni materyalleri çok daha iyi öğreniyorum.
Aşağıdaki koşulun kodunu mql5'te nasıl yazacağınızı gösterirseniz çok minnettar olurum.
Bir yapı kullanarak bir siparişin nasıl açılacağını zaten öğrendim
if(Saat()==10)
sipariş aç.
Örnek bir sipariş açılışı yazmanıza gerek yok.... koşulunu yazmanız yeterli.
Yardımın için tekrar teşekkürler.
muhtemelen barın fiyatını ve zamanını şu şekilde belirlemek istersiniz:
daha ziyade, bunlar grafikteki zaman + fiyat değerlerinde fare tıklamasının koordinatlarıdır, çubuk iBarShift() kullanılarak belirlenmelidir.Evet, bu, daha da açık olduğu gibi. Teşekkür ederim)
Değerli bilgiler için çok teşekkürler.
Bir yapının ne olduğunu ve nasıl çalıştığını genel olarak anladım. Ama henüz tüm detayları tam olarak kavrayamadım.
ile ilişkili. Görsel örnekler aracılığıyla yeni materyalleri çok daha iyi öğreniyorum.
Aşağıdaki koşulun kodunu mql5'te nasıl yazacağınızı gösterirseniz çok minnettar olurum.
Bir yapı kullanarak bir siparişin nasıl açılacağını zaten öğrendim
if(Saat()==10)
sipariş aç.
Örnek bir sipariş açılışı yazmanıza gerek yok.... koşulunu yazmanız yeterli.
Yardımın için tekrar teşekkürler.
Yardımın için çok teşekkürler. Şimdi her şey açık ve anlaşılır.
Hepinize iyi günler!
mql4'ten mql5'e geçmeye çalışıyorum. Siparişleri açan basit bir kodu test etmek için oluşturuldu. Uzman Danışman sipariş test cihazı açılır. Print() fonksiyonunu void OnTick() fonksiyonunun başına yerleştirdim.Dörtlüde, EA bu fonksiyonu her tikte girecek ve Journal'daki her tikte yazdıracaktı. Ve beşte - hiçbir işarette Expert Advisor Print() işlevine girer ve Journal'a hiçbir şey yazdırmaz. Expert Advisor'da görselleştirme ve optimizasyon devre dışı bırakılır.
Lütfen kodu nasıl değiştireceğimi söyleyin, böylece Print() her tikte, dördünde olduğu gibi günlükte yazdırılır.
Bana yardımcı olan herkese şimdiden teşekkürler.
İşte kodum
Expert Advisor'daki depozitoyu 100.000'e çıkardı.Sonuç olarak, Print() her tikte log'a yazdırılmaya başlandı... Ama tek bir anlaşma açılmadı.
Ve her iki anlaşmanın da açılmasına ve Print()'in görüntülenmesine ihtiyacım var.
Hepinize iyi günler!
mql4'ten mql5'e geçmeye çalışıyorum. Siparişleri açan basit bir kodu test etmek için oluşturuldu. Uzman Danışman sipariş test cihazı açılır. Print() fonksiyonunu void OnTick() fonksiyonunun başına yerleştirdim.Dörtlüde, EA bu fonksiyonu her tikte girecek ve Journal'daki her tikte yazdıracaktı. Ve beşte - hiçbir işarette Expert Advisor Print() işlevine girer ve Journal'a hiçbir şey yazdırmaz. Expert Advisor'da görselleştirme ve optimizasyon devre dışı bırakılır.
Lütfen kodu nasıl değiştireceğimi söyleyin, böylece Print() her tikte, dördünde olduğu gibi günlükte yazdırılır.
Bana yardımcı olan herkese şimdiden teşekkürler.
İşte kodum
Expert Advisor'daki depozitoyu 100.000'e çıkardı.Sonuç olarak, Print() her tikte log'a yazdırılmaya başlandı... Ama tek bir anlaşma açılmadı.
Ve her iki anlaşmanın da açılmasına ve Print()'in görüntülenmesine ihtiyacım var.
Neyin yazdırıldığını görmek için günlüklere bakın, her adımda oraya bilgi girilir. Büyük olasılıkla siparişlerin açılmasıyla ilgili bir sorun var ve danışman çalışmıyor.
C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E\MQL5\Logs
MQL4'ten terminal verilerine birçok kez erişmeye değer olup olmadığını, ardından OrderSelect hakkında sizinle zaten tartışmıştık https://www.mql5.com/ru/forum/342989#comment_16743716
güncel fiyatları da test edebilirsiniz, bence tek tıkta 100500 kez kullanılabilir, çünkü saniyede milyonlarca kez performans olacak
tek şey, evet - piyasaya genel bakış penceresinde ne kadar fazla sembol varsa, terminalin kendisi o kadar fazla yüklenecek ve buna göre, birçok farklı sembolden veri çağırırsanız, gecikmeler de olacaktır.
onlar. terminali akıllıca kullanırsanız, hiçbir şey askıda kalmaz - pazara genel bakış penceresinde sizin kullandığınız on karakter vardır
Aynı anda kaç grafiğin açılabileceğini kontrol etmedim, ancak geçmiş 1000 çubukla sınırlıysa, büyük olasılıkla terminal birkaç düzine grafik penceresini sorunsuz bir şekilde çekecektir.
100
Neyin yazdırıldığını görmek için günlüklere bakın, her adımda oraya bilgi girilir. Büyük olasılıkla siparişlerin açılmasıyla ilgili bir sorun var ve danışman çalışmıyor.
C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E\MQL5\Logs
Bahşiş için teşekkürler.
Gerçekten çalışmıyor. yazar.
2020.10.27 06:40:45.311 test cihazı EURUSD: geçmiş verileri 2018.01.02 00:00'dan başlar
2020.10.27 06:40:45.312 çekirdek 1 127.0.0.1:3000'e bağlanıyor
2020.10.27 06:40:45.312 çekirdek 1 bağlı
2020.10.27 06:40:45.320 çekirdek 1 yetkili (aracı derleme 2650)
2020.10.27 06:40:45.323 test cihazı EURUSD,M1 (Alpari-MT5-Demo): 2020.09.01 00:00'dan 2020.09.03 00:00'a kadar Experts\GRAIL.ex5 testi
2020.10.27 06:40:45.327 çekirdek 1 ortak senkronizasyon tamamlandı
2020.10.27 06:40:45.328 test cihazı analiz edilen geçmişin kalitesi %100
2020.10.27 06:40:45.348 çekirdek 1 Experts\GRAIL.ex5'i EURUSD üzerinde test edin,M1 iş parçacığı tamamlandı
2020.10.27 06:40:45.348 çekirdek 1 kapatmaya hazırlanın
2020.10.27 06:40:45.348 çekirdek 1 giriş (2650 oluştur)
2020.10.27 06:40:45.348 çekirdek 1 USD para birimi ile hesap bilgisi bulundu
2020.10.27 06:40:45.348 çekirdek 1 1482 bayt test cihazı parametresi yüklendi
2020.10.27 06:40:45.348 çekirdek 1 1724 bayt giriş parametresi yüklendi
2020.10.27 06:40:45.348 çekirdek 1 pip cinsinden kârı hesaplayın, ilk depozito 10000, kaldıraç 1:100
2020.10.27 06:40:45.348 çekirdek 1 başarıyla başlatıldı
2020.10.27 06:40:45.348 çekirdek 1 731 bayt toplam başlatma verisi alındı
2020.10.27 06:40:45.348 çekirdek 1 Intel Core i5-6400 @ 2.70GHz, 7883 MB
2020.10.27 06:40:45.348 çekirdek 1 EURUSD: senkronize edilecek sembol
2020.10.27 06:40:45.348 çekirdek 1 EURUSD: sembol zaten senkronize edildi, 18 bayt alındı
2020.10.27 06:40:45.348 çekirdek 1 EURUSD,M1: geçmiş 2019.01.02 06:00'dan önbelleğe alındı
2020.10.27 06:40:45.348 çekirdek 1 EURUSD,M1 (Alpari-MT5-Demo): üreten her kene
2020.10.27 06:40:45.348 çekirdek 1 EURUSD,M1: Experts\GRAIL.ex5'in 2020.09.01 00:00'dan 2020.09.03 00:00'a kadar testi şu girdilerle başladı:
2020.10.27 06:40:45.348 çekirdek 1 StopLoss=30
2020.10.27 06:40:45.348 çekirdek 1 Kâr Al=100
2020.10.27 06:40:45.348 çekirdek 1 parti = 0.1
2020.10.27 06:40:45.348 çekirdek 1 nihai bakiye 10000.00 pip
2020.10.27 06:40:45.348 çekirdek 1 EURUSD,M1: 111967 keneler, 2880 bar üretildi. Test 0:00:000.019'da geçti.
2020.10.27 06:40:45.348 Core 1 270 Mb bellek, 35 Mb geçmiş verisi, 64 Mb tick verisi dahil
2020.10.27 06:40:45.348 çekirdek 1 günlük dosyası "C:\Users\a1960\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\20201027.log" yazıldı
2020.10.27 06:40:45.371 çekirdek 1 bağlantı kapandı
Bir günlük bir süre boyunca test ediyorum. Yani, danışman 1440 sipariş açmalıdır. Belki de sorun budur. Belki aynı anda açık olan emirlerin sayısında bazı kısıtlamalar vardır.
Ne de olsa, danışmanın depozitosu 10.000 iken, sadece 300 sipariş açtı ve geri kalanını parayla ilgili bir nedenle (yevmiye kayıtlarından anladığım kadarıyla) kaçırdı. Sonra Danışmanın depozitosunu 100.000'e çıkardım ve artık kaçırma hakkı yoktu. Ve siparişleri açmayı tamamen bıraktı.
Ama sonra tekrar Danışmanın depozitosunu 10.000'e düşürdüm ama Danışman buna rağmen hiçbir şey açmıyor ve her zaman yukarıda belirttiklerimi yazıyor.
Başka bir danışman oluşturdu. Aynı kodu ona yükledim. 10.000 depozito Her şey aynı - emir açmıyor.
Lütfen bana Danışmanın normal çalışmasını nasıl sağlayacağımı söyleyin. Aynısını yazıyor sadece vurguladığım sarı çizgide 270 mb yerine 271 değer
Windows 10'um var. 64 bit işletim sistemi 8 GB RAM.
Teşekkür ederim.
Bahşiş için teşekkürler.
Gerçekten çalışmıyor. yazar.
2020.10.27 06:40:45.348 çekirdek 1 EURUSD,M1: 111967 keneler, 2880 çubuk üretildi. Test 0:00:000.019'da geçti.
2020.10.27 06:40:45.348 Core 1 270 Mb bellek, 35 Mb geçmiş verisi, 64 Mb tick verisi dahil
2020.10.27 06:40:45.348 çekirdek 1 günlük dosyası "C:\Users\a1960\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\20201027.log" yazıldı
2020.10.27 06:40:45.371 çekirdek 1 bağlantı kapandı
Bir günlük bir süre boyunca test ediyorum. Yani, danışman 1440 sipariş açmalıdır. Belki de sorun budur. Belki aynı anda açık olan emirlerin sayısında bazı kısıtlamalar vardır.
Ne de olsa, danışmanın depozitosu 10.000 iken, sadece 300 sipariş açtı ve geri kalanını parayla ilgili bir nedenle (yevmiye kayıtlarından anladığım kadarıyla) kaçırdı. Sonra Danışmanın depozitosunu 100.000'e çıkardım ve artık kaçırma hakkı yoktu. Ve siparişleri açmayı tamamen bıraktı.
Lütfen bana Danışmanın normal çalışmasını nasıl sağlayacağımı söyleyin.
Teşekkür ederim.
Günde 1440 sipariş varsa, bir dakikanın başlangıcı için veya daha basit bir şekilde bir dakika çubuğunun görünümü için bir kontrol olmalıdır. Ve şu anda açık. Sizde yok, bu nedenle danışman, mevcut teklifteki sembolümüzdeki koşula göre, kendi başına zor bir koşul olan her onay işareti için bir pozisyon açar. Bu koşul karşılanabilir veya karşılanmayabilir ve keneler atlanır. Ve bir noktada kritik bir hata oluşur.
Ayrıca, emir yürütme türü (bir pozisyon oluşturmak için bir anlaşma yapmak için emir) Ya hep ya hiç.
Lütfen bana söyle!
Yeni keneler geldiğinde sunucu zamanı neden güncellenmiyor?
Danışmanı başlatma anında her şey olması gerektiği gibi çalışır, ancak daha sonra zaman geçer ve mevcut dakikanın yeni değeri değişkene girmez.
Onlar. danışmanım int M = TimeMinute(TimeCurrent()); değişkeninin aldığı sayıya bağlı olarak çalışır.
Aslında, kod satırı referans kitabından ve hatta çalışmıyor.
Örneğin 12 dakika içinde başlatıldı - şimdiki zaman sunucu tarafından döndürülen değişkendeki zamana karşılık gelir ve daha sonra saat zaten 15-20 dakika olmasına rağmen değişken 12'de kalır