English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
preview
MQL5 - Siz de bu dilin ustası olabilirsiniz

MQL5 - Siz de bu dilin ustası olabilirsiniz

MetaTrader 5Örnekler | 28 Şubat 2025, 11:50
173 0
Daniel Jose
Daniel Jose

Giriş

Bu makalede, daha önceki makalelerde yaptığımdan farklı bir şey yapacağım. Temel olarak, bu materyal MQL5 veya genel olarak programlama hakkında çok az bilgisi olan veya hiç bilgisi olmayanlar için tasarlanmıştır. Bu nedenle, makale kendimle bir röportaj gibi olacaktır. MQL5'in sıfırdan nasıl öğrenileceğini ve nasıl profesyonel olunacağını açıklayacağım.


Küçük bir hikaye

MQL5 topluluğu için makaleler yazmaya başladığımdan beri çok sayıda geri bildirim aldım. Birçok kişi benimle iletişime geçerek makalelerde anlattığım şeyleri yapabilmem için MQL5'te programlamayı nasıl öğrendiğimi soruyor. Bu kişilerin çoğu, programlamaya ilk adımlarını atmak için temel bir rehber arayan meraklılardır. Bu makale, MQL5 programlamayı öğrenmek isteyen siz meraklılara ve acemi MQL5 programcılarına adanmıştır.

Bu konuya geçmeden önce bir şeyler söylemem gerekiyor. Bu materyalin amacı motivasyonunuzu düşürmek değil, tam tersine motivasyonunuzu daha da artırmaktır.

Uzun yıllara dayanan MQL5 programlama deneyimim olması gerektiğini düşünebilirsiniz. Ancak bu makaleyi yazdığım sırada MQL5 dilini yalnızca bir buçuk yıldır kullanıyorum. Doğru, bir MQL5 programcısı olarak iki yıldan daha az deneyimim var. Muhtemelen bu kadar az MQL5 programlama deneyimi olan birinin MetaTrader 5 için makalelerde gösterilen şeyleri nasıl yapabileceğini merak ediyor olabilirsiniz.

Bunun nedeni, MQL5 programlama dilini geliştirenlerin, dili birçok açıdan C/C++'a benzetmek gibi harika bir fikre sahip olmalarıdır. Dolayısıyla, bir programcı kapsamlı C/C++ deneyimine sahipse, tüm kavramları, sözdizimini ve komutları yeniden öğrenmeye gerek olmadığından MQL5'i öğrenmek oldukça kolay olacaktır.

Bunu neden söylüyorum? Çünkü 2000'li yılların başından beri profesyonel bir C/C++ programcısıyım, yani 23 yılı aşkın süredir C/C++ dilinde programlama yapıyorum. MetaTrader 5 için bir şeyler yapmak üzere yeni bir dil öğrenmek zorunda kalsaydım, büyük olasılıkla sonunda pes ederdim.

Birçok kişi iyi bir programcı olmak için bazı kurslar almak gerektiğini düşünür. Ancak, programlamayı gerçekten öğrenmek için hata yapmaktan korkmamalısınız. Bir koda ya da fikre asla bağlanmamalısınız. Her zaman yeni şeyler denemeye çalışmalısınız.

Bu biraz garip gelebilir, çünkü birçok yeni insan hep aynı şeyi ve aynı şekilde yapmaktan hoşlanır. Ancak büyük bir programcı olmak isteyen bir kişi her zaman aynı şeyi yapmanın farklı yollarını arar. Ayrıca, pek çok kişi bir programcının çoğunlukla başkalarından ilham alacağını anlamıyor. Daha deneyimli bir programcı tarafından geliştirilen çalışan kaynak kodunu alıp azar azar değiştirebilir, deneyebilir ve sonucu izleyebilirsiniz. Bu şekilde programın gerçekte nasıl inşa edildiğini öğrenirsiniz.

