Pratik uygulama

Monte Carlo: sermaye yolu, eşik ve yüzdelik tuzağı

Monte Carlo modelinde sıra, örnekleme ve durdurma kuralını ayırın. Excel/Python adımları ve TRY karşı örneğiyle yüzdelik ile eşik oranını kontrol edin.

Mor zeminde büyük krem THRESHOLD yazısı; sağda parlak sarı-yeşil dik blok ve üstünde sağa yükselen uzun krem kiriş.
Yapay zekâ ile üretilmiş editoryal görsel; eşik fikrini anlatan soyut bloklar gerçek hesap sermaye eğrisi veya ölçülmüş risk değildir.

Kaldıraçlı forex ve CFD işlemleri kısa sürede kayba yol açabilir. İçerik eğitim amaçlıdır; kişiye özel yatırım tavsiyesi içermez.

Bu makalede

Bu makaleyi okuduktan sonra…

  • Örneklenen listeyi durmadan önce uygulanan sonuçlardan ayırabilirsiniz.
  • Başlangıç dahil sermaye ve düşüş yolunu Excel veya Python’da kurabilirsiniz.
  • Yüzdelik tanımıyla doğrudan eşik olay oranının neden farklı olduğunu hesaplayabilirsiniz.

Kavramları makaleden ayrılmadan öğrenin

Backtesting — geçmiş veriyle strateji testi Zirveden düşüş — drawdown İşlem planı İşlem beklentisi — beklenen sonuç Pozisyon büyüklüğü

Geriye dönük test gerçekleşmiş tek yolu gösterir; simülasyon belirtilen varsayımlardan üretilen yolları inceler. Sonuçları sıralamak veya yeniden örneklemek, pozisyon büyüklüğü kuralıyla birlikte sermaye düşüşünü değiştirebilir. Önce küçük bir yolu elle doğrulayın. Buradaki modeller adı belirtilmemiş canlı hesabın iflas olasılığını ölçmez; hangi risk sonucunun hangi varsayımla üretildiğini açıklar.

Strateji Monte Carlo simülasyonu tam olarak nedir?

Monte Carlo tanımlı modelden tekrarlı rastgele çekiliş kullanır. Sabit nakit sonuç listesini karıştırmak sırayı değiştirir, toplamı korur. Yerine koyarak örneklemek ikisini de değiştirebilir. Belirli tutarlı bağımsız kazanç/zarar gibi parametrik model başka dağılım üretir. Hangi yöntemi kullandığınızı ve miktarın sermayeyle nasıl güncellendiğini yazın.

1.000 birimden başlayan maliyeti içinde sabit nakit +200, −100, −100 yolu 1.000→1.200→1.100→1.000 olur. En büyük düşüş 200/1.200≈%16,67. Aynı sonuçlar −100, −100, +200 sırasıyla 1.000→900→800→1.000, düşüş %20 verir. İkisi de 1.000’de biter. Başlangıcı tepeler arasına koyun; ilk zararları dışarıda bırakmak düşüşü eksik ölçer.

Durdurma eşiği sıralamanın son sonucunu değiştirebilir

+300−150−150 toplamı sıfırdır. Ayrı USD modelinde her sonuçtan sonra sermayeyi kontrol edip 850 USD veya altındaysa duralım. Sıra, hangi sonuçların uygulandığını da değiştirir.

Sermaye eşiğinde durdurulan sıralamalarModel 1.000 USD ile başlar. Sonuç sonrası sermaye 850 USD veya altındaysa durur. A, +300, −150, −150 uygular ve 1.000’de biter. B ilk −150 ile 850’ye ulaşır; kalan iki sonucu uygulamaz.AYNI LİSTE, DURUNCA FARKLI SONUÇA: +300, −150, −150B: −150, −150, +3001 0001 3001 1501 0001 000850850 eşiğikalan adımlar atlanırA üç sonuç uygular: son sermaye 1.000.B tek sonuç uygular: son sermaye 850.

Başlangıç 1.000 USD; üç kurgu net sonuç, yeniden yatırım ve nakit akışı yok. Eşik bütün adım bittikten sonra kontrol edilir. 850 USD yalnız alıştırma kuralı, yatırım önerisi değil. İki yol olasılık dağılımı değildir.

