English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
Expert Advisor Nasıl Sipariş Edilir ve İstenen Sonuç Nasıl Elde Edilir?

Expert Advisor Nasıl Sipariş Edilir ve İstenen Sonuç Nasıl Elde Edilir?

MetaTrader 5Ticaret | 22 Aralık 2021, 13:48
226 0
Andrey Khatimlianskii
Andrey Khatimlianskii


Giriş

Otomatik alım satım yeni bir ivme kazanıyor - Yeni MQL5 ile MetaTrader 5'i piyasaya sürme süreci tamamlandı. Otomatik Alım Satım Şampiyonası 2010'u başarıyla geçti ve alım satım platformunun yeni sürümü, broker tarafından aktif olarak tanıtılıyor. MetaTrader 5'in öncülü olan MetaTrader 4, halen dünya çapında yüzlerce broker ve milyonlarca yatırımcı tarafından aktif olarak kullanılmaktadır.

Bu popülerliğe rağmen (daha doğrusu bu nedenle), ortalama bir yatırımcının profesyonel seviyesi düşüyor; diğer herhangi bir alanda olduğu gibi, nitelik nadiren kaliteye dönüşüyor. Otomatik alım satımı (alım satım ve programlama bağlantısı) düşünürsek, durum daha da kötüdür; çok az yatırımcı bilgisayar programlama yeteneğine sahiptir ve çoğu insan için, hatta teknik zekaya sahip olanlar için dahi, programlamada uzmanlaşma çok zorlu olabilir. Ayrıca, programlamayla ilgilenmeyenleri de unutmamalıyız. "En iyi yaptığımız şeyi yapmalıyız" diyenlerle aynı fikirde olmadığımı söyleyemem.

Bunların tümü bizi yavaş yavaş makalemizin konusuna yöneltti. MetaTrader programlama hizmetlerine bir talep var ve bu talep artmaya devam ediyor. Talebin olduğu yerde arz vardır; bu, piyasanın yasasıdır. Gerçekten de, para kazanmak isteyen programcılar ve stratejilerini otomatikleştirmek isteyen yeterince yatırımcı mevcut. Ancak, ne yazık ki, aralarındaki iletişim her zaman karşılıklı bir fayda ile sonuçlanmıyor; birçok tatminsiz müşteri ve kavramları açıklamaktan yorulmuş programcı var.

Bu makalede, "Müşteri - Programcı" iletişimi sırasında ortaya çıkabilecek sorunlar ele alınmaktadır. Söz konusu makale, her şeyden önce, yatırımcılara yönelik olarak tasarlanmıştır; yatırımcılar genellikle farklı bir zihinsel yapıya sahip insanlarla uğraşma deneyiminden yoksundur. Ancak bu makalenin programcılar için çok faydalı olacağına dair bir şüphe yok; bir ilişki her zaman iki taraflıdır ve ortak girişimin başarısı her ikisine de eşit derecede bağlıdır.


İçindekiler

  1. Fikri Doğrulama
  2. Yanılgılardan Kurtulma
  3. Hedefleri Belirleme
  4. Kelime Hazinesini Senkronize Etme
  5. Gereklilikler Spesifikasyonu'nu Hazırlama
  6. Başvuru Sahibini/Geliştiriciyi Seçme
  7. Kendinizi Aldatılmaktan Koruma
  8. Sonuçları Kontrol Etme
  9. Geri Bildirimde Bulunma


1. Fikri Doğrulama

Fikri doğrulama Müşterinin hayal kırıklığına uğramasının en yaygın nedeni stratejisini kaybetmesidir. Yarı otomatik bir Expert Advisor veya gösterge yerine tam bir alım satım sistemi söz konusu olduğunda, yatırımcı Expert Advisor'dan tek bir şey bekler; karlı bir alım satım .

Böylece programcıdan uzun zamandır beklediği bildirimi alır, istemci terminalini çalıştırır, test etmeye başlar... ve parlak fikrinin nasıl mevduat kaybına yol açtığını görür. Parametreleri tekrar doğrular, geçmiş verileri günceller... ve bir kez daha mevduat kaybı olduğunu görür. Bazı yatırımcılar programcıya hemen öfkeli bir mektup yazmaya başlar (elbette suçlu odur!) ve daha sabırlı olan yatırımcılar sonuçları test eder ve sorunun ne olduğunu anlamaya çalışır. Ama bu, gerçeği değiştirmiyor; inandıkları fikrin karsız olduğu ortaya çıktı.

Daha sonra bir dizi farklı olası seçenek vardır. Bazıları programcıyı beceriksiz olmakla suçlar ve iş için herhangi bir ödeme yapmadan başka bir programcı bulmaya başlar. Diğerleri hararetle durumu nasıl düzelteceklerini bulmaya çalışırlar ve "bazı küçük değişiklikler" yapılmasını isterler (elbette, bunlar çok küçük değişiklikler olduğu için ücretsiz!). Açıkçası, hatasını olduğu gibi kabul eden ve sorumluluğu programcıya yüklemeyen müşteriler olduğunu da belirtmeliyim. Ama bu bölüm onlara yönelik olarak yazılmadı; iyi bir özeleştiri anlayışları var.

