Algoritmik trading — bireysel yatırımcı için ilk adımlar

Son doğrulama: · Uzun vadeli güncel içerik
Risk uyarısı · YMYL Bu makale yalnızca eğitim amaçlıdır ve yatırım tavsiyesi niteliği taşımaz. Forex piyasasında işlem yapmak yüksek sermaye kaybı riski içerir — ESMA verilerine göre bireysel yatırımcı hesaplarının %74–89'u zarar etmektedir. Türkiye'de kaldıraçlı döviz işlemleri SPK ve BDDK denetimine tabidir; herhangi bir yatırım kararı vermeden önce lisanslı bir mali danışmana başvurunuz.

Bireysel yatırımcı için algoritmik trading, rollerin basit bir değişiminden ibarettir: trader kuralı tanımlar, bilgisayar onu yürütür. "Hızlı hareketli ortalama yavaşı yukarı kırıp son yirmi çubuğun ATR'si artıyorsa, sermayenin yüzde biri büyüklüğünde EUR/USD alış / uzun pozisyon aç, dur noktasını 1,5 ATR aşağıya koy." Özünde tanım budur. Geri kalan her şey — VPS sağlayıcıları, programlama dilleri, çerçeveler — birer iskele unsurudur. Bireysel algo projelerinin çoğunda asıl sorun kod değil; otomasyonun, gerçekte sahip olunmayan bir piyasa üstünlüğünü telafi edebileceği yanılgısıdır. Edemez. Trader'ın yaptığından yalnızca daha hızlı ve daha ucuza kaybeder.

Algoritmik trading nedir — ve kesinlikle ne değildir

Bir algoritma aynı anda iki şeydir: kesin biçimde tanımlanmış bir strateji ve onu duygusal titremeden yürüten mekanizma. Giriş, çıkış, pozisyon büyüklüğü ve zarar yönetimi koşullarının tamamını belirsizliğe yer bırakmayan bir dille yazabilen trader, işin yarısını yapmış demektir; gerisi o belgeyi MQL5, Python ya da sıradan bir uyarıya dönüştürmektir. Bu disiplinden yoksun trader ise sözdizimi öğrenerek başlar ve çok sonra kodlanacak somut bir şeyin olmadığını fark eder. Sistematik trading üzerine yazılmış her makul kitap aynı tavsiyeyi yineler: stratejiyi önce elle test et, sonra otomasyona geç. "Yüz doksan dokuz dolarlık bir bot" satan her hafta sonu kursu bu tavsiyeyi görmezden gelir. Algoritma aynı zamanda sihirli bir pasif gelir kaynağı da değildir: bugün işe yarayan bir strateji, belirli bir piyasa düzenliliği varlığını koruduğu için işe yarer; o düzenlilik kaybolduğunda, bot da takdiri bir trader kadar kayıp verir — yalnızca sorunun farkına varmayı sağlayan duygusal uyarı sinyali olmaksızın.

Uyarılardan tam otomasyona uzanan dört basamak

Doğal yol dört basamaktan geçer. Birinci basamak, giriş koşulu gerçekleştiğinde TradingView ya da MetaTrader'da ses veya e-posta bildirimi veren platform uyarılarıdır. Trader hâlâ emri kendisi verir; ancak stratejiyi platformun ifade edebildiği kadar kesin bir kurala çevirmek zorunda kalır. Günlük sinyal sayısı azken pek çok bireysel trader bu basamaktan bir üste geçmek zorunda kalmaz, geçmesine de gerek yoktur; disiplinli uyarılar yeterli olabilir. İkinci basamak, MQL5'te MetaTrader için yazılan basit bir Expert Advisor'dır; çoğunlukla trailing stop'lu bir hareketli ortalama çakışması ya da ATR kırılmasıdır. Böyle bir EA iki ila dört yüz satırda yazılır ve haftalar içinde tamamlanır. Üçüncü basamak, pandas, NumPy ve backtrader kütüphaneleriyle Python'da yazılan bir geriye dönük test (backtesting) aracıdır; trader tek bir akşamda düzinelerce strateji varyantını hesaplar. Dördüncü ve isteğe bağlı basamak ise Interactive Brokers veya OANDA ile REST ya da FIX üzerinden kurulan doğrudan aracı kurum bağlantısıdır; bu noktada MetaTrader ara katman olmaktan çıkar. Pratik uygulama bölümünde her basamağa ilişkin ayrıntılı kılavuzlar bulabilirsiniz.

