English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
preview
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ı

MetaTrader 5Alım-satım |
440 0
Evgeniy Ilin
Evgeniy Ilin

İçindekiler


Giriş

Konuyla ilgili son makaleyi yayınladığımdan bu yana epey zaman geçti. O zamandan beri daha önce yaptığım pek çok şeyi yeniden düşünmek zorunda kaldım. Bu, daha önce dikkate alınması mümkün olmayan tüm küçük şeyleri hesaba katarak, kârlı algoritmik alım-satım problemine tamamen farklı bir açıdan bakmamı mümkün kıldı. Standart ve renksiz matematik ve kod yerine, okuyucularıma probleme tamamen farklı bir şekilde yaklaşmalarını öneriyorum. Bu makale hem yeni bir şeyin başlangıcı hem de eskinin canlandırılması olabilir. Zeki olmaktan ve gereksiz denklemleri ve kodları tarihin çöplüğüne atmaktan yoruldum, bu yüzden bu makale herhangi bir okuyucu için olabildiğince basit ve anlaşılır olacaktır.


Hedefe ulaşmanın yolları

Algoritmik alım-satımı kullanarak para kazanmaya çalışırken insanları başarıya götüren veya çıkmaz sokaklara sürükleyen yolların çeşitliliği hakkında düşünmeye başladım. Teorik olarak, birkaç yol olduğu ortaya çıkıyor:

  1. Doğrudan yaklaşım.
  2. Güzel bir resim.
  3. Hazır alım-satım sistemleri.
  4. Genel kullanıma açık algoritmaların modernizasyonu ve hibridizasyonu.
  5. Takım yaklaşımı.

İlk yaklaşım inatçı insanlar arasında en yaygın olanıdır. Aslında benim gibi insanlar için hırs ve yanlış umutlardan vazgeçmek açısından faydalıdır. Kulağa pek bir anlam ifade etmiyor ama aslında geleceğiniz için çok yararlı. Bu yaklaşım çok fazla çaba ve zaman gerektirir ve bir noktada durmazsanız, ortaya çıkan tüm sonuçlarla birlikte forum bilimlerinde bir doktora sahibi olabilirsiniz. Sanırım burada herhangi bir açıklama yapmama gerek yok. Herkes yaptığım kinayeyi gayet iyi anlıyor. Yine de bu yaklaşım, benim zamanında öğrendiğim teorik bilgileri öğrenmenizi sağlar ve değeri yadsınamaz. Önemli olan zamanında durmaktır. Elbette, harcanan zaman ve elde edilen sonuçları tartarsak, sonuç mükemmel olmaktan uzak olacaktır.

İkinci yaklaşım çok daha basittir ve aslında harcanan zaman açısından çok daha etkilidir, çünkü çok daha az çaba gerektirir ve tek yapmanız gereken insanları başarılı olduğunuza ikna etmektir. Her şey kafamızın içinde ve bir noktada bunun harika çalıştığını fark ettim. İnsanlar güzel ambalajlara güvenme eğilimindedir. Burada ahlaka ya da başka bir şeye yer yoktur. Önemli olan tek şey sonuçtur. Bu alaycı görünebilir, ancak tüm dünya bu şekilde yaşıyor. İhtiyacınız olan tek şey belirli bir imaj yaratmak. Martingale, ortalama alma (averaging) veya diğer alım-satım tekniklerini kullanabilirsiniz. Böyle bir imaj yaratmak için oldukça yeterlidirler.

Üçüncü yaklaşımın akıllıca olduğuna inanıyorum çünkü bu durumda harcanan çaba minimum olacaktır, ancak resminiz gerçek olacaktır. Bu yaklaşımın doğru bir şekilde uygulanmasıyla, bazı dezavantajlar olsa da hiçbir olumsuz yön olmayacaktır. Bu yaklaşımı uygulamak için gereken en önemli şey bilgidir. Şu anda sahip olduğum deneyime sahip olmasaydım, doğru tutum ve hedeflerime ulaşmak için rasyonel ve dengeli bir yaklaşımla bile bundan yararlanamazdım.

Dördüncü yaklaşıma gelince, bunu uygulayan var mı bilmiyorum. Teorik olarak daha az zaman alması gerekir, ancak verimliliği hakkında bir şey söyleyemem. Genel olarak her şey mümkün, ancak bu yaklaşımın en etkili yaklaşım olduğunu düşünmüyorum. Bunun yerine, bir öncekiyle birlikte kullanmak daha iyidir, çünkü bu, alım-satımınızın değişkenliğini artıracak ve daha tutarlı alım-satım sinyalleri alma şansınızı artıracaktır.