Bazı insanlar MQL5'i öğrenmek için farklı materyallerin gelişigüzel çalışılmasını gerektirdiğini düşünüyor. Aslında, önceden herhangi bir bilgisi olmayan biri bana nasıl öğreneceğini sorduğunda, her zaman en basitinden başlamasını öneririm. Başka bir deyişle, sözdizimini, programlama mantığını ve komutları gerçekten bilmek için C hakkında biraz bilgi edinin. C dilinin temellerini anladıktan sonra, C++ çalışmaya ve aynı zamanda MQL5’te pratik yapmaya başlayın. Temel C bilgisine halihazırda sahip olmanız, MQL5'te programlamaya başlamanıza büyük ölçüde yardımcı olacaktır.

Bazı kişiler C'nin modasının geçtiğini düşünebilir, ancak gerçek şu ki C son derece iyi belgelenmiş ve yaygın olarak kullanılan bir dildir. C'nin nasıl kullanılacağını öğrenmek için birçok materyal bulabilirsiniz. Ancak şunu vurgulamak istiyorum: C'yi derinlemesine öğrenmeniz gerektiğini söylemiyorum. Aksine, sözdizimini ve bazı temel komutları öğrenirseniz, bu MQL5'e başlamanız için yeterli olacaktır.

Bu biraz cesaret kırıcı görünebilir: MQL5'te ilerleme kaydetmek için C öğrenmek mi? Belki de çok çaba sarf ederseniz ve size öğretmeye istekli birini bulursanız, doğrudan MQL5 ile başlayabilirsiniz. Ancak ilk deneyimlerime ve diğer insanların görüşlerine dayanarak, görevin o kadar kolay olmayacağını söyleyebilirim. Neredeyse tüm kaliteli materyaller burada, MQL5 topluluğunda yoğunlaşmıştır. İnternetin geri kalanında malzeme dağınıktır ve kalitesiz olabilir, bu da yarardan çok zarar getirir. C ve C++ dilleri söz konusu olduğunda, çok sayıda mükemmel ve çok erişilebilir materyal bulunmaktadır. Yani, nereden başlayacağınızı seçmek size kalmış.


MQL5'teki ilk kodum

Birçok kişi C/C++'da programlamayı zaten bildiğim için hemen MQL5'te karmaşık ve ayrıntılı projelere başladığımı düşünüyor. Keşke her şeyin böyle başladığını söyleyebilseydim. Ancak gerçekte durum oldukça farklı oldu.

Kendi çözümlerimizi geliştirmek için ilk adımları attığımızda, genellikle zaten bildiğimizi düşündüğümüz şeylerle başlarız. Benim durumumda, MQL5'i kullanmaya başladığımda, elimdeki tek şey dil dokümantasyonuydu. İlgilenen diğer programcılara yardım etmeye adanmış bir topluluk olduğunu bile bilmiyordum.

Böylece, MetaEditor ile birlikte gelen dokümantasyonu inceleyerek ve kaynak kodlarına bakarak denemeler yapmaya başladım. Aşağıda anladıklarıma dayanarak oluşturduğum ilk gerçek kodum var.

01. //+------------------------------------------------------------------+
02. #property copyright "Daniel Jose"
03. #property version   "1.00"
04. #property description "Modify special chart properties"
05. #property script_show_inputs
06. //+------------------------------------------------------------------+
07. enum eWhat  {
08.                eScaleDate  = CHART_SHOW_DATE_SCALE,   //Time scale
09.                eScalePrice = CHART_SHOW_PRICE_SCALE   //Price scale
10.             };
11. enum eOp    {
12.                eFalse,                                //Makes hidden
13.                eTrue                                  //Makes visible
14.             };
15. //+------------------------------------------------------------------+
16. input eWhat user00 = eScaleDate;                      //Graphic property
17. input eOp   user01 = eFalse;                          //What to do?
18. //+------------------------------------------------------------------+
19. void OnStart()
20. {
21.    ChartSetInteger(0, (ENUM_CHART_PROPERTY_INTEGER) user00, user01);
22. }
23. //+------------------------------------------------------------------+

İlk MQL5 programımın kaynak kodu

Olağanüstü ya da yenilikçi hiçbir şey yok. Bu temel bir koddur ve amacı dokümantasyonu doğru anlayıp anlamadığımı ve öğelerin nasıl tanımlanıp kullanılabileceğini doğrulamaktır. Aşağıdaki video kod yürütme sonucunu göstermektedir.