Bunlar, yalnızca sonuçlar; büyütmenin bir anlamı yok, sorunun nedenlerini bulup ortadan kaldırmak çok daha mantıklı. Sorun, yatırımcının fikrini kontrol edemeyecek kadar tembel olması. Bunu yapmak için, rastgele bir geçmiş veri aralığı seçilmesi ve her gün dikkatlice, stratejinin nasıl çalışacağının ve sonucun ne olacağının gözlemlenmesi gerekir. Bu, görsel test modunda daha kolay ve daha hızlı yapılır (bunun yakında MetaTrader 5'te mevcut olacağından eminim), ancak test gerçek zamanlı olarak da yapılabilir - bir demo hesabında bir veya iki haftalık bir çalışmayla.

Gerçekten, tüm stratejiler geçmiş veriler üzerinde test edilemez. Bazı fikirlerin kontrol edilmesinin gerçekten zaman alıcı olabileceğini kendi kişisel deneyimlerimden biliyorum. Bazen Expert Advisor için ödeme yapmanın, saatlerce grafiklerin önünde bir kalemle oturmaktan daha kolay olduğunu anlıyorum. Ancak, uygulama için denenmemiş bir fikri gönderirken sonucun sizin için çok tatsız bir sürpriz olabileceğini göz önünde bulundurun!

Unutmayın! Programcı stratejinizin karlılığından sorumlu değildir; programcının görevi onayladığınız algoritma ile çalışacak bir program yazmaktır.

Bazen programcı size sisteminizin zayıf yönlerini söyleyebilir (bunu ilk yapan siz değilsiniz), ancak bu yalnızca onun iyi niyetinden kaynaklanır. Sizi hatalardan korumak veya size danışmak zorunda değildir ve fikrinizi ücretsiz olarak kontrol etmekten kesinlikle sorumlu değildir. Bir EA sipariş ederken, stratejinize tamamen güvenmeli veya bunun yalnızca bir girişim olduğunu anlamalısınız; sonucun münhasırlığı ile sizi şaşırtması pek olası değildir.

Bu nedenle, ara sonucumuz, uygulanması konusunda talimat verilmeden önce stratejiyi birkaç kez kontrol etmenin en iyisi olduğudur.


2. Yanılgılardan Kurtulma

Escher'ın imkansız küpüYalnızca ne görmek istersek onu görüyoruz. Bir yat, okyanusta bir ada ve bir bavul dolusu para istiyoruz . Grafiklere bakıyoruz ve yalnızca başarılı gösterge sinyallerini görüyoruz. Gözlerimizi kapatıyoruz ve hesap bakiyemizdeki sıfırları zihinsel olarak sayıyoruz ... Ancak, program yalnızca algoritmaya dayalı olarak çalışır ve yanılgılarımızı ortaya çıkarır.

İkinci en büyük ve en sık rastlanan hayal kırıklığı nedenleri kafa karışıklığı ve kendini kandırmadır. İlk adımı atmaya ve fikrinizi kontrol etmeye karar verirseniz süreci eleştirel olarak ele alın. Bu aşamada birçok hayal kırıklığından kaçınılabilir; sadece pembe gözlüklerinizi çıkarmaya çalışın ve stratejiye mantıklı bir şekilde bakın.

Çok yaygın bir durum şu şekildedir: İnternette (bir forumda, blogda, çevrimiçi bir kitapta) bir strateji hakkında bir şeyler okudunuz ve bunun için bir Expert Advisor yapmaya karar verdiniz. Grafikleri gözden geçirip, hesaplamaların doğruluğunu tahmin ettiniz ve "Sonunda... İşte Kutsal Kase burada!" diye düşündünüz. Durum, stratejinin işe yaradığı bu süper göstergenin indirilmesi (veya Tanrı korusun, satın alınması) ile daha da kötüleşir - Artık, görevin % 90'ının tamamlandığı ve geriye yapılacak çok az şey kaldığı yanılgısına kapılırsınız.

Bu noktada yarınız kendinize şu basit soruyu sormuş olsaydı ("Bu strateji neden herkese açık bir alanda bulunuyor?") (veya bir satın alma durumunda kendinize şu soruyu sormuş olsaydınız: "Yazar onu kullanmak yerine neden satıyor?") şu anda sahip olduğum müşteri sayısının tam olarak yarısına sahip olurdum ... Ama bizler mucizelere inanırız ve kendimizi başka türlü ikna etmeyiz! Tamam, bunu yapmayacağım. Ancak, kişisel paranızı harcayacağınız şeyi kontrol etmekten sizi alıkoyan şey ne?

İşte kendi yanılgılarınızın tuzağına düşmekten veya birinin kötü niyetine hedef olmaktan kaçınmanıza yardımcı olacak birkaç kural. Bunlar olası sorunlarının tamamını çözemeyebilir, ancak sizi en yaygın hatalardan kurtaracaktır.

  1. Kaynak kodu içermeyen göstergelere karşı çok şüpheci olun!
    • Nasıl çalıştıklarını yalnızca biraz anlayabileceksiniz ve hiç kimse gelecekte davranışlarının değişmezliğini garanti edemeyecek.
    • Bunlar, eski sinyallerin yeniden çizilmesine yol açan kodlama hatalarından veya belirli enstrümanlar veya hesap türleri üzerinde çalışırken uygun olmayan davranışlardan kasıtlı bir aldatmacaya (geçmiş veriler üzerinde önceden bilinen başarılı sinyallerin çizilmesine) veya çalışma süresi veya hesap numarası üzerinde basit bir kısıtlamaya kadar her şeyi içerebilir.

    Programlamayı kesinlikle anlamasanız dahi, emin olmak için veya Expert Advisor'ı sipariş etmeden hemen önce daima tanıdığınız bir programcıdan programı "incelemesini" isteyebilirsiniz.

  2. Göstergelerin çalışmasını gerçek zamanlı olarak gözlemleyin!
    • Göstergenin çevrimiçi olarak nasıl çalıştığını bilmeden, geçmişteki sinyallerini dikkate almanın bir anlamı yoktur; bu, yalnızca güzel (ama ne yazık ki işe yaramaz) bir resim olabilir.
    • Neredeyse tüm göstergeler son (tamamlanmamış) çubuktaki değeri değiştirebilir ; bu normaldir. Geçmişte (oluşturulan çubuklarda), bu değişikliklerin görünmediğinin, gösterge verilerinin tamamlanmış çubuklarda çizildiğinin anlaşılması gerekir. Bu, sinyallerin (oklar, gösterge/fiyat çizgilerinin kesişmesi) sistemde (bir pozisyon açmak için) yalnızca ortaya çıkmasının ardından sonraki çubukta kullanılabileceği anlamına gelir. Expert Advisor'ın testi sırasında sinyalleri (çubuğun kapanmasını beklemeden ) kullanmaya çalışırsak, çok fazla ok ve kesişme (ve dolayısıyla açık pozisyonlar) olduğu, ancak o sırada çubuğun kapanmasıyla, bunların çoğunun ortadan kaybolduğu ortaya çıkacaktır. Grafikte pozisyonu görürsünüz ancak karşılık gelen sinyali görmezsiniz; bu, yalnızca çubuk oluşumu takip edilirken görünür.
    • Bazı göstergeler, değeri yalnızca sonuncu çubuk için değil, aynı zamanda birkaç önceki çubuk için de değiştirebilir. Bu, bazen göstergenin özüne neden oldu (örneğin, bir Fraktalın oluşumu için, sağında 2 çubuk olmalıdır ve ZigZag'ın son bölümü, yeni bir bölümün koşulları karşılanana kadar uzun bir süre yeniden çizilebilir), ancak çoğu kez, bu tür davranışlar kasıtlı bir aldatmaca kanıtıdır; birçok gösterge yalnızca geçmiş verilerle ilgili (bunları satmak için) hoş bir çizim için oluşturulur ve bunları alım satımda kullanmak neredeyse imkansızdır.

      Geçmişte, gösterge, en dipte al, en tepede sat sinyalleri veriyorsa, bu, bunun çok iyi bir gösterge olduğunu değil, tam tersine "geçmişi öngörmek" olduğunu gösterir.

    • Oturup saatlerce çevrimiçi grafiği izlemek gerekli değildir; birçok gösterge görsel test modunda test edilebilir. Ama yine de, test etmenin en güvenilir yolu, onu bir demo hesabında çalıştırmak ve izlemektir. Göstergeyi grafiğe ekleyebilir, biraz bekleyebilir ve tekrar ekleyebilirsiniz (aynı parametrelerle); "gerçek" ise (önceki değerlerin yeniden çizimini kullanmıyorsa), göstergenin her iki kopyasındaki resmin aynı olması gerekir. Göstergenin yeni kopyası farklı sinyaller gösteriyorsa sinyallerini geçmiş üzerinde analiz etmek bir işe yaramaz.

  3. Stratejiyi geçmişin farklı aralıklarında kontrol edin!
    • Çoğu zaman, bilinçsizce test için çok uygun (sisteminiz için) bir geçmiş aralığı seçersiniz. Bu, ister göstergenin sinyaliyle giriş, ister bir talimatlar ızgarası veya bir formasyon tanıyıcı olsun - her zaman stratejinin para kazanacağı bir aralık olacaktır. Ancak Expert Advisor'ı mevcut tüm geçmiş veriler üzerinde test ettiğinizde, en başarısız aralıkları hemen göreceksiniz. Bunları kendiniz bulmaya çalışın.
    • Birkaç rastgele geçmiş aralığı seçin. Örneğin, Ocak 2008, Ekim 2009 ve Ağustos 2010'u alın, bunları gözlerinizle tarayın ve karlı ve karsız sinyallerin oranını hesaplayın. Diğer enstrümanlardaki ve zaman dilimlerindeki sinyallerin kalitesine bakmaya çalışın. Fikrin bir özü varsa, büyük olasılıkla diğer koşullarda (muhtemelen biraz değiştirilmiş gösterge parametreleri veya durdurma düzeyleri ile) işe yarayacaktır.
    • Tek bir kontrol için sistem parametrelerinizi değiştirmeyin. Ağustosu gözden geçirirken , belirli gösterge parametrelerini kullanacaksanız ve Eylül'e geçtikten sonra (daha iyi uyan) diğer parametreleri alacaksanız yalnızca kendinizi kandırıyorsunuz demektir. Kontrol aynı koşullar altında yapılmalıdır, aksi takdirde yalnızca görmek istediğinizi görürsünüz. Sistem parametrelerinin her zaman aynı kalması gerektiğini söylemiyorum, ancak bunları "anında" değiştirmek istiyorsanız değişim kriterlerini düşünmelisiniz. Geçmiş hakkında sonuçlara varmak her zaman kolaydır, ancak gelecekte ne olacak?
    • Strateji için geçmişin en karmaşık aralığını bulun ve sistemi bunun üzerinde test edin. Çok yaygın taktikler olarak kanalların kullanılması ve genellikle sonraki pozisyonların açılışında lotun iki katına çıkarılmasıyla desteklenen geriye dönük hareketi beklemek geçmişin bazı aralıklarında mükemmel bir şekilde işe yarar. Ancak piyasa kanalda uzun vadeli hareketlere ve güçlü trendlere sahiptir ve her iki sistem de periyodik olarak mevduat kaybına yol açar. Sisteminiz için en tehlikeli olacak geçmiş aralığını bulun (bir çöküş taktiği için uzun bir düze ve geriye dönük harekete dayalı taktikler için güçlü bir tek yönlü hareket) ve bu aralıkta alım satım işlemi yaparken sorunları izleyin .

      Ve gelecekte daha da uzun bir düz ve hatta daha aşırı bir trend hareketi görebileceğinizi unutmayın; piyasa sürekli değişiyor. Her zaman bir "güvenlik marjı" ayırın.

  4. Sabit maliyetleri göz önünde bulundurun (spread'ler, swap'lar, komisyonlar, marj gereksinimleri, talimatların kurulumu için minimum izinler)!
    • Çoğu uzun vadeli strateji için, birkaç puanlık bir hata onlar için alakasız olduğu için, bu giderlerin tümü önemli değildir. Ancak otomatik alım satımın gelişme trendi, küçük karlar ve yüksek frekanslı alım satım ile giderek daha fazla strateji geliştirildiğini ve spread'deki 2 puan veya Durdurma Düzeyindeki 10 puan artışın oldukça fark edilebilir hale geldiğini göstermiştir.
    • Tüm MetaTrader grafiklerinin (4. ve 5. sürümler) Alış fiyatı kullanılarak oluşturulduğunu , uzun pozisyonun açılması ve kısa pozisyonların kapatılmasının ise Satış fiyatı ile gerçekleştirildiğini unutmayın. Aklınızda alım satım işlemi yaptığınızda, spread'i hesaba katmak uygun değildir, ancak her zaman alım satım işleminin toplam sonucunu alabilir ve ondan alım satım işlem sayısını, spread ile çarparak çıkarabiliriz; bu, sonuçları gerçeğe daha yakın hale getirecektir.
    • Geçmişi analiz ederken, birkaç yıl önce alım satım koşullarının çok farklı olduğunu unutmayın. 1999'un "kabarık" grafiği, mevcut spread'i kullanarak alım satım yaparsak, scalping stratejileri için idealdir. Ama 1999'da spread 3-4 kat daha fazlaydı! Her işlemden o dönemin gerçek spread'ini çıkarırsak, sanal olarak elde ettiğiniz karlardan geriye hiçbir şey kalmaz. Durum, diğer koşullarla dahi benzerdir; birkaç yıl önce, mevcut maksimum kaldıraç 1:100 idi ve bekleyen bir talimat verme mesafesi onlarca puanla ölçülüyordu.
    • Basın bültenlerinde alım satım koşullarının değişebileceğinin (elbette daha kötüsü için) ve talimatların yürütülmesinin gecikebileceğinin ve kayma olabileceğinin belirtildiğini unutmayın. Geçmiş ile ilgili "mükemmel bir haber sistemi" icat etmeyin, bunları en azından mikro-gerçek hesapta test etmeye çalışın. 2 puanlık bir spread ve anlık yürütme öngörüyorsanız sisteme bakışınız büyük ölçüde değişir ama pozisyon 5 saniye sonra 10 puanlık bir kayma ile açılır ve spread o kadar genişler ki pozisyonu kapatmak en azından zarar etmeden zor olur.
    • Alım satım koşullarıyla ilgili olarak her zaman bir "güvenlik marjına" sahip olun. Spread'deki en ufak bir değişiklik veya bir pozisyonun açılmasında birkaç saniyelik bir gecikme nedeniyle sisteminiz "bozulursa" "gerçek mücadelede" hayatta kalması pek olası değildir.

      Spread'in, stratejilerin çoğu için mevduat kaybının nedeni olduğunu unutmayın (yani, yatırım yönünün %50'ye yakın doğruluk olasılığı ile seçilmesi); bu nedenle stratejiyi mümkün olduğunca geliştirmeye çalışın, böylece spread, sonucu büyük ölçüde etkilemeyecektir.

Tüm kontrollerden sonra hala sisteminize kesin olarak inanıyorsanız ve hala otomatikleştirmek istiyorsanız, o zaman daha ileri gidebiliriz.


3. Hedefleri Belirleme

Hedefleri belirlemeNeden bir Expert Advisor'a ihtiyacınız olduğunu hiç merak ettiniz mi? Strateji Test Cihazı'nda fikrinizi kontrol etmek mi istiyorsunuz? Ya da belki mikro-gerçek hesapta hazır bir strateji denemek istiyorsunuzdur? Hayır, biliyorum; 2 yıldır sisteminizde alım satım işlemi yapıyorsunuz ve Expert Advisor'ı hemen gerçek bir hesapta 100 000 USD mevduat ile başlatacaksınız.

Bu görünüşte işe yaramaz sorular çok nadiren sorulur. Genel olarak bu, anlaşılabilir bir durumdur; yanıtlar yalnızca bazı küçük şeyleri etkiler: Teknik gerekliliklerin ayrıntıları , Başvuru Sahibinin/Geliştiricinin seçimi ve belki de işin maliyeti. Ancak bunun hakkında düşünürseniz, farklı yaklaşımlar arasındaki fark çok önemli olabilir.

Çoğu durumda, programcı, Expert Advisor'ı Strateji Test Cihazı için mi (minimum kontrollerle ve istisnaları ele almadan) yoksa gerçek alım satım için mi yazacağını umursamaz. Uzun süredir MQL'de yazıyorsa ve programlarının istikrarı konusunda herhangi bir şikayet almıyorsa, kesinlikle herhangi bir algoritmanın uygulanması için bir temele sahip demektir ve Strateji Test Cihazı sürümü veya gerçek bir hesap sürümü için yazma yaklaşımında herhangi bir farklılık olmayacaktır.

Ancak böyle bir kişiyle çalışacak kadar şanslı olsanız dahi, teknik gereklilikleri hazırlarken farkı hissedeceksiniz.

Bunu bir örnek üzerinde açıklayayım:

  1. Bir numaralı durumda yalnızca bir fikri test etmeniz gerekir (bunu bir yerde buldunuz/duydunuz /okudunuz). Bu şu anlama gelir:
    • Bunu, gerçek bir hesapta çalıştırmayı planlamıyoruz - Her tür kontrolün yapılması ve istisnaların ele alınması gerekmez.
    • Expert Advisor aktif olarak test edilecek ve optimize edilecektir; maksimum performansa ulaşmamız gerekiyor (belki de sağlamlık adına).
    • Büyük olasılıkla, ilk sürümü kontrol ettikten sonra düzeltmeye ihtiyacı olacak; bir Expert Advisor kolaylıkla genişletilmeli ve genişletilebilir olmalıdır.
    • Algoritmanın "darboğazlarının" (izin verilen minimum mesafelerde talimatların ayarlanması, açılış ve kapanış pozisyonlarının sırası, maksimum lot sınırlamalarının atlanması, bağlantı kesintilerinden sonra işin yeniden başlatılması vb.) işlenmesine gerek yoktur; zira hangilerinin son sürümde alaka düzeyini koruyacağını bilmiyoruz.

  2. İki numaralı durumda strateji hazırdır; gerçek hesap için geçerli bir ExpertAdvisor'a ihtiyacınız var. Bu, önceki sürümden şu şekilde farklı olacaktır :
    • Tüm alım satım işlemleri mümkün olduğu kadar doğru olmalıdır; yalnızca kullanıcı tanımlı parametrelerin değerlerinin test edilmesi gerekmez, aynı zamanda tüm değerler çalışma sürecinde hesaplanır (lot boyutu, durdurma talimatlarının düzeyleri vb.).

      Alım satım işlemi taleplerinin "kalitesi", sunucunun hesabınızla "ilişkisini" doğrudan etkiler; sunucu yanlış alım satım talimatları bombardımanına tutulursa hesabı kolayca bloke edebilir ve durumun kontrolünü kaybedersiniz.

      Kritik bir hata durumunda, kullanıcıyı (ekrandaki bir mesaj, bir e-posta, Skype, ICQ veya SMS yoluyla) haberdar etmeniz gerekir.
    • Çalışma hızının aksine sağlamlığı ön plana çıkarılmıştır - Bazı ek kontroller olası bir hatayı önlemeye yardımcı olacaksa Expert Advisor'a dahil edilmelidir. Hatta testi ve optimizasyonu yavaşlatsa dahi (gerçek zamanlı olarak çalışırken, yürütme hızı çoğu zaman belirgin değildir).
    • Gelecekteki iyileştirmeler, ihtiyaç duyulsa dahi, minördür. Bu nedenle, genişletilebilirlik kolaylığı için özel gereklilikler belirtilmemiştir.
    • Algoritmanın tüm "darboğazları" kapsamlı bir şekilde düşünülmeli ve doğru bir şekilde işlenmelidir. Bir hatanın meydana gelebileceği durumlar minimum düzeyde olmalıdır (ne yazık ki, tamamı için önlem alamayız):
      • Expert Advisor, geçici bir bağlantı kesilmesinden, hesaba yeniden bağlanılmasından veya istemci terminalinin sıfırlanmasından sonra normal çalışmasına geri dönebilmelidir.
      • Bekleyen veya durdurma talimatlarını ayarlayamıyorsanız bunlar sanal olarak takip edilmeli ve düzeylerinin fiyatına ulaşıldığında piyasa fiyatı üzerinden yürütülmelidir.
      • N denemeleri içinde piyasa fiyatlarında pozisyon açamazsanız izin verilebilir maksimum kayma artırılmalıdır.
      • Bekleyen veya durdurma talimatının, algoritma tarafından sağlanmayan bir düzey tarafından ve kayma ile (örneğin, bir fiyat boşluğu ile) tetiklenmesinde, tüm bağımlı talimatların düzeyleri (ve hatta belki de hacimleri) ayarlanmalıdır.
      • Mevduatın boyutuna göre çalışan tüm işlevler (örneğin, lotun hesaplanması), normalde bakiye (bakiye veya para çekme) ile ticari olmayan işlemleri kabul etmelidir.
      Liste uzayabilir. Bu türden sonsuz sayıda nüans vardır ve her stratejinin de ayrıntıları vardır.
    • Ayrıca, öne sürülen ek gereklilikler vardır - Expert Advisor mevcut enstrümanların listesini, bunların özelliklerini ve diğer sunucu ayarlarını (maksimum bekleyen talimat sayısı, Stop Out düzeyleri, pozisyonları /talimatları zıt yönlerde açma fırsatı (yalnızca MetaTrader 4 için) vb.) hesaba katarak farklı aracılarla iyi çalışmalıdır.
  3. Ve üç numaralı durum- Expert Advisor'ı gerçekten de 100 000 USD mevduatla gerçek bir hesapta başlatmaya hazırsınız. Gerçek hesap için önceki sürümlere kıyasla bir şeyler değişecek mi? Her şey paranoyanıza bağlı (üzgünüm, öngörünüze dayalı demek istemiştim):
    • Daha fazla günlük dosyası oluşturmanın ve grafiklerin ekran görüntülerinin düzenli olarak kaydedilmesinin kesinlikle bir zararı olmayacaktır; bunlar, bir sorunu veya uyuşmazlığı analiz etmede çok yararlı olabilirler.
    • Expert Advisor'ı tahsis edilmiş sunucu üzerinde çalıştırmayı planlıyorsanız çalışmasının başka bir (paralel çalışan) kopya ile kontrol edilme/düzeltilme olasılığını öngörebilirsiniz. Örneğin, Expert Advisor'ı aynı anda hem tahsis edilmiş sunucuda hem de evde çalıştırabilirsiniz ve "sunucu" kopyasının 5 dakika veya daha fazla bir süre boyunca bağlantısının kesilmesi durumunda "ev" kopyası durumu kontrol edebilmelidir.
    • EA'nın çalışmalarını sürekli olarak izleyemiyorsanız, mevcut hesap durumu ve alım satım işlemi durumu hakkında saatlik (veya günlük) bir raporlama uygulayabilirsiniz. Her durumda kritik hataların bildirimleri mevcut olmalıdır.
    • Alım satım sürecini kontrol edebilmek istiyorsanız, yalnızca bir telefonunuz olsa dahi , bir "geri bildirim" gerçekleştirebilirsiniz - Komutları Expert Advisor'a SMS, e-posta, Skype, ICQ yoluyla veya bekleyen talimatları ayarlayarak gönderebilme özelliği (yorumlarda komutların açıklamasıyla birlikte).

Peki, farkı anlayabiliyor musunuz? Bu yöntemi sadece kısa bir şekilde gözden geçirdik; bu öğelerin her biri baştan sona düşünebilir ve sonsuza kadar genişletilebilir. Ve daha değinmediğimiz o kadar çok ayrıntı var ki!

Ayrıntıları inceledikten sonra, algoritma detaylarını düşünmenin gerçekten Expert Advisor'ın amacına ve müşterinin gerekliliklerine bağlı olduğu netlik kazanıyor.

Programcıdan tüm nüansları eşit kalitede uygulamasını bekleyemezsiniz; bu tür kalite standartları ne yazık ki henüz mevcut değil. Bu nedenle, Expert Advisor'a ne için ihtiyaç duyduğunuzu belirleyin, farklı durumlarda nasıl hareket etmesi gerektiğini düşünün ve bunu teknik gerekliliklerde belirttiğinizden emin olun.

Basit hataların (yeni fiyat bildirimleri, geçersiz durdurmalar vb.) standart olarak ele alınması, kendine saygı duyan herhangi bir EA geliştiricisi tarafından eklenecektir. Ancak bu "standart davranışın" sizin özel stratejinize uygun olacağı garanti edilmez.

Örneğin, hesaplanan düzeye ayarlamak mümkün değilse, Zararı Durdur düzeyini izin verilebilir minimum mesafeye ayarlamak her zaman en iyi yol değildir; diğer talimatlar veya devam eden pozisyon serisinin maksimum kaybı buna bağlı olabilir. Bu nedenle, yine, gerçek bir hesap için bir EA oluşturma yolundaysanız, işinizin hazırlık aşamasında maksimum sayıda senaryo düşünün.

Programcıdan her zaman olası durumların bir listesini hazırlamasını ve bunların ele alınması için bir algoritma geliştirmesini isteyebilirsiniz. Ancak stratejinizin analizinin ve düzeltilmesinin yanı sıra algoritmanın oluşturulmasının da Expert Advisor yazmakla doğrudan ilgili olmadığını unutmayın. Bu, işin ayrı bir parçasıdır ve sonucu Expert Advisor kodu değil, algoritmanın metnidir. Bazıları bu iş için makul bir şekilde ekstra ödeme talep edebilir; zira bu işe zaman harcıyorlar ve orta düzeyde olmasına rağmen yine de bir sonuç alıyorsunuz; bu algoritma ile başka bir programcıya gidebilirsiniz.

Ve tüm programcıların gerçek hesaplar üzerinde çalışma deneyimine sahip olmadığını unutmayın. Temel olarak, olası tüm sürprizlerin farkında olmayabilirler. Muhtemelen tüm şirketlerle, her tür hesapla, tüm olası enstrümanlarla ve tüm farklı piyasa koşullarında çalışmış tek bir kişi yoktur. Deneyimlerinizi (varsa) paylaşın, programcıdan deneyimlerini paylaşmasını isteyin fakat tüm sürprizlere karşı garanti altında olduğunuzu düşünmeyin. Bu, ne yazık ki gerçekçi değil.

En kritik kısma yaklaştık; teknik gerekliliklerin hazırlanması kısmına, ancak rotamızı bir süreliğine değiştireceğiz...


4. Kelime Hazinesini Senkronize Etme

Bir iletişime başlamadan önce, kiminle iletişim kuracağınızı anlamaya çalışın. "Hattın diğer ucunda" tamamen farklı bir kişi var ve onun bilgisi sizinkinden oldukça farklı olabilir.

"Kelime hazinesini senkronize edene" kadar (ortak bir dil bulun, terimleri tanımlayın), ortak bir hedefe doğru ilerlemek tatsız ve zor olabilir. Başlangıçta, bir takım şeyler sizin için o kadar çok kafa karışıklığına neden olabilir ki, basit bir Expert Advisor'ın geliştirilmesi, ilişkinin anlaşılması açısından rahatlıkla günler (hatta haftalar) alabilir.

O halde bunu, dolambaçlı yoldan giderek bir örnekle açıklayalım.

Musluğunuzu değiştirmeniz gerektiğini farz edin. Bir tesisatçı çağırıp şöyle dediğinizi düşünelim: "Yüzümü yıkadığım bir şeyi kırdım!" Tek elimle açabileceğim yeni bir tane istiyorum". Kulağa aptalca geliyor, değil mi? Ama inanın ki, yatırımcılar tarafından gönderilen bazı görevler daha da aptalca görünüyor!

Şimdi kendinizi bu tesisatçının yerine koymaya çalışın. Evet, üç aşağı beş yukarı konunun ne olduğunu anladı, ancak bu "görev" için hiçbir şey yapamıyor. Ve yalnızca bir telepat gerçekten ne tür bir musluk istediğinizi anlayabilir.

Şimdi bunu farklı bir yolla deneyelim. Tesisatçıyı çağırıp şöyle dediğinizi düşünelim: "Banyomda yeni bir musluğa ihtiyacım var. Sıcak ve soğuk su borularının çapı 13 mm, borudan lavabonun tabanına kadar olan mesafe 20 cm. Basınç ve su sıcaklığı ayarının tek kulp ile yapılması gerekiyor. Birkaç model arasından seçim yapabilirim.

Tam isabet! Artık tesisatçı şunları biliyor: a) Bir musluk kulpuna ihtiyacınız var, b) Bunun iki valfli ve tek kulplu kumandalı olması gerekiyor; c) 20-25 cm uzunluğunda ve 13 mm çapında bir hortum bağlaması gerekecek. Evinize geldiğinde, size aralarından seçim yapabileceğiniz birkaç çözüm sunabilecek ve işini hızlı bir şekilde yapabilecektir.

