Stratejinizi Evrensel Uzman Danışman ve Açık Kaynak ile 10 Adımda Programlama

EA SUPER TESTER Expert Advisor için çok iş parçacıklı test programı.
EA SUPER TESTER Expert Advisor için çok iş parçacıklı test programı.

Table of Contents (click to show)

List

Açıklama

The X, bir ticaret stratejisi oluşturucudur.

En ilginç ve temel tüm fonksiyonları kapsayan bir Evrensel Uzman Danışman geliştirdik.

Ek olarak, standart göstergeleri kullanan bir sinyal modülü de dahil edilmiştir.

Bu, kendi stratejinizi programlamanıza olanak tanıyan bir strateji oluşturucudur.

Önemli bir popülerlik kazanan bir proje olarak başladı. 15 yıldır algoritmayı geliştiriyor, yeni fonksiyonlar ve göstergeler ekliyor ve fonksiyon hatalarını düzeltiyoruz.

Bu makale, stratejinizi programlama, göstergeleri danışmana entegre etme ve yeni sinyaller ve filtreler ekleme konusunda size rehberlik edecektir.

Açık Kaynak

Sıklıkla aldığımız bir soru:

  1. Göstergelerimi bir danışmana entegre edebilir miyim?
  2. Uzman Danışman‘ın açık kaynak kodunun maliyeti nedir?

Danışmanımızın açık kaynak kodunu satışa sunduğumuz bir sır değil. Bu, kendi danışmanlarını geliştirmek veya kendi sinyallerini oluşturmak isteyen yatırımcılar için tasarlanmıştır.

Ayrıca, yatırımcılar genellikle kendi tescilli stratejilerini uygulamak ve danışmanı yeniden satmak için açık kaynak kodu satın alırlar.

  1. Danışman The X‘in açık kaynak kodu Ticaret Danışmanları Pazarımızdan satın alınabilir.
  2. MetaTrader 5 için Açık Kaynak The X (Mevcut değil)
  3. MetaTrader 4 için Açık Kaynak The X (Mevcut değil)
  4. Bu arada, danışmanlarımız için birçok açık kaynak kodumuz var. Bölüm: Strateji Danışmanları (Açık Kaynak)
  5. Açık Kaynak Şablonlarımızı deneyin.
https://expforex.com/tr/templates/

Göstergelerle danışman programlamak karmaşık bir süreçtir.

ticaret danışmanları için programlama hizmetleri sunuyoruz. Ancak, geliştirme süreci genellikle müşterilerin hangi fonksiyonlara ihtiyaç duyduklarından emin olmamaları nedeniyle gecikmelerle karşılaşır.

The X, dünya çapında kullanılan FOREX piyasasında ticaret yapmak için kullanılan bir blok ve fonksiyon koleksiyonudur. Sık kullanılan fonksiyonları geliştirdik, bu da danışmanın her yatırımcının ihtiyaçlarının %90’ını karşılamasını sağlar.

Doğal olarak, deneyimli programcıların geliştirmesi gereken benzersiz stratejiler vardır.

Bu tür stratejiler nadirdir ve titiz bir hazırlık gerektirir. Bu işin maliyeti karmaşıklığına bağlıdır.

Danışmanımızın Gerçek Değeri

bir programcının işinin maliyeti hakkındaki makalemizden başlayarak, ticaret robotumuz The X‘in yaklaşık maliyetini tahmin edebiliriz:

Bizim EA‘mız 10.000’den fazla kod satırı içerir. Bu kapsamlı görünse de, PL/SQL (Programlama Dili/Yapılandırılmış Sorgu Dili) kullanarak danışman yazmadığımız için yönetilebilirdir. Neden? Çünkü OOP (Nesne Yönelimli Programlama) birçok kişiye yabancıdır ve OOP‘yi idare etmek oldukça zor olabilir!

Öyleyse, hesaplayalım:

  1. Bir programcının 1 saatlik çalışma maliyeti = Fonksiyonları ve algoritmaları programlarken 20$.
  2. 1 saatlik hata düzeltme maliyeti = 5$.
  3. Metin yazma ve video oluşturma maliyeti = 10$ (Bu fiyat internet oranlarına dayanmaktadır; tüm talimatları ve videoları kendim oluşturuyorum).
  4. The X için fonksiyonlar ve bloklar yazmanın 1.000 saatten fazla sürdüğünü varsayalım!
  5. Göstergeleri kullanarak sinyal programlamak basittir. Bu nedenle, 10 saat sürdüğünü varsayıyoruz!

Ancak, bazı yönler hemen tamamlanamaz:

  1. Fonksiyonların hatalarını ayıklamak ek 1.000 saat sürebilir!
  2. Talimatlar, videolar ve promosyonlar geliştirmek de 1.000 saat gerektirir!

Toplamda 3.000 saatten fazla yatırım yaptık!

Eğer böyle bir algoritmayı sipariş etmemiz istenseydi, reddederdik. Bu ne makul ne de karlı.

Böyle özel bir uzman danışmanın toplam maliyeti 35.000 doların üzerindedir! Ancak, danışmanımız on kat daha düşük bir fiyata satılmaktadır!!!!

Açık kaynağımızın maliyeti ON kat daha az!

Bu tür özel siparişler asla yerine getirilmez:

  1. Birincisi, müşteriler bu kadar önemli miktarda para yatırmaya isteksiz oldukları için.
  2. İkincisi, programcılar geliştirmeye bu kadar çok zaman ayırmaya isteksiz oldukları için.

Sizi temin ederim ki, böyle karmaşık bir ticaret robotunu programlamak, bir ticaret stratejisi oluşturmaktan daha fazla zaman gerektirir.

Tüm blokların ve fonksiyonların hatalarını ayıklamak uzun zaman gerektirir.

Geçtiğimiz beş yıl boyunca hataları tespit eden ve düzeltmeler sağlayan müşterilerimize ve danışman THE X‘in işlevselliğini artırmak için fonksiyonlarını ve göstergelerini katkıda bulunan müşterilerimize son derece minnettarız.