Deneme videosu

Bu son derece basit bir şey. Ancak bu kodu tamamen özerk bir şekilde, MetaEditor'ın dokümantasyonu ve kaynak kodlar dışında kimsenin yardımı olmadan oluşturabilmek bana başka bir şey yapabileceğimi gösterdi. Tek yapmam gereken mevcut C ve C++ bilgimi MQL5'e uyarlamaktı. İşlerin gerçekten ilerlemeye başladığı yer burası.

Belki de yukarıdaki basit koda baktığınızda içinde değerli bir şey bulamıyorsunuz. Ancak her zamanki gibi, bir programlama diline yeni başlayanların ilk görevi “HELLO WORLD” olarak bilinen ve ekranda bir mesaj görüntülemeyi amaçlayan bir kod oluşturmaktır.

Ama “HELLO WORLD” kodu aşamasını çoktan geçtim. Ben de biraz daha karmaşık bir şey denemeye karar verdim. Ancak, MQL5'in gerçekte nasıl çalıştığına dair çok fazla deneyimim ve anlayışım olmadığı için, bir komut dosyası geliştirerek başladım. İşlerin gerçekte nasıl yürüdüğüne dair çok az deneyim ve bilgiye sahip olduğum için bu benim için çok daha kolay bir şeydi.

Ancak bir süre sonra MQL5'in aslında prosedürel bir dil değil, olay tabanlı bir dil olduğunu fark etmeye başladım. Bu keşif, programlama ve kod analizine yaklaşımımı kökten değiştirdi. Becerilerimi geliştirmek isteyerek, burada MQL5 topluluğundaki makaleleri incelemeye ve okumaya başladım ve birçoğunun kodlarını çalıştırabilmesine rağmen, MQL5'i nispeten temel bir şekilde öğrendiklerini fark ettim, en azından benim görüşüme göre. Bu nedenle, MetaTrader 5 platformunun ve MQL5 dilinin yeteneklerini daha derinlemesine keşfedecek daha karmaşık çözümler geliştirmeye ve denemeye başladım.

Ve bir noktada deneylerimin sonuçlarını paylaşmaya karar verdim. İlk makalem bu şekilde ortaya çıktı. Kod oluşturmak başka bir şeydir ve nasıl oluşturulduğunu ve tasarlandığını açıklamak başka bir şeydir. Hem deneyimli hem de yeni başlayanların bu makaleleri okuyacağını biliyordum.

Makaleleri hem biçim hem de içerik açısından uygun şekilde yazdım. Bunu, az deneyimi olanların bile bilgileri anlayabilmesi için yaptım. Materyalde sunulan tüm bilgileri hemen özümseyemeseniz bile, zaman içinde programlama becerilerinizi geliştirdikçe, belirli bir makalede aktarmaya çalıştığım şeyi doğru bir şekilde anlayabileceksiniz.

Bilginin paylaşılması gerekir. Geride değerli bir şey bırakmadan, birinin dünya görüşünü değiştirebilecek bir şey bırakmadan, birçok kişinin farkına varmadığı bir şeyi uyandırmadan, tüm bilgeliğinizle ölmekte bir zafer görmüyorum.

Şimdi koda geri dönelim. Size birkaç satır kodun bile bin satır koddan çok daha fazla bilgi ve birikim içerebileceğini göstermek istiyorum. Başlangıçta, C/C++ sözdiziminin ve dolayısıyla MQL5'in bir parçası olmayan tüm bilgiler İngilizce değildi. Ancak bu sadece küçük bir ayrıntı. Bu küçük koda bakalım ve nasıl çalıştığını anlayalım. Ve esas olarak: Neden çalıştığını?


Kod analizi

İki, üç ve dördüncü satırlar koddan çıkarılabilir. Aslında, MetaTrader 5'e yalnızca kullanıcıyı kodun amacı hakkında bilgilendirmek için hizmet ederler. Kullanıcı olarak, bu satırları öğrenme kodunuzdan kaldırabilirsiniz.