MQL'de yazan birçok programcı alım satım konusunda gerçekten bilgilidir; ne kadar çok müşteriyle iletişim kurar ve Expert Advisor programlarlarsa, analize yönelik yaklaşımların çeşitliliğini o kadar iyi anlarlar. Ayrıca, birçoğu kendileri için stratejiler geliştirir ve alım satım literatürünü inceleyip tematik forumlara katılırlar.

Ama onlardan çok fazla şey talep etmeyin! Günlük yaşamınızda kullanabileceğiniz "Fibo-ızgarayı son 2 fraktalın üzerine uzatın" ifadesi deneyimsiz bir teknisyeni çıkmaza sokabilir. Sık kullanılan "Kilidin tetiklenmesinden sonra..." veya "Londra'nın açılışında, durdurmaları başa baş düzeyine ayarlayın" ifadesiyle işini bitirin ve istemci hazır - Uzun saatler soru sorma ve açıklama güvencesine sahip olmuş olursunuz.

Ortak "MA"nın, "36 yumuşatma dönemine sahip hareketli ortalamalı teknik gösterge" olarak adlandırılması gerektiğini söylemiyorum - Tutuculuğa gerek yok! Ancak her zaman konuştuğunuz kişinin farklı bir bilgi birikimine ve farklı bir vizyona sahip olduğunu hatırlamaya çalışın.