Forex Ticaret Stratejinizi Programlama

Öncelikle, uzman danışmanımızın kodunu güncellediğimizi belirtmek isterim. Artık anlaşılması çok kolay ve iyi yorumlanmış durumda.

Her fonksiyona ayrıntılı olarak girmenize gerek yok. Stratejinizi sadece 10 adımda programlayabilirsiniz.

Açık kaynağımızla çalışmak için çok kullanıcı dostu bir yöntem hazırladık.

Unutmayın: Danışman için stratejileri ücretsiz programlamıyoruz. Stratejiniz için kod geliştirmek istiyorsanız, lütfen Programlama bölümüne başvurarak bir sipariş verin!

İlk Adımlar:

  1. Danışman Pazarımızdan satın aldığınız danışmanın açık kaynak kodunu açın;
  2. Arama çubuğunu etkinleştirmek için Ctrl + F tuşlarına basın;
  3. Step terimini girin – Bu anahtar kelime, kaynak kodumuzda gezinmenize ve stratejinizi hızlı bir şekilde yazmanıza yardımcı olacaktır.
  4. Kaynak Kodunda Arama Fonksiyonu
  5. Her adım iyi yorumlanmış ve bir örnek sunar.
  6. Stratejinizi nasıl programlayacağınızı öğrenmek için, bir yıldız işareti // * ile işaretlenmiş satırların yorumunu kademeli olarak kaldırabilirsiniz.

Toplamda, danışmanın göstergelerinizle çalışması için açık kaynak kodunda 10 adım bulunmaktadır.

Strateji Oluşturucu Arayüzü

Her adımı ayrıntılı olarak analiz edeceğiz!

MT4 ve MT5 terminalleri arasında programlama farklılık gösterdiğinden, makalemizi iki bölüme ayıracağız:

Eğer MT4 terminali için danışman THE X kullanıyorsanız, doğrudan MetaTrader 4 terminalindeki The X için Programlama bölümüne geçebilirsiniz.

MetaTrader 5 için THE X Programlama

Stratejinizi geliştirmek veya mevcut dosyalardan (örneğin, İnternet’ten alınan Uzman Danışmanlar) göstergeler kullanarak hazır bir strateji eklemek için temel programlama kurallarını anlamanız gerekir.

MetaTrader 5 için danışman programlamak, MetaTrader 4’e göre daha karmaşıktır. Ancak, MT5 terminali daha güçlü stratejiler oluşturmaya olanak tanır ve daha gelişmiş bir strateji test cihazına sahiptir.

Her durumda, terminalin üzerinde çalışacağı açık kaynak kodunu satın almalısınız.

MetaTrader 5 Adım 0: Göstergeleri Kaynaklara Yükleme!

// Adım 0 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// Derleme sırasında göstergeyi Uzman Danışman'a gömmek için, onu Uzman Danışman'ın kaynaklarına yüklemeniz gerekir
//
// Örneğin:
// * #resource "\\Indicators\\Examples\\MACD.ex5"
// ################################################ ###########################

Burada, tarafımızca gerekli olan göstergeleri kaynaklara eklemeliyiz.

Bu, danışmanın piyasa için derlenebilmesini sağlar ve derlenmiş danışmanın başka bir bilgisayarda istenen göstergeyi bulamaması gibi gereksiz sorunları önler.

Piyasada Adlandırma Kuralları: Indicators ile başlayan tam klasör adlarını kullanın!

Klasör \\ ile belirtilir.

Örneğin:

Göstergenizin yolu şuysa:

C:\ROBO MT5\MQL5\Indicators\Examples\MACD.ex5

O zaman, bu göstergenin programlama dilindeki yolu şu şekilde yazılır:

“\\Indicators\\Examples\\MACD.ex5”

MetaTrader 5 Adım 1: Sinyal Adını Belirtin!

// Adım 1 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// // işaretinden sonra sinyalinizin adını girin
// ################################################ ####################
// Örneğin:
// * Custom = 77, // Açık kaynak için Sinyal
// ################################################ ############################

Bu adımda, sinyalimizi veya stratejimizi Uzman Danışman‘daki olası sinyaller listesine eklemeliyiz.

Bu, uzman kurulum aşamasında sinyallerin kolay yönetilmesini sağlar.

Kodda Sinyal Adını Belirtme

Örneğin:

  1. Stratejinize MY STRATEGY (BENİM STRATEJİM) adını vermek istiyorsunuz
  2. Strateji numarası da benzersiz olmalıdır. Standart göstergelerden gelen sinyaller ilk 22 numarayı işgal eder! Bu numarayı daha sonra ihtiyacımız olacağı için unutmayın.
  3. Ad da benzersiz olmalıdır. Örneğin, MYSTRATEGY1

Sonunda, koda aşağıdaki gibi yazmalıyız:

MYSTRATEGY1 = 77, // MY STRATEGY

Ayrıca daha fazla strateji ekleyebilir ve örneğin şöyle yazabilirsiniz:

  1. MYSTRATEGY1 = 77, // MY STRATEGY a
  2. MYSTRATEGY2 = 78, // MY STRATEGY b
  3. MYSTRATEGY3 = 79, // MY STRATEGY c

MetaTrader 5 Adım 2: Sinyal Görüntü Adını Belirtin!

// Adım 2 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// // işaretinden sonra ekranda görüntülenecek olan sinyalinizin adını girin
// ################################################ ####################
// Örneğin:
// * if (i == 77) s1 = "Custom";
// ################################################ ###########################

Bu adım, stratejinizin adını bizim EAPADpro EA panelimizde göstermek içindir.

Çok basit! Ancak, önceki adımdaki numaraları kullanmalısınız.

Sinyal Adını Görüntüleme

Örneğin:

  1. if (i == 77) s1 = “My1”;
  2. if (i == 78) s1 = “My2”;
  3. if (i == 79) s1 = “My3”;