Gerekli beceriler ve dil seçimi

Liste kısa. En çok önem taşıyan şey istatistiksel düşüncedir: kazanma oranı, kâr faktörü ve beklenti değeri arasındaki farkı kavramak; elli işlemlik bir özkaynak eğrisinin henüz hiçbir şeyi kanıtlamadığını bilmek. Bu temel olmadan, temiz kod bile "son altı işlem kârlıydı, strateji çalışıyor" biçiminde sonuçlar üretir; bu analiz değil, sıfır hipotezidir. İkincisi doğrulama döngüsüne sabırdır: fikir, kodlama, geriye dönük test, walk-forward, üç ila altı ay demo, ancak ondan sonra gerçek sermaye. Üçüncüsü programlama temellerdir: değişkenler, döngüler, fonksiyonlar, bir pandas DataFrame'in ne yaptığına dair bir kavrayış. Yazılım mühendisi olmak şart değildir; başkasının EA kodunu okuyup bütünü bozmadan bir parametre değiştirebilmek yeterlidir. Dil seçimi tek bir soruya bağlıdır: trader MetaTrader'ın içinde mi kalıyor, yoksa dışına mı çıkıyor? MQL5, MT5'in yerel dilidir; yürütme gecikmesi tek haneli milisaniyeyle ölçülür ve Strateji Test Cihazı (Strategy Tester) kullanışlı bir geriye dönük test sunar. Python ise MetaTrader'ın ötesindeki tüm dünyadır: pandas ve NumPy veri işlemesi için, backtrader ya da vectorbt geriye dönük testler için, Interactive Brokers ve OANDA'nın REST istemcileri için. Her iki yaklaşımın karşılaştırması için stratejiler bölümüne bakabilirsiniz.

Somut örnek — ilk stratejiden geriye dönük teste

EUR/USD H1 üzerinde bir çakışma (crossover) stratejisi düşünelim: EMA 21, SMA 55'i aşağıdan kırdığında ve son on dört çubuğun ATR'si elli periyotluk ortalamasının üzerindeyken EUR/USD alış / uzun pozisyon açılır. Dur noktası girişin 1,5 ATR altında, kâr al hedefi 2,5 ATR yukarıda, pozisyon büyüklüğü sermayenin yüzde biri. Birinci adım: trader, son altı aylık veride MT5'te kırk girişi elle yürütür; kazanma oranını ve ortalama kârlı/zararlı işlem büyüklüğünü hesaplar. Diyelim ki sonuç yüzde 38 kazanma oranı, kâr faktörü 1,4. İkinci adım: EA'yı MQL5'te kodlar ve Strateji Test Cihazı'nda beş yıllık tarihsel veri üzerinde çalıştırır. Sonuç elle yapılan hesaplara yakınsamalı ya da sistematik biçimde ayrışmalıdır; ayrışma varsa, kural yanlış yazılmış ya da elle yürütme bir yerde sezgisel yorumlanmıştır. Üçüncü adım: aynı EA, Dukascopy verisi üzerinde gerçekçi makas/spread ve kayma (slippage) dahil Python ve backtrader ile test edilir. Dördüncü adım: rakamlar kararlıysa walk-forward. Tüm rakamlar örnek amaçlıdır; sırayı gösterirler, bir vaat değildir.

“Algoritmik trader'ın en büyük düşmanı veri gözetimi yanlılığıdır (data-snooping bias). Geriye dönük testte parlak görünen modeller çoğunlukla canlı işlemlerde başarısız olur; strateji yanlış olduğu için değil, trader'ın değerlendirmede kullandığı veriyle optimizasyon yaptığı için.” — Ernest P. Chan, 2013

Bireysel algo projelerinin çoğu neden başarısız olur

