Algoritmik ticarette Python - sayfa 24

 

Python, NumPy ve Pandalar ile Hisse Senedi Yatırım Portföyü Volatilitesini Hesaplama


Python, NumPy ve Pandalar ile Hisse Senedi Yatırım Portföyü Volatilitesini Hesaplama

Bu videoda sunum yapan kişi Python kullanarak bir yatırım portföyünün oynaklığının nasıl hesaplanacağını gösteriyor ve arkasındaki matematiksel denklemleri içeriyor. Portatif bir hesap makinesinde kolaylıkla hesaplanabildiğinden, odak noktası iki menkul kıymetli bir portföydür. Ancak sunum yapan kişi, üçten fazla menkul kıymete sahip portföyler için oynaklığı hesaplamak için matris çarpımının kullanıldığını belirtmektedir. Sunucu, hesaplamaları gerçekleştirmek için NumPy kitaplığını ve diğer destekleyici kitaplıkları kullanır.

Video, Python ortamının kurulması ve gerekli modüllerin import edilmesi ile başlıyor. Sunucu daha sonra süreç boyunca kullanılacak değişkenleri tanımlar.

Sunum yapan kişi, portföy için gerçek zamanlı veriler elde etmek amacıyla bir API'nin kullanımından bahseder ve özellikle gün sonu geçmiş verilerinin kullanıldığını gösterir. Verilere erişmek için bir API anahtarının gerekli olduğunu açıklar ve anahtarın nasıl kaydedileceği ve alınacağına ilişkin talimatlar sağlar. Verilerin başlangıç tarihi yaklaşık bir yıl önce olarak belirlendi. Sunum yapan kişi portföyü kurar, her menkul kıymete eşit ağırlık atar ve indirilen verileri depolamak için boş bir liste oluşturur.

Sunum yapan kişi, bir for döngüsü kullanarak portföydeki her sembol için API çağrıları yapar ve verileri alır. Veri sağlayıcının web sitesinden uç nokta URL'sini alarak ve gerekli değişiklikleri yaparak API çağrısının nasıl oluşturulacağını gösterirler. Veriler, daha fazla işlenmek üzere bir pandas DataFrame'e dönüştürülen bir JSON dizesi olarak alınır. Kapanış fiyatları DataFrame'den çıkarılır ve veri listesine eklenir.

For döngüsünü tamamladıktan sonra sunum yapan kişi, veri listesini bir DataFrame'e dönüştürür, transpoze eder, sütunları sembol adlarıyla yeniden adlandırır ve dizini tarihler olarak değiştirir. Daha sonra, her menkul kıymet için kapanış fiyatlarını içeren sonuç DataFrame'i görüntüler.

Oynaklığı hesaplamak için sunum yapan kişi, anlık getiri oranlarının hesaplanması gerektiğini açıklar. Kapanış fiyatları üzerinde NumPy'nin logaritma fonksiyonunu kullanarak yeni bir DataFrame oluştururlar ve ardından ardışık değerler arasındaki farkları hesaplarlar. Ortaya çıkan DataFrame, her menkul kıymet için anlık getiri oranlarını temsil eder. Sunum yapan kişi, herhangi bir NaN değerini işlemek için DataFrame'in ilk satırını kaldırır ve her menkul kıymet için varyans hesaplamasını gösterir.

Sunucu, her menkul kıymetin volatilitesini hesaplamak için varyansın karekökünü kullanır. Ortaya çıkan oynaklıkları yüzde olarak gösterirler.

Portföy volatilitesi için sunum yapan kişi, bunun her menkul kıymetin volatilitelerinin ağırlıklı ortalaması olarak hesaplanabileceğini açıklar. Örnekteki menkul kıymetler eşit ağırlıkta olduğundan, sunum yapan kişinin yalnızca oynaklıkların ortalamasına ihtiyacı vardır. Yüzde olarak biçimlendiriyorlar.