MetaTrader 5 Adım 3: Filtre Adını Belirtin!

// Adım 3 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// // işaretinden sonra filtrenizin adını girin
// ################################################ ####################
// Örneğin:
// * FILTERCustom = 77, // Açık kaynak için Filtre
// ################################################ ###########################

Bu adımda, filtremizi Uzman Danışman‘daki olası filtreler listesine eklememiz gerekiyor.

Bu, uzman kurulum aşamasında filtrelerin kolay yönetilmesini sağlar.

Tipik olarak, Filtre, Sinyal ile aynı göstergeyi kullanır, ancak Filtre‘nin Sinyal‘in mevcut konumunu belirlemesi ve Sinyal‘in gerçek sinyali yansıtması koşuluyla.

Örneğin:

  1. Filtre‘nize MY FILTER (BENİM FİLTREM) adını vermek istiyor musunuz?
  2. Filtre numarası da strateji numarasıyla eşleşmelidir (Bu, gelecekte diğer rakamlarla karışıklığı önler). Filtreler, standart göstergelerden gelen ilk 22 numarayı işgal eder! Bu numarayı daha sonra ihtiyacımız olacağı için unutmayın.
  3. Ad da benzersiz olmalıdır. Örneğin, MYFILTER1

Sonunda, koda aşağıdaki gibi yazmalıyız:

MYFILTER1 = 77, // MY FILTER

Ayrıca daha fazla filtre ekleyebilir ve örneğin şöyle yazabilirsiniz:

  1. MYFILTER1 = 77, // MY FILTER a
  2. MYFILTER2 = 78, // MY FILTER b
  3. MYFILTER3 = 79, // MY FILTER c

MetaTrader 5 Adım 4: Gösterge veya Stratejinin Parametrelerini Dış Değişkenlerde Belirtin!

// Adım 4 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// Stratejinizde kullanılacak göstergenizin veya göstergelerinizin tüm dış değişkenlerini belirtin
//
// Örneğin:
// * input string IndicatorName = "-------- Custom Indicator ----------------";
// * input int CUSTOMMAFastPeriod = 1;
// * input int CUSTOMMASlowPeriod = 100;
// * input ENUM_APPLIED_PRICE CUSTOMMAprice = PRICE_CLOSE;
// ################################################ ###########################

Bu adımda, stratejinizdeki göstergelerin Uzman Danışman‘dan değiştirilebilen tüm dış ayarlarını girmelisiniz. Bu, optimizasyon amaçları için kullanışlıdır.

Ayrıca, burada belirli strateji parametrelerini çıkarabilirsiniz. Örneğin, çizgilerin kesiştiği seviyeler, göstergenin çalışmasını grafikteki MAKS ve MİN fiyatlarıyla sınırlama vb.

Göstergeler için tüm parametreleri girmenize gerek yoktur. Gelecekte Uzman Danışman ayarlarından değiştirmek isteyebileceklerinizi yapmanız yeterlidir. Diğer tüm parametreler varsayılan değerlerine ayarlanabilir.

Gösterge Parametrelerini Belirtme

MetaTrader 5 Adım 5: Uzman Danışman’a Yüklenecek Gösterge Tanıtıcıları (Handles) Oluşturun!

// Adım 5 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// Uzman Danışman'ın başlatma sırasında gösterge tanıtıcısını atayabilmesi için dizide bir giriş oluşturun
//
// Örneğin:
// * case 77:
// * h_custom[tf_num][sym_num] = iCustom(array_symbol, array_tf, "::Indicators\\Examples\\MACD", CUSTOMMAFastPeriod, CUSTOMMASlowPeriod, 9, CUSTOMMAprice);
// * if (h_custom[tf_num][sym_num] == INVALID_HANDLE)
// * {
// *     PrintToLogs("MACD gösterge tanıtıcısı alınamadı");
// *     return(INIT_FAILED);
// * }
// ################################################ ###########################

Bu adım, göstergelerimizin Uzman Danışman‘ın başlatılması sırasında bir kez yüklenmesini sağlar. MetaTrader 5‘te, göstergeyi grafiğe sürekli olarak yüklemeye gerek yoktur.

Bir tanıtıcı oluştururken, ileride kullanmak üzere zaten açık olan bir göstergenin tanıtıcısını saklarız.

Burada çok dikkatli olun. Bir tanıtıcı oluştururken, göstergenin tüm dış değişkenlerini belirtmeli ve doğru adı kullanmalısınız. Aksi takdirde, Uzman Danışman göstergeyi yükleyemez.

Göstergeyi Uzman Danışman kaynaklarına yüklediğimizi unutmayın. Bu nedenle, göstergeyi kaynaklardan çağıracağız!

iCustom kullanarak göstergeleri çağırma hakkındaki MQL5 belgelerine bakabilirsiniz.

Bu kodu yazmak için bir strateji numarası da gereklidir. Stratejiniz birden fazla gösterge kullanıyorsa, her göstergeyi aynı numara ile belirtmeniz gerekir. Bu, danışmanın stratejinizi doğru bir şekilde yüklemesini sağlar.

Yukarıdaki örneklerimize göre, aşağıdakileri yapmamız gerekiyor:

case 77:
h_custom[tf_num][sym_num] = iCustom(array_symbol, array_tf, "::Indicators\\Examples\\MACD", CUSTOMMAFastPeriod, CUSTOMMASlowPeriod, 9, CUSTOMMAprice);
if (h_custom[tf_num][sym_num] == INVALID_HANDLE)
{
    PrintToLogs("MACD gösterge tanıtıcısı alınamadı");
    return(INIT_FAILED);
}
break;

Burada, programlamanın özünü göstermek için sadece iki dış parametreyi açıkça belirttim. Bu Göstergenin InpSignalSMA parametresini varsayılan bir sayıyla değiştirdim!

Da-benzeri şekilde, birden fazla gösterge ve tanıtıcı ekleyebilirsiniz.