Beşinci yaklaşım ancak çok sayıda fikriniz varsa ve bunlar üzerinde sürekli çalışıyorsanız etkili olabilir, bununla birlikte, her ekip üyesi doğrudan bir yaklaşım kullansa bile ilkinden çok daha iyidir. Ancak alım-satım sistemleri geliştirenlerin çoğu narsist yalnızlardır ve sadece birkaçı böyle bir ekibi bir araya getirebilir ve en önemlisi çalışmalarını organize edebilir. Böyle ekipler olduğunu ve oldukça başarılı olduklarını biliyorum. Kârlı algoritmalar geliştirmek için birlikte çalışan böyle bir ekipte bulunuyorsanız ne mutlu size. Bunun avantajı, sonuçta gelişmelerin toplam nitelik ve niceliğinin belirleyici bir rol oynayabilmesi ve rekabetçi bir ürün yaratmayı mümkün kılmasıdır.

Elbette bunlar oldukça idealize edilmiş senaryolar ve herkesin yolu biraz kendine özgü, ancak buna rağmen, hangi yolu seçerseniz seçin, sonucun öncesinde her zaman bir tür bilgi edinimi olacağını kesinlikle söyleyebilirim. Sadece teknik ya da felsefi olması gerekmiyor, benim durumumda her ikisi de söz konusu. Bana öyle geliyor ki tam da böyle olmalı, çünkü bir problemin çözülebilmesi için her zaman her yönden bakılması gerekir.


Otomatik alım-satım sistemlerine dayalı düzenli bir gelir elde etmek

Otomatik alım-satıma yönelik uyumlu bir yaklaşım bulmadan önce, fikrin tasarlandığı andan uygulanmasına kadar tüm süreci baştan sona yapılandırmamız gerekir:

  1. Fikir.
  2. Uygulama planının düzenlenmesi.
  3. Geliştirme.
  4. Hataları düzeltme.
  5. İyileştirmeler ve modernizasyon.
  6. Kapsamlı testler.
  7. Optimizasyon ve uygulanabilirlik sınırlarının belirlenmesi.
  8. Alım-satım için hazırlık (kaynaklar, demo hesabı).
  9. Gerçek bir hesapta işlem yapma.

Eğer acemiyseniz, sisteminizin çalışması gerektiğinden neredeyse yüzde yüz emin olacaksınız çünkü ya bir yerde okudunuz ya da kendiniz kurguladınız ve işe yarayacağına kendinizi ikna ettiniz. Gerçek şu ki, piyasanın matematiksel bir modeline sahip değilsiniz ve o kadar karmaşık ki, bir modeliniz olduğunu varsaysak bile, inanılmaz karmaşıklığı ve onu bir Uzman Danışmanda kullanmanın akıl dışı olması nedeniyle onu kullanamayacaksınız. Peki ne yapabiliriz? Cevap göründüğü kadar basit değil. İşte tam da bu yüzden kendi brute force algoritmamı geliştirdim.

Süper bir Uzman Danışman oluşturma görevini üstlenirseniz, istenen sonuca ulaşmadan önce bu tür birçok aşamadan geçeceğiniz açıktır, ki bu aslında son derece kuşku vericidir. Bunu kendi deneyimlerimden biliyorum. Bir başka başarısız Uzman Danışman geliştirme girişiminden sonra en can sıkıcı şey, bunun atılması gerekeceği gerçeğidir; bu, kazanılan deneyimin tüm yararlılığına rağmen, harcanan zamandan kaynaklanan hayal kırıklığını azaltmadığı anlamına gelir. Uzman Danışmanları kendiniz geliştirdiğinizde bu kaçınılmazdır. Eğer bir Freelance siparişinden bahsediyorsak, o zaman her şey daha da üzücüdür, çünkü büyük olasılıkla hiçbir işe yaramayacak olan bir Uzman Danışman elde edeceksiniz.

Bu bağlamda, bunun öncelikle sizin zamanınızla ilgili olduğunu açıkça belirtmek isterim. Başarılı insanlar zamanın değerini doğru bir şekilde değerlendirme becerisine sahiptir. Harcanan zaman istenen sonucu vermiyorsa, o zaman devam etmeye değmez. İşte standart yaklaşım şeması:

Diyagram 1.

Standart yaklaşım

Diyagramdaki her eylem kendi zamanını alır ve genel sonuç doğrudan sahip olduğunuz bilgi ve kaynaklara bağlıdır. Kaynaklar, mutlaka yatırımlar için mevcut fonlarınız anlamına gelmez, daha ziyade alım-satım sistemlerinin sürekli test edilmesi için bilgisayarların veya gerekli ekipmanı satın almak için fonların mevcudiyeti anlamına gelir. Hedeflerinizin peşinden gitme arzunuz ve boş zamanınızın olup olmaması da önemlidir. Mesele şu ki, iyi bir alım-satım sistemi bulmak veya oluşturmak savaşın sadece yarısıdır, ikinci yarısı ise çok az boş zamanınız olduğunu göz önünde bulundurarak onu nasıl düzgün bir şekilde yöneteceğinizle ilgilidir.

