MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 27

 
Vasiliy Sokolov :

Bu, çalışan bir Uzman Danışmanın blok şeması değil, boşlukta küresel bir attır. Bazı bloklar hiç mevcut olmayabilir. Bloklar yeniden düzenlenebilir. Herhangi bir ML programı bir olay işleyicisidir. Bu ana önerme şemada yer almamaktadır, yani okuyucuları yanlış yönlendirmektedir. Size tavsiyem: Bu gereksiz şeyleri okumayın. Kovalev'in ders kitabının modası geçmiş. İçindeki bilgilerin çoğu, özellikle MT5 sipariş sistemiyle ilgili olarak doğru değil. Kovalev esasen bu gülünç şemayı ezberlemeyi, ardından olay dizilerini ezberlemeyi ve ardından baykuş dünyayı kendine çekmeyi teklif ediyor: bu şema, olduğu gibi, uzmanın programında uygulanıyor. MCL'de diyagram yok. Tipik ticaret ortamı kullanım kalıpları vardır. Ancak içinde anlaşılması ve hatırlanması gereken evrensel bir şema yoktur. Tüm "şemalar", bu işlevlerin gelen olaylara işlevleri ve tepkileri yardımıyla derlenir. Artı, yine fonksiyonlar tarafından istenen veriler var.

Tüm saygımla. Öyle bir şey yok. Orada, öğrencilere bunun bir eğitim danışmanı olduğu ve bunun üzerinde ticaret yapmanın imkansız olduğu konusunda bilgi veriliyor. Ve ticaret yapmak için ticaret stratejileri çalışmanız gerekir ... Ama bu dili öğrendikten sonra. Bu arada güzel ve anlaşılır bir anlatım dili. Burada, özellikle kod tabanındaki yorumlarda genellikle eksik olan şey. Bazen kafan kırılır ne yazılır)))) katılıyorum iyi kodda öyle bir şey yok)

 
MrBrooklin :

Sergey Kovalev'in MQL4 eğitiminde uzun zamandır aradığımı buldum. İşte kitaptan bir alıntı: " Basit bir Uzman Danışmanın Yapısı. Aşağıda, her biri hesaplamaların ayrı bir bölümünü gerçekleştiren birkaç işlevsel blok temelinde oluşturulmuş basit bir Uzman Danışmanın blok şeması bulunmaktadır."


Bu bağlamda, uzmanlardan bu blok diyagramın MQL5 dilinde bir Expert Advisor (EA) yazmak için uygun olup olmadığını veya başka bir blok eklemek gerekli olup olmadığını önermelerini istiyorum.

Saygılarımla, Vladimir.

Evet bu model işinize yarayacaktır. Bu basit ve organize. Dile hakim olduğunuzda, istediğiniz gibi karmaşıklaştıracak/değiştirecek/bloklar ekleyeceksiniz, ancak önce burada durun. Doğru şema.
 
Vasiliy Sokolov :

Bu, çalışan bir Uzman Danışmanın blok şeması değil, boşlukta küresel bir attır. Bazı bloklar hiç mevcut olmayabilir. Bloklar yeniden düzenlenebilir. MCL'deki herhangi bir program bir olay işleyicisidir. Bu ana varsayım şemada yer almamaktadır, bu da okuyucuları yanlış yönlendirdiği anlamına gelmektedir. Size tavsiyem: Bu gereksiz şeyleri okumayın. Kovalev'in ders kitabının modası geçmiş. İçindeki bilgilerin çoğu, özellikle MT5 sipariş sistemiyle ilgili olarak doğru değil. Kovalev esasen bu gülünç şemayı ezberlemeyi, ardından olay dizilerini ezberlemeyi ve ardından baykuş dünyayı kendine çekmeyi teklif ediyor: bu şema, olduğu gibi, uzmanın programında uygulanıyor. MCL'de diyagram yok. Tipik ticaret ortamı kullanım kalıpları vardır. Ancak içinde anlaşılması ve hatırlanması gereken evrensel bir şema yoktur. Tüm "şemalar", bu işlevlerin gelen olaylara işlevleri ve tepkileri yardımıyla derlenir. Artı, yine fonksiyonlar tarafından istenen veriler var.

Eleştirinizi anlamıyorum. Şema mantıklı, tüm eylemler sırayla sıralandı. Danışmanın doğru yapısı hakkında fikir verir. Elbette her şeyi karıştırabilir, bir şeyler atabilir, bir şeyler ekleyebilirsiniz, ancak böyle bir programın kararlılığı büyük ölçüde bozulacaktır. Genel olarak, şemada ne ile hata bulabileceğinizi göremiyorum.
 