Beşinci satır çok önemlidir çünkü bu satır olmadan MetaTrader 5, komut dosyasının kullanıcı tarafından bir tür girdi yapısı aracılığıyla özelleştirilebileceğini anlamayacaktır; bu durumda bu, 16. ve 17. satırlarda gösterilen 'girdilerdir'. Yakında oraya varacağız.

Şimdi birçok kişinin anlayamayacağı bir şey geliyor. Özellikle de sadece MQL5 çalışmışlarsa veya C/C++'dan çok farklı başka bir dilden geliyorlarsa. Ben 7. ve 11. satırlarda bulunan numaralandırmalardan bahsediyorum.

Bu tür yapılara bakarken büyük olasılıkla kafanız karışabilir. Hatta bunların sizin için çok karmaşık bir şey olduğunu bile düşünebilirsiniz. Ancak tam da MQL5'in C/C++ programcılarını getirmek için inşa edilmiş olması, C/C++'da küçük bir deneyime sahip olanlar tarafından kullanılmasını çok keyifli hale getiriyor. Ancak en azından yüzeysel olarak numaralandırmaları anlayalım.

Bir numaralandırma kabaca, kendilerine değer atayabileceğiniz veya atamayacağınız bir veri dizisi olarak anlaşılabilir. Bir değer atamadığınızda, numaralandırma her zaman ilk olası değerle başlayacaktır, bu durumda sıfırdır. Bu nedenle, 11. satırda tanımlanan numaralandırma 0 veya 1 değeriyle aynı prensibi izler. C/C++'da, MQL5'te olduğu gibi, sıfır değeri yanlış, bir değeri ise doğru olarak kabul edilir.

Bu nedenle, eFalse değerinin tanımlandığı 12. satırda 0 değerine ve numaralandırmanın ikinci değeri olan 13. satırda 1 değerine sahip olacağız. Daha fazla şey tanımlamış olsaydık, sırayı takip ederlerdi, yani bir sonraki iki, üç ve böyle devam ederdi. Bu en basit durumdur.

Dikkatinizi başka bir şeye çekmek istiyorum. 12. satırın sonunda C/C++'da yorum olabilecek bir şey var. Diğer satırlarımızda da aynı tür şeyler var. Şimdi 12. satıra odaklanalım, ancak bu diğer tüm yerler için de geçerli olacaktır.

Grafik üzerinde başlatıldığında komut dosyasına bakarsak, Şekil 1'i göreceğiz. Şekilde 12. satırdaki yorumla eşleşen kısmı vurguluyorum.

Şekil 1

Şekil 1 - Kullanıcı etkileşim penceresi


Bu tür şeyler MQL5 kodlamasını büyük ölçüde basitleştirir. Diğer dillerde, burada MQL5'te yapılanı bu kadar basit ve pratik bir şekilde elde etmek için birkaç şey yapmamız gerekirdi. Bu nedenle, koda bir yorum yazmanın yapılacak doğru şey olduğunu anlamanız gerekir, çünkü bu yalnızca kodu daha anlaşılır hale getirmenize değil, aynı zamanda kullanıcıya görüntülenecek mesajı özelleştirmenize de olanak tanır.

Şimdi başka bir numaralandırmanın olduğu 7. satıra geri dönelim. Ancak, bu numaralandırma az önce açıkladığımdan farklıdır. Bunlar tamamen farklı şeyler değildir: aradaki fark, şimdi her bir öğeye değer atıyor olmamızdır. Yani, derleyici belirttiğimiz değerleri kullanacaktır, bu durumda bunlar MQL5'te tanımlanan sabitlerdir. Şunu sorabilirsiniz: Neden sabitleri bir numaralandırmaya atamak yerine doğrudan kullanmıyorsun? Bunun nedeni uygulama kolaylığıdır. Eğer sabitleri doğrudan kullanacak olsaydık, dizi veya yapı gibi başka bir şey oluşturmamız gerekirdi ve bu çok daha zor. Benim yaklaşımımı kullanarak, herhangi bir değeri herhangi bir konuma veya sekansa ekleyebilirsiniz. Ve bildirdiğim sekansta ilgilendiğim bir sabit görünüyorsa, bu sabiti atamam veya bildirmem gerekmez; tek yapmam gereken numaralandırmaya daha fazla içerik eklemektir ve dil doğru değerlerin kullanılmasını ve uygun şekilde atanmasını sağlayacaktır.