Noktalar uygulanan sonuçlardır. B’nin gri çizgisi sona eren denemeyi gösterir; iki sıfır getirili işlem yapılmış değildir.

Örneklenen listeyi gerçekten uygulanan listeden ayırın. Strateji duruyorsa, sermaye kısıtı varsa veya hacim değişiyorsa geçmiş sonuçları karıştırıp hepsini toplamak aynı davranışı üretmez.

Monte Carlo hangi soruları yanıtlar?

Tanımlı simülasyon maksimum düşüş, eşik aşımı ve son sermaye dağılımlarını tahmin edebilir. Önce her tam yolun maksimum düşüşünü hesaplayın, sonra bunların yüzdeliğini alın. Her andaki sermayenin yüzdelik bandı tek bir uygulanmış yol değildir. Yüzdelik tanımını yazın; ara değerleme ve kesikli dağılım örneğin ne kadarının değerin altında kaldığını değiştirir. Model özeti gelecek kaybın garanti sınırı değildir.

Ayrı EUR modelinde 200 bağımsız işlem, kazanç olasılığı 0,55, sabit kazanç 100 EUR ve zarar 80 EUR olsun. İşlem başına beklenti 19 EUR, toplam 3.800 EUR. K kazanç sayısıysa son kâr 180K−16.000 EUR. Birikimli olasılığı hedefe en az eşit olan en küçük K tanımıyla tam binom yüzdelikleri %1’de 920, %5’te 1.640, %50’de 3.800, %95’te 5.960 EUR’dur. Bunlar çalıştırıldığı iddia edilen deney değil, model dağılımından hesaplanan değerlerdir. Sonlu simülasyon bunların çevresinde değişebilir.

Excel’de model nasıl kurulur?

İngilizce işlev adlarıyla kaynak alıştırmada A1=0.55, A2=100, A3=−80, A4=10000 girin: olasılık, iki sabit net nakit sonuç ve başlangıç. C1’e =$A$4, D1’e =C1, E1’e sıfır yazın. İlk satır işlem öncesi durumdur. B2 =IF(RAND()<$A$1,$A$2,$A$3) olsun. Mutlak başvurular kopyalandığında parametreleri sabit tutar; dönem burada EUR modeliyle aynı tutarları kullanır.

C2 =C1+B2, D2 =MAX(D1,C2), E2 =(D2-C2)/D2. B2:E2’yi 201. satıra kadar çoğaltınca tam 200 işlem vardır. C201 son sermaye, =MAX(E1:E201) yolun en büyük düşüşüdür. Ufuk 200 işlem, zorunlu takvim yılı değildir. Uygulama öncesi teminat, durdurma ve ödeme güçlüğü kuralları ayrıca gerekir.

Türkçe işlev adları ve noktalı virgül ayırıcısı kullanan kurulumda A1’e 0,55 girilir; B2 karşılığı =EĞER(S_SAYI_ÜRET()<$A$1;$A$2;$A$3), D2 =MAK(D1;C2), maksimum düşüş =MAK(E1:E201) olur. Sayı ve liste ayırıcıları kurulumunuza bağlıdır. Türkçe Microsoft belgeleri EĞER ve S_SAYI_ÜRET adlarını doğrular; İngilizce kodun virgüllerini metin olarak sayı hücresine yapıştırmayın. Tam bloğu ilk satırıyla kopyalayın, $A$ parametrelerini koruyun.

Son sermayenin alt kuyruğu için 0,05 veya 0,01; pozitif kayıp büyüklüğü olan düşüşün üst kuyruğu için 0,95 seçilir. İngilizce =PERCENTILE.INC(range,0.95), noktalı virgüllü Türkçe kurulumda =YÜZDEBİRLİK.DHL(aralık;0,95) ara değerleyebilir. Rastgele işlev sayfa hesaplanınca yenilenir; incelenen deneyin sayısal çekilişlerini ve varsayımlarını saklayın.

Python’da bootstrap nasıl yapılır?

Python tekrarlı örnekleme ve analiz için uygundur; Excel de uygun formüllerle geçmiş değerleri seçebilir. Bootstrap yalnız varsayılan sabit kazanç/zarardan değil, kaydedilen sonuçlardan çeker. İki araçta da bağımlılık, miktar, maliyet ve örneklenen geçmiş tanımı gerekir.