Konuyla ilgili en azından biraz bilgi sahibiyseniz, MQL5 Mağazasından veya diğer kaynaklardan hazır alım-satım sistemleri kullanırsak diyagramın nasıl değişeceğini görebilirsiniz. Hepsini yeniden çizmeye gerek yoktur, sadece uygun değişiklikleri yapmak yeterlidir:

Diyagram 2.

Geliştirmeyi arama ile değiştirmek

Diyagramın anlamı değişmez, ancak hazır bir şey aramak ve seçmek, tonlarca kod yazmaktan çok daha kolay ve çok daha keyifli olduğunu söyleyebilirim. Neyse ki ikisini de yapabiliyorum. Elbette bu bilgi ve deneyim gerektirir. Diğer şeylerin yanı sıra, bu diyagramın arkasındaki fikir Uzman Danışmanların zaman içinde geçerliliğini yitirebileceği ve çoğunun kesinlikle hurdaya çıkacağıdır. Bir Uzman Danışmanı attıktan sonra, bir süre sonra tekrar kullanılabileceğinden şüphelenmiyorsunuz, değil mi? Uzun süredir unutulmuş algoritmaları aramak için çöp yığınını kazmak ve bunları nasıl uygulayacağınızı düşünmek de çok zaman alacaktır.

Bununla birlikte, belirli bir Uzman Danışman veritabanı biriktirmek ve bunları akıllıca değiştirirken başarılı bir şekilde alım-satım yapmaya devam etmek iyi olacaktır. Bu durumda sürecimiz daha da basitleşir, çünkü yeni Uzman Danışmanlar aramaya gerek yoktur. Bu mümkün mü? Evet, öyle. İdeal olarak, bu Uzman Danışman koleksiyonu aşağıdaki niteliklere sahip olmalıdır:

  • Algoritma esnekliği.
  • Sinyal ters çevirme olasılığı.
  • Performans (minimum kaynak tüketimi).
  • Emir sihirli sayıları.

Bu verilere dayanarak, seçilen bir Uzman Danışman koleksiyonunun geleceğine yönelik beklentinin matematiksel bir tanımını girmek bile mümkündür. Hatta bu Uzman Danışmanların özelliklerinin ve değerlerinin neyi nasıl etkilediğini daha açık hale getirmek için bu tür ifadeler bulmaya çalışabiliriz. Alternatif olarak, basit ve anlaşılabilir bir liste yapabiliriz:

  1. Ne kadar çok Uzman Danışman olursa, koleksiyonumuz o kadar iyi olur (çünkü ne kadar çok Uzman Danışman olursa, seçilen alım-satım alanında gerekli işlem kriterlerini o kadar çok karşılayacaktır).
  2. Bir Uzman Danışman ne kadar çok girdiye sahip olursa, o kadar etkili bir şekilde optimize edilebilir.
  3. Çubuklara dayalı Uzman Danışmanlar daha iyidir (kullanımı, test edilmesi ve optimize edilmesi daha kolaydır ve gecikme, kayma ve diğer sorunlar hakkında endişelenmemize gerek yoktur).
  4. Alım-satım sinyalini tersine çevirmek mümkünse, Uzman Danışmanın ağırlığı iki katına çıkar.

Bu ayrı bir konu olduğu için burada aşırı optimizasyon ve geçmişe uyum üzerinde durmayacağım. Tüm bunları nasıl doğru bir şekilde yapacağınızı bildiğinizi varsayıyorum. Her şey doğru yapılırsa, diyagramımız çok basit bir tasarıma dönüşür:

Diyagram 3.

Uzman Danışman veritabanına dayalı alım-satım

Açıkçası, ne kadar çok Uzman Danışmana sahip olursanız, robotları o kadar iyi sıralayabilirsiniz. Ancak burada birkaç tatsız anla karşı karşıyayız. Elde etmek istediğimiz seçim kalitesi ne kadar iyi olursa, bu seçimi yapmamız o kadar fazla zaman alacaktır. Ayrıca birçok kez seçim yapmak zorunda kalacağız. Bunu düzenli olarak yapmanız gerekir. Dolayısıyla, birisi sizin için her şeyi yapmazsa, bu sadece başka bir işe dönüşecektir. Bu bağlamda, şu soru ortaya çıkmaktadır: "Hiçbir riski olmayan, test edilmiş düzenli çalışma örnekleri varken neden buna ihtiyacım olsun ki?"