C/C++ gibi bir dilde sağlam, iyi inşa edilmiş bir temele sahip olmanın MQL5 kodu yazarken bize nasıl yardımcı olduğuna dikkat edin. Burada gösterdiğim şeyi MQL5 ile yazılmış kodlarda pek sık görmüyorum. Aslında, birçok kişinin burada elde ettiklerinin aynısını elde etmek için çok daha karmaşık ve zaman alıcı yapılara başvurduğunu fark ettim. Ve sadece bir satır kod yazdığımı unutmayın (21. satır).

Şimdi aşağıdakilere dikkat edin: 21. satırın kendisinde, ki bu aslında çalıştırılacak tek satırdır, açık bir tür dönüşümü yapmamız gerekir. Bu, derleyicinin bunu anlaması ve buna bağlı olarak nihai kodu doğru şekilde oluşturması için gereklidir. Peki açık dönüşüm (explicit conversion) neden bu kadar önemli? Nedeni derleyicidir. İşlemci için gerçekten önemli değildir, çünkü biz sadece sayıları kullanıyoruz ve işlemcinin gerçekte gördüğü de budur. Türler işlemcinin ilgisini çekmez, o sadece sayıları gözlemler. Ancak 21. satırın ikinci değişkeni, sayısal bir değer olmasına rağmen, ChartSetInteger fonksiyonu tarafından tam olarak beklenen şey değildir. Bu fonksiyon sayısal bir değer değil, belirli bir tür bekler. Değer beklenen türü temsil etse bile, yani değer tam olarak kullandığımız sabit olsa bile, derleyici bunu bir hata olarak görecektir. Bu nedenle, bunu düzeltmek için, sayısal değeri ChartSetInteger fonksiyonu tarafından beklenen bir türe dönüştürülmeye açıkça zorluyoruz. Böylece derleyici, fonksiyona aktardığımız değerlerin farkında olduğumuzu anlayabilecektir.


Python üzerine birkaç düşünce

Sevgili okuyucu ve acemi programcı, konuşmamızı bitirmeden önce, çeşitli programlama dilleriyle çalıştığım birkaç yıl boyunca edindiğim deneyim ve bilginin sonucu olarak bazı nihai düşüncelerimi paylaşmak istiyorum. Amacım, MetaTrader 5'te belirli eylemleri gerçekleştirmeye çalışırken ortaya çıkabilecek gelecekteki hayal kırıklıklarını önlemektir.

Ana konumuz MQL5 olmasına rağmen, şu soru sıklıkla sorulmaktadır: Python çalışıp çalışmamak. Birçok kişi, özellikle de finansal piyasalarda işlem yapmak üzere programlama öğrenmeye başlayanlar, MetaTrader 5 ile çalışmak için Python bilgilerini derinleştirmeye değip değmeyeceği konusunda genellikle şüphe duyuyor. Python öğrenmek; C, ardından C++ öğrenmenin zorluklarından geçmekten ve sonunda MQL5 ile profesyonel çalışma için sağlam ve konsolide bir temel elde etmekten çok daha kolay ve hızlı olduğu için bu soru çok önemlidir. Ancak, Python öğrenirken (veya öğrenmezken) zamanınızı boşa harcadığınızı düşünmemeniz için aklınızda tutmanız gereken bir nokta var.

Python programlama dili (bazıları onu bir komut dosyası dili olarak adlandırmayı tercih etse de) MQL5'te yapılabileceklerle karşılaştırılamaz - belki de bu yüzden bazıları onu bir programlama dili olarak görmüyor, ancak burada bu tartışmaya girmeyeceğiz. Amacınız sadece bir şeyi saf matematiksel bir şekilde test etmek, doğrulamak ve analiz etmek için kodlar öğrenmek ve üretebilmekse, o zaman en kısa ve en kolay çözüm Python öğrenmektir. Bunun nedeni, Python'da doğrudan MetaTrader 5 ile etkileşime girerek geriye dönük testler ve benzerlerini çalıştırmanın, aynı şeyi MQL5’i kullanarak yapmaya çalışmaktan daha kolay olmasıdır.