Ara sonuç olarak - birkaç ipucu:

  1. Kısaltma ve argo kullanmadan kendinizi basit ve anlaşılır sözcüklerle ifade edin.
  2. Ortak terminolojiyi kullanın. Bir aracı veya olayı nasıl adlandıracağınızı bilmiyorsanız, bir referanstan veya ders kitaplarından edindiğiniz sözcüğü kullanmaktan çekinmeyin.
  3. Her şeyi iyice ve ayrıntılı olarak açıklayın. Açık olduğunu düşündüğünüz şeyler hakkında dahi konuşun. Sıklıkla, bazı şeylerin yalnızca sizin için açık olduğu ortaya çıkıyor!
  4. Son olarak, karşınızdaki kişinin sizi anladığından emin olun. Yönlendirici sorular sorun veya görevi kendi sözleriyle formüle etmesini isteyin - Aynı şeylerden bahsettiğinizden emin olun.

Sevgili Meslektaşlarım, EA yazarları! Yukarıda belirtilen hususların yalnızca yatırımcılarla ilgili olduğunu yanlışlıkla düşündüyseniz, sizi hayal kırıklığına uğratmak için aceleci davranacağım! Teknik yönden yetkin kişiler olarak tüm iş sürecinin doğruluğundan biz sorumluyuz. Ve başarısından da daha büyük ölçüde biz sorumluyuz.

Çok az sayıda yatırımcı, görevi doğru ve düzgün bir şekilde formüle edebilir; bu, bir gerçektir. Altı yıllık EA yazma deneyimimde, görevleri gerçekten çok çarpıcı olan yalnızca iki müşteri hatırlıyorum; bunlar MQL'ye aktarılması gereken hazır programlardı. Algoritmalarını okuduktan sonra birkaç kişinin daha "ne istediklerini kavradıkları" ve "düşüncelerini ifade edebildikleri" kanısına vardım - Gelecekteki programların nasıl çalışacağını net bir şekilde anladım. Ancak müşterilerin çoğunluğu - yeni başlayan yatırımcılar, yalnızca EA'nın eylemlerini açıkça tanımlama gerekliliğinden değil, aynı zamanda "algoritma" sözcüğünden de çekiniyorlar.

Psikolojiden biraz anlamaya çalışın- İşbirliği yaptığınız kişinin seviyesini belirleyin ve onun (düzeyinde) terim ve kavramlarına uygun olanları kullanın. Birikiminizle ona eziyet etmeyin, hoşgörülü olun. Mümkünse, tartışmadaki tüm programlama nüanslarından kurtulun; kişinin kesinlikle bir döngünün ne olduğunu, çubukların numaralandırılmasının nereden başladığını ve dosyaya talimat bilgilerini kaydeden işlevin hangi koşullar altında yürütüldüğünü bilmesi gerekmez.

Bu, müşteriyle "çocuk dilinde konuşulması" gerektiği ve en ufak bir anlaşmazlık belirtisinde EA'nın yeniden yazılması gerektiği anlamına gelmez. Yok artık! Ama onun için yalnızca iyi bir teknisyen değil, aynı zamanda hoşsohbet biri olmaya çalışın; sizi kesinlikle takdir edecektir.

Sonunda en kritik kısma geldik; algoritmanın yapılması. O halde başlayalım!


5. Gereklilikler Spesifikasyonu'nu Hazırlama

Görevi hazırlama

Alım satımla hiçbir ilgisi olmayan kuzeniniz, yalnızca sizin hazırladığınız algoritmaya sahip olarak sisteminizde alım satım yapabilmeli.

Yalnızca biraz değiştirilmiş bu klasik ifade, iyi teknik özelliklerin ana niteliklerini çok açık bir şekilde göstermektedir:

  1. Bu görev, tamamen kendi kendine yeterli olmalıdır (sistem kişinize tam olarak aşina olmayan biri için anlaşılabilir olmalıdır).
  2. Görev mümkün olduğunca ayrıntılı olmalıdır (alım satım konularında deneyimsiz bir kişi tarafından dahi anlaşılabilir olmalıdır).

"Alım satımla ilgisi olmayan" ifadesi ne kadar kesin ve abartılı? Gerçekten de, bir kişiye, sistemin özüne ek olarak, alım satım işlemini ve alım satım terminalini kullanmanın temellerini açıklamak zor olacaktır. Bir kez daha klasik bir ifadeye döneceğim:

MetaTrader'ı yalnızca iki ay önce yükleyen ve bu süre zarfında sadece demo hesaplarda alım satım işlemi yapan kuzeniniz .... Gerisini biliyoruz.

Ama bu, gerçeği değiştirmez! Algoritmanızı on farklı kişiye verirseniz ve onlardan sisteminizde alım satım işlemi yapmalarını isterseniz, kesinlikle aynı sonuçları elde etmeleri gerekir. Kaçınız böyle bir deneyimle övünebilir?


5.1. Nereden başlayalım?

Baştan başlayalım. Genel fikri tanımlayın, ne elde etmek istediğinizi söyleyin. Program için kendi hedeflerinizi ve gerekliliklerinizi unutmayın; şimdi formüle edilebilirler.

Siz ve sisteminiz hakkında genel bir fikre sahip olan programcı, amacınızın ciddiyetini değerlendirebilir ve işin yaklaşık miktarını üstlenebilir.

Bu tür girişlere birkaç örnek şu şekildedir:

MetaTrader 4 için bir göstergeye ihtiyacımız var. Görev - ana grafiğin alt penceresinde rastgele seçilmiş bir para birimi çiftinin tersine çevrilmiş bir grafiğini çizmek. Gösterge, 4 ve 5 basamaklı fiyat teklifleri üzerinde ve standart olmayan sembol adlarıyla (örn. EURUSDFXF) çalışmalıdır.

MetaTrader 5 için bir Expert Advisor'a ihtiyacımız var. Tek bir para biriminde alım satım, giriş sinyali özel göstergeye dayalıdır (kod eklenmiştir). Pozisyonların kapatılması - SL, TP ve ters sinyal ile. Tüm pozisyonlara, başka bir göstergeye dayalı olarak bir takip eden zarar durdurucu eşlik eder (kod da mevcuttur). Lot, bakiyenin yüzdesi olarak hesaplanır.
Gerçek bir hesap üzerinde çalışmak için Expert Advisor'ı (MetaTrader 4) sonlandırmak gerekir - Gerekli tüm kontrolleri yapın, bağlantı hatasından sonra normal çalışmayı geri yükleyin, hatalı bir pozisyon açmak için birkaç deneme ekleyin ve belki başka bir şey daha (nasıl isterseniz).
Bir kanalı ihlal etme stratejisini test etmek için bir EA'ya ihtiyacımız var. Gösterge ile kanalın sınırlarını belirleyin; başarısız bir yatırımdan sonra bekleyen talimatlarla piyasaya giriş - belirli katsayılarla lot artışı. İlk talimatların ayarlanmasına izin verildiğinde, gün içindeki çalışma süresini de belirtmelisiniz. Artık MetaTrader 4 için kodumuz var.

Görevin bu kısmı en az zor olanıdır. Ama ne yazık ki, çoğu kez bu kısım her şeyin sona erdiği yerdir ... Unutmayın - Bu yalnızca giriş, yani genel fikrin bir açıklaması. Bir program yazmak için çok daha fazlasına ihtiyacımız var.


5.2. Görevi nasıl formüle ederiz?

Aslında, algoritma en önemli kısımdır. Formüle etmek (özellikle programcı olmayanlar için) çok zordur ve gerçekten çok fazla sıkı çalışma gerektirir.

Algoritmayı hemen mantıksal alt bölümlere ayırmaya çalışın, sistemin tüm inceliklerini tek bir okunaksız cümle ile aktarmaya çalışmayın.