Strateji birkaç gösterge kullanıyorsa, her birini bildirmeniz gerekir.

Örneğin:

case 77:
h_custom[tf_num][sym_num] = iCustom(array_symbol, array_tf, "::Indicators\\Examples\\MACD", CUSTOMMAFastPeriod, CUSTOMMASlowPeriod, 9, CUSTOMMAprice);
h_custom2[tf_num][sym_num] = iCustom(array_symbol, array_tf, "::Indicators\\Examples\\MACD", CUSTOMMAFastPeriod, CUSTOMMASlowPeriod, 15, CUSTOMMAprice);
if (h_custom[tf_num][sym_num] == INVALID_HANDLE || h_custom2[tf_num][sym_num] == INVALID_HANDLE)
{
    PrintToLogs("MACD gösterge tanıtıcısı alınamadı");
    return(INIT_FAILED);
}
break;

Ayrıca, Uzman Danışman‘a entegre etmek istediğiniz diğer stratejiler için!

MetaTrader 5 Adım 6: Stratejinin Gösterge(ler)ini Yüklemek için Değişkenleri Bildirin!

// Adım 6 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// Tanıtıcı dizi değişkenlerini bildirin
//
// Örneğin:
// * int h_custom[6][12];
// * int h_custom2[6][12];
// ################################################ ###########################

Burada, yukarıda oluşturulan tanıtıcılarımızın adlarını belirtiyoruz!

Çok basit.

Tanıtıcılar, EA‘da çoklu para birimini desteklemek ve aynı anda altı adede kadar sinyal veya filtre belirtmeye izin vermek için diziler olarak oluşturulur!

MetaTrader 5 Adım 7: Gösterge Verilerini Depolamak için Değişkenleri Bildirin!

// Adım 7 ##############################################
// Kodun bu kısmı, stratejinizi açık kaynakta programlamak içindir
//
// Gösterge değerleri için dizi değişkenlerini bildirin
//
// Örneğin:
// * double custom1_buffer[];
// * double custom2_buffer[];
// ################################################ ###########################

Burada, veri arabelleklerimizin (buffers) adlarını belirtiyoruz!

Çok basit.

Bu diziler, her çubuk için gösterge değerleri hakkında veri depolayacaktır. Birden fazla arabellek kullanmanız gerekiyorsa, birkaç değişken bildirebilirsiniz.

Bizim durumumuzda, örneğin, MACD göstergesinin sinyal çizgisi ve ana çizgisi için iki arabelleğe ihtiyacımız var.

Gösterge Veri Değişkenlerini Bildirme

MetaTrader 5 Adım 8: Pozisyon Açmak için Stratejiler ve Sinyaller Oluşturun!

Bu adım Uzman Danışman için çok önemlidir. Diğer tüm adımlar zorunlu olsa da, bu adım olmadan danışman çalışmaz.

Her bölümü açıklamak için koda yorumlar ekledim!

Strateji numarası, önceki adımlarda kullanılanla eşleşmelidir!

  1. Her strateji ve sinyal için kodu ayrı ayrı programlayın. Seçilen stratejiye ve göstergelere bağlıdır. Stratejiler için arabellekleri işlemek şunları içerir…
  2. Bu blokta herhangi bir strateji belirtebileceğinizi unutmayın.
  3. Tanıtıcılarda bildirilen tüm göstergeler belleğe yüklenecek ve stratejiyi oluşturmak için kullanılacaktır.
Stratejiler ve Sinyaller Oluşturma

Bu adım üç alt adıma ayrılabilir:

  1. 1. Veri arabelleklerini veri setlerimize kopyalamamız gerekiyor. Kopyalama parametrelerinde, satır numaralarını belirtmeliyiz (Bizim durumumuzda, bunlar MACD gösterge çizgileridir).
  2. İki çizgi kullanıyoruz: MAIN (Ana) ve SIGNAL (Sinyal).
  3. CopyBuffer fonksiyonu hakkındaki belgeleri okuyabilirsiniz.
  4. 2. Stratejiyi programlama. Bu durumda, iki çizginin kesişimidir.
  5. Önemli: AL (BUY) sinyali 1, SAT (SELL) sinyali ise -1‘dir.
  6. 3. Burada, sinyale dayalı olarak bir pozisyon açıldığında günlükte (log) görüntülenecek bilgileri kaydederiz. Strateji Bilgisi.

Tüm tanıtıcıları ve arabellekleri doğru bir şekilde doldurduysanız, ekranda aşağıdakiler görünmelidir:

Alert(“Tebrikler, stratejinizi programlamayı gösteren bir dersi tamamladınız!”);
Alert(“Tebrikler! Stratejinizi programlamayı gösteren bir dersi tamamladınız!”);
Bir hata mesajı alırsanız, bu hatanın nedenini belirlemeli ve çözmelisiniz.

Hata Kodları

En yaygın hatalar:

ERR_INDICATOR_UNKNOWN_SYMBOL 4801 Bilinmeyen sembol
ERR_INDICATOR_CANNOT_CREATE 4802 Gösterge oluşturulamıyor
ERR_INDICATOR_NO_MEMORY 4803 Gösterge eklemek için yeterli bellek yok
ERR_INDICATOR_CANNOT_APPLY 4804 Gösterge başka bir göstergeye uygulanamıyor
ERR_INDICATOR_CANNOT_ADD 4805 Gösterge eklenirken hata oluştu
ERR_INDICATOR_DATA_NOT_FOUND 4806 İstenen veri bulunamadı
ERR_INDICATOR_WRONG_HANDLE 4807 Yanlış gösterge tanıtıcısı
ERR_INDICATOR_WRONG_PARAMETERS 4808 Gösterge oluşturulurken yanlış parametre sayısı
ERR_INDICATOR_PARAMETERS_MISSING 4809 Gösterge oluşturulurken eksik parametreler
ERR_INDICATOR_CUSTOM_NAME 4810 Dizideki ilk parametre özel göstergenin adı olmalıdır
ERR_INDICATOR_PARAMETER_TYPE 4811 Gösterge oluşturulurken dizide yanlış parametre türü
ERR_INDICATOR_WRONG_INDEX 4812 İstenen gösterge arabelleğinin yanlış dizini

