Integer programlama, finansal mühendislikte yaygın olarak kullanılan güçlü bir matematiksel optimizasyon tekniğidir, özellikle portföy optimizasyonu için. Tüm birimleri, minimum yatırımları ve ikili dahil kararları içeren karar değişkenlerini içerir. Bu makale, portföy optimizasyonu, temel kavramları, model programlama, çözüm teknikleri ve pratik düşünceler gibi sorunları kapsar.

Portföy Optimizasyonu Anlamak

Portföy optimizasyonu, beklenen bir geri dönüş için portföy özelliklerini en üst düzeye çıkarmanın bir yolu olarak tahsis etmeyi amaçlamaktadır.Harry Markowitz tarafından 1952 yılında tanıtıldı, yatırım ağırlıklarının sürekli değişkenleri olduğunu varsaymaktadır - bir yatırımcı, birçok gerçek dünya durumu için portföy özelliklerini en aza indirmek için bir tutarken, bu varsayımı ortadan kaldırır.

Pratik portföy yönetimi, gibi ayrı kısıtlamalarla karşılanmalıdır:

  • [FONT:0)Minimum yatırım miktarı[Dön TL 1], varlık başına belirli bir dolar değeri gerektiren bir miktardır.
  • [FONT:0)Yerel kısıtlamalar[[[Döneticileri belirli çoklularda ticaret yapanların sayısı (örneğin, 100 hisseden bir sürü).
  • [FONT:0)Cardinality kısıtlamalar[[Döneticileri sınırlayan toplam mal sayısını sınırlamak.
  • [FONT:0]Buy-in eşleri[[Dönetici 1] bir varlığın her şeye dahil edilmesi gereken minimum ağırlıkta tutulması gerektiği yerde.
  • [0]Transaction maliyet yapıları[[Dönergesel veya sabit ticaret kararlarına dayanan kısmi doğrusal veya sabit maliyetlidir.

Bu ayrık yönleri sürekli optimizasyon modelleri yetersiz hale getirir. Integer programlama, bu tür kısıtlamalara doğrudan optimizasyon problemine dahil etmek için titiz bir matematiksel çerçeve sağlar.

Integer Programlamanın Finansal Mühendislikteki Rolü

Finansal mühendislik, finansta sorunları çözmek için matematiksel ve hesaplama yöntemleri uygular, çünkü birçok finansal karar doğal olarak ayrı ayrı ayrıdır: Bir varlık dahil etmek, bu seçeneklerin hangi şekilde işlenmesini sağlamak için birçok sözleşme içerir.Bu, değişken sürekliliği varsaymak için modele izin verir, tam tersi programlamayı kullanır.[Dönetici:0).

İkili Değişkenler ve Varlık Seçimi

İkili değişkenler varlık seçimi problemlerinin işkozileridir. Her aday varlık için, ikili değişken, (1) veya dışlama (0) anlamına gelir. Hedef işlev ve kısıtlamalar, o zaman bu ikili kararların değerlendirilmesinde ifade edilebilir. Örneğin, resmi olarak en iyi garanti edilen 20 stoktan oluşan bir fon olabilir.

İkili değişkenler aynı zamanda karşılıklı eksiyonizm modellerini (veya varlık A veya varlık B) sağlar, ancak ikisi de değil), mantıksal koşullar (X'in de dahil edilmesi gerekir), ve yatırım stratejileri. Bu özellikler, indeks izleme veya akıllı-beta stratejilerinde kullanılanlar gibi yapılandırılır.

Yatırım Sayıları için Integer Değişkenleri

Integer değişkenleri her varlık için satın almak için birimlerin sayısını belirtir. Bu, ticaret kurallarını ve sıvılığı dikkate alan minimum çok fazla boyut veya tamsayı kısıtlama ile uğraşırken önemlidir. Örneğin, eğer 100 hisseden bir borsada yapılan hisse sayısı, sözleşme çok basit olan miktarlar iki katına çıkar.

Ayrıca, tamsa değişkenleri, türev stratejilerindeki sözleşme sayısını temsil edebilir. Örneğin, bir tam olarak satılan arama seçeneklerinin sayısını ve belirlenen pay sayısını aşmamak isteyebilir.Bu ayrı bağlantılar doğal olarak tam olarak tam olarak değişkenlerle ifade edilir.

Gerçek Dünya Kıtlamaları

Basit varlık seçimi ve miktar kararları ötesinde, tam programlama geniş çeşitlilik pratik yatırım kuralları kodlayabilir:

  • [FONT:0)Turnover kısıtlamaları[[Dönetici: Satın alınan portföyün kesildiği veya satılan kısmı, bir ticaretin meydana geldiğini gösteren ikili değişkenlerle modellenebilir.
  • [FONT:0)Sector maruz kalma sınırları[Dönetici: İkili değişkenler, sektörün en çok bir varlık seçtiği veya bu sektör ağırlıklarının bir aralık içinde kalmasına engel olabilir.
  • [FONT:0]Threshold constraints[[Dönetici: Bir varlık minimum eşini aşmadığı sürece tutulamaz. Bu, ikili bir gösterge ile sürekli ağırlık değişkenine bağlanmak tarafından uygulanır.
  • [FONT:0)Tax'in [Dönetici: LİST:0)[0]Tax, vergi kaybı için yapılan seçim, hangi özel vergilerin ne kadar satacağını belirlemek için tam tam seçim içerir.

Bu gerçek dünya kısıtlamaları dahil etmek için esneklik, tam anlamıyla algoritmalı ticaret ve portföy inşaat sistemlerinin temel taşı haline getirir.

Integer Programlama Modelinin Formülasyonu

Portföy optimizasyonu için tam bir programlama modeli, objektif bir işlevden oluşur ve lineer kısıtlamalar kümesi, tamsayı değerlere sınırlı olan bazı veya tüm karar değişkenleri ile ifade edilebilir: Genel formülasyon şöyle ifade edilebilir:

[FONT=0)Kaç (veya Minik) x ≤ b, l ≤ x ≤ u, x i ⁇ Z for i ⁇ I

[FONT=0]x[DÜDÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ

Objektif Fonksiyonlar

Pratikte, hedef yatırımcının hedeflerini eşleştirmek için seçilebilir:

  • [0]Max beklenen geri dönüş (%[Dönetici:0) Risk bütçesine tabi olarak. Bu, beklenen geri dönüşlerin sabit olup olmadığının lineer bir hedeftir.
  • [FONT=0) Portföyün var oluşu[[Dönetici: 1) Bir hedef geri dönüşe tabi olan standart sapmalar. Bu, karışık bir dörtlü bir programa yol açan bir dörtlü hedeftir (MIQP).
  • [0] Riskli geri dönüş için riskin azaltılması [Dönder:0) Sharpe oranı gibi, iki lineer fonksiyon oranı ve özel reformasyonlar gerektirir.
  • [FONT:0) Takip hatasını dikkate almak[Dönetici:0) Bir karşılaştırmaya göre, genellikle bir kartinality kısıtlama ile yapılan menkul kıymetlerin sayısı.

Hedef seçimi hesaplama zorluklarını önemli ölçüde etkiler. Linear hedefleri genellikle daha kolay olsa da, dörtat hedefi daha gelişmiş çözücüler gerektirir.

Eklenmeler

Tam bir programlama portföy modelindeki tipik kısıtlamalar şunları içerir:

  • [FONT:0]Budget kısıtlaması[[Dönetici: Toplam sermayeye eşit yatırımların sumları. Tam tam anlamıyla çok fazla boyut için, bütçe kısıtlaması çok fazla fiyatla tam bir değişken içerebilir.
  • [FONT=0)Cardinality constraint[[[Dönetici: 1 ): İkili varlık-seleksiyon değişkenleri ≤ K (maximum sayıda varlık).
  • [[Düzücük ağırlıkta ([Dönetici: 1) Düşük ağırlıkta (Dönetici) sınırlanır: Eğer varlık dahil edilirse, ağırlık ≥ L i. Bu, kısıtlamayı veya kapatacak ikili değişken kullanır.
  • [FONT:0)Upper varlık ağırlığına bağlıdır[Dönetici: 1).
  • [FONT=0)Sector veya faktör maruz kalma kısıtlamaları[Dönetici: Yukarıda ve aşağıda belirtilen karar değişkenlerinin doğrusal kombinasyonları.
  • [[Uygunluk maliyeti kısıtlamaları[[[Dönetici: ticaret başına sabit bir maliyet, bir ticaret meydana gelirse maliyeti olan ikili değişkenleri kullanarak modellenebilir.

Bu kısıtlamalardan çoğu lineer, karışık-integer lineer programlamayı korumak (MILP) yapısıdır, hedef lineer olduğunda veya MIQP'yi dörtüncü kez korur.

Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model Örnek Model

N varlıklarla basitleştirilmiş bir portföy seçimi sorunu düşünün. x i varlık sürekli ağırlık i (fraction of Wealth), ve y i, varlık inin nasıl yapıldığına dair iki değişken.

[FONT=0) ⁇ i ⁇ j ⁇ i x i x i = 1 (muhtemelen)
) ⁇ i r i x i ≥ tüm i (belki)[i)[i i i= 1 (en)[D)[D)[D)[D)[D) x i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i

Bu karışık bir dörtlü programdır. x i ve y i ile bağlantı kurma kısıtlaması, eğer y i = 0, ağırlık x i sıfır olmalıdır; eğer y i = 1, ağırlık l i ve u i arasında sınırlandırılır.

Çözme Integer Programlama Modelleri

Integer programlama modelleri genel olarak NP-hard, tam sayıları büyüdükçe, en kötü durum çözümü zamanı, üstel olarak artırabilir. Ancak, modern çözücüler, birçok pratik problemin verimli bir şekilde çözülmesi için sofistike teknikler kullanır. anahtar yöntemler şube ve sınır, kesme uçaklarıdır.

Branş ve Bound

Branş ve sınır, karışık-integer programlama çözücüleri arka kemiğidir. Algoritma, lineer veya sürekli rahatlamaların bir dizisini çözerek çalışır (sayıda tam anlamıyla kısıtlamalar düşer) ve sonra, her bir dalda kesen tamsa değişkenleri ele alır (örneğin, güçlü bir şube, pnömatik-malzeme stratejileri ile birlikte) ve hiçbir şekilde en iyi tam anlamıyla çözüm ayrıştırılır.

Kesme Plan Yöntemleri

Kesme uçakları, herhangi bir tamsayı uygun noktaları kaldırmadan mümkün olan sürekli rahatlamaya yeni lineer kısıtlamalar ekliyor.Bu kesintiler, tümel-kesinlik boşluğunu azaltıyor - rahatlamanın en uygun amacı ile portföy optimizasyonunda kullanılan en iyi tam tam tam tam tam tam tam tam tam tam tamsayı azaltıyor.

Heuristics ve Metaheuristics

Çok büyük portföyler veya sıkı zaman kısıtlamaları için, tam yöntemler çok yavaş olabilir. Heuristics yakın optimize çözümlere hızlı bir şekilde katkıda bulunur: Common yaklaşımlar şunları içerir:

  • [FONT:0]Köyistikleri [Dönetici: Sürekli rahatlama ve yuvarlak tamsayı değişkenlerini 0 veya 1 eşiğine dayanarak çözer.
  • [FONT:0]Local arama[[[Dönetici:0) mümkün olan tam bir tamsayıdan başlayın ve küçük değişiklikler (örneğin, objektifi geliştirmek için bir varlık takas edin.
  • [FONT:0)Genetik algoritmaları ve ekleyen[[Dönetici: non-convexities ile başa çıkabilen nüfus temelli veya rastgele yürüyüş yöntemleri.
  • [FONT:0)Lagrangian rahatlama[Dönetici: Rahatlama kısıtlamaları ve iyi dual çözümler üretmek için altgrad optimizasyonları kullanın, bu da ilkel çözümlere dönüştürülebilir.

Bu heuristics genellikle saniyeler içinde yüksek kaliteli çözümler üretir, onları canlı bir ticaret ortamında yeniden dağıtım portföyleri için uygun hale getirir.

Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama Pratik Uygulama

Finansal mühendislikteki tam tam tam tam programlama modelleri, SCIP, GLPK ve COIN-OR CBC gibi sağlam optimizasyon yazılımları gerektirir, ancak büyük durumlarda daha yavaştır. (PuLP, Pyomo, CVXOPT), MATLAB, R ve C++. Portföy uygulamaları için, daha sonra bir çözüm için ortaktır.

Pratik bir ipucu: portföy optimizasyonu sorunları genellikle özel bir yapıya sahiptir - düşük seviyeli bir kovarians matrisi veya sparse kısıtlamaları gibi - bu çözücüler daha az tamsayı kullanma sorununu kullanarak problemin çözümü veya lineerize dörtlü terimler dramatik bir şekilde artırabilir. Örneğin, risk için gerekli değişken sayısını azaltır.

Avantajları ve Sınırlamaları

Integer programlama portföy optimizasyonuna birkaç avantaj getiriyor:

  • [FONT:0)Realism[DÜT:1): Sürekli modeller göz ardı eden ayrı kısıtlamalar yakalar, minimum satın alma boyutları, çok boyut ve kartinality sınırları gibi.
  • [FONT:0)Optimality[Dönetici yöntemlerinden farklı olarak, tam programlama, orta büyüklükteki sorunlar için küresel optimalliği garanti edebilir (veya kanıtlanabilir bir sınır).
  • [FONT:0]Flexability[[Dönetici:))[Dönetici fonksiyonları ve kısıtlamalar, doğrusal veya dört ayrı formda ifade edilebilir, çerçeveyi farklı yatırım görevlerine adapte edilebilir hale getirebilir.
  • [FONT:0)Transparency[[DÜT:1]: Modelin varsayımları ve kısıtlamaları açık ve yenidenroducible.

Ancak, önemli kısıtlamalar vardır:

  • [FONT=0)C ⁇ karmaşıklığı[Dönetici: Integer programlama sorunları NP-hard. Hatta orta büyüklükteki yüzlerce ikili değişkenle ilgili örnekleri zorlanabilir. Solver runtime, gerçek zamanlı uygulamalar için endişe verici olabilir.
  • [FONT:0]Data sensitive[[DÜDÜT:1): Portföy optimizasyonu beklenen geri dönüşlerin tahminlerine dayanıyor, volatilities ve korelasyonlar. Küçük tahmin hataları büyük ölçüde farklı çözümlere yol açabilir, hata maximization olarak bilinen bir fenomen bu sorunu çözmüyor; sağlam optimizasyon formülasyonları bazen belirsizlikle bir araya getirilir.
  • [FONT:0]Large portföy boyutları[Dönetici: Binlerce varlık için, tam tam tam tam tam tam tam tam tam tam tam tam tam tam tam tam programlama pratik olabilir. Heuristic veya decomposition yöntemleri genellikle gereklidir.
  • [FONT:0) Modelleme karmaşıklığı[Dönetici: Gerçek dünya kurallarının doğrusal tamsayı kısıtlamalarına dönüştürülmesi zor olabilir ve her kural için ikili değişkenleri gerektirebilir, problem boyutunun patlayabilir.

Bu sınırlamalara rağmen, algoritmaların ilerlemeleri (örneğin, bulut tabanlı çözücüler, paralel şube-ve-yaralı ve presolve azaltımları) artık yapılandırılabilir olan şeyin sınırlarını genişletmeye devam ediyor. Birçok kurumsal varlık yöneticisi artık portföy inşaatı ve yeniden dağıtım için rutin olarak kullanımı.

Gerçek Dünya Uygulamaları

Integer programlama yöntemleri temel portföy seçiminin ötesinde sayısız finansal bağlamda uygulanır:

  • [FONT:0)Index takip[[[Dönetici: 1 ): S& gibi geniş bir indekse göre hata takip eden bir portföy oluşturmak;P 500. Bu, bir kartinality-constrained quadratik programdır, genellikle MIQP ile çözülebilir.
  • [FONT:0]Hedge fonu replikasyon[[[Dönetici: Sınırlı bir sıvı enstrümanla bir koruma fonu stratejisinin risk geri dönüş profiline eşlik etmek için tam kısıtlamalar kullanmak.
  • [FONT:0]Asset-liability management[[Dönetici: emeklilik fonları ve sigorta şirketleri için, tam programlama, mallardan sorumluluk ödemelerine kadar para akışlarına yardımcı olur, ki tahvil maturiteleri ayrı ayrıdır.
  • [FONT:0)Algorithmic trading execution[Dönetici: piyasa etkisini ve işlem maliyetlerini en aza indirmek için siparişlerin sırasını ve boyutlandırmasını optimize edin, genellikle karışık bir dinamik program olarak kullanılır.
  • [FONT:0]Risk bütçeleme[Dönemli: Risk sermayesinin her bir tahsisin sabit bir yüzdesi veya sıfır (binary karar) olduğu farklı stratejilere veya varlık sınıflarına tahsis edilmesi.
  • [FONT:0)Yeşil portföy inşaatı): çevresel, sosyal ve yönetişim (ESG) iki kısıtlama olarak (örneğin, tüm şirketleri kömür maruz bırakma ile dışlayın).

Akademik literatür vaka çalışmaları ile zengindir. Örneğin, 2018 yılında [[Döneticileri Araştırma), bir şube ve kesim çözücüleri, 50 $ ile indeks izleme problemlerini en iyi şekilde birleştirebilecektir (bakış:2).Bertsimas ve Stellato, 2018).

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Bilişimsel teknikler geliştikçe, daha etkili ve pratik projelere yol açan, doğru problem boyutunu seçmede başarılı bir şekilde sahip olmak, devlet-öğrenme-sonuçlu yatırım kararlarını gerçekçi bir şekilde modelleme yeteneği sunmak ve finanse etmek için başvurularının garanti edilmesi bekleniyor.For portföy yöneticileri ve nicel analistler için, mastering tam programlama, doğru problem boyutunu seçmede önemli olan portföyleri açmanın anahtarı, en iyi risk-dönüşüm profillerini hedeflemekte iken, en iyi risk-dönüşümlü bir teknolojide ilerlemeyi amaçlayan portföyleri ve sabitleme sistemlerinin sabitleştirilmesi için kapıyı açıyor.

Daha fazla okuma için, ilgilenen okuyucular incelenebilir:0 Wikipedia tam anlamıyla programlamaya giriş), Tamamlayıcı değişkenleri ile portföy optimizasyonuna pratik bir kılavuz (Dönetici) veya Ders Kitabı)Integer Programming) Conforti, Cornuéjols tarafından, ve Zambelli.