Boş olmayan net nakit geçmişinde NumPy Generator ile new_sequence = rng.choice(history,size=200,replace=True) kullanılabilir. Başlangıcı ekleyin: equity = np.concatenate(([initial_capital], initial_capital + np.cumsum(new_sequence))). Her yolun akan tepe ve düşüşünü hesaplayıp sonra maksimumlarını özetleyin. Veri, seed, kütüphane sürümü, ufuk, maliyet ve durdurma kurallarını kaydedin. Daha çok yol hesaplama gürültüsünü azaltır, yeni piyasa gözlemi yaratmaz.

Kontrollü iki modeli aynı rastgele değerlerle karşılaştırabilirsiniz. U eşikten küçükse +1, değilse −1; A eşiği 0,55, B 0,60 olsun. Beklentiler 0,10 ve 0,20; B−A beklentisi 0,10. Ortak U’da fark yalnız 0,55≤U<0,60 aralığında +2, başka yerde sıfır: varyans 4×0,05−0,10²=0,19. Bağımsız çekilişte 0,99+0,96=1,95. Ortak kurulum bu karşılaştırmanın gürültüsünü azaltır, gerçek piyasa olasılıklarını öğrenmez; her strateji çiftinde yararlı olması gerekmez.

Geçmiş işlemleri tek tek yerine koyarak çekmek görülen tutarları korur, sıralamayı ve zarar kümelerini korumaz; görülmemiş kuyruk şoku üretemez. Bağımlılık önemliyse blok örnekleme ve ayrı stres senaryosu düşünün. Sınırlı geçmiş yine gelecek rejimi kaçırabilir. Sabit nakit ile değişen özkaynağa göre yeniden hesaplanan risk aynı deney değildir.

TRY modeli: altı sıralama, eşik ve iki yüzdelik tanımı

Ayrı modelde başlangıç 1.500 TRY. Dört brüt sonuç +300, +300, −250, −250 TRY; uygulanan her sonuca 10 TRY ücret eklenir. Net K=+290, Z=−260 olsun. Her tam adımdan sonra sermaye ≤1.000 TRY ise durun. Yeniden yatırım, akış, ara adım teminatı yok. İki K ve iki Z’nin aşağıdaki altı farklı sırasını eşit ağırlıklı sayıyoruz; bu tanımlı dağılım canlı piyasa olasılığı değildir.

Tüm farklı net sonuç sıralamaları; durma sonrası sonuç yok
SıraUygulanan sermaye yoluSon sermaye
KKZZ1.500→1.790→2.080→1.820→1.5601.560 TRY
KZKZ1.500→1.790→1.530→1.820→1.5601.560 TRY
KZZK1.500→1.790→1.530→1.270→1.5601.560 TRY
ZKKZ1.500→1.240→1.530→1.820→1.5601.560 TRY
ZKZK1.500→1.240→1.530→1.270→1.5601.560 TRY
ZZKK1.500→1.240→980; durur980 TRY

Durdurma olmasa altısının sonu 1.560 TRY. Kural varken biri ikinci sonuçta biter; dağılımın 1/6’sı, yaklaşık %16,67’si eşiğe ulaşır. Atlanan iki K’nın ücreti alınmaz. Son sermaye listesini sıralayın: [980, 1560, 1560, 1560, 1560, 1560]. PERCENTILE.INC’nin %5 ara değerlemesi 980+0,25×(1560−980)=1.125 TRY verir. Buna rağmen %16,67’si 1.000 TRY altında bitmiştir. Kesikli dağılımda birikimli olasılığı en az %5 olan en küçük sonuç 980 TRY’dir.

Demek ki “%5 yüzdelik 1.125, o halde 1.000 eşiğinin aşılması %5’ten az” çıkarımı yanlıştır. Eşik olayını her yolda doğrudan sayın; yüzdelik yöntemini yazın. Aynı geçmişten yerine koyarak dört bağımsız sonuç çekmek de altı sıralamayı eşit saymakla aynı dağılım değildir. Bu küçük tam sayım Monte Carlo koşumu diye sunulmaz; rastgele kodu doğrulayan deterministik karşı örnektir.