Daha sonra sunum yapan kişi, bir kovaryans matrisi kavramını tanıtır ve DataFrame getirilerini kullanarak bunun nasıl hesaplanacağını gösterir. Günlük kovaryansı yıllık kovaryansa ayarlarlar ve ortaya çıkan kovaryans matrisini gösterirler.

Son olarak sunum yapan kişi, matris çarpımını kullanarak portföy volatilitesini hesaplar. Ağırlıkları kovaryans matrisiyle çarparlar ve sonucun karekökünü alırlar. Portföy oynaklığı, standart sapmayı temsil eden yüzde olarak gösterilir.

Sonuç olarak, video, Python kullanarak portföy volatilitesinin nasıl hesaplanacağına dair adım adım bir gösterim sağlar. Sunum yapan kişi gerekli hesaplamaları açıklar, NumPy gibi ilgili kitaplıkları tanıtır ve portföy değişkenliğini azaltmada çeşitlendirmenin faydalarını vurgular.

How to Calculate Stock Investment Portfolio Volatility with Python, NumPy & Pandas
How to Calculate Stock Investment Portfolio Volatility with Python, NumPy & Pandas
  • 2021.08.18
  • www.youtube.com
#python #numpy #pandaslearn how to use Python and NumPy to calculate investment portfolio volatilityhttps://alphabench.com/data/python-portfolio-volatil...
 

Python için Steamlit'e Başlarken - Dakikalar İçinde Çalışan Bir Web Uygulaması Oluşturun



Python için Steamlit'e Başlarken - Dakikalar İçinde Çalışan Bir Web Uygulaması Oluşturun

Bu videoda, bir web uygulaması oluşturmak için Streamlit for Python'u nasıl kullanacağımı göstereceğim. Streamlit, kullanımı ücretsiz olan ve herhangi bir ön uç geliştirme deneyimi olmadan yüksek kaliteli uygulamalar oluşturmanıza ve paylaşmanıza olanak tanıyan web tabanlı bir kullanıcı arabirimidir. Bir API kullanarak hisse senedi fiyat verilerini indirmemize ve grafiğini çizmemize izin veren basit bir uygulama geliştireceğiz. Başlayalım!

İlk olarak, IDE'm olarak PyCharm kullanacağım, ancak siz istediğiniz herhangi bir IDE'yi kullanabilirsiniz. PyCharm'a aşina değilseniz, video açıklamasında "PyCharm'e Başlarken" videosu için bir bağlantı sağladım. Daha fazlasını öğrenmek istiyorsanız kontrol etmekten çekinmeyin.

PyCharm'da "Streamlit Demo" adlı yeni bir proje oluşturdum ve bir Python dosyası ekledim. Yeni bir sanal ortamla başladığımız için bazı bağımlılıklar kurmamız gerekiyor. Pandalara, İstek kitaplığına ve Streamlit'e ihtiyacımız olacak. PyCharm yapılandırmanıza bağlı olarak Pandalar ve İstekler zaten kurulu olabilir, ancak kesinlikle Streamlit'i kurmanız gerekecek. Ek olarak, uygulamamız için günde yaklaşık 20 sınırla ücretsiz API çağrısına izin veren "Gün Sonu Geçmiş Verileri" API'sini kullanacağız. Bundan daha fazlasına ihtiyacınız varsa, web sitelerinde abonelik seçenekleri sunarlar.

Streamlit kurulduktan sonra örnek uygulamalarına bir göz atalım. Terminali açacağım ve komut satırından Python'u çağırıp ardından Streamlit komutunu çalıştırarak Streamlit'i çalıştıracağım. Örnek uygulamaları "hello" adlı bir dosyadadır. Birkaç saniye sonra uygulama başlayacak ve bir başlık, bazı metinler ve köprüler içeren bir web sayfası göreceksiniz. Sol tarafta, keşfedebileceğiniz çeşitli gösteriler var. Demolarının güzel yanı, çıktıyı oluşturmak için kullanılan kodu sağlamalarıdır. Örneğin, grafiği olan bir demo var ve onun altında grafiği oluşturmak için kullanılan kodu görebilirsiniz. Streamlit, biçimlendirme ve web sayfasına içerik yerleştirme işlemlerini üstlenir, bu nedenle, istenen çıktıyı elde etmek için yalnızca kodu yazmaya odaklanmanız gerekir.

