English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
MetaTrader 5 Terminalinin Strateji Test Cihazında Tik Oluşturma Algoritması

MetaTrader 5 Terminalinin Strateji Test Cihazında Tik Oluşturma Algoritması

MetaTrader 5Sınayıcı | 13 Ocak 2022, 08:56
143 0
MetaQuotes
MetaQuotes


Uzman Danışmanlar Oluşturma - MQL5'te otomatik alım satım sistemleri

MetaTrader 5 terminali, herhangi bir insan müdahalesi olmaksızın alım satım yapabilen tam otomatik stratejilerin (alım satım robotları) geliştirilmesi için bir entegre geliştirme ortamını içerir. Bu alım satım robotlarının bir diğer adı Uzman Danışmanlardır. MetaTrader 5 terminali için Uzman Danışmanlar ve teknik göstergeler, modern programlama dillerinin bütün avantajlarını içeren MQL5 dili kullanılarak yazılır.

  • yürütme hızı;
  • nesne yönelimli programlama (OOP) desteği;
  • hata ayıklama yeteneği.

MQL5'te programların hatalarını ayıklama yeteneği, mümkün, ancak gerekli, olan en üst güvenlik düzeyine sahip bir kod oluşturmanıza olanak sağlar, kârlı bir alım satım sisteminin geliştirilmesi için gerekli olan tek koşul bu değildir. Geniş bir geçmiş veri aralığında pozitif sonuçlar gösterebilen alım satım sistemleri, arızalara ve hatalara toleranslı anlamına gelen İngilizce "robust" kelimesinden türetilen sağlam olarak adlandırılır.


Alım satım stratejilerini test etme

Sermayenizi Uzman Danışmana emanet etmeden önce, pozisyon açma ve kapatma kurallarının ve para yönetimi kurallarının kâr beklentisine olanak sağladığından emin olmalısınız. Bunu test etmenin en basit yolu, mevcut geçmiş verileri kullanarak Danışmanın çalışmasını simüle etmektir.

MetaTrader 5 istemci terminalinde, Danışmanın geçmiş verilerle çalışmasının sonuçlarını elde etmek için bir strateji test cihazı olan özel bir entegre bileşen bulunur. Uzman Danışmanın tarihlerin belirli bir aralığında tek seferlik çalıştırılması işlemine Uzman Danışman testi adı verilir. Bu tek seferlik test, Uzman Danışmanın sağlamlığına dair çıkarımlarda bulunmak için gerekli olan büyük miktarda faydalı bilgi sağlar.

Ancak bu sonuçlara güvenebilmek için, test sürecinin, Uzman Danışmanın çalıştırıldığı asıl mevcut ortamı mümkün olduğunca yakından modellemesi gerekir. MetaTrader 5 test cihazı, üzerinde bir alım satım işleminin gerçekleştiği her bir enstrüman için spread’lerin geçmiş değerlerini kullanarak fiyatların tik-tik modellemesini kullanır.


Strateji test cihazının kısa tarihçesi


MetaTrader 3

İlk strateji test cihazı MetaTrader 3 terminalinde ortaya çıkmıştır. Bu, modern standartlara göre nispeten basit bir test cihazıdır; çubukta üç fiyat geliştirme modeline dayalı testler gerçekleştirmiştir:
  • Dört fiyat modeli - fiyat, yukarı yönlü mum için sırasıyla Open, Low, High ve Close aşamalarından geçmiştir ve aşağı yönlü mum için Open, High, Low ve Close aşamalarından geçmiştir;
  • "Her 1 puan" modeli bir 3-5-3 dalga modelini kullanır, burada fiyat 1 puanlık artışlar ile sıralı olarak üç dalga, ardından beş dalga ve ardından başka bir üç dalgadan geçmektedir.
  • "Spread/2" modeli "Her bir nokta" ile aynı modeli kullanır, ancak fiyat artışı, kullanıcı tarafından belirtilen spread’in yarısı kadardır.