MetaTrader 5 Adım 9: Göstergelerinizden Filtreler Belirtin veya Göstergenizi Strateji için Filtre Olarak Kullanın!

Bu adımdaki programlama kodu basittir ve önceki adıma benzer.

Tek fark, bu aşamada göstergelerinizi bir Filtre olarak programlamanızdır.

Göstergeyi kullanarak sinyalleri belirleyemezsiniz, ancak yalnızca filtreyi belirtebilirsiniz veya tam tersi! Her şey stratejiye bağlıdır.

 

MetaTrader 5 Adım 10: Bu son adımdır!

// Adım 10 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Bu kodumuzun sonu. Bu adıma ulaştıysanız, stratejinizi oluşturdunuz. 
// Örneğin, gizli bir strateji girdim. Her şeyi doğru yaptıysanız, sonucu ekranda bir uyarı şeklinde alacaksınız! 
// Ürünümüzü seçtiğiniz için teşekkür ederiz. Sizin için çalışıyoruz! 
// 
// Web sitemiz: 
// Mağazamız: /shop 
// MQL5 mağazası: https://www.mql5.com/pt/users/vladon/seller 
// 
// 
// Bu kodumuzun sonu. Bu adıma ulaştıysanız, stratejinizi oluşturdunuz. 
// Örneğin, gizli bir strateji girdim. Her şeyi doğru yaptıysanız, sonucu ekranda bir uyarı şeklinde alacaksınız! 
// Ürünümüzü seçtiğiniz için teşekkür ederiz. Sizin için çalışıyoruz! 
// 
// Web sitemiz: 
// Mağazamız: /shop 
// MQL5 mağazası: https://www.mql5.com/pt/users/vladon/seller 
// ################################################ ###########################

Bu, stratejinizin programlanmasının tamamlandığını gösterir.

Size iyi şanslar ve bol kazançlar dileriz!

MetaTrader 5 Sonuçlar ve Stratejinin Doğrulanması

Her şeyi doğru yaparsanız, stratejiniz Uzman Danışman‘a entegre edilecek ve danışmanımı kullanarak ticaret yapabileceksiniz.

Şimdi, danışmanımızı ve stratejimizi test etmemiz gerekiyor.

  1. Terminali yükleyin;
  2. Bir demo hesabı açın;
  3. Uzman Danışmanı grafiğe ekleyin;
  4. Her şey yolundaysa, stratejinin başarılı bir şekilde eklendiğine dair bir mesaj alacaksınız:
    • Strateji başarıyla eklendi mesajı
  5. Veya bir hata alacaksınız. Bu durumda, kodunuzu dikkatlice gözden geçirmeniz ve tüm adımları tekrarlamanız gerekir!

Strateji Test Cihazında Uzman Danışmanı Kontrol Etme:

  1. Terminali açın;
  2. Strateji Test Cihazını açın;
  3. Uzman Danışmanınızı, döviz çiftinizi, zaman diliminizi ve tarih aralığınızı seçin. Gerçek ticklere dayalı Her Tick testini etkinleştirin;
    • Strateji Test Cihazı ayarları ekran görüntüsü
  4. Ayarlar sekmesini açın;
    • Ayarlar sekmesi ekran görüntüsü
  5. Stratejinizi seçin;
  6. Görselleştirmeyi etkinleştirin;
  7. BAŞLAT‘a basın;
  8. Bir grafik açılmalıdır;
  9. Eğer Uzman Danışman pozisyon açarsa, her şeyi doğru yaptınız demektir!
    • Uzman Danışman pozisyon açıyor

MetaTrader 4 için THE X Programlama

Stratejinizi yazmak veya mevcut bir dosyadan (örneğin, İnternet’ten Uzman Danışmanlar) göstergeler için hazır bir strateji eklemek için temel programlama kurallarını anlamalısınız.

MetaTrader 5 için Uzman Danışman programlamak, MetaTrader 4‘e göre daha karmaşıktır. Ancak, MT5 terminali daha güçlü stratejiler oluşturmanıza olanak tanır ve daha gelişmiş bir Strateji Test Cihazı içerir.

Öte yandan, MetaTrader 4 terminali için çevrimiçi olarak çok sayıda strateji ve gösterge mevcuttur. Bu nedenle, MT4 için kodu kullanabilirsiniz!

Bir diğer önemli hatırlatma: MT4’te bir strateji kodlamak, MT5’te kodlamaktan çok daha kolaydır!

Her durumda, çalışacağınız terminale dayalı olarak açık kodu satın almalısınız.

MetaTrader 4 Adım 0: Göstergeleri Kaynaklara Yükleme

// Adım 0 ############################################## ######################
    // Bu kısım, stratejinizi açık kaynakta programlamak içindir
    // Bu kısım, stratejinizi açık kaynakta programlamak içindir
    //
    // Derleme sırasında göstergeyi Uzman Danışman'a gömmek için, onu Uzman Danışmanın kaynaklarına yüklemeniz gerekir
    // Derleme sırasında göstergeyi Uzman Danışman'a gömmek için, onu Uzman Danışmanın kaynaklarına yüklemeniz gerekir
    // ################################################ ####################
    // örneğin:
    // * #resource "\\ Indicators \\ MACD.ex4"
    // ################################################ ###########################
    

Burada, tarafımızca gerekli olan göstergeleri kaynaklara eklemeliyiz.

Bu, piyasa için bir danışman derlememize ve derlenmiş Uzman Danışmanın başka bir bilgisayarda istenen göstergeyi bulamaması gibi gereksiz sorunları önlememize olanak tanıyacaktır!

Gösterge yolunu yazma kuralları: Indicators ile başlayan tam klasör adlarını kullanın!

Klasör \\ ile belirtilir