Uygulamanızdan memnun kaldığınızda, canlı olarak yayınlamak için Streamlit'ten izin isteyebilirsiniz. Hala ücretsiz yayınlama sunuyorlar, ancak bunu ayarlamak için onlarla iletişime geçmeniz gerekiyor. Ardından, dosyalarınızı GitHub'a gönderebilir ve canlı uygulamanızı saniyeler içinde paylaşabilirsiniz.

Şimdi kendi uygulamamızı oluşturmaya geçelim. Uygulama kodumuzu yazmaya başlamadan önce Streamlit'in birkaç özelliğini göstereceğim. Streamlit, düğmeler, renk seçiciler, kenar çubukları, metin kutuları ve tarih seçiciler gibi kullanabileceğiniz çeşitli öğeler sağlar. En sık kullanılan öğe, web sayfasında metin görüntülemenizi sağlayan "yazma" işlevidir. Metni biçimlendirmek için "yazma" işlevi içindeki işaretleme sözdizimini de kullanabilirsiniz. Ek olarak, serbest biçimli metni görüntülemek istiyorsanız, basitçe bir doküman dizisi kullanabilirsiniz ve Streamlit bunu işaretleme olarak işleyecektir.

Temel bir uygulama yazarak bu özelliklerden bazılarını test edelim. Birkaç bağımlılık tanımlayacağım ve ardından size Streamlit öğelerini nasıl kullanacağınızı göstereceğim. "st" işleviyle başlayacağız ve farklı yeteneklerini keşfedeceğiz. Örneğin, bir düğmeyi görüntülemek için "st.button", renk seçici için "st.color_picker" ve bir kenar çubuğu oluşturmak için "st.sidebar" kullanabiliriz. "Yaz" işlevi, metni görüntülemek için de oldukça kullanışlıdır ve içinde işaretleme sözdizimini kullanabilirsiniz. Bu ortak özellikleri göstereceğim ancak Streamlit'in çok daha fazla seçenek sunduğunu unutmayın.

Uygulamayı çalıştırmak için mevcut Streamlit sunucusunu durdurup isim ile Python komutunu çalıştırarak tekrar başlatacağım.

Hisse senedi fiyat verilerini indirmenize ve grafiğini çizmenize izin veren basit bir Streamlit uygulaması örneği:

import streamlit as st
import pandas as pd
import requests

# Set the title and page layout
st.title( "Stock Price Data" )
st.sidebar.header( "Settings" )

# Create input fields in the sidebar
symbol = st.sidebar.text_input( "Enter a stock symbol (e.g., AAPL)" , value= "AAPL" )
start_date = st.sidebar.text_input( "Enter the start date (YYYY-MM-DD)" , value= "2022-01-01" )
end_date = st.sidebar.text_input( "Enter the end date (YYYY-MM-DD)" , value= "2022-12-31" )

# Create a button to trigger the data retrieval
if st.sidebar.button( "Get Data" ):
     # Make an API request to retrieve the stock price data
    url = f " https://api.example.com/stock/ {symbol}/history?start_date={start_date}&end_date={end_date}"
    response = requests.get(url)
    
     # Check if the API request was successful
     if response.status_code == 200 :
        data = response.json()
        df = pd.DataFrame(data)
        
         # Display the downloaded data
        st.write(df)
        
         # Create a line chart of the stock prices
        st.line_chart(df[ "close" ])
     else :
        st.write( "Error retrieving data from the API" )

# Add some additional information to the sidebar
st.sidebar.info( "This is a simple app to download and graph stock price data." )
st.sidebar.info( "Enter the stock symbol and date range, then click 'Get Data' to retrieve the data." )