Expert Advisor yazarken aşağıdaki mantıksal bölümleri ayırt edebiliriz (bunların sayıları ve içerikleri stratejiye göre değişebilir):

  1. Genel koşullar: Çalışma süresi (günler içinde, haftanın belirli günleri), Yürütme sırası (örneğin, düğmeye basılarak alım satım işlemine başlanması), geçmişin analiz derinliği için gerekli ve genel olarak tüm görevle ilgili diğer koşullar (tek tek noktalarıyla değil).

  2. Piyasaya giriş sinyali (ilk pozisyonun açılması veya ilk talimatların ayarlanması) göstergelere, belirli fiyat modellerine, zamana veya kullanıcının komutuna dayanır. Bu, aynı zamanda ilk giriş (filtreler) üzerindeki sınırlamaları da içerebilir - zamana göre, başka bir göstergeye göre, çok uzun bir dizi kayıptan sonra, kabul edilemez alım satım koşullarında, (çok büyük spread'ler veya StopLevel) veya mevcut fon eksikliği sırasında. Lot hesaplama yöntemi ve Zararı Durdur ve Kar Al düzeyi ayrı ayrı belirtilmelidir (tüm pozisyonlar için hesaplama kuralları aynı ise bunları bağımsız bir maddeye ayırabiliriz).

  3. Bekleyen talimat tetiklemesinin veya bir pozisyonun SL/TP'sinin işlenmesi (gerekirse). Örneğin, Buy Stop talimatı tetiklendiğinde bir Sell Stop talimatının kaldırılması, ek bir Sell-Limit talimatının ayarlanması, önceden belirlenmiş bir Sell Limit talimatı tetiklendiğinde, Zararı Durdur tetiklemesinden sonra iki katı satış hacmi için bir pozisyonun açılması vb.

  4. Ek pozisyonların açılması (açık pozisyonlar varsa) veya ek talimatların ayarlanması (gerekirse) için sinyaller. Örneğin, bu, diğer göstergelerin sinyali ile veya belirli bir kara ulaşıldığında açılan pozisyonun zararı ile yapılabilir. Burada da lot, Zararı Durdur ve Kar Al (yukarıda açıklananlardan farklıysa) hesaplamasının kuralları olmalıdır.

  5. Pozisyonların ve talimatların takibi (ayrı ayrı - serideki ilk, ayrı ayrı - ek olanlar veya kurallar aynıysa hepsi birlikte). Örneğin, bekleyen bir Durdurma talimatının piyasaya çekilmesi (fiyat hareketi ters yöndeyse), pozisyonun Takip Eden Zarar Durdurucusu (geleneksel, göstergeye göre veya başka bir şekilde), belirli bir kara ulaşıldığında pozisyonun kısmen kapatılması için bir pozisyonun açılması vb.

  6. Kapanış (tam, kısmi) veya pozisyonun tersine çevrilmesi için sinyaller. Bekleyen talimatların kaldırılması için kurallar.

  7. Hesap durumu ile ilişkili olanlar gibi genel koşullar - Tüm pozisyonların kapatılması ve düşüş belirlendiğinde çalışmanın durdurulması, mevduat yüzdesi kullanımının azaltılması, bakiyenin belirli bir düzeye yükseltilmesi vb. Bu koşullar ilk nokta için geçerlidir, ancak bunları sonunda (kullanım sırasında olduğu gibi) açıklamak daha kolaydır.

  8. Ve sonunda, belki de grafikte bazı ek bilgilere ihtiyaç duyulur; pozisyon açılış/kapanış fiyat düzeylerinin oklarının çizilmesi, günlükteki ayrıntılı bilgiler, bekleyen talimatların tetiklenmesi sırasında e-postaların gönderilmesi ve alım satımla ilişkili olmayan ancak arayüzle ilgili diğer her şey.

Bir göstergeden bahsediyorsak, bir yandan her şey çok daha kolaydır; mantık daha basit ve daha az karmaşıktır, ancak diğer yandan bazı incelikler vardır.

Özeti şu şekildedir:

  1. Gerekli veriler: Analiz edilen enstrümanların listesi (birden fazla ise), kullanılan tüm enstrümanların geçmişinin derinliği ve zaman dilimleri, alım satım sunucusunun saat dilimi.
  2. Çizim türü (çizgiler, sinyal okları, mum grafik, ZigZag gibi bölümler, geometrik biçimli şekiller vb.).
  3. Ana algoritmadan farklıysa, ilk değeri (sol çubuktaki değer) hesaplama algoritması.
  4. Tek bir çubuğun hesaplanması için temel algoritma veya tek bir çubuk için bir formül türetmek zorsa hesaplama sürecinin açıklaması (örneğin Zig-Zag durumunda olduğu gibi).
  5. Ve gerekirse hoş-konforlu şeyler: Ses sinyalleri, ekran görüntülerinin kaydedilmesi , e-postaya bildirim gönderilmesi vb.


Teoriden pratiğe geçmeye çalışalım ve örnek görevlerimizden bazılarını tamamlayalım:

MetaTrader 4 için bir göstergeye ihtiyacımız var. Görev: Grafiğin ana penceresinde rastgele seçilmiş bir para birimi çiftinin tersine çevrilmiş bir grafiğini çizmek. Gösterge, 4 ve 5 basamaklı fiyat teklifleri üzerinde ve standart olmayan sembol adlarıyla (örn. EURUSDFXF) çalışmalıdır.

  1. Ayarlarda, görüntülenmesi gereken enstrümanın adını (sembol  parametresi) belirtin (örneğin, "GBPUSD_m"). Ad belirtilmemişse, göstergenin eklendiği grafiğin sembolünü kullanın. "Piyasa İzleme" penceresinde böyle bir sembol yoksa hata mesajı içeren bir pencerenin görüntülenmesi gerekir.
  2. Gösterge, Japon mum grafikleri olarak çizilmelidir. Büyüyen ve düşen mum grafiklerin renkleri ve gölgeler (ayrı ayrı - üst ve alt) giriş parametreleri olarak tasarlanmalıdır.
  3. Her bir çubuk için OHLC değerlerinin hesaplanması şu formüllerle yapılır:
    • Açılışı (gösterge) = 1 / Açılış (sembol ),
    • Kapanış (gösterge) = 1 / Kapanış (sembol),
    • Düşük (gösterge) = 1 / Yüksek (sembol),
    • Yüksek (gösterge) = 1 / Düşük (sembol).
  4. Tüm "yuvarlak" fiyat düzeylerinde (1.3200, 1.3300, 1.3400, 1.3500, ...), yani 4 basamaklı 100 noktanın katları olan düzeylerde, yatay bir çizgi çizmelisiniz (stil ve renk giriş parametreleri olarak tasarlanmalıdır).
Expert Advisor ile bu biraz daha zor olacak:

MetaTrader 5 için bir Expert Advisor'a ihtiyacım var. Tek bir para biriminde alım satım, piyasaya giriş sinyali özel göstergeye dayalıdır (kod eklenmiştir). Pozisyonların kapatılması - SL, TP ve ters sinyal ile. Tüm pozisyonlara, başka bir göstergeye dayalı olarak bir takip eden zarar durdurucu eşlik eder (kod da mevcuttur). Lot, bakiyenin yüzdesi olarak hesaplanır.

  1. Bir pozisyonu açma sinyali - iSignalArrow göstergesinin oku (tüm gösterge parametreleri ayarlanabilir olmalıdır):
    • Göstergenin oku son kapatılan çubukta yukarıyı (grafiğin altında ) gösteriyorsa bir uzun pozisyon
    • açılır; göstergenin oku son kapatılan çubukta aşağıyı (grafiğin üzerinde) gösteriyorsa bir kısa pozisyon açılır;
    • Geçerli (tamamlanmamış) çubuktaki oklar yok sayılır, yalnızca tamamlanmış çubuklar analiz edilir.
  2. Pozisyon hacmi, mevcut bakiyenin yüzdesi olarak hesaplanır: Lot = Bakiye/MarginRequired * LotPercent / 100  burada:
    • Bakiye - Cari hesap bakiyesi,
    • MarginRequired - 1 lot boyutunda bir pozisyon açmak için gerekli marj,
    • LotPercent - Bir giriş parametresi (lot hesaplaması için yüzde).
      Örneğin, 1:100 kaldıraçla LotPercent = 5 olduğunda, EURUSD için lot (mevcut 1,3900 fiyatında) şu şekilde olacaktır: 10 000 / 1 390 * 5/ 100 = 0,3597
      Elde edilen sonuç, olağan kurallara göre en yakın doğru değere yuvarlanır (0,36'ya kadar - DC 0,01'e veya 0,4'e kadar duyarlılığa sahip lotlara izin veriyorsa - lot adımı = 0,1 ise).
  3. StopLoss (SL) ve TakeProfit (TP) - sabittir; parametrelere göre ayarlanabilir StopLossve TakeProfit:
    • Düzeyler 4 basamaklı fiyat tekliflerinin noktaları halinde belirtilmiştir,
    • Düzeyler, açılan pozisyonun fiyatına göre hesaplanır (uzun pozisyonlar için Satış fiyatı ve kısa pozisyonlar için Alış fiyatı),
    • Değer çok düşükse, durdurma izin verilen minimum mesafeye ayarlanmalıdır,
    • 0 değerleri belirtilirse, durdurmalar kullanılmaz.
  4. Tüm açık pozisyonlara, iTrailingLine göstergesi (tüm gösterge parametreleri ayarlanabilir olmalıdır) tarafından takip eden zarar durdurucu eşlik eder:
    • Bir uzun pozisyon açılırsa, ve gösterge çizgisi mevcut fiyatın altındaysa, durdurma, gösterge çizgisi düzeyine taşınır,
    • Bir kısa pozisyon açılırsa, ve gösterge çizgisi mevcut fiyatın üzerindeyse , durdurma, gösterge çizgisi düzeyine taşınır,
    • Gösterge değerleri tamamlanmış (oluşturulmuş) çubuktan alınır, mevcut çubuk (tamamlanmamış) kullanılmaz. Yani, değişiklik bir çubukta bir kereden daha sık meydana gelmemelidir,
    • SL'nin yalnızca pozisyonun karı yönünde hareket etmesine izin verilir - uzun pozisyon için yukarı ve kısa pozisyon için aşağı ,
    • SL'yi çizgi düzeyinde ayarlayamıyorsanız, izin verilebilir minimum mesafede ayarlanmalıdır (ancak yalnızca önceki kar yönünde hareket etme kuralına uyuyorsa),
    • Takip eden zarar durdurucu özelliği yapılandırılabilir olmalıdır (AllowTrailing = true/false parametresi).
  5. Açılan pozisyon varsa ve ters sinyal varsa, açılan pozisyon kapatılmalı ve yenisi açılmalıdır (ters yönde).
    Yeni bir pozisyon için, lot hesaplaması, açılan pozisyon kapatıldıktan zararı ile yapılabilir.
  6. Muhtelif:
    • Expert Advisor'ı çalıştırdığınızda, kullanılan göstergeleri belirtilen parametrelerle eklemesi gerekir;
    • Pozisyonların açılması/kapatılması ve SL'deki değişiklikler hakkındaki bilgiler Günlükte saklanmalıdır;
    • Herhangi bir hata varsa, hatayı açıklayan bir mesaj yazdırmalıdır.

Bu formda algoritma programcıya gönderilebilir; bu, sistem hakkında yeterli ayrıntıyı içerir ve kolayca MQL'ye "aktarılabilir". Ama sipariş konusunda acele etmeyin, sonuna kadar düşünün.


5.3. Neyi unutmamamız gerekir?

Neyi unutmamamız gerekir?Bu algoritmalardan birine dayalı olarak yazılmış bir program, kullanıcının veya diğer programların müdahalesi olmadan hesaba tek bir erişimle, ayrı bir istemci terminalinde ideal koşullar altında düzgün şekilde çalışacaktır.

Böyle bir ortamın bir örneği - bir Strateji Test Cihazı, bağlantı kaybı hatası, yanlışlıkla kapatılan pozisyonlar ve diğer alım satım Expert Advisor'ları yoktur. Ancak günlük yaşamda, bu tür koşullar son derece nadirdir; program büyük olasılıkla "dış dünya" ile çalışacaktır.

Programın birden fazla kopyasını farklı sembollerde veya farklı ayarlarla çalıştırmak isteyebilirsiniz ; terminali yeniden başlatırsınız, hesapta manuel olarak veya diğer Expert Advisor'larla alım satım işlemi yaparsınız, bir terminalden farklı hesaplara bağlanırsınız - bu durumların işlenmesi algoritma tarafından açıkça sağlanmıyorsa bunların tümü programı etkileyebilir.

Hedefiniz, Strateji Test Cihazında programı test etmekten daha büyük bir ölçeğe sahipse, dış dünyayla etkileşim kurallarını hemen açıklayın:

  1. Expert Advisor, manuel olarak açılan pozisyonlara veya diğer Expert Advisor'lara nasıl tepki vermelidir?
    Genellikle insanlar üç seçenekten birini seçer:
    • Tüm "diğer" pozisyonları tamamen yok sayarlar. Sistem kendi kendine yeterliyse , diğer Expert Advisor'ların veya kullanıcının alım satım işlemleri onu etkilememelidir .
    • Yalnızca "manuel" pozisyonlarla çalışırlar. Expert Advisor, manuel olarak açılan pozisyonlara eşlik edecek şekilde tasarlanmışsa, diğer Expert Advisor'ların pozisyonlarına müdahale etmemelidir ve genellikle kendi pozisyonunu açmaz. Görevi, manuel alım satım işlemine yardımcı olmaktır (Zararı Durdur'u hareket ettirir, pozisyonu sinyale göre kapatır vb.).
    • Daha evrensel bir çözüm, kullanıcıya bir seçenek sunmaktır: Yalnızca kendi pozisyonlarıyla çalışmak veya belirli koşulları karşılayan pozisyonlara eşlik etmek (belirli bir sembol için veya belirli bir Sihirli Sayı ile).

    MetaTrader 5'te, alım satım işlemlerinin "kendi" ve "diğer" olarak ayrılması özellikle önemlidir - Terminal, birkaç farklı Expert Advisor'ın yatrıımlarından "toplanmış" olsa dahi, yalnızca sembolün toplam pozisyonunu görüntüler. Yatırımların tam bir hesaplamasının gerçekleştirilmesi (birden çok EA'nın tek bir sembol üzerinde normal çalışması için) uygulamasında daha zordur ve bu nedenle daha pahalı olabilir. Expert Advisor'ın normalde aynı sembol üzerinde çalışan diğer Expert Advisor'larla çalışıp çalışmayacağını Başvuru Sahibi/Geliştirici ile kontrol edin.

  2. Expert Advisor, başka bir alım satım hesabına bağlantıya nasıl yanıt vermelidir? Bunu gerçek hesapta çalıştırmak için herhangi bir özel prosedüre ihtiyaç var mı?
    Bence birçok yatırımcı, basit bir dikkat eksikliğinden kaynaklanan kayıplarıyla "övünebilir" - Gerçek bir hesaba yanlışlıkla bağlanma, çalışan bir Expert Advisor ile bir terminal başlatma veya açık pozisyonların varlığında Expert Advisor parametrelerinde değişiklik. Bu anlamsız durumlardan yalnızca bunlar algoritmada dikkate alınarak kaçınılabilir.
    Örneğin:
    • EA'yı gerçek bir hesapta çalıştırdığınızda, grafikte alım satım işlemine izin veren bir düğme oluşturmalıdır. Çalışma, yalnızca kullanıcı ilgili düğmeye tıkladıktan sonra başlamalıdır.
    • Bir hesabı değiştirdiğinizde, EA kullanıcıyı bu konuda bilgilendirmeli ve yeni bir başlatma yürütülene kadar çalışmasını durdurmalıdır (bir alternatif - kullanıcıya çalışmasına devam edip etmeyeceğini sormak).
    • EA (veya ayarlama talimatları) tarafından açılan pozisyonlar varsa, harici parametrelerde bir değişiklik olduğunda, EA pozisyonları (talimatları) tasarlanan algoritmalara uygun olarak değiştirmelidir - örneğin, StopLoss değerinde bir değişiklik varsa tüm açık pozisyonların Zararı Durdur değerlerini değiştirmemiz gerekir; ancak bunu, sadece bu, takip eden zarar durdurucu tarafından henüz taşınmadıysa yapabiliriz. Burada evrensel bir tanım yapmak mümkün değil; her parametre ayrı ayrı tanımlanmalıdır. Ayrıca, farklı stratejiler için aynı parametredeki değişikliklere farklı tepkiler verilebilir.
  3. Benzer (veya özdeş) parametrelerle programın birkaç kopyasını çalıştırmaya gerek var mı?
    Expert Advisor, göstergenin birden çok kopyasını çalıştırarak ve yalnızca bir parametrenin değerini değiştirerek grafik nesnesini grafiğe yerleştirirse, onun tarafından oluşturulan tüm nesnelerin bu parametrenin değerini içeren adları olmalıdır, aksi takdirde, sonraki her çalıştırma öncekilerin sonuçlarını bozacaktır.
    Expert Advisor söz konusu olduğunda, genellikle özel bir parametre eklenir - ExpertId veya MagicNumber; bu da EA'nın herhangi bir sayıda kopyasını herhangi bir başka parametre kümesi ile çalıştırmanıza olanak tanır. Görevde, hangi ayarlar ve hangi kombinasyonlar için programı aynı anda çalıştırma özelliği olduğunu belirtin; tüm durumlar programcının kendisi tarafından sağlanmayacaktır.
  4. Aynı hesaba bağlı EA'nın başka bir terminale taşınması nasıl uygulanmalıdır? Expert Advisor bazı verileri dosyalarda veya terminalin genel değişkenlerinde depolayabilir mi?
    Çoğu program için ara bilgileri depolamaya kesinlikle gerek yoktur, algoritmaları para birimi çiftlerinin geçmiş verilerine ve hesapların alım satım işlemi geçmişine dayanır (bu veriler hesabınıza bağlı herhangi bir terminalden alınabilir). Ancak genellikle bazı bilgileri bir dosyada depolamak ve bir sonraki başlatmada almak gerekir; bazen bu, yürütme hızını hızlandırmaya olanak tanır ve bazen, onsuz uygulanabilir bir program oluşturmak imkansızdır. EA'yı transfer etme süreci için özel gereklilikleri programcıya bildirin veya ondan bu süreci özellikle sizin durumunuz için tanımlamasını isteyin.

Ne yazık ki tüm inceliklerin sağlanması imkansız. Örneğin, EA'ların lotunda hesaplanan bir pozisyon açmak için yeterli marj yoksa (diğer EA'lar tarafından açılan pozisyonlar nedeniyle), o zaman ya sinyali atlamanız ya da daha küçük bir hacimle açmanız gerekecektir.

Diğer EA'lar alım satım işlemi bağlamını ele alırsa (yalnızca MetaTrader 4'te), EA'nız alım satım yapamaz. Ve maksimum bekleyen talimat sayısında bir limit varsa, yeni talimat oluşturulamaz. Ancak, bu örneklerin çoğu algoritmanızda sağlandığı için durumu daha da kötüleştirmeyecektir. Deneyim kazanın; EA'nın her yeni sürümü daha iyi ve daha güvenilir olacaktır.