Fiyat modellemesi, her zaman test edilen zaman aralığının çubuklarına dayalı olmuştur, daha düşük zaman aralıklarından gelen bilgiler kullanılmamıştır. MetaTrader 3 terminalindeki test cihazının, yavaş test hızı, düşük doğruluk ve Uzman Danışmanın giriş parametreleri ile optimizasyonunun olmaması gibi birçok eksikliği vardır.

MetaTrader 4

MetaTrader 4 terminali üçüncü terminalin yerini almış ve yeni bir derlenmiş MQL4 dili (Daha önceki MQL-II yorumlanmıştır) dahil edilmiş ve teste yönelik tamamen yeni bir yaklaşım benimsemiştir. Test artık üç modda gerçekleştirilebilir:

  • Her tik (Every Tick) - mum içinde tiklerin oluşturulması, Uzman Danışmanın çalışmalarının, test ortamı dahilinde gerçek alım satıma en üst düzeyde yakın modellenmesine olanak sağlar;
  • Kontrol Noktaları (Denetim noktaları) - doğruluk ve test hızı arasında bir uzlaşma;
  • Fiyatların açılması (Açılış Fiyatı) - Uzman Danışman yalnızca mumun açılışında başlatılır, bu da stratejinin çok hızlı bir değerlendirmesine olanak sağlar.

Üçüncü terminalin test cihazından önemli bir fark, MetaTrader 4 terminalinin test stratejisinin alım satım simülasyonu için mevcut en genç zaman aralığının fiyat verilerini kullanmasıdır. Dolayısıyla, test sonuçları, test edilen aralık boyunca dakika geçmişinin varlığı ile çevrimiçi olarak elde edilen sonuçlara azamı ölçüde yakın olmaktadır. Çubuk içindeki fiyat gelişiminin temel zaman aralıkları olmaksızın simülasyonu MetaTrader 3'ün test terminali ile aynı şekilde oluşturulur.

Ek olarak, giriş parametrelerinin doğrudan numaralandırması ile ve bir genetik algoritma kullanarak optimizasyon gerçekleştirme imkanı elde ettik. Bu da bize, özellikle çok sayıda giriş parametresi içeren stratejiler için optimizasyon sürecini önemli ölçüde hızlandırma imkanı sağladı. Artık, görsel rejimde gerçek test yapmak mümkündür. Bu, yatırımcılar tarafından takdir edilen büyük bir adımdır.

5. nesil yeni MetaTrader terminali, önceki terminallerin tasarımından kazanılan tecrübeye dayanmaktadır ve bu, strateji test cihazı için de geçerlidir. Artık çok para birimli stratejileri, diğer bir deyişle birçok enstrüman üzerinde eş zamanlı işlem yapan stratejileri test etme imkanı vardır.

Strateji optimizasyonu artık hem mevcut tüm işlemci çekirdeklerinde hem de LAN ve küresel İnternet ağındaki diğer bilgisayarlarda bulunan uzak aracılarda gerçekleştirilebilir. Bu da, test cihazının güçlerini biriktirmenize ve daha önce erişilemeyen bulut hesaplamalarını doğrudan MQL5 dilinde gerçekleştirmenize olanak sağlar.

Ancak MetaTrader 5 terminalindeki test sürecinin temel olarak anlaşılması için, bir strateji test cihazında fiyatların nasıl modellendiğini anlayabilmek çok önemlidir.


Tik oluşturma algoritması

MetaTrader 5 terminalinin Strateji Test Cihazı, testte fiyat modellemenin yalnızca bir modunu kullanır: kullanılan sembollerin dakika zaman aralıklarındaki mevcut geçmiş verilere dayalı olarak tik oluşturma. MetaTrader 4'teki diğer simülasyon modları, yüksek hızlarına rağmen bunların yüksek bir test doğruluğu sağlamamasından dolayı çıkarılmıştır.