Bazılarına garip gelebilir, ancak biraz eğitim ve çok fazla özveri ile, çok daha fazla deneyime sahip bir programcının MQL5 ile yapabileceği aynı şeyi yapabilen bir Python komut dosyasını kolayca oluşturabilirsiniz. Çoğu zaman, programcının göstergeler, Uzman Danışmanlar oluşturması ve SETUP olarak adlandırılan belirli bir sistemin kârlı olup olmadığını doğrulamak için strateji sınayıcıyı yapılandırması gerekecektir. Her şeyi doğru şekilde ayarlamayarak her şeyi riske atma riskinden bahsetmiyorum bile.

MetaTrader 5’i kullanırken, analiz etmemizi kolaylaştıracak grafiklere ve sonuçların güzel bir sunumuna erişebileceğimizi düşünebiliriz. Ancak, doğrudan MetaTrader 5'te basit bir geriye dönük test gerçekleştirmek için gereken tüm işlevleri programlamak için ne kadar bilgiye ihtiyacınız olacağını düşünün.

Python ile çalışırken MetaTrader 5 veri erişim paketini kullanabilirsiniz. Python'da yapılabilen her şeyi kullanarak, bir MQL5 programcısının yaptığı araştırmanın aynısını yapmak daha kolaydır. Araştırma tamamlandıktan sonra, MetaTrader 5'te yapılabilecek tüm grafiksel gösterimi yapmak için alternatif olarak verileri Excel'e veya başka bir programa aktarabilir ve sonuçları analiz etmeyi kolaylaştırabilirsiniz.

Burada kısa bir açıklama eklemem gerekiyor. Sonuçlar Excel'de çizileceğine göre neden Excel yerine Python kullanılsın? Nedeni basit: VBA (Visual Basic for Application), MetaTrader 5 verilerinin kullanımı göz önüne alındığında, Python aracılığıyla sahip olacağımız aynı verilere doğrudan erişim sağlamaz. Bunu Excel'de yapmak için, ya bu tür şeyleri destekleyecek bir DLL oluşturmalı ya da aynı verileri elde etmek için CSV formatında çok sayıda dosyayı dışa aktarmalısınız.

Excel'e girdikten sonra, Python'da yapılacak tüm hesaplamaları gerçekleştirmek için belki de daha fazla çalışmanız gerekecektir. Olumsuz tarafı, veritabanını değiştirmeye karar verirseniz, tüm işi Excel'de yeniden yapmanız gerekecektir. Ancak Python kullanıyorsanız, yapmanız gereken tek şey Python'a veritabanını değiştirmesi talimatını vermektir ve bunu sizin tarafınızdan herhangi bir ekstra çaba harcamadan doğrudan MetaTrader 5'e sunacaktır.

Bu nedenle, benim tavsiyem öğrenebildiğiniz kadar çok şey öğrenmeye çalışmanızdır, çünkü her aracın avantajları ve dezavantajları vardır. Python çok kullanışlı olmasına rağmen, alım-satım yapmanıza yardımcı olmak için bir grafikte görüntülenecek bir gösterge veya bir Uzman Danışman oluşturmanıza izin vermez. Bu yalnızca MQL5 aracılığıyla uygulanabilir. Dolayısıyla burada daha iyi ya da daha kötü bir araç yoktur. Birbirlerini tamamlarlar ve farklı amaçlara hizmet ederler. Her durumda, her ikisini de çalışın, çünkü birini veya diğerini ne zaman kullanmanız gerekeceğini asla bilemezsiniz.


Sonuç

Burada söz konusu olan tüm basitliğe rağmen, şunu daima hatırlamalısınız: Daha yeni başlıyorsunuz. Karmaşık bir şeyi hemen yapmaya çalışmayın. İşe yarayan bir şey oluşturmaya çalışın. İlk bakışta tamamen yararsız gibi görünse de, basit bir şeyle başlayın.

