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
Igor, MQL5 dilini öğrenme arzusu kaybolmaz, aksine sadece yoğunlaşır. Sadece neden bu kadar aptal olduğumu ve bu döngü operatörüyle basit şeyleri anlayamadığım beni kırıyor. Ana şey, kodun bir döngü operatörü olmadan mükemmel şekilde çalışmasıdır, ancak bir döngü ile bu tam bir stupordur. Yine de gerçeğe ulaşacağım. Doğru, kendi kendine çalışma için zaman çok daha az hale geldi, çünkü. karantina bitti ve işte dil çalışmak için nadir anlar var. Çoğunlukla akşamları ve gece geç saatlere kadar dille ilgileniyorum.
Sonunda doğrudan İzleyen Durdurma kodunu yazmaya devam etmek için 2 görevi tam olarak anlamam ve çözmem gerekiyor:
Vladimir, bir tür ormana tırmanıyorsun. Size bir şablon verildi: https://www.mql5.com/ru/forum/352460/page58#comment_18726492 Onu görmezden geldiniz ve aklınızla ilerlemeye karar verdiniz. Bu yol zordur ve yıllar alabilir. Yol boyunca, C, C++, Rust, C#, polimorfizm, kalıtım, işaretçi referanssızlaştırma, dinamik tip döküm öğrenin - ancak zaten hedefe karar verdiniz: kontrol edin veya gidin. Hedefe giden en kısa rotayı kullanmanız gerekir. Takip etmek istiyorsanız - takip edin. Bunun için C ve C++ öğrenmenize gerek yok. İstenirse, bunların hepsi daha sonra seçmeli olarak.
For döngüsündeki durum örnek niteliğindedir. Bu, siteye uygulanması gereken güçlü bir tasarımdır. Ağınız ve yardımcı bir algoritmanız var. Bu nedenle, konumların sayımı yoktur, büyü yoktur ve bu nedenle bu döngü yoktur. Doğal olarak, onsuz her şey sizin için çalışır ve döngü ile yağ elde edilir. Ama inatla onu hatasız kullanmaya çalışıyorsunuz, görünüşe göre bu başlı başına bir amaç: her şeyi ve herkesi olabildiğince yedekte, ne olursa olsun kullanmak.
Vladimir, bir tür ormana tırmanıyorsun. Size bir şablon verildi: https://www.mql5.com/ru/forum/352460/page58#comment_18726492 Onu görmezden geldiniz ve aklınızla ilerlemeye karar verdiniz. Bu yol zordur ve yıllar alabilir. Yol boyunca, C, C++, Rust, C#, polimorfizm, kalıtım, işaretçi referanssızlaştırma, dinamik tip döküm öğrenin - ancak zaten hedefe karar verdiniz: kontrol edin veya gidin. Hedefe giden en kısa rotayı kullanmanız gerekir. Takip etmek istiyorsanız - takip yazın. Bunun için C ve C++ öğrenmenize gerek yok. İstenirse, tüm bunlar daha sonra seçmeli olarak.
For döngüsündeki durum örnek niteliğindedir. Bu, siteye uygulanması gereken güçlü bir tasarımdır. Ağınız ve yardımcı bir algoritmanız var. Bu nedenle, konumların sayımı yoktur, büyü yoktur, dolayısıyla bu döngü yoktur. Doğal olarak, onsuz her şey sizin için çalışır ve döngü ile yağ elde edilir. Ama inatla onu hatasız kullanmaya çalışıyorsunuz, görünüşe göre bu başlı başına bir amaç: her şeyi ve herkesi olabildiğince yedekte, ne olursa olsun kullanmak.
Merhaba Vasili!
Her zamanki gibi konuya zamanında bağlanıp beni doğru yola yönlendirdiğiniz için teşekkür ederim. Şimdi her şeyi sıraya koyacağım:
Vasily, rehberlik ve yapıcı eleştiri için çok minnettarım! Ayrıca , MQL5 programlama dilini sıfırdan kendi kendime öğrenmemde ellerinden geldiğince yardımcı olan bu konudaki tüm katılımcılara derin şükranlarımı sunarım.
Kendi kendine öğrenme devam ediyor. Devam edecek (devam edecek).
Saygılarımla, Vladimir.
Herkese iyi günler!
Biraz eklemek istedim, konu ilginç, bana öyle geliyor ki, bir kişi programlamada 0 ise, " MQL5 dilini tamamen sıfırdan kendi kendine öğrenme" fikri tamamen doğru değil, o zaman önce programlamayı öğrenmesi gerekir. Amaç MQL'de sıfırdan nasıl programlanacağını öğrenmekse, o zaman önce en azından temel olarak C'de nasıl programlanacağını öğrenmeniz ve ardından MQL esasen C olduğu için MQL'de nasıl yazılacağını öğrenmeniz gerekir. belirli bir görev için keskinleştirilmiş kişi, döngülerin nasıl çalıştığını anlamıyor, ancak zaten tüm programlarda yazmaya çalışıyor. Rusça bilmeden Fenya öğrenmeye çalışmak gibi...
Başka bir şey de, C'nin programlama öğrenmek için en kolay dil olmamasıdır, basittir, ancak çok özlüdür, yeni başlayanlar için algoritmalar, veri türleri, Boole cebri hakkında temel kavramlara sahip olmadan kodu okuması ve anlaması zordur. C'de arka arkaya üç karakter, başka bir dilde birkaç satırın anlamını taşıyabilir.
Temel olarak sıfırdan programlamayı öğrenmek, bir bilgisayarla (hangisi olduğu önemli değil) bir dilde konuşmayı öğrenmek için, çözmeye başlamak için en kolay kitap olan Pascal ile başlamanızı tavsiye ederim. (2-3 hafta rahat), sonra C (burada, pascal'dan sonra, özenle maksimum bir hafta, sözdizimine hakim olun, dilin temel bilgisinden bahsediyorum!) ve ancak o zaman aşağıdaki gibi özel dilleri alın. MQL, çünkü MQL, C olduğu için, bir görevde keskinleştirildiğinden ve derleyici bariz olanı bildiğinden, birkaç sıkıntısı ama aynı zamanda basitleştirmeleri de var. Ve sırayla C, RAR tarafından sıkıştırılmış böyle bir pascaldır, ancak Pascal neredeyse İngilizcedir =).
Şimdi döngüler için:
Programlamayı öğrenirken, cebirdeki toplam ile analoji bana yardımcı oldu, burada n'nin başlangıç değeri, n'nin son değeri ve hesaplama için bu n ile formül gösterilir.
Merhaba Andrey! Size temelde tamamen katılıyorum. Bende yok ve hiç olmadı. Ama dedikleri gibi, Moskova hemen inşa edilmedi! Tavsiyeniz ve ipuçlarınız için teşekkür ederiz!
Saygılarımla, Vladimir.
Evet. Katılıyorum - onun kodları da çalıyor ! Kendinizi sıfırdan kuruyorsunuz. Kodu acele etmeden sakince anlayın ve hepsi bu. Burada her şey basit - seçtik ve trolledik: (çok daha kolay - sadece GEREKLİ pozisyonu seçme konunuz ... :-))
Ek olarak, dahil edilen dosyalar - bu, onların tür kodunuzda işlevler biçiminde de bulundukları anlamına gelir ve hepsi bu.
Kodlar ve bağlantılar için teşekkürler Roman! Kodları sakince anlıyorum ve kesinlikle acelem yok!
Saygılarımla, Vladimir.
Herkese iyi günler ve iyi bir ruh hali!
MQL5 programlama dilini öğrenmeye devam ediyorum. Bugün, söz verdiğim gibi, son durak yazmak için tasarlanmış Expert Advisor şablonunun kodunu herkesin görmesi için gönderiyorum. EA şablon kodunun oldukça hantal olması nedeniyle, yorumları olabildiğince azaltmak zorunda kaldık. Bir programlama okulunun 1. sınıfındaki bir öğrencinin erişebileceği bir sunumda, her kod satırı hakkında ayrıntılı yorumlar içeren Expert Advisor'ın tam sürümü, daha sonra Trailing_Stop.mq5 çalışma adıyla bir dosya biçiminde yayınlanacaktır. sitede başka bir "ayak bezi" üretmemek için.
Kodu yayınlamadan önce EA, strateji test cihazında test edildi. Herhangi bir sorun tespit edilmedi. EA, bir netleştirme pozisyonu muhasebe sistemi kullanır. Bu muhasebe sistemi, aynı sembol (finansal araç) için hesapta aynı anda yalnızca bir açık pozisyon olabileceğini ima eder.
Şu anda, EA şunları yapabilir:
Ek olarak, EA, Vasily Sokolov tarafından sağlanan ve kendi kendine öğrenme sürecinde kodla doldurulacak önceden yüklenmiş bir şablona sahiptir.
BİR UYARI!!!
Expert Advisor, bir demo hesabı için kendi kendine çalışma planına göre ve yalnızca eğitim amaçlı geliştirilmiştir! Gerçek bir hesapta işlem yapmak ve kar etmek için tasarlanmamıştır!
Saygılarımla, Vladimir.
Herkese iyi günler ve iyi bir ruh hali!
MQL5 programlama dilini öğrenmeye devam ediyorum. Dün Al ve Sat pozisyonları için zararı durdurmayı başabaşa taşıma kodunu yazdım. Kodu ayrıntılı yorum yapmadan gönderiyorum. Bir programlama okulunun 1. sınıfındaki bir öğrencinin erişebileceği bir sunumdaki her bir kod satırının ayrıntılı bir açıklamasıyla Uzman Danışmanın tam sürümü daha sonra Trailing_Stop.mq5 çalışma adıyla bir dosya biçiminde yayınlanacaktır. . Kodu yayınlamadan önce EA, strateji test cihazında test edildi. Herhangi bir sorun tespit edilmedi.
Saygılarımla, Vladimir.
Herkese iyi günler ve iyi bir ruh hali!
MQL5 programlama dilini öğrenmeye devam ediyorum. Bugün, söz verdiğim gibi, son durak yazmak için tasarlanmış Expert Advisor şablonunun kodunu herkesin görmesi için gönderiyorum. EA şablon kodunun oldukça hantal olması nedeniyle, yorumları olabildiğince azaltmak zorunda kaldık. Bir programlama okulunun 1. sınıfındaki bir öğrencinin erişebileceği bir sunumda, her kod satırı hakkında ayrıntılı yorumlar içeren Expert Advisor'ın tam sürümü, daha sonra Trailing_Stop.mq5 çalışma adıyla bir dosya biçiminde yayınlanacaktır. sitede başka bir "ayak bezi" üretmemek için.
...
Çok iyi. Ana fikir doğru bir şekilde yakalanmıştır. Özellikle geliştirme sürecini beğendim:
Herkese iyi günler ve iyi bir ruh hali!
MQL5 programlama dilini öğrenmeye devam ediyorum. Dün Al ve Sat pozisyonları için zararı durdurmayı başabaşa taşıma kodunu yazdım. ...
Onlar. Her şey doğru. Tek bir yere baskın yaparak sorunu bir kerede çözmenize gerek yok. Ve yaptığınız gibi yavaş yavaş yapın. Öncelikle OnTick işlevindeki ana mantığı ve OpenBUY, OpenSELL, TickUP, TickDown gibi ana işlevleri açıklıyorsunuz.
Ardından, bu ana kod hata ayıklandığında, derlendiğinde ve yetenekleri dahilinde çalıştığında, diğer işlevleri tanımlamaya başlarsınız. Bu, ertesi gün, hatta bir hafta yapılabilir. Bu durumda, ana kodun değiştirilmesi gerekmez. Neden, bence zaten görüyorsun.
Şimdi bu geliştirme tarzını geliştirmeniz gerekiyor: işlevler yazmaya devam edin, bunlar aracılığıyla mevcut koda işlevsellik ekleyin. Mevcut program düzgün çalışmalıdır. Zorluk artmamalı . Eklediğiniz işlevler basit ve net sonuçlar vermelidir. İsimleri sizin için çok basit ve anlaşılır olmalıdır. Bunu yapamıyorsanız, belki de nedeni, sorunu çözmek için tek bir fonksiyon değil iki hatta üç fonksiyon yazmanız gerektiğidir. İlk başta, uygulamanın genel çerçevesini tanımlamak zor olacaktır. Bu nedenle, daha deneyimli yoldaşlardan tavsiye almak daha iyidir. Zamanla, bu tür şablonları kendiniz geliştirmeyi öğreneceksiniz.
Fonksiyonun kendisine atanan görevleri çözmesi için, zaman içinde bu tür fonksiyonların içinde daha fazla dil yapısı kullanmanız gerekecektir. Sonra yavaş yavaş ve en önemlisi organik olarak dil yapıları bilginizi genişletecek, döngüleri, dizileri öğrenecek ve hatta işaretçilerle çalışacaksınız.
Aslında, kapsanan materyali henüz konsolide etmemiş olsanız da, programlamadaki en zor şeyi zaten öğrendiniz. Birleştirmek için bunu birçok kez tekrarlamak kalır. O zaman temelde yeni bir şey olmayacak, her şey aynı: Genel şablon -> İşlev adlarının ve parametrelerinin açıklaması -> Bu işlevlerin içeriklerinin yazılması -> bu işlevlerin merkezi blokta düzenlenmesi. Herşey. Sadece beceriyi geliştirmek ve tutarlı olmak için kalır. Benzer döngüler ve diziler kullanmaya başlayacağınız çeşitli ek yapılar sadece ayrıntılardır, bazen akıllıca yapılır, ancak ayrıntılardan başka bir şey değildir.
Mükemmelliğin sınırı olmadığı için, koda birkaç yorum daha ekleyeceğim:
Önemsiz iki yeri sarı renkle vurguladım.
1) Lütfen kodun ilk if ve sonrakinde tekrarlandığını unutmayın. Fark sadece son satırda ve son işlemdedir (OpenBUY, OpenSell).
2) else bloğuna girme koşulları açık değildir. Bolluktan mı kaynaklanıyor?? görüntülenmez. Aslında, yalnızca son satıra bağlıdırlar:
Bu, burada bir özelliğin eksik olduğuna dair kesin bir işarettir.
Bir pozisyon açma zamanı belirtilene karşılık geliyorsa true döndüren bir fonksiyon yazmanız gerekiyor (biraz sonra yazacağım)
Çok iyi. Ana fikir doğru bir şekilde yakalanmıştır. Özellikle geliştirme sürecini beğendim:
Onlar. Her şey doğru. Tek bir yere baskın yaparak sorunu bir kerede çözmenize gerek yok. Ve yaptığınız gibi yavaş yavaş yapın. Öncelikle OnTick işlevindeki ana mantığı ve OpenBUY, OpenSELL, TickUP, TickDown gibi ana işlevleri açıklıyorsunuz.
Ardından, bu ana kod hata ayıklandığında, derlendiğinde ve yetenekleri dahilinde çalıştığında, diğer işlevleri tanımlamaya başlarsınız. Bu, ertesi gün, hatta bir hafta yapılabilir. Bu durumda, ana kodun değiştirilmesi gerekmez. Neden, bence zaten görüyorsun.
Şimdi bu geliştirme tarzını geliştirmeniz gerekiyor: işlevler yazmaya devam edin, bunlar aracılığıyla mevcut koda işlevsellik ekleyin. Mevcut program düzgün çalışmalıdır. Zorluk artmamalı . Eklediğiniz işlevler basit ve net sonuçlar vermelidir. İsimleri sizin için çok basit ve anlaşılır olmalıdır. Bunu yapamıyorsanız, belki de nedeni, sorunu çözmek için tek bir fonksiyon değil iki hatta üç fonksiyon yazmanız gerektiğidir.
Fonksiyonun kendisine atanan görevleri çözmesi için, zaman içinde bu tür fonksiyonların içinde daha fazla dil yapısı kullanmanız gerekecektir. Sonra yavaş yavaş ve en önemlisi organik olarak dil yapıları bilginizi genişletecek, döngüleri, dizileri öğrenecek ve hatta işaretçilerle çalışacaksınız.
Merhaba Vasili! Zamanında tavsiye ve desteğiniz için çok teşekkür ederim. İşlevlerin rolü ve program kodu oluşturma ilkeleri hakkındaki mesajlarınız MQL5 programlama dilini öğrenmemde bana çok yardımcı oldu:
Artık kafadaki bilgiler zaten yapılandırılmış bir şekil aldığında, sadece benim tarafımdan değil, diğer programcılar tarafından da yazılan kodu algılamak çok daha kolay. Umarım bu konu tüm yeni başlayanlar için MQL5 programlama dilini sıfırdan öğrenmek için iyi bir yardımcı olur.
Saygılarımla, Vladimir.