Bu örnekte, önce gerekli kitaplıkları içe aktarıyoruz: Streamlit, Pandas ve İstekler. Daha sonra st.title() ve st.sidebar.header() fonksiyonlarını kullanarak başlığı ve sayfa düzenini ayarlıyoruz.

Ardından, kenar çubuğunda st.sidebar.text_input() işlevini kullanarak giriş alanları oluşturuyoruz. Kullanıcılar bu alanlara hisse senedi simgesi, başlangıç tarihi ve bitiş tarihi girebilirler.

Ardından st.sidebar.button() işlevini kullanarak bir düğme oluşturuyoruz. Düğmeye tıklandığında, veri alma işlemini tetikler. Girilen sembol, başlangıç tarihi ve bitiş tarihini kullanarak API istek URL'sini oluşturuyoruz. request.get() işlevini kullanarak API'ye bir GET isteği yaparız.

API isteği başarılı olursa (durum kodu 200), yanıttan verileri alır ve bir Pandas DataFrame oluştururuz. İndirilen verileri st.write() işlevini kullanarak gösteriyoruz ve ardından st.line_chart() işlevini kullanarak hisse senedi fiyatlarının bir çizgi grafiğini oluşturuyoruz.

API isteği başarısız olursa, st.write() işlevini kullanarak bir hata mesajı görüntüleriz.

Son olarak, st.sidebar.info() işlevini kullanarak kenar çubuğuna bazı ek bilgiler ekliyoruz.

Bu uygulamayı çalıştırmak için onu bir Python dosyasına (ör. stock_app.py) kaydedebilir ve terminalinizde streamlit run stock_app.py komutunu kullanarak çalıştırabilirsiniz.