İki neden var ve ikisi de programlama becerisiyle ilgili değil. İlki, otomasyona değer bir piyasa üstünlüğünün yokluğudur: trader bir geriye dönük test aracı yazar, son beş yılın verisiyle parametreleri uyarlar ve gerçekte hiçbir zaman üretilemeyecek kadar güzel bir özkaynak eğrisi elde eder. Canlı geçer, para kaybeder, "daha iyi bir stratejiye" ihtiyacı olduğu sonucuna varır ve döngüyü yeniden başlatır. İkinci neden ise "stratejinin üstünlüğü yok, başa dön" mesajını kabul etme isteksizliğidir. Çoğu trader bunu duymak yerine parametreleri aşırı optimize etmeyi tercih eder; algoritma mesajı yumuşatmaz, yalnızca daha hızlı tekrarlar. Risk yönetimi bölümünde bir üstünlük teyit edilmeden risk alınmaması gerektiğini ele alıyoruz. Altyapı gerçekçi bir maliyetle gelir: Vultr veya Hetzner'de bir VPS aylık beş ila yirmi euro arasındadır, MetaTrader ve Python ücretsizdir, Dukascopy verisi ücretsizdir. Giriş engeli aylık on euro değerinde, binlerce değil. Darboğaz zaman ve istatistiksel düşüncedir, para değil. Türkiye'de SPK (Sermaye Piyasası Kurulu) ve BDDK (Bankacılık Düzenleme ve Denetleme Kurumu) lisansı olmayan yabancı aracı kurumlar aracılığıyla kaldıraçlı Forex/CFD işlemi gerçekleştirmek, Türkiye'deki bireysel yatırımcılar için mevzuata aykırı olabilir ya da yasal ve mali açıdan önemli riskler doğurabilir. Bir EA'yı VPS üzerinde çalıştırmak hakkında pratik bilgiye ForexMechanics — platforms and tools bölümünden ulaşabilirsiniz. Avrupa Birliği'nde ESMA, perakende müşteriler için kaldıracı 1:30 ile sınırlandırmış olup ESMA verilerine göre perakende hesapların yüzde 74 ila 89'u zarar etmektedir; bu rakamlar AB bağlamını yansıtır, Türkiye'de bağlayıcı değildir. Forex işlemlerinden elde edilen gelir, Türkiye'de Gelir Vergisi Kanunu kapsamında değerlendirilebilir; stopaj (tevkifat) uygulanabilir. Vergi yükümlülükleriniz için bir mali müşavire ya da vergi uzmanına danışın.

Nereden başlamalı — ilk adımlarınız

  1. Bir işlem günlüğü açın ve bir hafta boyunca her girişinizi "eğer X ve Y ise, Z aç" biçiminde belirsizliğe yer bırakmayan bir kural olarak yazın; "genellikle", "eğilimi var" ya da "hissediyorum ki" gibi ifadeleri tamamen dışlayın. Hafta sonunda kararlarınızın hiçbirini bu biçimde yazamıyorsanız, henüz otomasyona taşıyacak bir stratejiniz yok, yalnızca tepkiler bütününüz var demektir.
  2. Aracı kurumunuzdan ücretsiz MetaTrader 5'i indirin, bir demo hesabı açın ve TradingView ya da MT5'in yerel uyarı sisteminde kuralınızın en basit versiyonu için üç uyarı tanımlayın; iki hafta boyunca uyarıların, elle seçeceğiniz anlarda tetiklenip tetiklenmediğini gözlemleyin. Bu alıştırma stratejinizi test etmekten çok, stratejinizin var olup olmadığını test eder.
  3. Üçüncü haftada mql5.com'a kayıt olun, MT5 ile birlikte gelen MetaEditor'ı açın ve en basit Expert Advisor'ı yazın: EMA 21 ile SMA 55 çakışması, 1,5 ATR trailing stop. Hedef kırk ila seksen saatlik çalışmayla çalışan bir EA elde etmektir, kârlı bir EA değil; MQL5 Referans belgesi bu süreçte ana kılavuzunuz olacaktır.
  4. İki ay sonra Python 3.11 veya daha yenisini yükleyin, pip install komutuyla pandas, NumPy ve backtrader'ı ekleyin, Backtrader Quickstart Guide'ı takip edin ve MQL5 EA'sını bir backtrader stratejisi olarak yeniden uygulayın. Aynı veri üzerinde geriye dönük test sonuçlarını karşılaştırın; yüzde birkaçın üzerindeki farklılıklar, bir yerde gizli bir varsayım olduğuna işaret eder.
  5. Ancak beşinci ya da altıncı ayda EA'yı Vultr veya Hetzner'de barındırılan bir VPS üzerindeki demo MetaTrader hesabına dağıtın. Üç ay süre tanıyın. Demo performansı walk-forward geriye dönük testiyle örtüşüyorsa, yalnızca o zaman aylık bütçenizi etkilemeyecek kayıp tutarında bir canlı hesap düşünün — ilk aşamada beş yüz ila iki bin euro, fazlası değil.