5.4. Anlamayı nasıl basitleştirebiliriz?

Bilgi düzgün bir şekilde resmedilirse çok daha kolay özümsenir.

Basit bir stratejiyi anlamak için bir metin açıklamasına sahip olmak yeterlidir, ancak sisteminiz olağandışı ve karmaşıksa, programcıya yardımcı olmak için birkaç adım atın:

  1. Göreve algoritmanın farklı noktalarını gösteren birkaç ekran görüntüsü ekleyin (bir sinyalin oluşma zamanı, bir takip eden zarar durdurucunun çalışmasının gösterimi, bekleyen talimatları ayarlama sırası, vb.). Algoritma metninde kısmen yinelenmiş olsalar dahi, grafiklere kısa açıklamalar eklemekten çekinmeyin.
  2. Görevin metnini zevkli bir şekilde biçimlendirin: Uzunve Kısa pozisyonlar için farklı renkler kullanın, harici değişkenleri (yapılandırmak istediğiniz parametreler) vurgulayın, önemli noktaları ve formülleri işaretleyin. Bu, metnin okunmasını daha kolay hale getirmesinin yanı sıra, içinde gezinmesini de çok daha kolaylaştıracaktır.
  3. Örnekler verin. Somut sayılarla gösterilen herhangi bir formül çok daha net hale gelir.
  4. Algoritmanın paragraflarını ve alt paragraflarını numaralandırın; böylece tartışma sırasında her zaman başvurulabilirler. "2.1.4 pozisyonundaki hata - serinin ikinci uzun pozisyonu için Zararı Durdur seviyesinin hesaplandığı yerdeki bir hatadan" çok daha kısa ve daha doğrudur.


5.5. Metin, ses veya video?

Metin, ses veya video? Bir müşterinin bana görevi göndermek yerine bir forumdaki 120 sayfalık bir strateji tartışmasının, 70 sayfalık bir kitabın veya bir buçuk saatlik bir video konferansın bağlantısını gönderdiğinde bunu her zaman çok komik buluyorum. Gerçekten de, programcılar bu dünyadaki tüm zamana sahiplermiş ve ilgilenecekleri başka bir konu kalmamış gibi zamanlarını bunu incelemeye ayıracaklar ... Bu bilgilerin faydalı olan kısmının bir sayfa algoritmasının yarısına sığacağı veya bu açıklamayı şekillendirmenin imkansız olduğu gerçeği kimseyi ilgilendirmiyor gibi görünüyor.