Test cihazında bir M1 zaman aralığı kullanılması, üst düzey zaman aralıklarına dayalı tik simülasyonunun aksine, minimum hata sayısı ile fiyat hareketinin oldukça doğru bir simülasyonuna olanak sağlar. Bunun sonucunda, MetaTrader 5 strateji test cihazında fiyatların modellenmesindeki hatalar önemsizdir ve simüle edilen fiyat ile gerçekte meydana gelen fiyat arasındaki farklar yalnızca bir dakika çubuğu ölçeğinde olabilir.

Bu yaklaşımda yerel ve uzak aracılar üzerinde optimizasyon gerçekleştirme yeteneği test süresindeki artışı telafi edebilir. Tik oluşturma, bir tamsayı biçiminde önbelleğe alınan dakika girişlerine dayanır. Bu nedenle tik oluşturma oldukça hızlı bir şekilde yapılır.

Gerekli zaman aralıklarının tamamına ait çubuklar, oluşturulan tiklerin alınmasıyla, olağan şekilde (müşteri terminalinde olduğu gibi) test cihazının geçmiş veri tabanında oluşturulur. Dakika çubuğu tik hacmi 1 herhangi bir oluşturma sürecinden geçmez - Close değeri ile yazılabilir.


2 tik içeren bir çubuk da oluşturulmaz - ilk olarak bunun tik değeri Open olarak kaydedilir ve ardından Close değerinde bir tik kaydedilir.

          



Bir şemaya göre 3 tik içeren bir çubuk oluşturulur, üç tik içeren çubuklar için sadece 4 çubuk geliştirme modeli vardır:
  1. Bir yöne gitmiştir ve Open seviyesine geri dönmüştür




  2. Bir yöne gitmiştir, geri düşmüştür ve Open seviyesine ulaşmıştır




  3. Bir yöne gitmiştir, geri düşmüştür, ancak Open seviyesine ulaşmamıştır




  4. Bir yönde birkaç nokta




Destek noktası

Çubukta 3'ten fazla tik varsa, ilk olarak destek noktaları oluşturulur. Destek noktalarının sayısı, tik hacminden daha büyük olamaz. Açılış fiyatı, başlangıç noktası olduğu için, destek noktalarının sayımına dahil edilmez. Maksimum destek noktası sayısı 11'dir.

Destek noktaları, açılış gölgesi, mum ölçeği ve kapanış mum gölgesi arasında dağıtılır. 


Destek noktalarının tik sayısına göre dağılımı aşağıdaki gibidir (açılış gölgesi - mum kapsamı - kapanış gölgesi):

3^(5) = 3.
2^(6) = 2.
2^(5) = 2.
2^(4) = 2.
2^(3) = 2.
1 - 4 - 1
1^(3) = 1.
1 - 2 - 1
1 - 1 - 1
Mumda gölgelerden biri yoksa, bu gölgelerin destek noktaları mumların büyüklüğüne verilir.



Mum kapsamı, destek noktalarının bir tek sayısı ile oluşturulur. Kapsamda destek noktasının çift sayısı varsa, gölgenin halihazırda 2 noktası olması koşuluyla "ekstra" nokta gölgelerden birine verilir. Aksi takdirde, "ekstra" nokta kaybolur.

Destek noktalarının değerleri, destek noktasının fiyatı ile mumların açılış fiyatı arasındaki farkı temsil eder. Bir yukarı yönlü (beyaz) mum için destek noktalarının ideal dağılımı (3-5-3) aşağıdaki gibidir:





3-5-3 modelinde destek noktalarının bir aşağı yönlü (siyah) mum oluşumu da benzerdir:




Mum bir doji, yani Close == Open ise, bu durumda önceki mumlar analiz edilir; bir önceki mum yükseliyorsa, bu durumda bu doji bir aşağı yönlü mum olarak değerlendirilir.



Gölge, üç destek noktası ve 3 / 4 tamsayı değerleri kullanılarak oluşturulursa, gölge boyutu ve 1 / 2 gölge boyutu eşitse (bu, Open ve Low veya Open ve High arasındaki fark 2 noktadan daha büyük değilse meydana gelir), bu durumda gölge oluşumu aşağıdaki şekilde değişir:

 