Реter Konow :
Eleştirinizi anlamıyorum. Şema mantıklı, tüm eylemler sırayla sıralandı. Expert Advisor'ın doğru yapısı hakkında fikir verir. Elbette her şeyi karıştırabilir, bir şeyler atabilir, bir şeyler ekleyebilirsiniz, ancak böyle bir programın kararlılığı büyük ölçüde bozulacaktır. Genel olarak, şemada ne ile hata bulabileceğinizi anlamıyorum.

Tamam iyi. açıklamaya çalışacağım.

1) İşte şema. Bazı bloklar verilmiştir (bir bloğun ne olduğu mql programıyla ilişkili olarak açıklanmamıştır. Belki bir fonksiyondur, belki bir dizi prosedür, belki başka bir şeydir, ama eh, diyelim ki, bir bloğun ne olduğunu sezgisel olarak anlıyoruz. yazarla aynı seviyede).

2) Bloklar, programın başlangıcından tamamlanmasına kadar bir zincir oluşturur. Bazı bloklarda , program yürütme zinciri ikiye bölünmüştür (ve bu arada, neden sadece ikiye? ama üç değil? dörde? ve dörde ihtiyacınız varsa, bunu şemada nasıl göstereceksiniz? A1 baskı formatına geçin? ?). Görünüşe göre bu, dallanmayı göstermenin bir yolu.

3) "Mesajlar" gibi çok garip bloklar var. Bu blok nedir? Muhtemelen programdan uygun koşulların olmadığına dair bir tür bildirim: her onay, örneğin bir mesaj gelecek: "Satın almak için çok pahalı, satın almak için çok pahalı ..." - elbette harika, Ama bunlar tüm tahminler.

4) En tuhaf blok "hata işleme" bloğudur. İçine girebilirsin ama çıkamazsın. Onlar. program bir hata yakaladı ve bu blokta oturuyor (muhtemelen tam bir yeniden başlatmaya kadar kilitleniyor, daha fazla hata yapmamak için terminali sıkıca dondurmak daha da iyi - düşünce bu!)

5) Programı ilk kez çalıştırırsak veya hesapta açık pozisyon yoksa, kapatma emirleri bloğu ne yapar? Hiç bir şey. Ancak bu planın mantığına bakılırsa, siparişleri kapatmak için hala bloğa girmemiz gerekiyor. Oraya varıyoruz çünkü şema katı ve hiyerarşik olarak yapılandırılmıştır. Boş bir pozisyon listesinin anlamsız ve acımasız bir şekilde işlenmesi olsa bile, tüm bloklar birer birer işlenmelidir.

6) Emirlerin maliyetini hesaplama bloğu, emirleri kapatma bloğunun altında bulunur. Genel olarak nasıldır? Belki siparişi "değerine" göre kapatırız. Burada neler olduğu hiç belli değil.

Ve bu şemaya bakıyorum ve gerçekten “bunun” çalışma için nasıl önerilebileceğini anlamıyorum? Nasıl iyi, harika ve eğitici olarak kabul edilebilir?

 
Vasiliy Sokolov :

Tamam iyi. açıklamaya çalışacağım.

1) İşte şema. Bazı bloklar verilmiştir (bir bloğun ne olduğu mql programıyla ilişkili olarak açıklanmamıştır. Belki bir fonksiyondur, belki bir dizi prosedür, belki başka bir şeydir, ama eh, diyelim ki, bir bloğun ne olduğunu sezgisel olarak anlıyoruz. yazarla aynı seviyede).

2) Bloklar, programın başlangıcından tamamlanmasına kadar bir zincir oluşturur. Bazı bloklarda , program yürütme zinciri ikiye bölünmüştür (ve bu arada, neden sadece ikiye? ama üç değil? dörde? ve dörde ihtiyacınız varsa, bunu şemada nasıl göstereceksiniz? A1 baskı formatına geçin? ?). Görünüşe göre bu, dallanmayı göstermenin bir yolu.

3) "Mesajlar" gibi çok garip bloklar var. Bu blok nedir? Muhtemelen programdan uygun koşulların olmadığına dair bir tür bildirim: her onay, örneğin bir mesaj gelecek: "Satın almak için çok pahalı, satın almak için çok pahalı ..." - elbette harika, Ama bunlar tüm tahminler.

4) En tuhaf blok "hata işleme" bloğudur. İçine girebilirsin ama çıkamazsın. Onlar. program bir hata yakaladı ve bu blokta oturuyor (muhtemelen tam bir yeniden başlatmaya kadar kilitleniyor, daha fazla hata yapmamak için terminali sıkıca dondurmak daha da iyi - düşünce bu!)

