MQL5'te OOP hakkında sorular

 

Dün bir soru geldi aklıma ağabeylerime danışmaya karar verdim)

21.05.2016 Cumartesi günü bir kişiye standart kitaplığı örnek olarak kullanarak OOP'nin temellerini açıkladım. Daha önce bir arkadaşı MQL4'te programlamış, sonra 5 yıl ara vermiş ve şimdi geri dönmeye karar vermiş. MT5 riskten korunmaya odaklanmaya başladım, çünkü şimdi oradaki her şeyi kendim yeniden yapıyorum.

İşin garibi, bir kişi (Maxim, senden bahsediyorum, eğer okuyorsan :)) OOP'nin temellerini anladı ve standart kütüphaneyi örnek olarak kullanarak, en önemli kısımların altından bile geçmeyi başardık. hata ayıklayıcı.

Ancak!! Bir rekor için söz verdim, ama onlar için. her şeyin bir miyavla uçmasının nedenleri ((

Özellikle OOP için video hile sayfaları yapacağıma söz verdim, sanırım her biri 10 dakika

Soru:

10 dakika boyunca MQL5'te OOP ile ilgili konuları bana anlat, YouTube'a koyayım, yani herkes için faydalı olacak

------------------

İlginç olan her şeyi yaz, ben hallederim, boş zamanlarımda isteklerinizi karşılamaya çalışırım.

İyi şanlar))

 
Alexey Volchanskiy :

Dün bir soru geldi aklıma ağabeylerime danışmaya karar verdim)

21.05.2016 Cumartesi günü bir kişiye standart kitaplığı örnek olarak kullanarak OOP'nin temellerini açıkladım. Daha önce bir arkadaşı MQL4'te programlamış, sonra 5 yıl ara vermiş ve şimdi geri dönmeye karar vermiş. MT5 riskten korunmaya odaklanmaya başladım, çünkü şimdi oradaki her şeyi kendim yeniden yapıyorum.

İşin garibi, bir kişi (Maxim, senden bahsediyorum, eğer okuyorsan :)) OOP'nin temellerini anladı ve standart kütüphaneyi örnek olarak kullanarak, en önemli kısımların altından bile geçmeyi başardık. hata ayıklayıcı.

Ancak!! Bir rekor için söz verdim, ama onlar için. her şeyin bir miyavla uçmasının nedenleri ((

Özellikle OOP için video hile sayfaları yapacağıma söz verdim, sanırım her biri 10 dakika

Soru:

10 dakika boyunca MQL5'teki OOP konularını bana anlatın YouTube'a koyayım yani herkes için faydalı olacak

------------------

İlginç olan her şeyi yaz, ben hallederim, boş zamanlarımda isteklerinizi karşılamaya çalışırım.

İyi şanlar))

Alexey, yardımdaki en az aydınlatılan yerlere örnekler yapın - işaretçiler, işlevlere işaretçiler, şablon sınıflarıyla çalışma vb. Dürüst olmak gerekirse, bence, C++ ile ilgili bu tür çok sayıda video var ve hiçbir şekilde bilgiyi artırmayacak olsa da, bunları artırmak için literatüre, web seminerlerine ve çalışkanlığa ihtiyaç var.
 
coderex :
Alexey, yardımdaki en az aydınlatılan yerlere örnekler yapın - işaretçiler, işlevlere işaretçiler, şablon sınıflarıyla çalışma vb. Dürüst olmak gerekirse, bence, C++ ile ilgili bu tür çok sayıda video var ve hiçbir şekilde bilgiyi artırmayacak olsa da, bunları artırmak için literatür, web seminerleri ve çalışkanlık gerekiyor.
MQL'de işaretçiler yok, tanımlayıcılar var)) İşlevlere işaretçiler (koşullu) yakın zamanda tanıtıldı, "" tüm algo-tüccarlar intihara meyilli, onlara işaret vermeyin" genel konsepti için bir tür koltuk değneği
 
Alexey Volchanskiy :
MQL'de işaretçiler yok, tanımlayıcılar var)) İşlevlere işaretçiler (koşullu) yakın zamanda tanıtıldı, "" tüm algo-tüccarlar intihara meyilli, onlara işaret vermeyin" genel konsepti için bir tür koltuk değneği

