MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1011
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
Algoritma yazmanın en iyi yolu nedir?
Görev:
Farklı çizelgelerde bir Uzman Danışman başlatılır.
Hesaba ait bakiye, özkaynak vb. bilgilerin tutanağa göre ayrı bir dosyaya yazılması zorunludur.
Şimdi tüm danışmanların tüm bilgileri tek bir dosyaya yazdığı ortaya çıktı. Sonuç olarak, birçok gereksiz kayıt ortaya çıkıyor.
Hangi orijinal çözümü bulabilirsin ki, sadece bir bot kayıt dosyası oluştursun. (Ve örneğin silindiyse, başka bir bot giriş yapmaya başladı vb.)
OnInit()'te uzmanın veya başka birinin adıyla bir grafik nesnesi oluşturun, belki de uzman zaten bir nesne oluşturuyordur, o zaman onu kullanabilirsiniz, varsayalım "MyEA": ObjectCreate (0, "MyEA" , OBJ_... ,...))
Dosyanın yazıldığı OnTick()'te, bu etiketin hangi ilk kimlik çizelgesinde olduğunu kontrol edin = bu, terminalde kurulu ilk Uzman Danışman olduğu anlamına gelir, artık daha fazla ilgilenmiyoruz.
Yineleme kullanıyoruz:
Expert Advisor'ın kurulu olduğu ilk kullanılabilir tablo/sembol alındı
Ayrıca, dosyaya yazmadan önce, bunun ilk Uzman Danışman olduğunu karşılaştırıyoruz:
Tasarım kolay değil, ancak global bir değişkene yazarak diski çekmekten daha iyidir
Standart MA'yı alın, arabellek veri türünü değiştirin, derleyin ve terminal veri penceresinde kontrol edin (Ctrl+D)
ChartID(), terminalin global değişkenlerine bir hata ile yazılır. ne saçmalık?
Bu kodu deneyin:
Bu kodu çalıştırmanın sonucu
OnInit()'te uzmanın veya başka birinin adıyla bir grafik nesnesi oluşturun, belki de uzman zaten bir nesne oluşturuyordur, o zaman onu kullanabilirsiniz, varsayalım "MyEA": ObjectCreate (0, "MyEA" , OBJ_... ,...))
Dosyanın yazıldığı OnTick()'te, bu etiketin hangi ilk kimlik çizelgesinde olduğunu kontrol edin = bu, terminalde kurulu ilk Uzman Danışman olduğu anlamına gelir, artık daha fazla ilgilenmiyoruz.
Yineleme kullanıyoruz:
Expert Advisor'ın kurulu olduğu ilk kullanılabilir tablo/sembol alındı
Ardından, dosyaya yazmadan önce bunun ilk Uzman Danışman olduğunu karşılaştırıyoruz:
Tasarım kolay değil, ancak global bir değişkene yazarak diski çekmekten daha iyidir
Evet güzel fikir.
Sayesinde.
O zaman soru şudur: Ya danışman silinirse (örneğin, bir hata nedeniyle) ve nesne kalırsa. Grafik tamamen kapalıysa, bir şekilde "ana" Uzman Danışmanı yeniden atamanız gerekir mi?
Evet güzel fikir.
Sayesinde.
O zaman soru şudur: Ya danışman silinirse (örneğin, bir hata nedeniyle) ve nesne kalırsa. Grafik tamamen kapalıysa, bir şekilde "ana" Uzman Danışmanı yeniden atamanız gerekir mi?
Tek bir durumda bir hata - Uzman Danışman nesneyi acil bir durumda bıraktıysa, ancak MT4'te hafızamda böyle bir şey hatırlamıyorum. Diğer tüm durumlarda, ana uzman yeniden atanacak, OnTik'te kontrol devam ediyor ve her zaman mevcut tablo için bir arama olacak
PS Expert Advisor'da bir hata olması ve tablodan kendi kendini kaldırması durumunda OnDeInit()'in ne döndüreceğini kontrol etmeye çalışın. Muhtemelen basitçe kontrol edebilir, bir değişken oluşturabilir ve keneleri sayabilir, 11. tikte 10/0'ı bölebilirsiniz.
OnDeInit()'te, Print'i koyun ve sıfırlamanın nedeninin ne olacağını görün, öyleyse, bu nedenle/sayı için "MyEA" nesnesini grafikten silin
Sonuç hakkında aboneliğinizi iptal edebilirsiniz, çünkü kendiniz kontrol etmek için zamanınız yoktur.
OnInit()'te uzmanın veya başka birinin adıyla bir grafik nesnesi oluşturun, belki de uzman zaten bir nesne oluşturuyordur, o zaman onu kullanabilirsiniz, varsayalım "MyEA": ObjectCreate (0, "MyEA" , OBJ_... ,...))
Dosyanın yazıldığı OnTick()'te, bu etiketin hangi ilk kimlik çizelgesinde olduğunu kontrol edin = bu, terminalde kurulu ilk Uzman Danışman olduğu anlamına gelir, artık daha fazla ilgilenmiyoruz.
Yineleme kullanıyoruz:
Expert Advisor'ın kurulu olduğu ilk kullanılabilir tablo/sembol alındı
Ayrıca, dosyaya yazmadan önce, bunun ilk Uzman Danışman olduğunu karşılaştırıyoruz:
Tasarım kolay değil, ancak global bir değişkene yazarak diski çekmekten daha iyidir
Bence yanılıyorsun. GV'ler her seferinde diske yazılmaz. Aksi takdirde, GV'yi diske yazmaya zorlamak için bir fonksiyona gerek kalmayacaktır.
Evet, artı her şey, bir danışman ve bir nesne aramak için tüm çizelgeleri sıralamak ... Vitaliy, bu teneke ...Bence yanılıyorsun. GV'ler her seferinde diske yazılmaz . Aksi takdirde, GV'yi diske yazmaya zorlamak için bir fonksiyona gerek kalmayacaktır.
Evet, artı her şey, bir danışman ve bir nesne aramak için tüm çizelgeleri sıralamak ... Vitaliy, bu teneke ...Yazmanın başka bir yolu: GlobalVariableSet ("GV",ID);
profiller -> gvariables.dat
Yazmanın başka bir yolu: GlobalVariableSet ("GV",ID);
profiller -> gvariables.dat
Oluştururken evet olabilir, ancak üzerine yazarken orada yazan uygulamayı devre dışı bırakmadan önce kontrol etmeniz gerekir. Ve tembelim. Yine de, tamamen teorik olarak, diske her yazıldığında, yukarıdaki işlev sadece bir çıngıraktır.
Bu şekilde yapamazsınız.
Klasörlerdeki verileri senkronize eden bir Windows programı arayın. Ve danışmanın otomatik olarak yeni terminale kopyalanması için ayarlayın
Anladığım kadarıyla böyle programlar var ama sadece dosyalarla çalışıyorlar ama bu bir metin belgesi ise içerik kopyalanmıyor ve dosyaların yerini almıyor, belki normal programlar bulamadım. Geliştiricilerin, robotun veya uzmanın dosyasının nereden alınacağını belirleme yeteneğini hesaba katmamış olması kötü, yolu genellikle olduğu gibi belirtebileceğinizi düşündüm ve hepsi bu, ancak yukarıda belirttiğiniz gibi, bu imkansız.
Anladığım kadarıyla böyle programlar var ama sadece dosyalarla çalışıyorlar ama bu bir metin belgesi ise içerik kopyalanmıyor ve dosyaların yerini almıyor, belki normal programlar bulamadım. Geliştiricilerin, robotun veya uzmanın dosyasının nereden çizileceğinin yolunu belirtme yeteneğini hesaba katmamış olması kötü, yolu genellikle yapıldığı gibi belirtebileceğinizi düşündüm ve hepsi bu, ama yukarıda belirttiğiniz gibi, bu imkansız.
Bu mesajdaki "Tüm terminallerde paylaşılan klasörler var" sözlerine dikkat edin.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Peki, pazardan alınan ürün neye bağlı?
Sergey Tabolin , 2019.11.23 08:17
Cidden nasıl ve nereye kuracağımı bilmediğimi mi düşünüyorsun? )))
Tüm terminallerin paylaşımlı klasörleri vardır
Marketten ücretsiz bir gösterge indirdim. Demire bağlı.
Öyleyse neden bir donanım parçasında bir terminalde çalışıyor, diğerinde çalışmıyor?
Bariz sonuç, en azından sadece ütülemeye bağlı olmadığıdır ...
Nasıl yapıldığına dair bilgi arayın ve gidin... Buna klasör bağlama denir.