5) Programı ilk kez çalıştırırsak veya hesapta açık pozisyon yoksa, kapatma emirleri bloğu ne yapar? Hiç bir şey. Ancak bu planın mantığına bakılırsa, siparişleri kapatmak için hala bloğa girmemiz gerekiyor. Oraya varıyoruz çünkü şema katı ve hiyerarşik olarak yapılandırılmıştır. Boş bir pozisyon listesinin anlamsız ve acımasız bir şekilde işlenmesi olsa bile, tüm bloklar birer birer işlenmelidir.

6) Emirlerin maliyetini hesaplama bloğu, emirleri kapatma bloğunun altında bulunur. Genel olarak nasıldır? Belki siparişi "değerine" göre kapatırız. Burada neler olduğu hiç belli değil.

Ve bu şemaya bakıyorum ve gerçekten “bunun” çalışma için nasıl önerilebileceğini anlamıyorum? Nasıl iyi, harika ve eğitici olarak kabul edilebilir?

TAMAM. Şimdi eleştiriler daha net hale geldi. Eh, "büyüteç altında" bakarsanız birçok yönden hemfikir olabilirsiniz, ancak bunu yapmanın bir anlamı yok. Yeni başlayanlar, bir Uzman Danışmanın en yaygın ve doğru (küresel anlamda) bileşimi hakkında temel, genelleştirilmiş ve basitleştirilmiş bir fikir edinmelidir.

Bir blok, mantıksal olarak ayrı bir dizi koşul, kontrol, fonksiyon, programdır.

Program bloklarının tasarımı, programın doğru yürütülmesini sağlar.

Blok bağlantılarının dallanma ve derin hiyerarşisi öğrencinin kafasını karıştırmamak için şemada gösterilmemiştir. Her şey kasıtlı olarak basitleştirilmiştir ve bu pedagojik açıdan doğrudur. Peki, S. Kovalev 20 sayfalık olası yapıların hiyerarşilerinden oluşan bir "galeri" çizer miydi, daha mı iyi olurdu? Muhtemelen, hepsi aynı, hayır ...) Ve böylece, evet, - aslında hayatta her şey şemadan daha karmaşık ve çeşitlidir. Ama basit başlamalısın.
 
Реter Konow :
Yeni başlayanlar, bir Uzman Danışmanın en yaygın ve doğru (küresel anlamda) bileşimi hakkında temel, genelleştirilmiş ve basitleştirilmiş bir fikir edinmelidir.

Evet, öyle. küresel olarak, Kovalev haklı, peki ya şemada hatalar yaptıysa - yeni başlayanlar bu hataların nerede olduğunu ve nerede doğru çizildiğini anlayacaktır. Bu nedenle, danışman aygıtının genelleştirilmiş bir temsilinin özünü elde etmek için yeni başlayan biridir. Ve bir blok nedir, oklar nedir ve hata işlemeden sonra neden asmak gerekir, bu bir acemi ve kendisi güçlü zihniyle düşünüyor.

 
Реter Konow :
TAMAM. Şimdi eleştiriler daha net hale geldi. Eh, "büyüteç altında" bakarsanız birçok yönden hemfikir olabilirsiniz, ancak bunu yapmanın bir anlamı yok. Yeni başlayanlar, bir Uzman Danışmanın en yaygın ve doğru (küresel anlamda) bileşimi hakkında temel, genelleştirilmiş ve basitleştirilmiş bir fikir edinmelidir.

Bir blok, mantıksal olarak ayrı bir koşullar, kontroller, işlevler, programlar kümesidir.

Program bloklarının tasarımı, programın doğru yürütülmesini sağlar.

Blok bağlantılarının dallanma ve hiyerarşisi öğrencinin kafasını karıştırmamak için şemada gösterilmemiştir. Her şey kasıtlı olarak basitleştirilmiştir ve bu pedagojik açıdan doğrudur. Peki, S. Kovalev 20 sayfalık olası yapıların hiyerarşilerinden oluşan bir "galeri" çizer miydi, daha mı iyi olurdu? Muhtemelen, hepsi aynı, hayır ...) Ve böylece, evet, - aslında hayatta her şey şemadan daha karmaşık ve çeşitlidir. Ama basit başlamalısın.

Selam Peter! Tüm mesajlardan bilgileri özetliyorum. MQL5 programlama dili, bir program (komut dosyası, Uzman Danışman) oluşturmak ve yürütmek için açıkça tanımlanmış bir BASIC algoritması içermez. Tüm algoritmalar kendi yollarıyla benzersizdir ve daha sonra artırılabilen bir "çekirdek"e sahip olamazlar. O zaman kendi kendine çalışma programım çıkmaza mı girecek? Biri dikkat ederse, daha önce yazdığım tüm komut dosyaları komplikasyon şemasını takip eder, yani. basitten karmaşığa. Aslında, kafamdaki düşünceleri düzenleme fikrini kırmam gerekiyor. Öyle mi çıkıyor?