Ayrıca, alım-satım faaliyetlerinizde ne kadar başarılı olmak istiyorsanız, o kadar fazla eş zamanlı çalışan terminale ihtiyacınız vardır. Bu, her terminali sürekli olarak izlemeniz, yeni Uzman Danışmanlar eklemeniz ve çıkarmanız, ayrıca çalışmalarını yapılandırmanız ve izlemeniz gerektiği anlamına gelir. Anlayacağınız üzere, tüm bunlar bir vagon dolusu iş. Kendimizi sürekli yeni Uzman Danışmanlar geliştirme ihtiyacından kurtarmış olmamıza rağmen, hala ana rutinden kurtulmuş değiliz. Başlıca yoğun çaba gerektiren noktaları sıralayalım:

  • Optimizasyon kullanarak Uzman Danışmanların seçilmesi.
  • Bir demo hesap üzerinde ön ileri test.
  • En dayanıklı alım-satım sinyallerini seçme.
  • En dayanıklı kombinasyonları kullanarak gerçek alım-satım.
  • Sürekli kontrol (kapatma, duraklatma, robotları değiştirme vb.) (terminallerle çalışma).

Tüm bunlar mümkündür, ancak yalnızca en uygun iş akışı paradigmasına sahipseniz. Ancak elbette bunun da bir sınırı var. Tecrübelerime dayanarak, yalnız çalıştığınızı düşünüyorum. Boyundan büyük işlere kalkışmak hiç de kolay değil, zira her şey zaman alır.

Başlangıçta, basit algoritmalar kullanarak kârlı alım-satım yapmanın mümkün olup olmadığını anlamak için araştırma amaçlı brute force algoritmamı geliştirdim. Bunun yapılabileceğini fark ettim. O dönemde sahip olduğu yetenekler göz önüne alındığında, yalnızca toplam Uzman Danışman sayısını artırmak için ek Uzman Danışmanlar sağlayabiliyordu. Basit Uzman Danışmanların nasıl yardımcı olabileceğini ve bunları nasıl doğru kullanacağımızı daha iyi anlamak için, belirli bir algoritmanın kârlı alım-satım problemini nasıl çözebildiğini ve belirli Uzman Danışmanlara nasıl uygun şekilde davranılacağını biraz daha derinlemesine anlamamız gerekir.


Uzman Danışmanlar ve modeller

Bir algoritma koleksiyonuna sahip olmak ve bunları sürekli olarak optimize etmek yeterli değildir. Optimizasyon ayrı bir beceridir ve ustalığı, Uzman Danışmanı bir işlem hesabında kullanmanın sonucunu belirler. Her Uzman Danışman kendine özgüdür ve hem optimizasyon hem de kullanım açısından kendi nüanslarına sahiptir. Herhangi bir Uzman Danışmana dahil edilmesi gerektiğini düşündüğüm önemli bir seçenek, alım-satımı tersine çevirme yeteneğidir. Bu, herhangi bir alım-satım işleminin tersi ile değiştirildiği, yani alışın satışla ve satışın alışla değiştirildiği anlamına gelir. Başlangıçta bu seçenek tamamen gereksiz görünmektedir çünkü her şeyin amaçlandığı gibi çalışması gerektiğine dair yanlış bir inanç vardır.

Bu gerçeği anlamak için öncelikle bir modelin ne olduğunu anlamamız gerekir. Popüler anlayışa göre model (formasyon), bazı istatistiksel özellikler ile rastgele dağılım arasındaki farktır. Bu konu yüzeysel olarak ele alındığında, modellerin durağanlığı hakkında düşünülebilir. Ancak bu, belirli bir model için olası gelecek senaryolarından yalnızca biridir. Modellerin sadece küçük bir kısmı durağanlığa sahiptir. Bulunan modeli bir geriye dönük test veya bir alım-satım sinyali içinde ele alalım.

Elimizde çok geniş bir robot veri tabanı olduğunu ve bu veri tabanından şu veya bu nedenle uygun olduğunu düşündüğümüz bazı özelliklere göre ayrı gruplar oluşturabileceğimizi varsayalım. Özellikler, gruplamanın kendisi kadar önemli değildir:

Diyagram 4.

Robotları gruplama

Burada, brute force programım ilk kez akış şemasının bir öğesi olarak ortaya çıkıyor. Aslında, program bu gruplamayı her bir kopyasının farklı ayarları sayesinde gerçekleştirir. Özünde, programın farklı şekilde yapılandırılmış her bir kopyası, seçim yapılabilecek tamamen bağımsız bir robot grubudur. Oluşturulan robotlar, akış şemasının en altında gösterilen alım-satım için kullanılabilir. Burada en önemli şey, tüm bu robot gruplarının bir süre sonra üç gruba ayrılmasıdır:

  • Doğrudan sinyal ile kârlı olanlar (model durağanlığına dayalı olarak).
  • Ters sinyal ile kârlı olanlar (ani model değişikliğine dayalı olarak).
  • Kaotik (geçmişe basit uyum).

Hangi setin belirli bir sinyal grubunu sağlayacağını önceden bilmek imkansızdır, ancak bir süre sonra dışlama ile filtreleme mümkündür. Bu bağlamda, ne kadar çok bağımsız grup ve sinyal olursa o kadar iyi olur. Her Uzman Danışman grubu için en az iki sinyal oluşturmak daha iyidir:

  1. Doğrudan sinyal.
  2. Ters sinyal.