Jarosław Wasiński
Yazar hakkında

Jarosław Wasiński

MyBank.pl genel yayın yönetmeni · Finans ve piyasa analisti

Finans sektöründe 20 yılı aşkın deneyime sahip bağımsız analist ve uygulayıcı. 2004'ten bu yana faaliyet gösteren MyBank.pl portalının kurucusu ve genel yayın yönetmeni. 2007'den beri döviz ve makroekonomik piyasaların temel analizi. Küresel piyasalar perspektifinden yazmaktadır. Kaldıraçlı Forex işlemleri yüksek risk taşır; Türkiye'de SPK denetiminde faaliyet gösteren aracı kurumlara başvurun.

Kaynaklar ve bibliyografya

  1. MetaQuotes MetaTrader 5 — Automated Trading · oficjalny opis automatycznego handlu w MetaTraderze, ścieżek pozyskania robota i miejsca strategy testera w warsztacie www.metatrader5.com ↗
  2. MetaQuotes MQL5 Reference — programming language for algorithmic trading · dokumentacja referencyjna języka MQL5 i pięciu typów aplikacji (EA, indykatory, skrypty, serwisy, biblioteki) www.mql5.com ↗
  3. Backtrader Backtrader Quickstart Guide · podręcznik startowy frameworka backtrader w Pythonie — strategie, indykatory, optymalizacja parametrów www.backtrader.com ↗
  4. BIS BIS Quarterly Review, December 2019 — FX trading rises to $6.6 trillion per day · omówienie elektronicznej egzekucji i roli niebankowych principal trading firms w obrocie walutowym — kontekst dla retail algo www.bis.org ↗

Sık sorulan sorular

Bireysel yatırımcı için algoritmik trading gerçekte nedir — ve kesinlikle ne değildir?

Bireysel yatırımcı için algoritmik trading, yürütme katmanını bilgisayara devretmek demektir: trader, kuralı belirsizliğe yer bırakmayan bir koşul olarak tanımlar ("21 periyotluk hareketli ortalama 55 periyotluğu aşağıdan kırıp son yirmi çubuğun ATR'si artıyorsa, 1,5 ATR trailing stop ile sermayenin yüzde biri büyüklüğünde EUR/USD alış / uzun pozisyon aç") ve yazılım o koşulun gerçekleştiğini fark edip emri tereddütsüz, Telegram'ı kontrol etmeden ve son zararlı işlemden etkilenmeden iletir. Bir algoritmanın kesinlikle olmadığı şey, aynı anda üç boyutta sihirli pasif gelir motorudur. Var olmayan bir piyasa üstünlüğü yaratmaz: trader elle işlem yaparak kaybediyorsa, bot daha hızlı ve daha düşük maliyetle kaybeder. Piyasa rejimi değişiminden korumaz: üzerine inşa edildiği tarihsel dönem trendli bir piyasaysa ve piyasa artık yatay seyrediyorsa, özkaynak eğrisi takdiri bir trader kadar etkin biçimde erir. Stratejinin kendi içindeki mantık hatalarını da düzeltmez; yalnızca onları daha tutarlı biçimde kodlar.

Elle emir vermekten bota geçişe giden gerçekçi dört basamak nasıl görünüyor?