Alexey, kelimelere yapışma :) "Tanımlayıcılar" yazsaydım, o zaman bir nedenden dolayı beni hemen anlamayacağınızdan eminim. Ve son zamanlarda tanıtılanlara ve çok uzun zaman önce tanıtılanlara gelince, özü değiştirmiyor, bu sorular referans için havada asılı duruyor, onlar hakkında ne bir kelime ne de bir bit. Ve bu isimler, C++ ve MQL ile ilgili olarak içeride nasıl farklı davranırlarsa davransınlar, sonuç olarak, dışarıdan aynı şekilde davranırlar, en azından geliştiriciler bunu yapmaya çalışır. Hatta daha önce tanıtılan işaretçilerin karşılaştırmasına bile bakıyorum :) Dürüst olmak gerekirse, MT için onu nerede kullanacağımı hayal edemiyorum.

Ama yine de, bu konuları ele alırsanız, birçok acemi kodlayıcının size minnettar olacağını düşünüyorum. Videonuzu bir kez izledim, insanlara nasıl anlaşılır bir şekilde anlatacağınızı biliyorsunuz :)

 
coderex :

Alexey, kelimelere yapışma :) "Tanımlayıcılar" yazsaydım, o zaman bir nedenden dolayı beni hemen anlamayacağınızdan eminim. Ve son zamanlarda tanıtılanlara ve çok uzun zaman önce tanıtılanlara gelince, özü değiştirmiyor, bu sorular referans için havada asılı duruyor, onlar hakkında ne bir kelime ne de biraz var. Ve bu isimler, C++ ve MQL ile ilgili olarak içeride nasıl farklı davranırlarsa davransınlar, sonuç olarak, dışarıdan aynı şekilde davranırlar, en azından geliştiriciler bunu yapmaya çalışır. Hatta daha önce tanıtılan işaretçilerin karşılaştırmasına bile bakıyorum :) Dürüst olmak gerekirse, MT için onu nerede kullanacağımı hayal edemiyorum.

Ama yine de, bu konuları ele alırsanız, birçok acemi kodlayıcının size minnettar olacağını düşünüyorum. Videonuzu bir kez izledim, insanlara nasıl anlaşılır bir şekilde anlatacağınızı biliyorsunuz :)

IMHO, hiçbir durumda eğitim videosundan yardımın genişletilmiş bir versiyonunu yapmamalısınız. Görev, eksik ayrıntıları kutsamak değil, öğretmektir.
 
Alexey Volchanskiy :

Soru:

10 dakika boyunca MQL5'te OOP ile ilgili konuları bana anlat, YouTube'a koyayım, yani herkes için faydalı olacak

OOP'nin hiçbir şekilde kod olmadan açıklanması gerekir ve sınıflar, nesneler, işaretçiler vb., vb. Gibi bu karmaşık terminolojiden herhangi biri.

Klasik programlama nasıl çalışır? İlk başta, öğrenci acı içinde insan düşüncesinden temelleri programlamaya geçmeye çalışır (her türlü döngü, işlev, değişken ve diğer saçmalıklar vardır, diğer gerekli "bilgi bagajları"). Daha sonra fonksiyonların, değişkenlerin ve if'lerin başındaki karışıklık az çok düzenli bir yapı oluşturduğunda öğrenciye denilir: "Bak: OOP diye bir şey var. Size daha önce öğretilenleri unutun ve bir şey gibi düşünmeye başlayın. yine insan" Bunu kalıplarda bir kırılma izler, bu kadar zorlukla elde edilen "bilgi bagajı" çöpe atılır ve kişi kendini cennet ile yer arasında bir yerde bulur. Doğal olarak, bu "OOP" daha sonra birkaç yıl boyunca beynin geri kalan kıvrımlarında bir ürperti ve acı ile bir kabus olarak hatırlanır (sonuçta geri kalanlar yeni bilgiler tarafından yakıldı).

Hayır, programlamayı öğrenmek için programlama öğrenmeniz gerekmediğini kategorik olarak beyan ederim. Aksine zararlı ve tehlikelidir. Bunun yerine düşünmeyi öğretmek gerekir. Ve bununla klasik öğretim yönteminde tam bir başarısızlık.

 
Vasiliy Sokolov :
IMHO, hiçbir durumda eğitim videosundan yardımın genişletilmiş bir versiyonunu yapmamalısınız. Görev, eksik ayrıntıları kutsamak değil, öğretmektir.