Buna ek olarak, farklı gruplardan gelen karışık sinyalleri de ekleyebiliriz. Tüm bunlar, uzun süre çalışabilecek, uyumlu bir şekilde oluşturulmuş Uzman Danışman gruplarını etkin bir şekilde bulma şansını en üst düzeye çıkaracaktır. İki gerçek, mümkün olan en kısa sürede iyi portföyler bulmanızı sağlayabilir:

  1. Mevcut Uzman Danışmanların en yüksek kalitede ve etkili şekilde gruplandırılması (mümkün olduğunca çok sayıda bağımsız grup).
  2. Her grup için doğrudan ve ters sinyal + karışık olanlar.

Tüm bu faktörler nihayetinde en çok sayıda ve çeşitli sinyalleri sağlayarak bize gerçek alım-satımda daha sonra kullanmak üzere mümkün olan en iyi örneklemi sunar. Bu tür gruplandırmaların yapılabilmesini etkileyen en önemli faktörler Uzman Danışman koleksiyonunun büyüklüğü ve çeşitliliğidir. Benim programım söz konusu olduğunda, ayarlarının özenli olması ve analiz yöntemleri, kümeleme vb. gibi dahili algoritmaların çeşitliliği çok önemlidir. Değişkenliği artırmanın evrensel yöntemlerinden biri kümelemedir:

Diyagram 5.

Çalışma sınırlamaları

Bu durumda kümeleme, robotların alt gruplarını haftanın günlerine ve bir gün içindeki zaman pencerelerine göre bölme olanağı ile temsil edilir; bu da zaten Uzman Danışmanları portföyler halinde gruplamak için en geniş fırsatları sağlar. Elbette birçok kümeleme seçeneği bulabilirsiniz, ancak bunun en basit ve en etkili seçenek olduğuna inanıyorum. Ayrıca, programın kendisini belirli gün ve saatlerde çalışacak şekilde yapılandırmak için de kullanılabilir. Bu, hesaplama kaynakları tüketiminin mümkün olan en yüksek optimizasyonuna ve programın her bir kopyası için doğru ağırlıkların ayarlanmasına olanak tanır. Her ayarın kendi hesaplama karmaşıklığı vardır, bu nedenle bu teknik gereklidir.

Ek olarak, karmaşık ve basit Uzman Danışmanlar hakkında birkaç söz söylemek istiyorum. Teorik olarak, hemen hemen her modelle ilgili olarak mümkün olduğunca esnek ve değişken olacak bir Uzman Danışman oluşturmak mümkündür, ancak sistem ne kadar karmaşıksa, onu bozmanın o kadar kolay olduğu sanırım herkes için açıktır. Elbette sistemin süper başarılı ve hata toleranslı olması da mümkündür, ancak olaylara gerçekçi bir şekilde bakalım. Diyelim ki birkaç kişi böyle bir sisteme sahip (bunun bir ütopya olduğunu düşünüyorum) ve bunu kesinlikle başkalarıyla paylaşmayacaklar. Ama diğer insanlar ne yapmak zorunda?

Herhangi bir başarılı algoritmik yatırımcı, sunduğum basit gerçekleri anlamalıdır ve büyük ölçüde, bu tür insanların kârı bu anlayışa dayanmaktadır. Kârlı alım-satım, her şeyden önce, elinizdeki araçları doğru bir şekilde kullanma becerisidir. Sihirli stratejiler beklemek en iyi çözüm değildir. Her fikir, beraberindeki doğru çözümlerle hayata geçirilebilir. Bu makalede belirli algoritmalara odaklanmadan göstermeye çalıştığım şey budur. 


Çalışma zincirinde maksimum otomasyon

Fikir, basit bir araştırmadan istikrarlı alım-satım sinyalleri bulmanın tam otomasyonuna doğru kademeli olarak gelişti. Tam olarak olması gereken noktaya geldi. Şu anda sistemim, basit alım-satım Uzman Danışmanlarının oluşturulmasından MetaTrader 4 ve 5 terminallerinde alım-satıma kadar çok çeşitli görevleri yerine getiriyor. Şu anda programımla yaptığım şeyin mevcut versiyonu kabaca şöyle görünüyor:

Diyagram 6.

Brute force kullanımının mevcut yapısı

Bu yapı beni aşağıdaki gibi rutin işlemlerden tamamen kurtarıyor:

  • Uzman Danışmanların seçilmesi ve gruplandırılması.
  • Grafiklerde Uzman Danışmanları etkinleştirme/devre dışı bırakma ve sonraki yapılandırmaları.
  • Ayarları optimize etme ve seçme.
  • Yeni Uzman Danışmanlar için arama yapma.
  • Yeni Uzman Danışmanlar oluşturma.