Birinci basamak, giriş koşulu gerçekleştiğinde TradingView ya da MT5'te ses veya e-posta bildirimi veren platform uyarılarıdır. Trader hâlâ emri kendisi verir; ancak stratejiyi kesin bir kurala çevirmek zorunda kalır. İkinci basamak, MQL5'te MetaTrader için yazılan basit bir Expert Advisor'dır; çoğunlukla trailing stop'lu hareketli ortalama çakışması ya da kırılmadır. Üçüncü basamak, pandas, NumPy ve backtrader ile Python'da yazılan geriye dönük test aracıdır; trader tek bir akşamda düzinelerce strateji varyantını hesaplar. Dördüncü ve isteğe bağlı basamak, Interactive Brokers veya OANDA ile REST ya da FIX üzerinden kurulan doğrudan aracı kurum bağlantısıdır; MetaTrader ara katman olmaktan çıkar. Gerçekçi süre on iki ila yirmi dört aylık akşam çalışması — Udemy'de bir hafta sonu kursu değil.

Gerçekte hangi becerilere ihtiyacım var — ve bu "kod öğren, zengin ol" efsanesinden nasıl ayrışıyor?

Üç şey önem taşır, bu sırayla. Birincisi istatistiksel düşünce: kazanma oranı, kâr faktörü ve beklenti değeri arasındaki farkı kavramak; elli işlemlik bir özkaynak eğrisinin henüz hiçbir şeyi kanıtlamadığını bilmek. Bu temel olmadan, temiz kod bile "son altı işlem kârlıydı, strateji çalışıyor" biçiminde sonuçlar üretir; bu sıfır hipotezidir, analiz değil. İkincisi doğrulama döngüsüne sabır: fikir, kodlama, geriye dönük test, walk-forward, üç ila altı ay demo, ancak ondan sonra gerçek sermaye. Bu döngü aylarca sürer ve çoğu trader iki ila üç iterasyonun ardından bırakır. Üçüncüsü programlama temelleri: değişkenler, döngüler, fonksiyonlar, kontrol yapıları ve bir pandas DataFrame'in ne yaptığına dair bir kavrayış. Yazılım mühendisi olmak şart değildir; başkasının EA kodunu okuyup bütünü bozmadan bir parametre değiştirebilmek yeterlidir. "Python öğren, zengin ol" efsanesi en zor ve en az gösterişli kısmı atlar: otomasyona değer bir piyasa üstünlüğüne sahip olmak. Olmadan, kod mevduatı daha hızlı yakmanın tek yoludur.

Bireysel algo projelerinin çoğu neden başarısız olur — ve başarı ihtimalini artıran bir ön koşul var mıdır?

Algo projeleri, başlangıçta çok sayıda hata olsa bile, kod hataları nedeniyle başarısız olmaz. Otomasyona değer bir piyasa üstünlüğü olmadığı için başarısız olurlar. Trader Python öğrenir, geriye dönük test yazar, son beş yılın verisiyle parametreleri uyarlar ve gerçek hayatta hiçbir zaman üretilemeyecek kadar güzel bir özkaynak eğrisi elde eder — klasik curve fitting. Canlıya geçer, para kaybeder, "daha iyi bir stratejiye" ihtiyacı olduğu sonucuna varır ve döngüyü baştan başlatır. Başarı olasılığını dramatik biçimde artıran ön koşul, ilk kod satırı yazılmadan önce bir piyasa üstünlüğünün var olmasıdır — takdiri işlemde ya da tarihsel veri üzerinde saf aritmetikte, yalnızca son dönemde değil birden fazla piyasa rejiminde pozitif beklenti değeri veren yeterince basit bir kural. Kalıcı projeleri tek seferlik denemelerden ayıran ikinci şey, "stratejinizin üstünlüğü yok, başa dönün" diyen cevabı kabul etme istekliliğidir; çoğu trader bunu duymak yerine parametreleri aşırı optimize etmeyi tercih eder. Algoritma bu mesajı yumuşatmaz, yalnızca daha hızlı tekrarlar. Risk yönetimi bölümünde bir üstünlük doğrulanmadan pozisyon açılmamasının neden kritik olduğunu ayrıntılı ele alıyoruz.

Daha derine inin · tam rehber