Yüzdelik eşik olayının oranı değildirBaşlangıç 1.500 TRY; net K=+290, Z=−260, her adım sonrası ≤1.000 ise durma. İki K ve iki Z’nin altı farklı sırası eşit ağırlıklı, gerçek piyasa olasılığı değil.VARSAYIMSAL HESAPLAMAZZKK sırası980 TRY’de dururEşik olayı1/6 yolInterpolasyonlu %51.125 TRY
Yüzdelik eşik olayının oranı değildir. Başlangıç 1.500 TRY; net K=+290, Z=−260, her adım sonrası ≤1.000 ise durma. İki K ve iki Z’nin altı farklı sırası eşit ağırlıklı, gerçek piyasa olasılığı değil.

1.125 TRY yüzdelik değerinden 1.000 altına inme olasılığını çıkarmayın. Model yollarında eşiği doğrudan sayın; yüzdelik yöntemini kaydedin.

Küçük ekranda şemayı yatay kaydırabilir veya büyütebilirsiniz. Değerler ve sonuç aşağıdaki metinde de yer alır.

ZZKK sırası
980 TRY’de durur – İki zarar uygulanır, kalan iki kazanç ve ücretleri uygulanmaz.
Eşik olayı
1/6 yol – Yaklaşık %16,67. Diğer beş sıra 1.560 TRY’de biter.
Interpolasyonlu %5
1.125 TRY – 980 ile 1.560 arasında %25 ara değer. Kesikli en küçük-CDF tanımı ise 980 verir.

Yöntem hangi sınırları aşamaz?

Bağımsız sabit olasılık örneği durağanlık ve bağımsızlık varsayar. Monte Carlo yalnız bunlarla sınırlı değildir; bağımlılık ve değişen rejim modelleri kurulabilir. Zorluk bunları tanımlamak ve sınamaktır. Davranışı kaydedilen geçmişle karşılaştırın; geçmiş dışındaki makul koşulları ayrı stresleyin.

Görülmemiş sonuç geçmişi yeniden çekerek bulunmaz. Bağımlılık, çakışan maruziyet ve piyasa kapsamını inceleyin. İleri yürüyen test ardışık geliştirme/değerlendirme dönemlerini düzenler; avantaj erimesini otomatik saptamaz, görülmüş veriyi yeni teste dönüştürmez. Yüzdelik canlı düşüşün kanıtlanmış tabanı veya tavanı değildir. Maliyet, eksik dolum, boşluk ve durdurma kurallarını ayrıca sınayın.

Her zararda güncel sermayenin tam %5’ini kaybeden ideal modelde n zarar sonrası sermaye başlangıç×0,95ⁿ; sonlu n’de pozitiftir. Pratik eşik, asgari teminat veya daha büyük kayıp modeli değiştirir. Bu pozitiflik gerçek hesabın güvenli kalması demek değildir; ortalama kâr da kötü yolu ortadan kaldırmaz.

Yarın hangi dört adım atılmalı?

  1. Tanımlı geçmiş toplayın. İşlem sayısı, maliyet, risk ve piyasa kapsamını kaydedin. Evrensel 100 işlem eşiği yoktur; yalnız sayıya ulaşmak için gerçek işlem açmayın. Gerekirse demo veya tarihsel incelemeyle veri toplayın.
  2. Önce iki üçlü yolu ve altı TRY sırasını elle doğrulayın. Son sermaye, başlangıç dahil tepe ve durdurulan adımları karşılaştırın. Sonra çekilişleri saklayın; bir saat veya bin koşum yeterlilik kanıtı değildir.
  3. Olumsuz düşüş kuyruğunu doğru işaretle okuyun. Pozitif kayıp büyüklüğünde %95, negatif değişimde ayrıca yazılmış işaret kuralı gerekir. Başlangıç özkaynağını ve miktar yöntemini ekleyin; riski azaltınca sonucu yeniden hesaplayın, orantılı düşüşü garanti sanmayın.
  4. Yeni geçmişi tutarlı karşılaştırın. Kapsam, birim, maliyet ve risk değişikliklerini kaydedin. Daha düşük model medyanı tek başına canlı avantajın neden bozulduğunu açıklamaz. Eşik olayının oranını yüzdelikle karıştırmayın.

Anladığınızı kontrol edin

Alıştırma: yaklaşık 2 dakika.