Bu yapının püf noktalarından biri, Telegram kanalıma ulaşan basit Uzman Danışmanlar üretmenin yanı sıra, aynı zamanda terminallerin içinde evrensel bir Uzman Danışman olduğu gerçeğidir. Program yeni bir çalışan Uzman Danışman bulduğunda onu sürekli olarak grafiklerden kaldırmaya ve yüklemeye gerek yoktur. Bunun yerine, Uzman Danışmanın kendisini ve Uzman Danışmanın eşdeğeri olan ayrı bir metin dosyası oluşturur. Dosya, evrensel Uzman Danışmanın ayarları okuduğu ilgili bir dizinin bulunduğu ortak terminal klasöründe yerini alır. Bunların hepsi anında otomatik olarak gerçekleşir ve benim kontrolümü gerektirmez ve Uzman Danışmanın kendisi Telegram kanalında son bulur.

Böylece, tüm sistem hem Uzman Danışmanları oluşturmayı hem de bunları kanalıma otomatik olarak göndermeyi otomatikleştiriyor. Tek yapmam gereken sistemi ölçeklendirmek, ekipman satın almak ve alım-satım sinyallerini izlemek. Şimdi, elbette, tüm bunlar yeteneklerinin %1'inde çalışıyor, ancak bir sunum seçeneği olarak oldukça uygun olduğunu düşünüyorum.

Şu anda elimde sadece bir bilgisayar var. Oldukça eski, ancak iki bağımsız iş dizisinin (brute force programları) dönüşümlü olarak çalışmasını sağlamak için yeterli. Bu iki kuruluma dayanarak iki sinyal oluşturdum: her biri için doğrudan ve ters ve ek olarak doğrudan ve ters karışık sinyaller. İki aylık test sonuçlarına dayanarak yukarıda söylediklerimi görebilirsiniz:

Şekil 1.

Doğrudan kârlı ve ters kârlı

Test sonuçlarına göre, iki ay boyunca minimum kapasitede sürekli alım-satım yapıldığında sadece iki net pozitif sinyal kaldı. Orada bir tane daha var (karışık) ama burada gösterilen ters olanla neredeyse aynı. Tamamen farklı iki alım-satım algoritmasına ve bunların ayarlarına işaret ediyorlar. Burada hem doğrudan bir sinyal hem de ters bir sinyal üzerinde pozitif alım-satım elde edilebileceğini görebiliriz. Tüm test süreci boyunca oluşturulan Uzman Danışmanları Telegram kanalımda bulabilirsiniz. Bağlantı profilimde ve makalenin sonunda mevcuttur.


Evrensel alıcı Uzman Danışmanlar

Elbette, daha özenli ve yüksek kaliteli Uzman Danışmanlar çok daha etkilidir. Otomatik alım-satım için kullanılabilirler. Ancak çoğu Uzman Danışmanlar tekrar tekrar kullanılabilir. Her algoritmanın uygulanabilirlik sınırları vardır ve görünüşte bir geliştiricinin veya müşterinin beklentilerini karşılamayan birçok Uzman Danışmanın kendi kullanılmayan kaynağı vardır. Kaç alım-satım sisteminin test aşamasına (en azından bir demo hesapta) asla ulaşamadığının yaklaşık oranını tahmin edersek, bunlardan basitçe tonlarca olduğunu göreceğiz.

Gerçek şu ki, bir Uzman Danışmanı nasıl düzgün bir şekilde optimize edeceğinizi bilmiyorsanız, kesinlikle atılacaktır. Bu yüzden birkaç ilginç Uzman Danışmanı çöpe attım. Sadece biraz daha farklı kullanılabileceklerini fark etmemiştim. Ne yazık ki, bu biraz deneyim gerektiriyor. Bu konuya burada değinmeyeceğim ancak biraz sonra ileri düzey optimizasyonla ilgili ayrı bir makale yazacağım.

Böyle bir maceraya karar vermek kolay değil, çünkü içgüdüsel olarak her zaman bir süper-Uzman Danışman alıp terminale koymak, bir düğmeye basmak ve en azından birkaç hafta boyunca unutmak istiyorsunuz. Ancak yine de onu bulmamız ve gerçekten istediğimiz özelliklere sahip olduğunu teyit etmemiz gerekiyor. Ancak şunu düşünün: siz onu ararken, elinizdeki her şeyi alıp mümkün olduğunca çok sayıda farklı konfigürasyon çalıştırabilirsiniz.

Elbette, bu tür Uzman Danışmanların alım-satım sürecini yetkin bir şekilde kontrol etmek için çok fazla zaman ve çaba harcamanız gerekecektir. Sistemimde, oluşturulan danışmana (ayar) uygun bir isteğe bağlı eklenti olan evrensel bir Uzman Danışman kullanarak bu sorunu aştım. Böyle bir Uzman Danışmanın ilk ve en basit versiyonu aşağıdaki önemli kontrol değişkenlerini içerir:

