"Bir Diğer MQL5 OOP Sınıfı" makalesi için tartışma

 

Yeni makale Bir Diğer MQL5 OOP Sınıfı yayınlandı:

Bu makale, bir teorik alım satım fikri tasarlamaktan bu fikri deneysel dünyada gerçek hale getiren bir MQL5 EA programlamaya kadar bir Nesne Yönelimli Uzman Danışmanı sıfırdan nasıl oluşturacağınızı gösterir. Bana göre, yaparak öğrenmek başarılı olmak için sağlam bir yaklaşımdır, bu yüzden fikirlerinizi nihai olarak Forex robotlarınızı kodlamak için nasıl sıraya dizeceğinizi görmeniz için pratik bir örnek göstereceğim. Ayrıca amacım sizi OO ilkelerine bağlı kalmaya davet etmek.

Gerçekten de işe yarayan tam bir nesne yönelimli EA oluşturmak, benim düşünceme göre, birçok becerinin bir araya gelmesini gerektiren zorlayıcı bir görevdir: mantıksal akıl yürütme, farklı biçimde düşünme, analiz ve sentez yeteneği, hayal gücü vb. Çözmemiz gereken otomatik alım satım sisteminin bir satranç oyunu olduğunu düşünürsek, satranç stratejisi alım satım fikridir. Satranç stratejisinin taktikler aracılığıyla yürütülmesi ise teknik göstergeler, grafik rakamları, temel ekonomik fikirler ve kavramsal aksiyomların kullanımı ile robotun programlanması olacaktır.

Raffaello Sanzio'ya ait Atina Okulu Ayrıntısı

Şekil 1. Raffaello Sanzio'ya ait Atina Okulu Ayrıntısı. Bu resimde filozof Platon ve Aristoteles'i derin bir tartışma içinde görüyoruz.
Plato burada kavramsal dünyayı ve Aristoteles ise deneysel dünyayı temsil etmektedir.

Bu alıştırmanın zor olduğunun farkındayım. Bir OO EA'nın programlanması aşırı zor değildir, ancak uygulama geliştirmede çok az deneyime sahip kişiler için belirli bir derecede zor olduğu da doğrudur. Diğer herhangi bir disiplinde olduğu gibi, bunun da sebebi tecrübe eksikliğidir, bu nedenle size bu konuyu anlayacağınızdan emin olduğum belirli bir örnek üzerinden öğretmeye çalışacağım. OOP kavramlarını ele alma konusunda kendinize güvenmiyorsanız cesaretiniz kırılmasın, söz gelimi ilk beş EA'nızı uyguladıktan sonra her şey size çok daha kolay gelecek. Şimdilik hiçbir şeyi sıfırdan oluşturmanız gerekmiyor, sadece burada anlattıklarımı iyi anlayın!

Yazar: Jordi Bassaganas

 

Güzel makale. Teşekkür ederim.

 
FinGeR:

Güzel makale. Teşekkür ederim.

+1
 
Sana katılıyorum....harika iş.Teşekkürler.
 

İyi günler!

CSimpleRandom.mqh dosyasında, yazar CPositionInfo sınıfından bir nesne oluşturmayı atlamıştır

82 строчка  m_positionInfo=new CPositionInfo();

Bu olmadan, Uzman Danışman 'CSimpleRandom.mqh' içinde geçersiz işaretçi erişimi hatası oluşturdu.

Yoksa yeni başlayanlar pratik yapabilsin diye bilerek mi atladı? Evet ise, başarılı oldu =)


 
vp999369 CPositionInfo sınıf nesnesinin oluşturulmasını gözden kaçırmıştır

Bu olmadan, Uzman Danışman 'CSimpleRandom.mqh' içinde geçersiz işaretçi erişimi hatası oluşturdu

Yoksa yeni başlayanlar pratik yapabilsin diye bilerek mi atladı? Eğer evet ise, başardı =)


CSimplrRandom sınıf dosyasında aynı sınıftan bir nesne oluşturmayı mı öneriyorsunuz? Bu doğru değil.

\MQL5\Experts\Expertsimplerandom.mq5 dosyasına bakın. Bu sınıfın bir nesnesinin oluşturulmasını içerir. Satır 23:

//+------------------------------------------------------------------+
//|ExpertSimpleRandom.mq5 |
//|Telif Hakkı © 2013, Jordi Bassagaças |
//+------------------------------------------------------------------+

#property copyright     "Telif Hakkı © 2013, laplacianlab"
#property link          "http://www.mql5.com/en/articles"
#property version       "1.00"

#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\PositionInfo.mqh>
#include <Indicators\Indicators.mqh>
#include <Mine\Enums.mqh>
#include <..\Experts\SimpleRandom\CSimpleRandom.mqh>

input int               StopLoss;
input int               TakeProfit;
input double            LotSize;
input ENUM_LIFE_EA      TimeLife;

MqlTick tick;
CSimpleRandom *SR=new CSimpleRandom(StopLoss,TakeProfit,LotSize,TimeLife);
//+------------------------------------------------------------------+
//| Başlatma fonksiyonu|
//+------------------------------------------------------------------+


\MQL5\Experts\Expertsimplerandom.mq5 Uzman Danışmanını derleyin ve çalıştırın.

 
Ah, hayır, sizi anlamamışım. Aslında, sınıf nesnesinin oluşturulmasını eklemeniz gerekir.
 
vp999369 CPositionInfo sınıf nesnesinin oluşturulmasını gözden kaçırmıştır

Bu olmadan, Uzman Danışman 'CSimpleRandom.mqh' içinde geçersiz işaretçi erişimi hatası oluşturdu

Yoksa yeni başlayanlar pratik yapabilsin diye bilerek mi atladı? Eğer evet ise, başardı =)


Makale dosyaları yeniden yüklendi. Mesaj için teşekkürler.