Saygılarımla, Vladimir.

 
MrBrooklin :

Selam Peter! Tüm mesajlardan bilgileri özetliyorum. MQL5 programlama dili, bir program (komut dosyası, Uzman Danışman) oluşturmak ve yürütmek için açıkça tanımlanmış bir BASIC algoritması içermez. Tüm algoritmalar kendi yollarıyla benzersizdir ve daha sonra artırılabilen bir "çekirdek"e sahip olamazlar. O zaman kendi kendine çalışma programım çıkmaza mı girecek? Biri dikkat ederse, daha önce yazdığım tüm komut dosyaları komplikasyon şemasını takip eder, yani. basitten karmaşığa. Aslında, kafamdaki düşünceleri düzenleme fikrini kırmam gerekiyor. Öyle mi çıkıyor?

Saygılarımla, Vladimir.

Numara. Hiçbir durumda. Vasily'nin eleştirisi, Uzman Danışman planının mantıksal doğruluğunu yok etmedi. Evet, lekeleri bulabilir ve bunların "dibine inebilirsiniz", ancak GENEL OLARAK - bu doğru ve ana şey bu. Bu çizelge, oraya vardığınızda Uzman Danışmanlarınızı yazmaya başlamanıza yardımcı olacaktır. Genel olarak, mql4 ve mql5 arasında hiçbir fark yoktur. Ayrıntılar değişir, ancak bunlarla başa çıkmak kolaydır. Daha önce olduğu gibi öğrenmeye devam edin.
 
Vasiliy Sokolov :

Evet, öyle. küresel olarak, Kovalev haklı, peki ya şemada hatalar yaptıysa - yeni başlayanlar bu hataların nerede olduğunu ve nerede doğru çizildiğini anlayacaktır. Bu nedenle, danışman aygıtının genelleştirilmiş bir temsilinin özünü elde etmek için yeni başlayan biridir. Ve bir blok nedir, oklar nedir ve hata işlemeden sonra neden asmak gerekir, bu bir acemi ve kendisi güçlü zihniyle düşünüyor.

Zaten daha iyi bir ders kitabımız yok, yani...

Küçük hatalar, çoğu kişinin yaptığı gibi, başkalarının kodlarının parçalarını terk etmek ve "yapıştırmak" için bir neden değildir. Ayrıca malzemenin sunumunun temel doğruluğunu da göz ardı ediyorsunuz ki bu çok ama çok.
 
MrBrooklin :

Selam Peter! Tüm mesajlardan bilgileri özetliyorum. MQL5 programlama dili, bir program (komut dosyası, Uzman Danışman) oluşturmak ve yürütmek için açıkça tanımlanmış bir BASIC algoritması içermez. Tüm algoritmalar kendi yollarıyla benzersizdir ve daha sonra artırılabilen bir "çekirdek"e sahip olamazlar. O zaman kendi kendine çalışma programım çıkmaza mı girecek? Biri dikkat ederse, daha önce yazdığım tüm komut dosyaları komplikasyon şemasını takip eder, yani. basitten karmaşığa. Aslında, kafamdaki düşünceleri düzenleme fikrini kırmam gerekiyor. Öyle mi çıkıyor?

Saygılarımla, Vladimir.

Doğru! Herkes hayat tecrübesinden yola çıkarak programla ilgili kavram yanılgılarını kullanarak programlamayı öğrenmeye çalışır. Örneğin, bir program, içindekiler, giriş, içerik ve sonuç bölümlerinin bulunduğu bir kitaptaki bir metin gibidir. Onlar. programın baştan sona bir tür sıralı şema olduğunu. İlk aşamalarda bu temsil çalışır, daha sonra programın karmaşıklığı ile zorluklar başlar ve normal bir şekilde güvenilir bir çalışma programı yazmak mümkün değildir. Hızlı bir hayal kırıklığı ve arka planda programlama çalışmasının ertelenmesi geliyor. Ve bu bağlamda Kovalev, kötülük yapmakta asil bir iş adamıdır: erişilebilir kavramsal aparatını kullanarak okuyucuya, programın şu ve şu şema ile aynı kitap olduğunu açıklamaya çalışır. Ama plan yok! Komut dosyasının, Uzman Danışmandan temel olarak farklı bir "şeması" vardır ve Uzman Danışman, göstergeden farklı bir şemaya sahiptir.