Fonksiyonları yavaş yavaş denemeye başlayın. MQL5 programlama yeteneklerinizi genişletmek için C/C++ dilini çalışın. Her zaman pratik yapın ve işleri her zaman yapılandan farklı olarak kendi yönteminizle yapmaya çalışın, çünkü bir görev ne kadar karmaşık görünürse görünsün, her zaman onu daha iyi yapmanın bir yolu vardır.

Kodlarınızı basitleştirmeyi öğrenin, sabırlı ve ısrarcı olun. Bilginizin biraz ötesinde bir sorunla karşılaşırsanız pes etmeyin. Böyle bir durumda, daha da fazla şey öğrenin ve zaten bildiklerinize dayanarak bir çözüm oluşturmaya çalışın. Bir sorunu zaten çözdüyseniz, bunun için daha iyi bir çözüm arayın. Nihai ödülünüz, kimsenin sizden alamayacağı bir zenginlik olan engin ve derin bilgi olacaktır. Bilgi ödünç alınabilir ama asla çalınamaz.

Alçakgönüllü olun ve bilginizi başkalarıyla paylaşmaya çalışın. Bunu yaparak yeni şeyler öğrenirsiniz ve başka çözümlere odaklananlar için yeni olasılıklar gösterirsiniz. Hepinize bol kazançlı işlemler diliyorum. Tekrar görüşmek dileğiyle.


MetaQuotes Ltd tarafından Portekizceden çevrilmiştir.
Orijinal makale: https://www.mql5.com/pt/articles/12071

Model aramada brute force yaklaşımı (Bölüm V): Farklı bir bakış açısı Model aramada brute force yaklaşımı (Bölüm V): Farklı bir bakış açısı
Bu makalede, algoritmik alım-satıma oldukça uzun bir süre sonra ulaştığım tamamen farklı bir yaklaşım göstereceğim. Elbette tüm bunlar, aynı anda birkaç problemi çözmesine olanak tanıyan bir dizi değişikliğe uğrayan brute force programımla ilgili. Bununla birlikte, makaleyi daha genel ve olabildiğince basit bir şekilde yazdım, böylece brute force hakkında hiçbir şey bilmeyenler için de uygun hale geldi.
Veri Bilimi ve Makine Öğrenimi - Sinir Ağları (Bölüm 01): İleri Beslemeli Sinir Ağları Veri Bilimi ve Makine Öğrenimi - Sinir Ağları (Bölüm 01): İleri Beslemeli Sinir Ağları
Birçok insan sinir ağlarını sever, ancak çok az insan sinir ağlarının arkasındaki tüm işlemleri anlar. Bu makalede, ileri beslemeli çok katmanlı bir algının kapalı kapıları ardında olan her şeyi sade bir dille açıklamaya çalışacağım.
MQL5’i kullanarak özel bir True Strength Index göstergesi nasıl oluşturulur? MQL5’i kullanarak özel bir True Strength Index göstergesi nasıl oluşturulur?
Özel bir göstergenin nasıl oluşturulacağına dair yeni bir makaleyle karşınızdayım. Bu sefer True Strength Index (TSI) göstergesiyle çalışacağız ve ona dayalı bir Uzman Danışman geliştireceğiz.
Alan Andrews ve zaman serisi analizi yöntemleri Alan Andrews ve zaman serisi analizi yöntemleri
Alan Andrews, alım-satım alanında modern dünyanın en ünlü "eğitimcilerinden" biridir. Onun "yabası" neredeyse tüm modern fiyat analiz programlarında yer almaktadır. Ancak çoğu yatırımcı bu aracın sağladığı fırsatların bir kısmını bile kullanmaz. Ayrıca, Andrews'un orijinal eğitim kursu sadece yabanın değil (ana araç olarak kalmasına rağmen), diğer bazı faydalı yapıların da tanımını içermektedir. Bu makale, Andrews'un orijinal kursunda öğrettiği muhteşem grafik analiz yöntemlerine dair bir fikir sunmaktadır. Bu yöntemler çok sayıda görsel kullanılarak incelenecektir.