Gölge iki destek noktası ile oluşturulursa, bu durumda kontrol noktaları aşağıdaki şekilde düzenlenir:





Kapanış gölgesi de benzer şekilde oluşturulur.


Low'dan High'a destek noktalarının zeminini oluşturma

Mum kapsamı dürtü dalgaları ile oluşturulur, dalga sayısı şu şekilde hesaplanır:

number of waves = (number of support points in the scope + 1) / 2.

Örneğin, mum kapsamındaki destek noktalarının sayısı 5'e eşitse (Şekil 3-5-3), bu durumda 3 dalga oluşturulacaktır = (5+1) / 2 oluşacaktır.

Her dürtü dalgasının, aşağıdaki formülle hesaplanan, nokta cinsinden bir step uzunluğuna vardır:

step=(High-Low-1)/(quantity of waves)+1

Örneğin mumların kapsamı (High - Low) = (1,3113 - 1,3100) = 0,0013 13 noktayken dalga boyu adımı = (13-1) / 3 +1 = 5 noktadır.

Dürtü step sonrası puanlar 1 puan geri alınmalıdır. Ayrıca döngüde destek noktalarının pozisyonları (bir yukarı yönlü mum için) hesaplanır:

prev=low
cycle
  n1=prev+step
  n2=prev+step-1
  prev=n2


burada:

  • n1 - desteğin ilk dürtü noktası
  • n2 - ikinci destek noktası - geri alma noktası.

Bu algoritmayı, bir 3-5-3 şemasındaki bir yukarı yönlü muma uygulayalım, burada dalga sayısı 3'e eşittir ve step = 5 nokta, nokta = 0,0001'dir:

  1. İlk step. prev değişkeni = Low = 1,3100, döngüye girin.
  2. İlk dalga için verileri hesaplayın
    • Nokta pozisyonunu hesaplarız, n1 = prev + step = 1,3100 + 5 * 0,0001 = 1,3105.
    • Nokta pozisyonunu hesaplarız, n2 = prev + step-1 = 1,3100 + 5 * 0,0001-1 * 0,0001 = 1,3104;
    • n2: prev = 1,3104 değerini prev değişkenine atayın;
  3. İkinci dalga için verileri hesaplayın
    • Nokta pozisyonunu hesaplayın, n1 = prev + step = 1,3104 + 5 * 0,0001 = 1,3109.
    • Nokta pozisyonunu hesaplarız, n2 = prev + step-1 = 5 + 1,3104 * 0,0001-1 * 0,0001 = 1,3108;
    • n2: prev = 1,3108 değerini prev değişkenine atayın;
  4. Üçüncü dalga için verileri hesaplayın
    • Nokta pozisyonunu hesaplarız, n1 = prev + step = 1,3108 + 5 * 0,0001 = 1,3113.
    • Döngüden çıkın, prev = n2 = 1,3112

Yukarıdakilerin tümü, resmin anlaşılması için gösterilmiştir:


Aşağı yönlü mumlar için destek noktalarının hesaplanması aynı şekilde yapılır:

prev=high
cycle
  n1=prev-step
  n2=prev-step+1
  prev=n2


Tik oluşturma destek noktalarına göre gerçekleştirilir.

Destek noktaları arasındaki ara tikler aşağıdaki kurallara göre oluşturulur:
  • Tiklerin sayısı destek noktaları arasındaki noktaların sayısından büyükse, bir "testere" oluşturulur.
  • Destek noktaları arasında birkaç nokta varsa, tiklerin doğrusal bir dizisi oluşturulur.


Tik dizisini kontrol edin

Sonuç olarak, 13 Mayıs 2010'da 13:00-13:30 arasında MetaQuotes-Demo sunucusundan kaydedilen tik geçmişini, MetaTrader 5 istemci terminalinde test cihazı tarafından oluşturulan tik dizisi ile karşılaştıralım. Tikleri aracı günlüğüne kaydetmek için bir Uzman Danışman kullanılmıştır:

//+------------------------------------------------------------------+
//|                                                  Write_Ticks.mq5 |
//|              Copyright Copyright 2010, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

input datetime start=D'2010.05.13 13:00:00';
input datetime end=D'2010.05.13 14:00:00';

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   datetime time=TimeCurrent();
//---
   SymbolInfoTick(Symbol(),tick);
   Print(time,tick.bid);
//---
   if(time>end) ExpertRemove();
//---
  }

Tik geçmişi, Tik göstergeleri oluşturma makalesinde açıklanan gösterge kullanılarak çevrimiçi olarak toplanmıştır.

Her iki tik dizisi - test cihazından gelen ve bir dosyada saklanan dizi - grafik üzerinde gösterilir. Test sırasında elde edilen tikler yeşil renkle ve MetaQuotes-Demo alım satım sunucusunda elde edilen ve dosya göstergesine kaydedilen tikler mavi renkle gösterilir.


Fareyi grafik üzerinde herhangi bir noktada tutabilir ve açılır pencerelerde her tik üzerindeki bilgileri okuyabilirsiniz:

  • köken (Test Cihazı veya Geçmiş);
  • tik zamanı;
  • tik fiyatı.

Grafik, MetaTrader 5 müşteri terminalindeki test cihazında simülasyon tiklerinin kalitesinin, Uzman Danışmanların geçmiş veriler üzerinde yeterli ölçüde testine olanak sağladığını açıkça göstermektedir.

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

Alım Satımlar MetaTrader 5'ten MetaTrader 4'e Nasıl Kopyalanır? Alım Satımlar MetaTrader 5'ten MetaTrader 4'e Nasıl Kopyalanır?
Bugün gerçek bir MetaTrader 5 hesabında alım satım yapmak mümkün mü? Böyle bir alım satım nasıl organize edilir? Bu makale, bu soruların teorisini ve alım satımları MetaTrader 5 terminalinden MetaTrader 4'e kopyalamak için kullanılan çalışma kodlarını içerir. Makale, hem Uzman Danışman geliştiricileri hem de yatırımcılar için faydalı olacaktır.
2013'ün Üçüncü Çeyreği için MetaTrader AppStore Sonuçları 2013'ün Üçüncü Çeyreği için MetaTrader AppStore Sonuçları
Yılın bir çeyreği daha geçti ve MetaTrader platformları için en büyük alım satım robotları ve teknik göstergeler mağazası olan MetaTrader AppStore için sonuçlarını özetlemeye karar verdik. Raporlanan çeyreğin sonuna kadar 500'den fazla geliştirici Market'a 1.200'ün üzerinde ürün ekledi.
Alım Satım Fikirlerinin Grafik Üzerinde Hızlı Testi Alım Satım Fikirlerinin Grafik Üzerinde Hızlı Testi
Makale, alım satım fikirlerinin hızlı görsel test yöntemini açıklar. Yöntem bir fiyat grafiği, bir sinyal göstergesi ve bir bakiye hesaplama göstergesinin kombinasyonuna dayanır. Alım satım fikirleri için arama yöntemimi ve bu fikirleri hızlı bir şekilde test etmek için kullandığım yöntemi paylaşmak istiyorum.
Satıcı veya Sağlayıcı Değilseniz MetaTrader AppStore ve Alım Satım Sinyalleri Hizmetlerinden Nasıl Para Kazanabilirsiniz? Satıcı veya Sağlayıcı Değilseniz MetaTrader AppStore ve Alım Satım Sinyalleri Hizmetlerinden Nasıl Para Kazanabilirsiniz?
Market uygulamaları satıcısı veya karlı bir sinyal sağlayıcısı olmak zorunda kalmadan MQL5.com'da hemen şimdi para kazanmaya başlamak mümkün. Beğendiğiniz ürünleri seçin ve çeşitli web kaynaklarında bunlara bağlantılar gönderin. Potansiyel müşterileri çekin ve kar sizin olsun!