Örneğin:

Göstergenizin yolu şöyle görünüyorsa:

C:\ROBO MT4\MQL4\Indicators\Examples\MACD.ex4

O zaman, bu göstergenin programlama dilindeki yolu şöyle yazılır:

“\\Indicators\\Examples\\MACD.ex4”

MetaTrader 4 Adım 1: Sinyal Adını Belirtin

// Adım 1 ############################################## ###################### 
    // Bu kısım, stratejinizi açık kaynakta programlamak içindir 
    // Bu kısım, stratejinizi açık kaynakta programlamak içindir 
    // 
    // // işaretinden sonra sinyalinizin adını girin 
    // // işaretinden sonra sinyalinizin adını girin 
    // ################################################ #################### 
    // örneğin: 
    // * Custom = 77, // Açık kaynak için sinyal 
    // ################################################ ############################

Bu adımda, Sinyalimizi veya stratejimizi danışmandaki olası sinyaller listesine eklemeliyiz.

Bu, Uzman Danışman kurulum aşamasında sinyallerin kolay yönetilmesini sağlar.

Sinyal adlandırma örneği

Örneğin:

  1. Stratejinize MY STRATEGY adını vermek istiyorsunuz
  2. Strateji numarası da benzersiz olmalıdır. Standart göstergelerden gelen sinyaller ilk 22 numarayı işgal eder! İleride başvurmak için bu numarayı unutmayın.
  3. Ad da benzersiz olmalıdır. Örneğin, MYSTRATEGY1

Sonunda, koda şöyle yazmalısınız:

MYSTRATEGY1 = 77, // MY STRATEGY

Ayrıca daha fazla strateji ekleyebilir ve örneğin şöyle yazabilirsiniz:

  1. MYSTRATEGY1 = 77, // MY STRATEGY a
  2. MYSTRATEGY2 = 78, // MY STRATEGY b
  3. MYSTRATEGY3 = 79, // MY STRATEGY c

MetaTrader 4 Adım 2: Ekranda Görüntülenecek Sinyal Adını Belirtin

// Adım 2 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Ekranda görüntülenecek sinyalinizin adını // işaretinden sonra girin 
// Ekranda görüntülenecek sinyalinizin adını // işaretinden sonra girin 
// ################################################ #################### 
// örneğin: 
// * if (i == 77) s1 = "Custom"; 
// ################################################ ###########################

Bu adım, stratejinizin adını EApadpro EA panelimizde görüntülemek içindir.

Karmaşık bir şey yok! Ancak önceki adımdaki numaraları kullanmalısınız.

Sinyal adı görüntüleme örneği

Örneğin:

  1. if (i == 77) s1 = “My1”;
  2. if (i == 78) s1 = “My2”;
  3. if (i == 79) s1 = “My3”;

MetaTrader 4 Adım 3: Filtre Adını Belirtin

// Adım 3 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// // işaretinden sonra filtrenizin adını girin 
// // işaretinden sonra filtrenizin adını girin 
// ################################################ #################### 
// örneğin: 
// * FILTERCustom = 77, // Açık kaynak için filtre 
// ################################################ ###########################

Bu adımda, Filtremizi Uzman Danışman‘daki olası filtreler listesine eklememiz gerekiyor.

Bu, Uzman Danışman kurulum aşamasında filtrelerin kolay yönetilmesini sağlar.

Genellikle, Filtre, Sinyal ile aynı göstergeyi kullanır, ancak Filtre‘nin Sinyal‘in mevcut konumunu belirlemesi ve Sinyal‘in ticaret eylemini onaylaması koşuluyla.

Filtreler ve sinyaller arasındaki farklara dair örnekler

Örneğin:

  1. Filtre‘nize MYFILTER adını vermek istiyor musunuz?
  2. Filtrenin numarası da stratejinin numarasıyla eşleşmelidir (Bu, gelecekte standart gösterge numaralarıyla karışıklığı önlemek için yapılır). Filtreler, standart göstergeler için ayrılmış ilk 22 numarayı işgal eder! İleride başvurmak için bu numarayı unutmayın.
  3. Ad da benzersiz olmalıdır. Örneğin, MYFILTER1

Sonunda, koda şöyle yazmalısınız:

MYFILTER1 = 77, // MY FILTER

Ayrıca daha fazla filtre ekleyebilir ve örneğin şöyle yazabilirsiniz:

  1. MYFILTER1 = 77, // MY FILTER a
  2. MYFILTER2 = 78, // MY FILTER b
  3. MYFILTER3 = 79, // MY FILTER c

MetaTrader 4 Adım 4: Gösterge veya Strateji Parametrelerini Dış Değişkenlerde Belirtin

// Adım 4 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Stratejinizde kullanılacak göstergenizin veya göstergelerinizin tüm dış değişkenlerini belirtin 
// Stratejinizde kullanılacak göstergenizin veya göstergelerinizin tüm dış değişkenlerini belirtin 
// ################################################ #################### 
// örneğin: 
// * input string IndicatorName = "-------- Custom Indicator ----------------"; 
// * input int CUSTOMMAFastPeriod = 1; 
// * input int CUSTOMMASlowPeriod = 100; 
// ################################################ ###########################

Bu adımda, stratejinizde kullanılan ve Uzman Danışman‘dan değiştirilebilen göstergelerin tüm dış ayarlarını girmelisiniz. Bu optimizasyon için kullanışlıdır.

Ayrıca, stratejinin belirli parametrelerini, örneğin çizgilerin kesişme seviyeleri, grafikteki MAKS ve MİN fiyatlarına dayalı göstergenin çalışmasının sınırlandırılması vb. çıkarabilirsiniz.

Göstergeler için tüm parametreleri girmenize gerek yoktur. Gelecekte Uzman Danışman ayarlarından değiştirmek isteyebileceklerinizi dahil etmeniz yeterlidir. Diğer tüm parametreler için, göstergeyi varsayılan ayarlarıyla bırakabilirsiniz.