Bu materyali zaten araştırdıysanız, neyle ilgili olduğunu anlıyorsanız, stratejinin nasıl çalışacağına ilişkin iyi bir fikriniz varsa, o halde algoritmayı şekillendirmeniz yeterli! "Atığı" (genellikle bilginin %80'ini oluşturur), garip duraklamaları, dikkat dağıtıcı tartışmaları, parlak gelecekle ilgili hikayeleri, test sonuçlarına ilişkin gözlemleri kaldırın; Başvuru Sahibi/Geliştirici yalnızca programı yazmak için gerçekten ihtiyacı olan şeyleri alacaktır.

Ancak kitabın veya konferansın ne hakkında olduğunu hala bilmiyorsanız ve bunun tam otomatik bir alım satım sistemi yapmak için yeterli olduğundan emin değilseniz soruyu farklı şekilde formüle edin! Bir stratejiniz olduğunda yalnızca "Bu stratejiye dayalı bir Expert Advisor yazmanın maliyeti nedir?" sorusunu sorabilirsiniz.

Ve bizim durumumuzda sadece belirli miktarda bilgi vardır. Kalitesi (şekillendirmeye uygun mu, yeterince ayrıntılı mı vb.) hala bilinmiyor. Bu nedenle, programcının bu materyali "fikir açısından" incelemekle ilgilenip ilgilenmeyeceğini ve ilgilenmeyecekse, bu "fazlasıyla uzun tartışma" dışında bir alım satım sistemi için tam donanımlı kurallar yazmak için ne kadar ücret talep edeceğini sormaktan çekinmeyin. İnanın ki, sorunun şekli dahi Başvuru Sahibi/Geliştirici ile olan ilişkinizi gösterecektir.

Her programcı çok sayfalı makaleleri veya bazı strateji tartışmalarını okumakla ilgilenmez; doğrulanmayı bekleyen yeterince fikre sahiplerdir ve yeni bilgiye ihtiyaçları yoktur.

Herkes, en sevdiği filmi izlemek yerine, trend çizgilerinin yapısı ve bunların sistemindeki rolü hakkında bir eğitmenin konuşmasını dinlemek istemeyecektir. Bu, genellikle oldukça sıkıcıdır ve daha da kötüsü, şekillendirilmesi zordur. Bazı anları kelimenin tam anlamıyla kendiniz icat etmeniz gerekecek (en mantıklı açıklamayı bulun), bazı şeylerin deneme yoluyla tahmin edilmesi veya seçilmesi gerekecek, bazı konular için ek bilgi aramanız ve araştırmanız gerekecek. Süreç, genel olarak oldukça zahmetli ve yaratıcıdır; hafife almayın.

Skype veya telefon üzerinden iletişim kurmayı sevenlere ayrıca değinmek istiyorum. Çoğu zaman, stratejiyi sözlü olarak açıklama isteği, yalnızca fazladan eylemde bulunma isteksizliğinden (klavyede yazma) değil, daha da kötüsü, yazarın stratejiyi anlamamasından kaynaklanır.

Bunlar, yazarın tahminlerine ve sezgilerine dayanıyorsa bir dizi alım satım kuralı oluşturmak imkansızdır, dokunaklı ve karmaşık bir hikaye oluşturmak çok zordur. Ve uzun video konferansında olduğu gibi, programcı her zaman bu "ifşaları" dinlemekle ilgilenmez; zira programı yazmak için bir algoritmaya ihtiyacı vardır ve yine de birisinin onu yazması gerekecektir.

Modern teknolojilerin önemini hafife almak zordur; sesli veya görüntülü iletişim kurarak ve monitörünüzden arkadaşınıza bir görüntü göstererek ortak bir dil bulmak çok daha kolaydır. Ancak tartışılacak bir şey varsa, konuşma çok daha verimli olacaktır; düşüncelerinizi kağıt üzerinde formüle edin ve zaten hazırlanmış bir metne küçük açıklamalar ekleyerek tartışma sırasında tam donanımlı bir görev hazırlayın.

Yukarıdakilerden çıkarmanız gereken sonuçlar şu şekildedir:

Açıklamadan net bir strateji algoritması çizebilirseniz - Bunu kendiniz çizin ve programcıya yalnızca gerekli bilgileri gönderin.
Şekillendirme süreci çok karmaşıksa ve çok çalışma gerektiriyorsa programcının bunu herhangi bir ücret almadan yapmasını beklemeyin.

Umarım artık bir görevin ne olduğunu tam olarak anlamışsınızdır ve belirli bir uygulayıcının seçilmesi hakkında konuşabiliriz.


6. Başvuru Sahibini/Geliştiriciyi Seçme

Uygulayıcıyı seçmeBir programcı seçme sorunu , bu seçim ortaya çıkar çıkmaz hayati bir önem kazanır. Her müşteri mümkün olduğu kadar az ödeme yapmak ve en kaliteli sonuçları elde etmek gerekir. İdeal olarak, yazılım en iyi profesyoneller tarafından yazılmalı ve aynı zamanda ücretsiz olmalıdır. Bu, pahalı profesyoneller ve yeni başlayanlar arasında manevra yapmak için çabalamak için idealdir.

İlk işinizin uygulanması için geliştirici seçerken, şu kriterleri değerlendirmenizi tavsiye ederim:

  1. MQL4/MQL5'te genel program yazma deneyimi
    EA geliştiricisi piyasaya bir hafta önce girdiyse, bir hafta içinde de ayrılabilir. Tabii ki iki yıllık deneyime sahip bir "profesyonel" de aniden ortadan kaybolabilir, ancak bu olasılık çok daha düşüktür. Geliştiriciyle iletişimin kesilmesi, yalnızca yeni bir sipariş verme yeteneğini değil, aynı zamanda şunları
    • da tehdit eder: Destek eksikliği (hatasız yazılım yoktur, yalnızca kötü test edilmiş programlar vardır);
    • Minimum iyileştirmeler yapmanın dahi karmaşıklığı (diğer kişilerin koduyla çalışmak her zaman daha zordur; bu nedenle başka bir geliştirici küçük değişiklikler için dahi iyi bir tutar talep edebilir.)

  2. Gerçek müşterilerin geri bildirimleri.
    Pratik, gerçeğin kriteridir. Bir kişi gerçek kişiler tarafından kullanılan programlar yazdıysa, bunlar çalışıyor demektir. Aksi takdirde, söz konusu kişinin profesyonellik eksikliğini ortaya çıkaran geri bildirimlere her zaman rastlarsınız.
    Halihazırda bir programcının hizmetlerini kullanmış yatırımcı arkadaşlarınız varsa, onlardan tavsiye isteyin - En azından o zaman beklenen sonucu alırsınız.

  3. Çevrimiçi erişilebilirlik.
    Hiç kimse bir mektubun yanıtını birkaç gün boyunca beklemekten hoşlanmaz. Bazı kişiler için 2 saat dahi çok uzundur.
    Kişiyi gözlemleyin - sık sık "çevrimiçi" olup olmadığını, mesajlara hızlı yanıt verip vermediğini. Gelecekte, bu, size çok fazla zaman kazandırabilir .

  4. İletişim yöntemleri.
    Günümüzde İnternet üzerinden iletişim kurmanın çeşitli yolları vardır: e-posta, mesajlaşma uygulamaları, sesli ve görüntülü sohbet programları, İnternet kaynaklarındaki özel mesajlar. Bazıları bir yöntemi kullanmaya alışkınken, diğerleri başka bir yöntemi kullanmayı seçer. İyi bir iletişim için ikiniz için de rahat olan bir yöntem seçmeniz gerekir. Bir program daha yüklemekte herhangi bir sakınca yok ama bazı kişiler buna gerek görmedikleri için bunu yapmak istemeyebilirler.
    Canlı iletişime ihtiyacınız varsa (ör. Skype aracılığıyla), geliştiricinize buna hazır olup olmadığını sorun. Özellikle, telefonda konuşmak veya şahsen buluşmak istiyorsanız bunu önceden ayarlayın; herkes işlerini "çevrimdışı" yapmayı kabul etmez.

  5. İşbirliği koşulları.
    Bir sipariş vermeden önce, işbirliği için tüm koşulları tespit etmek gerekir:
    • "İşler" hizmeti aracılığıyla çalışmak mümkün mü? Bu soruya verilecek olumlu bir yanıt, diğerlerinin çoğunu geçersiz kılacaktır.
    • Ön ödeme gerekli mi, gerekliyse ne kadar?
    • Program nasıl kontrol edilecek? Demo sürümü alacak mısınız?
    • Programın kaynak kodunu alacak mısınız, alacaksanız bu ne zaman olacak? - Ödemenin tamamı yapıldıktan sonra mı yoksa hemen mi?
    • Programı dağıtma haklarına kim sahip olacak?
      Programcının dürüstlüğünü kontrol etmenin başarılı olması pek olası değildir, ancak bu noktaya resmen açıklık getirmek yararlı olacaktır: Müşterinin EA'larını veya algoritmalarını sattığından tekrar tekrar şüphelenilirse, itibarı adının çok daha ötesine geçecektir.
    • Teknik destek ne kadar süreyle ve hangi koşullar altında verilecek? Hata düzeltmeleri (algoritmadaki tutarsızlıklar) ücretsiz olarak mı yapılacak? Küçük iyileştirmeler ne kadara mal olacak?
    Tüm bu ince ayrıntılar, finansal ilişkinin başlamasından önce netleştirilmelidir; zira bunları daha sonra halletmesi daha zor olacaktır.

  6. Ödeme Yöntemleri.
    Geliştirici hangi elektronik ödeme sistemlerini kullanıyor? Ödeme banka havalesi veya kredi kartı ile yapılabiliyor mu?
    Ödemeye ilişkin para birimi gerekliliklerini kontrol ettiğinizden emin olun - İnternet uluslararası bir platformdur ve dolayısıyla herkesin Rus Rublesine ihtiyacı olmaz.

  7. Karakter.
    Tek seferlik bir işbirliği değil de, sürekli bir ortak arıyorsanız karakterlerinizin birbirine uyup uymadığını anlamaya çalışın. Birbirinizle sosyalleşin, karşı taraftan beklentilerinizi belirtin, dünya görüşünüzü, prensiplerinizi ve zayıf yönlerinizi (özeleştirinizin izin verdiği ölçüde) tanımlayın.
    Bir alternatif olarak ilk seçimde sipariş vermeye çalışın ve bu süreçte her şeyi açıklığa kavuşturun. Ancak bu durumda bu ortak ilk denemeden çok uzakta bulunabilir.

  8. İşin maliyeti.
    Sonuncu fakat bir o kadar önemli bir husus: Yaptığı işe 10 USD değer biçen bir adama ciddi bir program yazdırmak için güvenmem ama aynı zamanda 1000 USD ödemeye de istekli değilim; bu nedenle aralarından bir seçim yapmam gerekir. Fiyat, bir yandan uygulayıcının profesyonelliğini gösterirken, diğer yandan ilgisine ve iş yüküne bağlıdır. 5 dolara bir "Mercedes" almayı beklemeyin, ancak bir "Buick" için fazla ödeme yapmayın.


İletişim bilgilerini ve müşteri değerlendirmelerini içeren çalışmaya hazır bazı uzmanların listesi olan "programcıların listesi" konusunu tekrar tekrar gündeme getirdik. Böyle bir liste oluşturmak için mql4.com'daki "Sipariş Üzerine Hazırlanan Expert Advisor. Yatırımcı için El Kitabı" adlı makalemde, bağımsız forum kullanıcıları tarafından ve bu konuyla alakasız kişiler tarafından birkaç girişimde bulunuldu. Ve bu, ilk sipariş için seçimi gerçekten kolaylaştırabilir.

Ama tıpkı birkaç yıl önce olduğu gibi, kapsamlı ve sürekli olarak güncellenen bir liste mevcut değil. Bunu gerçekleştirmek üzere başka bir girişimde bulunmak için birlikte çalışabiliriz , ancak bu fikrin tartışılmasının bu makalenin kapsamı dışında olduğunu düşünüyorum.


7. Kendinizi Aldatılmaktan Koruma

Farklı insanlar ve farklı durumlar var. En güvenilir EA geliştiricileri dahi işi tamamlamadan ortadan kaybolabilir ve en sorumlu kişi dahi koşulların baskısı altında sözleşme şartlarını ihlal edebilir. Geçmiş riske girmeyin - "İşler" hizmetini kullanın!

Otomatik alım satım stratejisinin geliştirilmesini istikrarlı bir şekilde takip ederek, 2010 yılının ortalarında MetaQuotes Software Corp., ana hedefi müşteri ve geliştirici arasındaki ilişkilerin düzenlenmesi olan bir yeni hizmet yayınladı. Şimdi dahi, yalnızca altı ay sonra, hizmet layıkıyla popüler ve birçok yatırımcı ve programcı tarafından günlük olarak kullanılıyor.

Bu hizmet hakkında daha fazla bilgi, forumdaki resmi duyurudan ve bu hizmetin kullanımına ilişkin makaleden edinilebilir:

MQL5.community'deki "İşler" hizmeti ile diğer web sitelerindeki benzer kaynak ve hizmetlerin çoğu arasındaki temel fark, güvenliktir. Müşteri ve programcı, tüm ortak çalışma süresi boyunca birbirlerinin ihmalkar davranışlarına karşı güvence altına alınır. Bir uyuşmazlık durumunda, MetaQuotes Software Corp. Arabulucu rolünü üstlenmeye hazırdır.

Hizmetin tüm kusursuzluğuna ve resmiyetine rağmen, onu kullanırken hala sorunlar ortaya çıkıyor. Bunların çoğundan birkaç basit kural takip edilerek kaçınılabilir:

  1. Yeni bir siparişi işlemeden (yatırımcıysanız) veya uygulamaya ilişkin tekliflerde bulunmadan (programcıysanız) önce hizmet koşullarını gözden geçirdiğinizden emin olun. Dikkatsiz okuma veya kuralların anlaşılmaması nedeniyle birçok uyuşmazlık ortaya çıkmaktadır. Bazı noktalar net değilse veya size göre belirsiz bir şekilde yorumlanabiliyorsa, o zaman özel bölüm'de bazı açıklayıcı sorular sorun; belki sorunuz kuralların daha basit ve anlaşılır olmasını sağlar.

  2. Expert Advisor siparişi verirken net bir algoritma hazırlayın.
    Bu makalede bu hususa ayrılmış birkaç bölüm mevcut; bu nedenle bunu burada tekrarlamayacağım.

  3. Görev için yeterli bir fiyat ve yeterli bir zamanlamaya sahip yeterli bir Başvuru Sahibi/Geliştirici seçin; "bedava peynir" ile baştan çıkarmaya çalışmayın - Böyle bir durum söz konusu değil.
    Geliştiricinin portföyüne bakın ve tamamladığı işlerin geri bildirimlerini okuyun. Başka işlerle çok meşgul olmadığından emin olun; belki bu, siparişinizi zamanında tamamlamasını engeller.
    Ve uygulama zamanının 2. adımın (Gerekliliklerin Görüşülmesi) tamamlanmasından sonra hesaba katıldığını unutmayın; süreç ayrıntıları düzenlenmez ve iş takvimi yalnızca size ve programcıya bağlıdır.

  4. "İşler" hizmetindeki mesajları kullanarak tüm tartışmaları yapın; bunlar, ancak o zaman Arbitraj durumlarında kullanılabilirler.
    ICQ veya Skype üzerinden iletişim kuruyor olsanız dahi, İşler hizmetinin yorumlarındaki tüm önemli anları "belgelemeye" çalışın.

  5. İlgili (bir müşteri veya uygulayıcı olmanız fark etmez) işlerin güncellemelerini takip edin: Kişisel mesajlarınızı düzenli olarak gözden geçirin, e-postanıza bildirim gönderilmesine izin verin veya SMS bildirimleri almak için cep telefonu numaranızı profilinize ekleyin.
    İş akışını takip etmezseniz, siz olmadan tamamlanabilir ve bu, sizin lehinize olmayabilir - sona erme tarihinde diğer taraf tarafından zorla kapatılabilir.

Aksi takdirde, hizmetin kullanımı, aracılar olmadan yapılan çalışmalardan farklı değildir , ancak Geliştirici, süreci düzenlemek için "İşler" hizmetine küçük bir komisyon ödeyecektir.


8. Sonuçları Kontrol Etme

Yolculuğumuzun son aşaması, tamamlanan işi kontrol etmektir. Programın onaylanmış algoritmaya göre çalıştığından emin olmak için dikkatli ve eksiksiz bir şekilde test etmelisiniz .

  1. Farklı koşullarda test edin: Farklı hesap türlerinde, para birimi çiftlerinde, zaman dilimlerinde, farklı parametre kombinasyonlarıyla - Program her durumda aynı ve doğru şekilde çalışmalıdır ("hoşgörü" açıkça algoritmada belirtilmemişse ).

  2. Programı yalnızca Strateji Test Cihazı 'nda değil, bir demo hesabında da kontrol edin. Strateji Test Cihazı, bariz hataları hızlı bir şekilde bulmanıza yardımcı olacak ve stratejiyi geçmişin farklı aralıklarında kontrol etmenize olanak tanıyacaktır, çevrimiçi testler, programın gerçek olanlara yakın koşullarda nasıl çalışacağını gösterecektir. Program için "dikkat dağıtıcı unsurlar" oluşturabilirsiniz - İstemci terminalini yeniden başlatın, farklı hesaplara bağlanın, diğer Expert Advisor'ları veya göstergeleri çalıştırın, çalışma sırasında ayarları değiştirin - bu aşamada programın farklı durumlardaki davranış özelliklerini öğrenmek daha iyidir.

  3. Expert Advisor'ın çalışmasını, sistem karlılığına ilişkin beklentileriniz yerine onaylanmış algoritma ile karşılaştırın. Kontrol işlemi sırasında algoritmanın bir hata içerdiği ortaya çıkarsa lütfen gerekli değişiklikleri yapın ve geliştiriciden Expert Advisor'ı değiştirmesini isteyin. Ancak bunu ücretsiz yapmasını beklemeyin (özellikle iyileştirme önemliyse); bu hata onun hatası değil.

Bir sorun bulursanız, bunu Başvuru Sahibine/Geliştiriciye bildirin.

  1. Algoritmanın program tarafından yanlış işlenen (veya yanlış eylemlerin başladığı) bölümünü belirtin.
    Mantığın ihlal edildiği belirli bir yeri bulmak zorsa, sorunu kendi sözcüklerinizle açıklayın, ancak yine de algoritmadan çok uzaklaşmamaya kaçınılabilir.

  2. Testin gerçekleştirildiği koşulları açıklayın:
    • Programın parametreleriyle bir küme dosyası ekleyin (Expert Advisor'ın "Seçenekler" penceresindeki "Kaydet" düğmesi);
    • Grafiğin kullanılan para birimi çiftini ve zaman dilimini belirtin;
    • Terminalin bağlı olduğu sunucu adresini ve hesap türünü (demo, gerçek, yarışma veya başka türlü) belirtin;
    • İstemci terminalinin derleme sürümünü belirtin ("Yardım" menüsü - "Hakkında");
    • Bunu Strateji Test Cihazı'nda işaretlediyseniz, Strateji Test Cihazı'nın ayarlarını belirtin (test dönemi, yürütme türü ve modu, ilk para yatırma, kaldıraç).

  3. Sorunu gösteren bir ekran görüntüsü ekleyin.

  4. Sorun bir pozisyonun açılması veya kapatılmasıyla ilgiliyse, Strateji Test Cihazı Raporu'ndan pasajı veya hesap geçmişinden birkaç satırı kopyalayın.

  5. Expert Advisor'ın günlük dosyalarını ekleyin (istemci terminalinin "Experts" sekmesinin bağlam menüsünde veya Strateji Test Cihazındaki "Günlük" sekmesinde "Aç"ı seçin).

Programcı ne kadar fazla bilgiye sahip olursa, sorunu bulması ve düzeltmesi o kadar kolay olacaktır. Umarım tüm bu adım açıklamalarından sonra istediklerinizi tam olarak elde edersiniz. Ancak bir yatırımcının yoğun hafta içi günlerine geri dönmek için acele etmeyin, deneyimlerinizi başkalarıyla paylaşın.


9. Geri Bildirimde Bulunma

Geri bildirimde bulunma

MQL büyüyen bir topluluktur ve siz de onun bir parçasısınız .

Bir programcıyı nasıl seçtiğinizi ve ilk görev spesifikasyonlarınızı nasıl hazırladığınızı hatırlayın - Bu süreçte size ne yardımcı olmuş olabilir? Deneyimlerinizi paylaşın!

Açık bir algoritma yazın ve takip edilecek bir örnek işlevi görmesini sağlayın. Yeni başlayanların stratejilerini şekillendirmelerine veya bunun imkansız olduğunu görmelerine yardımcı olun - Kutsal kase arayan başka bir kişiyi umutlarının suya düşmesinden kurtarın.

Programcılarla olan deneyimlerinizi anlatın, onların güçlü ve zayıf yönlerini belirtin, en çok neyin hoşunuza gittiğini ve nelerin sorun teşkil ettiğini açıklayın. Bu sizin 10 dakikanızı alacak, ancak yatırımcı arkadaşlarınızın fazlasıyla cesaretlenmesini ve paradan tasarruf etmesini sağlayacak.

Yapıcı yorumlara karşı olumlu bir tavrım var ve bu makaleye yönelik herhangi bir eleştiri için minnettar olurum. Bazı bölümlerin üzerinde çalışılması gerektiğine inanıyorsanız, bir şeylerin eksik olduğunu veya tam tersine, fazladan bir şey olduğunu düşünüyorsanız beni bundan haberdar edin!

Bu makale, İş tanımı yazmak için bir araç olarak tasarlanmıştır, ancak aslında burada birçok ilgili konu ele alınmıştır. Gerçekten okunmasının kolay olmasını, gerekli tüm açıklamaları içermesini ve size yardımcı olmasını isterim. Bburaya kadar okuduysanız, lütfen sadece birkaç dakikanızı ayırın ve geri bildiriminizi bırakın. Yorumlarınız sayesinde bu makale daha da iyi olabilir.

Expert Advisor geliştirici arkadaşlarımın şüpheci yaklaşımlarını öngörerek, bu makalenin MetaQuotes Software Corp.'un isteği üzerine yazıldığını size bildirmek istiyorum.  Burada hedeflenen şey, hizmetlerimin reklamını yapmak değil, müşteri ve programcı arasındaki kültürel ilişkiye yardımcı olmaktır.

Gerçek bir profesyonel olarak bu girişimi destekleyeceğinizi ve genel işimizi bir sonraki seviyeye taşımamıza yardımcı olacağınızı umuyorum. Yorumlarınızı ve gözlemleriniz bekliyorum.


Sonuç

Otomatik alım satım yeni bir ivme kazanmaya devam ediyor. Nasıl ve ne yönde hareket edeceği bize bağlı.

Şimdi bir ilişki kültürü oluşturalım; çok yakında, yüksek kaliteli Expert Advisor'lar şeklinde ödülleri alacaksınız.

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

MQL5 Sihirbazında Kendi Expert Advisor'ınızı Oluşturun MQL5 Sihirbazında Kendi Expert Advisor'ınızı Oluşturun
Programlama dilleri bilgisi artık alım satım robotları oluşturmak için bir ön koşul değildir. Daha önce programlama becerilerinin eksikliği, kişilerin kendi alım satım stratejilerini uygulaması için aşılmaz bir engeldi, ancak MQL5 Sihirbazı'nın ortaya çıkmasıyla durum kökten değişti. Acemi yatırımcılar, programlama deneyimi eksikliği nedeniyle endişelenmeyi bırakabilirler - Expert Advisor kodu oluşturmanıza olanak tanıyan yeni Sihirbaz ile artık buna gerek kalmadı.
Teknik Analiz: Nasıl Analiz Ederiz? Teknik Analiz: Nasıl Analiz Ederiz?
Bu makalede, yazarın göstergelerin yeniden çizilmesi, çoklu zaman dilimi göstergeleri ve fiyat tekliflerinin Japon mum grafikleriyle görüntülenmesi hakkındaki görüşleri kısaca açıklanmaktadır. Makale herhangi bir programlama ayrıntısı içermemekte olup genel bir karaktere sahiptir.
Yardımcı Göstergelerle Bellek Tüketimini Azaltma Yardımcı Göstergelerle Bellek Tüketimini Azaltma
Bir gösterge, hesaplamaları için diğer birçok göstergenin değerlerini kullanıyorsa, çok fazla bellek tüketir. Makalede, yardımcı göstergeleri kullanırken bellek tüketimini azaltmanın çeşitli yöntemleri açıklanmaktadır. Kaydedilmiş bellek, istemci terminalinde aynı anda kullanılan para birimi çiftlerinin, göstergelerin ve stratejilerin sayısını artırmaya olanak tanır. Alım satım portföyünün güvenilirliğini arttırır. Bilgisayarınızın teknik kaynaklarına bu kadar basit bir özen gösterilmesi, para yatırma işleminizde para kaynaklarına dönüşebilir.
Teknik Analiz: Neyi Analiz Ediyoruz? Teknik Analiz: Neyi Analiz Ediyoruz?
Bu makalede, MetaTrader istemci terminalinde mevcut olan fiyat tekliflerinin temsilinin birkaç özelliği analiz edilmeye çalışılmıştır. Makale genel olup programlamayla ilgili değildir.