Bu sadece temel bir örnektir ve ihtiyaçlarınıza göre daha da özelleştirebilirsiniz. Streamlit, açılır menüler, onay kutuları, kaydırıcılar ve daha fazlası dahil olmak üzere etkileşimli web uygulamaları oluşturmak için çok daha fazla özellik sağlar. Daha fazla bilgi ve örnek için Streamlit belgelerini ( https://docs.streamlit.io/ ) inceleyebilirsiniz.

Getting Started with Steamlit for Python - Build a Functioning Web App in Minutes
Getting Started with Steamlit for Python - Build a Functioning Web App in Minutes
  • 2021.10.18
  • www.youtube.com
#python #streamlitHow to use streamlit - full-featured GUI for Pythonhttps://alphabench.com/data/python-streamlit-app.html*Please SUBSCRIBE:https://www.yo...
 

Günlük Yüksek/Düşük Zamanını Bulmak için Gün Sonu (EOD) Geçmiş Veri API'sini kullanın



Günlük Yüksek/Düşük Zamanını Bulmak için Gün Sonu (EOD) Geçmiş Veri API'sini kullanın

Bu videoda, bir hisse senedi için günlük en yüksek ve en düşük işlem fiyatlarını çıkarmamızı sağlayan Gün Sonu Geçmiş Verileri API'sini keşfedeceğiz. Bu API, finansal veriler için ücretsiz bir modelin parçasıdır ve günde 20 ücretsiz API çağrısı sunar. Bu API'nin avantajı, 70'in üzerinde küresel borsadan gelen verilere erişim sağlamasıdır. Web sitelerinin bağlantısını ve özel fiyatları video açıklamasında bulabilirsiniz.

Başlamak için ortamımızı kurmamız gerekiyor. Tarihleri değiştirmek için tarih saat modülünü, geçmiş verilere erişmek için yardımcı kitaplığı, veri işleme ve filtreleme için pandaları ve API çağrıları yapmak için istekleri kullanacağız. Ardından, basitlik için bir dosyada veya doğrudan not defterinde saklanabilen API anahtarımızı almamız gerekiyor.

Verilerimiz için genellikle yaklaşık 10 gün geriye giden başlangıç tarihini de tanımlayacağız. API, veri türüne göre farklı sınırlamalara sahiptir; dakika bazında veriler 120 günle ve beş dakikalık aralık verileri 600 günle sınırlıdır. API, 1 Ocak 1970'ten bu yana geçen saniye sayısını temsil eden Unix zaman damgasını kullanarak verileri indeksler. API isteği için istenen başlangıç tarihini bir Unix zaman damgasına dönüştürürüz.

Gerekli kurulum tamamlandıktan sonra, API anahtarımızı kullanarak "Gün Sonu Geçmiş Verileri" nesnesinin bir örneğini oluşturabiliriz. Bu nesne, ihtiyacımız olan verileri almamızı sağlar. Yardımcı kitaplık, farklı veri türleri için keşfedilebilecek çeşitli uç noktalar sağlar. Bu örnekte, belirtilen başlangıç tarihinden başlayarak bir dakikalık aralıklarla Tesla için gün içi fiyatları almaya odaklanacağız.

Verileri görselleştirmek için API çağrısını bir Pandas DataFrame için bir oluşturucuya sarabiliriz. Bu, verilerle çalışmayı ve verileri görselleştirmeyi kolaylaştırır. Unix zaman damgası, tarih ve saat dahil olmak üzere alınan verileri doğrulamak için DataFrame'in ilk birkaç satırını görüntüleriz.

Yardımcı kitaplığı kullanmamayı tercih ederseniz video, API uç noktasına doğrudan erişmek ve JSON verilerini almak için istek kitaplığını kullanan alternatif bir yaklaşım sunar.

Ardından, bazı veri temizleme işlemleri gerçekleştiriyoruz. Tamsayı tabanlı dizini verilerden tarih ve saat ile değiştiriyoruz. Saat ve tarih için ayrı sütunlar ekledik ve GMT ofseti ve orijinal tarih saati gibi gereksiz sütunları kaldırdık. Ortaya çıkan DataFrame, eklenen sütunlarla revize edilmiş yapıyı gösterir.

Normal işlem saatlerine odaklanmak için orijinal verilerin bir kopyasını oluştururuz. İndeks bir tarih-saat nesnesi olduğundan, istenen zamanlar için filtreleme yapmak için interval_time yöntemini kullanabiliriz. Videoda da belirtildiği gibi bu veriler için zaman dilimi GMT-5, bu yüzden saatleri buna göre ayarlıyoruz. Ayrıca daha kolay yorumlama için saatleri Doğu Saatine (ET) çeviriyoruz.

Tarih saat sütunundan yalnızca zamanı filtrelemek için bazı ek adımlar gerçekleştiriyoruz. Zaten bir hesaplama yaptığımız için, zamanı çıkarmak için tarih saat yöntemini uygulamadan önce verileri yeniden biçimlendirmemiz gerekiyor. Ortaya çıkan DataFrame, New York City'de ayarlanan saatleri görüntüler.

Son olarak, işlem günü boyunca en yüksek ve en düşük seviyelerin ne zaman ortaya çıktığına dair orijinal soruyu ele alıyoruz. Önce groupby işlevini ve min ve max yöntemlerini kullanarak her gün için genel yüksek ve düşük değerleri alıyoruz. Bu iniş ve çıkışların belirli zamanlarını belirlemek için, sırasıyla DataFrame içindeki minimum ve maksimum değerlerin indeksini buluruz. Bu, bu fiyat noktalarının zamanlaması hakkında fikir vererek, herhangi bir model veya eğilimi gözlemlememizi sağlar.

Genel olarak bu video, Gün Sonu Geçmiş Verileri API'sini kullanmak, hisse senedi fiyat verilerini almak ve yüksek ve düşük işlem fiyatlarının zamanlamasını analiz etmek için adım adım bir kılavuz sağlar.

Use End of Day (EOD) Historical Data API to Find Time of Daily High/Low
Use End of Day (EOD) Historical Data API to Find Time of Daily High/Low
  • 2021.11.22
  • www.youtube.com
@MattMacarty #python #pandas #EODHistoricalDataUse a financial services API to find the time a stock trades at it lowest or highest each dayUse a financi...
 

Python ve QuantStats ile Alım Satım Algoritmalarını ve Portföy Metriklerini Geriye Dönük Test Etme



Python ve QuantStats ile Alım Satım Algoritmalarını ve Portföy Metriklerini Geriye Dönük Test Etme

Bugün size, bir portföy profil oluşturma aracı olarak oluşturulmuş kapsamlı bir Finansal ölçümler Kitaplığı olan Quant istatistiklerine kapsamlı bir genel bakış sunacağım. Quant istatistikleriyle, yalnızca basit bir satır kullanarak zahmetsizce ayrıntılı raporlar oluşturabilirsiniz. Bu araç, portföy performansını etkili bir şekilde ölçmenize ve ticaret algoritmalarını geriye dönük test etmenize olanak tanır.

Quant istatistikleri, zaten aşina olabileceğiniz ve kullanabileceğiniz iyi bilinen veri bilimi kitaplıklarına dayanır. Bu gösterim için PyCharm'da çalışıyorum ve yeni bir projeye başladım. Takip ediyorsanız, gerekli bağımlılıkların kurulu olduğundan emin olun. Quant istatistikleri yaklaşık altı aydır güncellenmediğinden Pandas'ın biraz daha eski bir sürümünü kullanıyorum ve en son Pandas sürümleriyle bazı uyumluluk sorunları olabilir.

Gerekli bağımlılıklara sahip olduğunuzdan emin olmak için bunları bir gereklilikler.txt dosyasına ekleyebilir ve Pip kullanarak yükleyebilirsiniz. Ek olarak, Quant istatistikleri üç modülden oluşur: istatistikler, çizimler ve raporlar. Kapsamlı işlevsellik nedeniyle, bu tek videoda her şeyi anlatamayacağım. Ancak, size bir genel bakış sunacağım ve nasıl başlayacağınız konusunda size rehberlik edeceğim. Daha sonra, özel ihtiyaçlarınıza ve ilgi alanlarınıza göre daha fazlasını keşfedebilirsiniz.

Ayrıntılara dalmadan önce, sponsorumuzdan biraz dinleyelim. Python ile ticaret algoritmalarının nasıl oluşturulacağını öğrenmekle ilgileniyorsanız, Looming Wealth'in algoritmik ticaret kurslarında size yardımcı olmasına izin verin. Bu kursta, sizin adınıza otomatik olarak ticaret yapan botlar oluşturmayı, teknik ve finansal ölçümleri uygulayıp kullanmayı ve benzersiz ticaret algoritmaları geliştirmek için makine öğrenimini kullanmayı öğreneceksiniz. Kendi hızınızda öğrenebilir veya işbirlikçi bir öğrenme deneyimi için canlı derslere katılabilirsiniz. Looming Wealth hakkında daha fazla bilgi edinmek ve ticaret kurslarından herhangi birinde %15 indirim almak için aşağıdaki bağlantıyı takip edin.

Şimdi Quant istatistiklerine geri dönelim. Yeni bir boş dosyada, Quant istatistikleri kitaplığını içe aktararak başlayın. Ardından, analiz etmek için bir hisse senedi simgesi ayarlayın. Bu örnek için S&P 500 ETF'yi (SPY) kullanacağım. Son üç yıldaki performansını incelemek için Quant istatistiklerini kullanacağız.

İade verilerini indirmek için Yahoo Finance verilerine dayanan Quant stats araçlarını kullanacağız. Tercih ettiğiniz herhangi bir veri kaynağını kullanabilirsiniz; burada sihir yok. Ne aldığımızı görmek için iadeleri yazdıralım. Çıktı, belirtilen zaman dilimini kapsayan günlük getirileri olan bir Pandalar Serisi olacaktır.

Döndürme verilerine sahip olduğumuzda, Quant istatistiklerini kullanarak çeşitli istatistikleri hesaplayabiliriz. Bu videoda ele alabileceğimizden çok daha fazla kullanılabilir çok sayıda işlev vardır. Kullanılabilir_stats özniteliğini yazdırarak kullanılabilir istatistiklerin bir listesini elde edebilirsiniz. Özel işlevler hariç, mevcut istatistiklerin bir liste anlayışını görüntüleyelim.

Kısa ve öz tutmak için liste anlayışının bir kısmını yorumlayacağım. Son üç yılda S&P 500 için birkaç ortak istatistik yazdırmaya devam edeceğiz. Sharpe oranını qs.stats.sharpe_ratio() kullanarak hesaplayalım. Ek olarak, sırasıyla qs.stats.best_day() ve qs.stats.best_month() öğelerini çağırarak en iyi günü ve ayı bulacağız. Gerekirse verileri farklı bir şekilde toplamak için bu çağrıları değiştirebilirsiniz.

Alternatif olarak Quant istatistikleri, Pandalar için doğrudan portföy nesnesi üzerinde yöntem çağrıları yapmanıza izin veren bir sarmalayıcı sağlar. Pandaları genişleterek, çeşitli istatistiklere erişmek için tek satırlık bilgileri kullanabilirsiniz. Örneğin, Quant stats.extend_pandas()'ı arayabilir ve ardından bileşik yıllık brüt getiri ve maksimum düşüş gibi istatistikleri almak için portföy nesnesini kullanabilirsiniz.

İstatistiklere ek olarak, Quant istatistikleri ayrıca portföy oluşturma yeteneği sunar.

Ardından, hareketli ortalama geçiş stratejisine dayalı olarak sinyalleri hesaplayacağım. Hızlı hareket eden ortalama, yavaş hareket eden ortalamanın üzerindeyse, bu bir satın alma sinyalidir. Aksi takdirde, bu bir satış sinyalidir. Bu sinyalleri veri çerçevesine ekleyeceğim.

Bundan sonra, sinyallere göre konumları hesaplayacağım. Bu bir alım sinyaliyse, pozisyonu 1'e (uzun bir pozisyonu gösterir) ve eğer bir satış sinyaliyse, pozisyonu -1'e (kısa bir pozisyonu gösterir) ayarlayacağım. Diğer tüm durumlar 0'a ayarlanacaktır (konum olmadığını gösterir).

Artık pozisyonları aldığımıza göre, strateji getirilerini hesaplayacağım. Bunu yapmak için, pozisyonları varlığın günlük getirileriyle çarpacağım. Bu bize günlük strateji getirilerini verecektir.

Ardından, günlük getirilerin kümülatif ürününü alarak stratejinin kümülatif getirilerini hesaplayacağım. Bu bize zaman içinde stratejinin büyümesini sağlayacaktır.

Son olarak, quantstats.reports.html işlevini kullanarak raporu oluşturacağım. Bu işlev, kümülatif iade verilerini alır ve çeşitli performans ölçümleri ve görselleştirmeleri içeren bir HTML raporu oluşturur. Raporu bir HTML dosyası olarak kaydedeceğim.

Raporu otomatik olarak görüntülemek için dosyayı web tarayıcısını kullanarak açacağım. Ve kod için bu kadar.

Şimdi, bu kodu seçtiğiniz parametrelerle çalıştırdığınızda, hareketli ortalama geçiş stratejisini oluşturacak, performans metriklerini hesaplayacak ve sonuçları içeren bir HTML raporu oluşturacaktır. Hareketli ortalama dönemleri veya zaman penceresi gibi strateji parametrelerini ihtiyaçlarınıza göre özelleştirebilirsiniz.

How to Backtest Trading Algorithms and Portfolio Metrics with Python and QuantStats
How to Backtest Trading Algorithms and Portfolio Metrics with Python and QuantStats
  • 2022.12.07
  • www.youtube.com
​@MattMacarty #python #trading #algotrading How to Backtest Trading Strategies and Algorithms, Generate Portfolio Metrics✅ Please SUBSCRIBE:https://w...