Dış değişkenler kurulum örneği

MetaTrader 4 Adım 5, 6, 7: Rahatlayın!

// Adım 5 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Adım 5 sadece MT5 terminali için gereklidir. Bu yüzden bu adımda rahatlayıp bir kahve içebilirsiniz 
// Adım 5 sadece MT5 terminali için gereklidir. Bu yüzden bu adımda rahatlayıp bir kahve içebilirsiniz 
// ################################################ ###########################
    
// Adım 6 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Adım 6 sadece MT5 terminali için gereklidir. Bu yüzden bu adımda rahatlayıp bir şeyler atıştırabilirsiniz 
// Adım 6 sadece MT5 terminali için gereklidir. Bu yüzden bu adımda rahatlayıp bir şeyler atıştırabilirsiniz 
// ################################################ ###########################
    
// Adım 7 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Adım 7 sadece MT5 terminali için gereklidir. Bir egzersiz molası verin 
// Adım 7 sadece MT5 terminali için gereklidir. Bir egzersiz molası verin 
// ################################################ ###########################

Not: MetaTrader 4, daha fazla çalışma için göstergelerin belleğe yüklenmesini gerektirmez. MT4’te gösterge tekrar çağrıldığında, Uzman Danışman aynı tanıtıcıyı kullanır.

MetaTrader 4 Adım 8: Pozisyon Açmak için Stratejiler ve Sinyaller Oluşturma

Bu adım Uzman Danışman için çok önemlidir. Diğer tüm adımlar zorunlu olsa da, bu adım olmadan danışman çalışmaz.

Koda yorumlar ekledim!

Strateji numarası, önceki adımlardaki numarayla eşleşir!

  1. Strateji ve sinyal için programlama kodu bireyseldir. Seçilen stratejiye ve göstergelere bağlıdır. Strateji arabelleklerini ayarlama…
  2. Bu blokta herhangi bir strateji belirtebileceğinizi belirtmek isterim.
  3. Tanıtıcılarda bildirdiğimiz tüm göstergeler belleğe yüklenecek ve stratejiyi oluşturmak için kullanılacaktır.
Strateji arabellekleri örneği

Bu adım 2 alt adıma ayrılabilir:

  1. 1. Stratejiyi programlama. Bu durumda, iki çizginin kesişimidir.
  2. Önemli: AL (BUY) için Sinyal 1, SAT (SELL) için -1‘dir.
  3. 2. Bir pozisyon açıldığında günlükte (log) görüntülenecek bilgileri kaydedin. Strateji Bilgisi

Bir hata mesajı alırsanız, hatanın nedenini belirlemeniz gerekir.

Hata Kodları

En yaygın hatalar:

ERR_INDICATOR_UNKNOWN_SYMBOL 4801 Bilinmeyen sembol
ERR_INDICATOR_CANNOT_CREATE 4802 Gösterge oluşturulamıyor
ERR_INDICATOR_NO_MEMORY 4803 Gösterge eklemek için yeterli bellek yok
ERR_INDICATOR_CANNOT_APPLY 4804 Gösterge başka bir göstergeye uygulanamıyor
ERR_INDICATOR_CANNOT_ADD 4805 Gösterge eklenirken hata oluştu
ERR_INDICATOR_DATA_NOT_FOUND 4806 İstenen veri bulunamadı
ERR_INDICATOR_WRONG_HANDLE 4807 Yanlış gösterge tanıtıcısı
ERR_INDICATOR_WRONG_PARAMETERS 4808 Gösterge oluşturulurken yanlış parametre sayısı
ERR_INDICATOR_PARAMETERS_MISSING 4809 Gösterge oluşturulurken eksik parametreler
ERR_INDICATOR_CUSTOM_NAME 4810 Dizideki ilk parametre özel göstergenin adı olmalıdır
ERR_INDICATOR_PARAMETER_TYPE 4811 Gösterge oluşturulurken dizide yanlış parametre türü
ERR_INDICATOR_WRONG_INDEX 4812 İstenen gösterge arabelleğinin yanlış dizini

MetaTrader 4 Adım 9: Göstergelerinizden Filtreler Belirtin veya Göstergenizi Strateji için Filtre Olarak Kullanın

Bu adımın kod programlamasında karmaşık bir şey yoktur ve önceki adıma benzer.

Tek fark, bu aşamada göstergelerinizi bir Filtre olarak programlamanızdır.

Göstergeyi kullanarak sinyalleri belirleyemezsiniz, ancak yalnızca filtreyi belirtebilirsiniz veya tam tersi! Her şey stratejiye bağlıdır.

 

MetaTrader 4 Adım 10: Bu Son Adımdır!

// Adım 10 ############################################## ###################### 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// Bu kısım, stratejinizi açık kaynakta programlamak içindir 
// 
// Bu kodumuzun sonu. Bu adıma ulaştıysanız, stratejinizi oluşturdunuz. 
// Örneğin, gizli bir strateji girdim. Her şeyi doğru yaptıysanız, sonucu ekranda bir uyarı şeklinde alacaksınız! 
// Ürünümüzü seçtiğiniz için teşekkür ederiz. Sizin için çalışıyoruz! 
// 
// Web sitemiz: 
// Mağazamız: /shop 
// MQL5 mağazası: https://www.mql5.com/pt/users/vladon/seller 
// 
// 
// Bu kodumuzun sonu. Bu adıma ulaştıysanız, stratejinizi oluşturdunuz. 
// Örneğin, gizli bir strateji girdim. Her şeyi doğru yaptıysanız, sonucu ekranda bir uyarı şeklinde alacaksınız! 
// Ürünümüzü seçtiğiniz için teşekkür ederiz. Sizin için çalışıyoruz! 
// 
// Web sitemiz: 
// Mağazamız: /shop 
// MQL5 mağazası: https://www.mql5.com/pt/users/vladon/seller 
// ################################################ ###########################

Bu adım, aramayı kullanırken kaybolmamanız için oluşturuldu.