input int DaysToFuture=50;//Days to future
input LOT_VARIATION LotMethod=SIMPLE_LOT;//Lot Style
input bool bInitLotControl=false;//Auto lot bruteforce
input double MinLotE=0.01;//Min Lot
input double LotDE=0.01;//Lot (without variation)
input double MaxLotE=1.0;//Max Lot
input bool CommonE=true;//Common Folder
input string SubfolderE="T_TEYLOR_DIRECT";
input int MinutesAwaitE=2;//Minutes To Check New Settings
input bool bBruteforceInvertTrade=false;//Invert Bruteforce Trade

Elbette tüm değişkenler bunlar değildir, ancak aşağıdaki önemli eylemlerin otomasyonunu sağlamak için gerekli olan değişkenler bunlardır:

  • Alım-satım için belirlenen izin verilen süre dolduktan sonra alım-satımın devre dışı bırakılması (mevcut ayar sırasında yeni bir tane oluşturulmamışsa, eski olan geçerliliğini kaybeder).
  • Alım-satım tarzı (basit lot / belirli bir işlem penceresi içinde lotta minimumdan maksimuma kademeli artış / belirli bir işlem penceresi içinde lotta maksimumdan minimuma kademeli düşüş).
  • Geçerli terminal klasöründen / ortak terminal klasöründen ayarları okuma.
  • Bir alt dizin seçebilme.
  • Ayarların güncellenmesi için aralık.
  • Sinyalin ters çevrilmesi.

Tüm bunlar, terminaller ve brute force programı arasındaki etkileşimi esnek bir şekilde yapılandırmamıza ve aynı zamanda yeteneklerinin izin verdiği ölçüde tek bir makinede aynı anda keyfi olarak çok sayıda terminal ve brute force makinesi başlatmamıza olanak tanır. Tek şey, şimdi her grafiğe ayrı bir Uzman Danışman atamam gerekiyor, çünkü henüz evrensel bir çoklu alıcı yapmadım. Daha sonra eklenecektir. Daha iyi ve daha özenli alım-satım uygulamak için buna ihtiyacımız olacak. Diyagramda tüm artıları ve eksileri görmek çok uygun olacaktır:

Diyagram 8.

Avantajlar ve dezavantajlar

Diyagramdan da görülebileceği gibi, hem basit hem de gelişmiş alıcı Uzman Danışmanda uygulanmak üzere iki sistem önerilmektedir:

  • Paralel alım-satım senkronizasyon sistemi.
  • Paralel alım-satım optimizasyon sistemi.

Bunlar tüm algoritmalar için çok önemli eklentilerdir ve hem paralel alım-satımın kalitesini artırabilir hem de alım-satım maliyetlerini düşürebilir. Bunları bir süre sonra faaliyete geçirmeyi planlıyorum, ancak şimdilik bunun için gerekli kaynak yok.

Sadece bir Uzman Danışman ile alım-satım yapmaktan bahsediyorsak, tüm bunlar gereksizdir, ancak birçok Uzman Danışmanın paralel çalışmasından bahsettiğimizde, kaçınılmaz olarak böyle bir eklenti ihtiyacı ortaya çıkar. Benim yaklaşımımın avantajı, tüm Uzman Danışmanların tekdüzeliğine dayanarak bu eklentileri daha verimli bir şekilde uygulayabilmemdir. Bu hem harici hem de dahili sistemler için geçerlidir.

Ayrıca, çoklu alıcının her bir enstrümana takılmasına gerek kalmadan tek bir grafik üzerinde çalışmak üzere tasarlandığını söylemek isterim. Böyle bir Uzman Danışmanın tek dezavantajı, her bir enstrüman için özelleştirmenin daha zor olmasıdır, ancak yine de dezavantajlardan çok daha fazla avantajı vardır. Belki sonraki makalelerimden birinde bu sistemler üzerinde daha ayrıntılı olarak duracak ve makale yazmaya ara verdiğim dönemde gerçekleştirebildiğim yeniliklerin teknik detaylarını anlatacağım.


Dinamik fiyat koleksiyonu için Uzman Danışman

Önceden, programda manuel olarak açılması gereken metin dosyaları oluşturan basit bir Uzman Danışmanım vardı. Elbette bu veriler bir süre sonra geçerliliğini yitiriyor. Yukarıda açıklanan tüm yapıların çalışmasını sağlamak için taze fiyatlara erişmemiz gerekiyor. Bunu yapmak için tek yapmam gereken, ortak terminal klasörüne sürekli olarak veri yazan bir Uzman Danışman yapmaktı. Alım-satım yapılabilir enstrüman ve dönem setlerini derlemek için, ilgili listeleri program ayarlarına eklemeye karar verdim:

Diyagram 9.

Yeni fiyatların güncellenmesi