Başlangıç 1.000 USD. Her sonuçtan sonra sermaye ≤850 USD ise durulur. Örnek sıra −150, −150, +300 USD. Uygulanan deneme nasıl biter?

Yanıtı ve açıklamayı göster

İlk −150 ile 850’ye ulaşılır. Eşik hemen kontrol edilir; kalan sonuç eklenmez.

Diğer sorular

Monte Carlo strateji testinde ne yapar?
Tanımlı modelden tekrarlı örnek çeker. Sabit nakit listeyi karıştırmak toplamı korur, yerine koyarak çekmek hem sırayı hem toplamı değiştirebilir. Kaynak 200 bağımsız EUR işlem modelinde beklenti işlem başına 19 EUR; belirtilen tam binom tanımıyla %5 son kâr 1.640 EUR’dur. Bu gözlenmiş koşum veya geleceğin kanıtlanmış dağılımı değildir.
Excel’de ilk satır neden ayrı tutulur?
İlk satır işlem öncesi sermaye ve tepedir. A1 olasılık, A2/A3 net sonuçlar, A4 başlangıç; C1=$A$4, D1=C1, E1=0. İşlemler 2–201. satırlardadır. Her adım yeni sermayeyi ve akan tepeyi günceller; en büyük düşüş E1:E201 maksimumudur. Dil ve ayırıcıları kendi kurulumunuza uyarlayın; yeniden hesaplamadan önce sayısal çekilişleri saklayın.
Python bootstrap hangi bilgiyi korur?
Boş olmayan geçmişte rng.choice(history,size=200,replace=True) görülen değerlerden seçer. Başlangıcı toplam yolunun önüne ekleyip tepeleri ölçün. Tek tek örnekleme eski sırayı ve zarar kümelerini korumaz, görülmemiş şok üretmez. Seed, sürüm, ücret, birim ve durdurma kuralını yazın; önce deterministik küçük örneği doğrulayın.
Simülasyon canlı zarar sınırı verir mi?
Hayır. Sonuç veri ve modele koşulludur. Bağımlı veya değişen rejimli modeller kurulabilir, fakat ayrıca sınanmalıdır. Yüzdelik garantili taban veya tavan değildir. TRY karşı örneğinde interpolasyonlu %5 yüzdelik 1.125 TRY iken altı eşit ağırlıklı yolun biri 980’de durur. Eşik olayını doğrudan saymak başka soruya yanıt verir.
Bin koşumdan daha fazlası sorunu çözer mi?
Daha çok çekiliş seçilmiş modelin sayısal gürültüsünü azaltabilir. Eksik kriz, yanlış miktar, farklı saat veya kayıp bağımlılığını kendiliğinden düzeltmez. Altı TRY yolunu tam saymak bile yalnız o tanımlı dağılımı verir. Veri kapsamını, model varsayımını ve hesaplama hatasını ayrı inceleyin.

Kaynaklar ve doğrulama

  1. Python — random.shuffle ve sample

    Var olan diziyi yerinde karıştırma ve yerine koymadan örnekleme. Eşik ve ücret bu makaledeki ayrı model kurallarıdır.

  2. NumPy — Generator.choice

    Diziden örnekleme ve replace=True ile aynı değerin tekrar seçilebilmesi. Kod sürümü ve veri ayrıca kaydedilmelidir.

  3. Microsoft — S_SAYI_ÜRET

    Türkçe işlev adı, [0,1) eşit dağılımı ve yeniden hesaplamada değişim; rastgele sayıları saklama gereği.

  4. Microsoft — YÜZDEBİRLİK.DHL

    Dahil uçlar, 0–1 k ve k(n−1) tam sayı değilse ara değerleme; altı TRY sonucu ayrıca hesaplanır.

  5. Microsoft — EĞER

    Türkçe koşullu işlev adı ve doğru/yanlış dalları. Formül ayırıcıları kuruluma göre seçilir.

Hesaplamalar açıkça belirtilen varsayımlara dayanır. Güncel piyasa verilerinin veya sağlayıcının koşullarının yerini almaz.

Yazar hakkında

Jarosław Wasiński, Polonya’da çalışan bir editör ve piyasa analistidir. MyBank.pl’yi 2004 yılında kurdu; 2007 yılından beri döviz piyasasını takip ediyor.