Alexey forum üyelerinin fikrini sordu, ona fikrimi yazdım ve orada ne olacağını sadece Alexey biliyor :)

Ve bu arada, herhangi bir yerde bahsedilmiyorsa nasıl öğreneceksiniz? Bunu biliyorum çünkü. C++ ile yazıyorum ve sadece MQL5 öğrenenler bu incelikleri öğrenemeyecekler çünkü yardımda bununla ilgili bir kelime yok :)

 
OOP'ta iyi olmak ister misiniz? - UML'yi öğrenin
 

Vasiliy Sokolov :

Daha sonra fonksiyonların, değişkenlerin ve if'lerin başındaki karışıklık az çok düzenli bir yapı oluşturduğunda öğrenciye denilir: "Bak: OOP diye bir şey var. Size daha önce öğretilenleri unutun ve bir şey gibi düşünmeye başlayın. yine insan" Bunu kalıplarda bir kırılma izler, bu kadar zorlukla elde edilen "bilgi bagajı" çöpe atılır ve kişi kendini cennet ile yer arasında bir yerde bulur.

Yeter artık. Bir kişi zaten başlangıçta yalnızca OOP ile meşgul. Hatta sadece bir fincan kahve. Bazı desenlerdeki kırılmalar nereden geliyor? IMHO, sorunlarını öğrencilere aktaran aptal öğretmenlerin saçmalıkları.
 

İnsanları OOP ile korkutmayın.

MQL5'te iyi Uzman Danışmanlar veya başka şeyler oluşturmak için OOP'yi hiç bilmek gerekli değildir. Kelime sınıfını veya işaretçiyi bilmenize bile gerek yok.

OOP, özellikle ekip çalışması devam ederken büyük görevler ve kompleksler oluşturmak için kullanılır.

Ve MQL5'te OOP olmadan da yapabilirsiniz.

10 yıldan fazla bir süredir, temel gereksinimin OOP bilgisi olduğu yabancı şirketlerde çalışmak isteyen programcılar için eğitim aldığımı ekleyeceğim.

Bunu, benim OOP karşıtı olduğumu düşünmesinler diye söylüyorum. Sadece amaçlanan amacı için kullanmanız ve hayatı zorlaştırmamanız gerekir.

 

OOP'yi anlamak, programların karmaşıklığıyla birlikte gelir. Programcı kod sayfasını birkaç fonksiyona ayırmaya başlar, çeşitli fonksiyonların sonuçlarını kendi aralarında aktarma ihtiyacı vardır, yakında her şeyi fonksiyon argümanları aracılığıyla aktarmanın en iyi çözüm olmadığından şüphelenmeye başlar, büyük olasılıkla global oluşturmaya başlayacaktır. değişkenler , kişi neredeyse oop için olgunlaşır, geriye kalan tek şey mantıksal olarak ilgili işlevleri ve kişisel verilerini vurgulamaktır. Deneyimim: mkl4'e geri döndüğümde şöyle bir şey yaratmaya başladım:

 // file_1.mqh
int name1_counter = 0 ;
int name1_data = 0 ;
double name1_value = 0 ;
void name1_action() {name1_counter++; name1_data = ;}
int name1_get() {return }

// file_2.mqh
int name2_counter = 0 ;
int name2_data = 0 ;
double name2_value = 0 ;
void name2_action() {}
int name2_get() {}


Herhangi bir OOP'yi bile bilmiyordum, ama zaten neredeyse buydu (evet, sadece bir örnek, ancak iskelet zaten hazır). Öğrencilere bu aşamalarda rehberlik ederdim. Bir giriş ve ifs sayfasıyla başlayın ve yavaş yavaş kodu yapılandırın. Sonunda, bir kişi OOP'ye neredeyse kendisi gelecek ve asıl mesele, buna nasıl geldiğini anlayacaktır.

Bu "sihir" OOP hakkında ne kadar zaman önce bir kitap okuduğumu hatırlıyorum. Kitabın doruk noktası, OOP'nin gücünün yattığı sanal işlevlerin bir gösterimiydi. Böyle yazarları yırtacak eller. Bu yüzden tek bir düzgün kitapla karşılaşmadım.

Neden: