MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1800
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
El sinyallerinde standart bir MT Expert Advisor'daki DecreaseFactor nedir?
Garip, şimdi düğmeler var. Bir kod yığını, çünkü bu bir taslak. Genel olarak, zaten çalışan bir sürüm yaptım, kalan son şey düğmelerin kaldırılması, sonra bu saçmalık yeniden başladı: silme işlevinde 4 nesnenin hiçbiri bulunamadı.
Düğmeye tıklayarak tüm satırlar oluşturulur:
Düğme devre dışıysa - silin:
Hangi oyun yazılmış, pardon.
Olayları izlemek zorunda değilsiniz. Test cihazında hiç çalışmıyorlar. Duruma bakmak lazım.
UPD. Elbette mütevazi değil, ama tavsiyelerimi en az bir kez dinlemiş olsalardı, her şeyi uzun zaman önce yaparlardı. Doğru ve çok katlı koltuk değneği olmadan.
Ama herkes içine dalmak istediği uçurumu seçer.
Bir test cihazında hata ayıklamayı kullanmak için MQL5'te yazmayı öğrenin. Her şey orada çalışıyor.
Nesne yeniden adlandırma yok. Mevcut bir nesneyi yeni bir nesneyle değiştirmek olarak düşünün.
Olamaz. Kodunuz her şeyin bir kargaşası gibidir. Belki de bu yüzden düğmelerde gecikmeler var. Daha önce de söylediğim gibi, basit başlayın. İşleri karmaşıklaştırmayın. Ve basit çalışmaya başladığında yavaş yavaş karmaşıklaşacak ve bundan emin olacaksınız.
Ve bir olay tarafından tetiklenirlerse (tıklama ile) durumları nasıl görebilirim? Evet, ama mql4'te yazıyorum, "c# ile yazmayı öğrenin hata ayıklama orada çalışır" demekle aynı şey.
"Doğru ve çok katlı koltuk değneği olmadan." - bu nedenle nesneleri gizlemek koltuk değneğidir.
Genel olarak her şeyi yaptım, her şey çalışıyor https://Gist.github.com/satorkain/0cf7a8df8ec1f4b3191defd04c94a418
Düğmeye tıklandığında, tüm satırlar bir kerede oluşturulur, hemen gizlenir ve düğme çubuğunun konumuna bağlı olarak yalnızca bir tanesi kalır. Ayrıca, fiyata göre imlecin konumuna bağlı olarak çizgiler gizlenir/gösterilir.
ZY
Eğer mql4 eğrisi olmasaydı, o zaman bu nesne gizleme saçmalığını ortaya çıkarmamıza gerek kalmazdı, nesneleri silme/yeniden adlandırma ile her şey ilk kez işe yaramalıydı.
Ve bir olay tarafından tetiklenirlerse (tıklama ile) durumları nasıl görebilirim? Evet, ama mql4'te yazıyorum, "c#'ta yazmayı öğren orada hata ayıklama çalışıyor" demekle aynı şey.
"Doğru ve çok katlı koltuk değneği olmadan." - bu nedenle nesneleri gizlemek koltuk değneğidir .
Genel olarak her şeyi yaptım, her şey çalışıyor https://Gist.github.com/satorkain/0cf7a8df8ec1f4b3191defd04c94a418
Düğmeye tıklandığında, tüm satırlar bir kerede oluşturulur, hemen gizlenir ve düğme çubuğunun konumuna bağlı olarak yalnızca bir tanesi kalır. Ayrıca, fiyata göre imlecin konumuna bağlı olarak çizgiler gizlenir/gösterilir.
ZY
mql4 eğrisi olmasaydı, o zaman bu nesneleri gizleme saçmalığını ortaya çıkarmamıza gerek kalmazdı, her şey ilk kez nesneleri silme/yeniden adlandırma ile çalışmalıydı.
Bir nesneyi gizlemek yalnızca geliştirici tarafından önerilen yöntemdir. Ve bunun için özel bir özellik var. Durumu görmek için butonun "State" özelliğine bakmanız gerekir.
Buradaki çarpık şey , mantığınız ve kavramların ikame edilmesidir - geliştirici tarafından bir koltuk değneği için önerilen araçları alırsınız ve bir nesnenin sürekli doymak bilmez bir şekilde oluşturulmasını/silinmesini saf kod olarak alırsınız, ancak şiddetli bir koltuk değneği olan odur. önerilen hızlı yöntemi atlayarak.
Bu arada, bir nesneyi diğerlerinin üzerine hızlı bir şekilde yapmak için, onu görünmez ve hemen görünür hale getirmeniz gerekir - bu, nesneler listesindeki konumunu geçersiz kılar ve en üstte olur.
not. Ve orada bile, git'te eksi ile bir C kodunu yayınladınız. Kesinlikle hataya dayanıklı. Bir satır oluşturulmadığı anda her şey çökecek. Bu hemen gözüme çarptı. Olay işleyicide satırlar oluşturuyorsunuz - neden? OnInit() size ne için? Oluşturuldu, başarıyı kontrol etti - bayrağı ayarla ve sakla. OnDeinit()'de programımız tarafından oluşturulan nesneleri sildik. Bunu yapmak için bir ad önekine de ihtiyacınız var.
Olay işleyicide, yalnızca gösterip gizlersiniz - herhangi bir yapı olmamalıdır. Senin davan için, evet.
Böyle bir şeyi kamuya açık alanda yayınlamaktan utanırım. Ama bu benim için.
peki sen? İnsanların kullanması normal mi?
Bir nesneyi gizlemek yalnızca geliştirici tarafından önerilen yöntemdir. Ve bunun için özel bir özellik var. Durumu görmek için butonun "State" özelliğine bakmanız gerekir.
Buradaki çarpık şey , mantığınız ve kavramların ikame edilmesidir - geliştirici tarafından bir koltuk değneği için önerilen araçları alırsınız ve bir nesnenin sürekli doymak bilmez bir şekilde oluşturulmasını/silinmesini saf kod olarak alırsınız, ancak şiddetli bir koltuk değneği olan odur. önerilen hızlı yöntemi atlayarak.
Bu arada, bir nesneyi diğerlerinin üzerine hızlı bir şekilde yapmak için, onu görünmez ve hemen görünür hale getirmeniz gerekir - bu, nesneler listesindeki konumunu geçersiz kılar ve en üstte olur.
not. Ve orada bile, git'te eksi ile bir C kodunu yayınladınız. Kesinlikle hataya dayanıklı. Yaratılmamak için tek bir satıra değer , her şey senin için çöker. Bu hemen gözüme çarptı. Olay işleyicide satırlar oluşturuyorsunuz - neden? OnInit() size ne için? Oluşturuldu, başarı kontrol edildi - bayrağı ayarlayın ve . OnDeinit()'de programımız tarafından oluşturulan nesneleri sildik. Bunu yapmak için bir ad önekine de ihtiyacınız var.
Olay işleyicide, yalnızca gösterip gizlersiniz - herhangi bir yapı olmamalıdır. Senin davan için, evet.
Böyle bir şeyi kamuya açık alanda yayınlamaktan utanırım. Ama bu benim için.
peki sen? İnsanların kullanması normal mi?
Gerektiğinde 4 satırdan 1 satır oluşturmak için oburluk mu? :) Peki ya 200 satır varsa? Mantığınıza göre hepsini bir kerede oluşturmak ekonomik olacak mı? Ve geliştiriciler tarafından tasarlandığından, bu sadece kendileri tarafından bilinir ve çok sezgisel olarak tasarlanmamıştır. Ne kadar inanılmaz veya mantıksız olursa olsun gerekliydi. Peki, nesnelerle sadece bu şekilde çalışmanın gerekli olduğunu, başka türlü değil, nasıl bilebilirdim? Belki mql4 eğitiminden? Bu noktanın orada açıklandığından şüpheliyim.
En azından amaçlandığı gibi çalışıyor :) Orada, parantez içindeki (genel) adında, yani henüz tamamlanmadı, ancak evet, nesne oluşturma kontrolü yok, düzelteceğiz. Ve yapıştırma kutusunu hatırlayamadığım için git'e gönderdim. Utanmış? Git, diğer şeylerin yanı sıra, insanların öğrenmesi, deneyimlerini paylaşması, kod paylaşması, çalışması ya da çalışmaması için icat edildi, fark etmez, herhangi bir şey kendisine uygun değilse herkes çatallayabilir ve değişiklik yapabilir.
İşte buradasınız, 250 nesne oluşturuldu ve bunları Expert Advisor'ın çalışması boyunca hafızamızda tutuyoruz. Tamam teşekkürler, haber vereceğim. Bu konuda ayrıca "sezgisel olmayan mantık" konuşuyorum. Öğreticide, örneğin OnInit() hakkında, yalnızca Uzman Danışman/gösterge başlatıldığında işlevin işlendiğini çıkarabilirsiniz.
Sana bir sır vereceğim. Bir "hesap makineniz" yoksa en az 1000 nesne ve daha fazlasını oluşturabilirsiniz. Ama bu da ona bağlı. Hesap makinesi bir bilgisayardır. RAM 4GB ile. Aşağıdaki her şey "büyükannenin puanı"... :) O halde en azından hepsini tek seferde, en azından birer birer nesneler oluşturun. Fark yok. Ama fanatizm olmadan.
Böylece, akıllıca yaparsanız, herkes için her şey yolunda gider! ...
Gerektiğinde 4 satırdan 1 satır oluşturmak için oburluk mu? :) Peki ya 200 satır varsa? Mantığınıza göre hepsini bir kerede oluşturmak ekonomik olacak mı? Ve geliştiriciler tarafından tasarlandığından, bu sadece kendileri tarafından bilinir ve çok sezgisel olarak tasarlanmamıştır. Ne kadar inanılmaz veya mantıksız olursa olsun gerekliydi. Peki, nesnelerle sadece bu şekilde çalışmanın gerekli olduğunu, başka türlü değil, nasıl bilebilirdim? Belki mql4 eğitiminden? Bunun orada açıklandığından şüpheliyim.
En azından amaçlandığı gibi çalışıyor :) Orada, parantez içindeki (genel) adında, yani henüz tamamlanmadı, ancak evet, nesne oluşturma kontrolü yok, düzelteceğiz. Ve yapıştırma kutusunu hatırlayamadığım için git'e gönderdim. Utanmış? Git, diğer şeylerin yanı sıra, insanların öğrenmesi, deneyimlerini paylaşması, kod paylaşması, çalışması ya da çalışmaması için icat edildi, fark etmez, herhangi bir şey kendisine uygun değilse herkes çatallayabilir ve değişiklik yapabilir.
İşte buradasınız, 250 nesne oluşturuldu ve bunları Expert Advisor'ın çalışması boyunca hafızamızda tutuyoruz. Tamam teşekkürler, haber vereceğim. Bu konuda ayrıca "sezgisel olmayan mantık" konuşuyorum. Öğreticide, örneğin OnInit() hakkında, yalnızca Uzman Danışman/gösterge başlatıldığında işlevin işlendiğini çıkarabilirsiniz.
Aynı anda istediğiniz kadar nesne oluşturabilirsiniz. MT, gösterge tamponları oluşturma konusunda tam olarak gelişmemişken, trend çizgileri ile 400 görünür mum, mum başına 5 satır, 400 * 5 = 2000 artı her biri ve diğerleri için bir nesne çizmek gerekiyordu. Toplamda yaklaşık 2500 nesne elde edildi. Aptallık olmadan çalıştı.
Nesnelerle çalışmanın mantığını tam olarak anlamıyorsunuz ama nasıl tartışılacağını biliyorsunuz. Bunun tersini yapmak daha iyidir.
Gerektiğinde 4 satırdan 1 satır oluşturmak için oburluk mu? :) Peki ya 200 satır varsa? Mantığınıza göre hepsini bir kerede oluşturmak ekonomik olacak mı? Ve geliştiriciler tarafından tasarlandığından, bu sadece kendileri tarafından bilinir ve çok sezgisel olarak tasarlanmamıştır. Ne kadar inanılmaz veya mantıksız olursa olsun gerekliydi. Peki, nesnelerle sadece bu şekilde çalışmanın gerekli olduğunu, başka türlü değil, nasıl bilebilirdim ? Belki mql4 eğitiminden? Bu noktanın orada açıklandığından şüpheliyim.
En azından amaçlandığı gibi çalışıyor :) Orada, parantez içindeki (genel) adında, yani henüz tamamlanmadı, ancak evet, nesne oluşturma kontrolü yok, düzelteceğiz. Ve yapıştırma kutusunu hatırlayamadığım için git'e gönderdim. Utanmış? Git, diğer şeylerin yanı sıra, insanların öğrenmesi, deneyimlerini paylaşması, kod paylaşması, çalışması ya da çalışmaması için icat edildi, fark etmez, herhangi bir şey kendisine uygun değilse herkes çatallayabilir ve değişiklik yapabilir.
İşte buradasınız, 250 nesne oluşturuldu ve bunları Expert Advisor'ın çalışması boyunca hafızamızda tutuyoruz. Tamam teşekkürler, haber vereceğim. Bu konuda ayrıca "sezgisel olmayan mantık" konuşuyorum. Öğreticide, örneğin OnInit() hakkında, yalnızca Uzman Danışman/gösterge başlatıldığında işlevin işlendiğini çıkarabilirsiniz.
İyi. Basit kelimelerle Rusça deneyeceğim.
balığa gidiyorsun.
Ve balık tutmak için ihtiyacınız olan her şeyi kilerden (OnInit) hemen alabilir, etrafta koşmadan balık tutmaya gidebilir ve eve dönerek her şeyi kilere ve buzdolabına (OnDeinit) koyabilirsiniz.
Burada forumda bilgi sahibi olabilirsiniz . Bazen sadece dinlemeniz ve size ne dediklerini duymanız gerekir.
Ve ortaya çıktı, bir soru sordular, bir cevap aldılar, dediler ki - çöp ve sen düşündüğün gibi yap.
İlk önce soruyu düşünmeniz, etrafa sormanız ve ancak o zaman editörü üstlenmeniz gerekir.
Programlamada en kolay şeyin kod yazmak olduğunu biliyor musunuz? Ve aslanın kalkınmadaki payı mantık hakkında düşünmekle meşgul.
Soruyu ikinci kez gündeme getirdiğim için özür dilerim.
ama bir sorun var. henüz çözemediğim, yani
bir mum üzerinde bir dizi sipariş (birbiri ardına) açmak.
Aynı mum üzerinde yeni bir sipariş açamamak için EA'ya ihtiyacım var.
Sleep() ile çözmeyi düşündüm ama Makar süreci durdurmamanın daha iyi olduğunu söyledi.
kod şimdi şöyle görünür:
Aynı mum üzerinde yeni bir sipariş açamamak için EA'ya ihtiyacım var.