Bu tekniği kullanarak, verileri birkaç klasörde çoğaltmaya gerek kalmadan her tarayıcıyı kendi benzersiz enstrüman-dönem setine sahip olacak şekilde yapılandırabiliriz. Bu durumda, herhangi bir sayıda işlem terminalini çalıştırmak için yalnızca bir terminale ihtiyaç vardır. Analiz aralıklarını yıl olarak belirlersek, verilerin güncellenmesindeki olası duraklamalar ve gecikmeler önemsiz olacaktır. Buna ek olarak, tüm sistem çubuk bazında paradigmaya dayanmaktadır, bu nedenle her şey mümkün olduğunca güvenilir ve neredeyse tüm acil durumlara karşı dayanıklıdır. Bu botun yalnızca birkaç ayarı vardır:

input bool CommonE=true;//Common Folder/Terminal Folder
input double YearsE=10.0;//Years Of History Data
input int MinutesForNew=2;//Rewrite Timeout In Minutes

Uzman Danışman ya ortak terminaller klasörüne ya da mevcut terminalin kendi klasörüne yazar. Mevcut terminal zamanından başlayıp geçmişte geriye giderek belirttiğimiz geçmişin son yıllarını yazar. Uzman Danışman, dakika cinsinden belirtilen bir zaman aşımından sonra yazar. Bu, tüm mantığın son öğesiydi. En zor kısmı bitti. Geriye kalan tek şey, aynı grafik üzerinde çalışan bir alıcı Uzman Danışman uygulamaktır. Bunun uygulanması için işlevselliğin yarısını zaten hazırladım.


Sonuç

Bu makalede, alışılagelmiş teknik kısımdan uzaklaştım ve kendi deneyimlerimi kullanarak kârlı alım-satım problemine biraz farklı bir açıdan bakmaya çalıştım. Gördüğünüz gibi, Uzman Danışmanların kendilerine ek olarak (kâr elde etmenin sadece küçük bir kısmıdır), kâr elde etmenize yardımcı olabilecek veya çabalarınızı engelleyebilecek birçok incelik ve nüans vardır. Oldukça ilginç bir şekilde, sonuç başlangıçta amaçlanandan çok uzaktır.

Yol boyunca, orijinal fikri yavaş yavaş gerçeğe uyarlamak zorunda kaldım; bu tamamen kontrol edilemez bir süreçti, ancak daha ziyade spontane ve kaçınılmaz bir süreçti. Sonuç olarak, kaçınılmaz olarak sadece pratik bir şekilde bulunabilecek olan teorik çıkmazdan doğru yolu buldum. Bu da daha fazla robot, daha fazla sinyal, daha fazla bilgisayar ve daha fazla otomasyon anlamına geliyor. Bu makalenin, alternatif bir çıkış yolu bulmanın her zaman mümkün olduğunu ortaya koyan birçok teorisyen ve Kâse arayıcısı için bir tür itici güç olmasını isterim. Bir sonraki makalede, sistemimin ne gibi gelişmeler kaydettiğini ayrıntılı olarak göstereceğim. Ancak hâlâ yapılması gereken çok iş var.

Şu anda mevcut olan tüm sinyallere buradan ulaşabilirsiniz. Makalede sadece en önemlilerini gösterdim. Bunlardan daha fazla olacak ve ek güç ve iyileştirmeler elde ettikçe kaliteleri de artacak. Kararlı ve çok yönlü sinyallerden oluşan bir grup elde edip edemeyeceğimi göreceğiz. Otomatik olarak oluşturulan Uzman Danışmanlara gelince, bunları herkese açık Telegram kanalımda bulabilirsiniz. Şimdilik, kaliteleri mevcut minimum kapasitemle eşleşiyor, ancak daha sonra, kapasite arttıkça, hem çeşitlilik hem de kalitede bir artış göreceksiniz.

Linkler

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal makale: https://www.mql5.com/ru/articles/12446

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.
MQL5 - Siz de bu dilin ustası olabilirsiniz MQL5 - Siz de bu dilin ustası olabilirsiniz
Bu makale, MQL5 dilinde ilk adımlarımı nasıl attığımı anlatacağım bir tür kendimle röportaj niteliğinde olacaktır. Size nasıl harika bir MQL5 programcısı olabileceğinizi göstereceğim. Bu başarıya ulaşmanız için gerekli temelleri açıklayacağım. Tek ön koşul öğrenmeye istekli olmaktır.
MQL5 Strateji Sınayıcıyı anlayın ve etkin bir şekilde kullanın MQL5 Strateji Sınayıcıyı anlayın ve etkin bir şekilde kullanın
MQL5 geliştiricilerinin önemli ve değerli araçlarda uzmanlaşması gerekir. Bu araçlardan biri de Strateji Sınayıcıdır. Bu makale, MQL5 Strateji Sınayıcıyı anlamak ve kullanmak için pratik bir kılavuzdur.
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.