Bu, stratejinizin programlanmasının tamamlandığını gösterir.

Size iyi şanslar ve bol kazançlar dileriz!

MetaTrader 4 Sonuçlar ve Strateji Kontrolü

Her şeyi doğru yaparsanız, stratejiniz Uzman Danışman‘a entegre edilecek ve danışmanımı kullanarak ticaret yapabileceksiniz.

Şimdi, danışmanımızı ve stratejimizi test etmemiz gerekiyor.

  1. Terminali yükleyin;
  2. Bir demo hesabı açın;
  3. Uzman Danışmanı grafiğe ekleyin;

Strateji Test Cihazında Uzman Danışmanı Kontrol Etme:

  1. Terminali açın;
  2. Strateji Test Cihazını açın;
  3. Uzman Danışmanınızı, döviz çiftinizi, zaman diliminizi ve tarih aralığınızı seçin. Gerçek ticklere dayalı Her Tick testini etkinleştirin;
    • Strateji Test Cihazı seçim ekran görüntüsü
  4. Ayarlar sekmesini açın;
    • Strateji Test Cihazı ayarlar sekmesi ekran görüntüsü
  5. Stratejinizi seçin;
  6. Görselleştirmeyi etkinleştirin;
  7. BAŞLAT‘a basın;
  8. Bir grafik açılmalıdır;
  9. Eğer Uzman Danışman pozisyon açarsa, o zaman her şeyi doğru yaptınız demektir!
    • Uzman Danışman pozisyonları açıldı ekran görüntüsü

Uzman Danışman’da Başka Neler Değiştirilebilir?

Elbette, stratejinizi kişiselleştirmek ve danışmanımıza benzersiz bir görünüm kazandırmak isteyebilirsiniz!

Kendi takdirinize bağlı olarak değiştirebileceğiniz parametreler:

 // Değişiklik 1: Uzman Danışman Sürümü // EA Sürümü
#define versionea "18.008" 
// Değişiklik 2: Danışman logosu // EA LOGOSU
#define BMPLOGO "Images\\dollar.bmp"
// Değişiklik 3: Uzman Danışman Simgesi // EA Simgesi
// #property icon "\\Images\\dollar.bmp"
// Değişiklik 4: Grafikteki Uzman Danışman Adı // Grafikte EA Adı
#define defEANAME "EXP-The X (OS)"
// Değişiklik 5: Tam talimata bağlantı // Tam talimata bağlantı
#define linkTOfull "www.expforex.com/tr/publ/4-1-0-166" 
// Değişiklik 6: Uzman Danışmanın demo sürümü. Yalnızca demo hesapta veya USDJPY çifti ile gerçek bir hesapta çalışır // Danışmanın demo sürümü. Yalnızca demo hesapta veya USDJPY çifti ile gerçek bir hesapta çalışır
bool DEMO = false;
    

Diğer tüm parametrelerin değiştirilmemesi önerilir, çünkü bu Uzman Danışmanın işlevselliğini bozabilir!

Bir Stratejide Hata Ayıklama

Bir sonraki adım, The X‘i test etmek ve optimize etmek ve en iyi ayarlarınızı bulmaktır.

Alternatif olarak, stratejinizi ayıklayın ve yükseltin.

Bazen günler veya haftalar sürer. Bazen aylar bile.

Forex Piyasası – Risk Bildirimleri! Bu çok riskli bir para kazanma yoludur. Stratejinizi geliştirin.

İyi şanslar ve bol kazançlar!

Strateji Bloğunda Ek Bilgi Çıktısı Alma

Bu, açık kaynak kodumuzda isteğe bağlı bir özelliktir.

EAPADPRO Strateji bloğunda herhangi bir parametrenin herhangi bir değerini çıktı olarak alabilirsiniz.

1. Bunu yapmak için yerel bir değişken oluşturun,

örn., double EAPADPRO_StrategyValue1 = 0; double EAPADPRO_StrategyValue2 = 0;

2. Bu değişkene bir değer atayın,

örneğin, ATR göstergesinin değerini atayın (double atr = iATR satırını bulun):

EAPADPRO_StrategyValue1 = atr;
EAPADPRO_StrategyValue2 = atrma;

Tam filtre kodu:

3. Ardından, değişkenin değerini bilgi çıktı bloğuna ekleyin:

Kodda CreateStrategy() fonksiyonunu bulun ve yeni bir satır ekleyin:

ArrayAddStrategy("StrategyValue1", DoubleToString(EAPADPRO_StrategyValue1, 5), "", "");
    
ArrayAddStrategy("StrategyValue2", DoubleToString(EAPADPRO_StrategyValue2, 5), "", "");

Fonksiyonun ilk parametresi değişkenin adıdır.

Fonksiyonun ikinci parametresi, değişkenin uygun bir formattaki değeridir!

Dikkat! Ekranda düzgün bir görüntü sağlamak için çift sayıda parametre ekleyin!

Bu gönderi ayrıca şu dillerde de mevcuttur: English Portuguese Español Deutsch Українська Chinese Русский Français Italiano Türkçe 日本語 한국어 العربية Indonesian ไทย Tiếng Việt




    Lütfen bekleyin, yapay zeka ile iletişim kuruluyor...

     

    Risk Uyarısı:


    Geçmiş işlem performansı gelecekteki sonuçları garanti etmez.

    Teminatlı döviz ticareti yüksek derecede risk taşır ve tüm yatırımcılar için uygun olmayabilir.

    Ticaret robotlarını kullanmanın önemli risk içerdiğini ve ilk yatırımınızdan daha fazlasını kaybedebileceğinizi unutmayın.

    Lütfen dikkatli davranın, mali durumunuzu dikkatle değerlendirin ve kalifiye bir profesyonelden tavsiye almayı düşünün.

    Sorumluluk Reddi

    Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Bu web sitesini kullanarak, Veri Koruma Politikamızı ve Feragatnamemizi kabul etmiş olursunuz.
    Devamını oku