Algoritmik ticarette Python - sayfa 20

 

Python Stratejisi Geri Testinde Bir İz Durağı Nasıl Kodlanır



Python Stratejisi Geri Testinde Bir İz Durağı Nasıl Kodlanır

Bugün size Python'da heyecan verici bir kodlama eğitimim var. Ticaret stratejimizde takip eden bir durdurmayı nasıl uygulayacağımızı öğreneceğiz ve bunun öz sermayemiz ve getirilerimiz üzerindeki etkisini analiz edeceğiz. Bu kanalda yeniyseniz, bu oynatma listesindeki önceki videoları, özellikle stratejiyi ayrıntılı olarak tartıştığımız son iki veya üç videoyu izlemenizi tavsiye ederim. Python kodunu, açıklamadaki bağlantıdan indirebileceğiniz Jupiter not defterinde de bulabilirsiniz. Bu, parametrelerde ince ayar yapmanıza ve kendi başınıza deney yapmanıza olanak tanır.

Kodlama kısmına geçmeden önce, kullanacağımız stratejiyi kısaca özetleyelim. Özetle, destek ve direnç seviyelerinin tespitini ve bu seviyelerin etrafında meydana gelen mum kalıplarının tanımlanmasını otomatik hale getirdik. Bu sinyallere dayanarak, alım satım emirlerimizi yerine getireceğiz. Örneğin, güçlü bir ret şamdanının takip ettiği yutan boğa paterni gibi bir satın alma sinyali belirlersek, uzun bir pozisyona gireriz. Riski yönetmek için, tolere etmeye istekli olduğumuz maksimum kaybı belirleyen bir zararı durdurma emri belirlememiz gerekir. Geleneksel olarak, stop-loss, giriş fiyatından belirli bir mesafede sabitlenir. Ancak, bu öğreticide, onu takip eden bir durakla değiştireceğiz.

İzleyen bir stop, fiyat hareketini kârlı yönde takip ederek, bir yükseliş trendi sırasında daha fazla kazanç elde etmemizi sağlar. Örneğimizde, bir alım pozisyonunda olduğumuz için, takip eden stop fiyatı yükseldikçe takip edecek ve arkasında belirli bir mesafe bırakacaktır. Ancak, fiyat tersine dönmeye çalışırsa ve zararı durdur seviyesine ulaşırsa, daha fazla kaybı önlemek için işlemimiz kapatılacaktır. Bu takip eden durdurma mekanizması, potansiyel kazançlarımızı sınırlayabilecek sabit bir kâr alma seviyesi kullanmak yerine, özellikle uzun süreli fiyat eğilimleri sırasında kârı en üst düzeye çıkarmaya yardımcı olur.

Şimdi, bu konsepti daha önce tartışılan stratejimize uygulayalım. Daha önce detaylandırdığımız aynı programı kullanacağız. Buna aşina değilseniz, lütfen oynatma listesine bakın ve şamdan kalıplarını ve destek ve direnç seviyeleri algılama otomasyonunu kapsayan son iki veya üç videoyu izleyin. Bu seferki tek fark, sabit bir zararı durdur veya kârı al oranı kullanmak yerine takip eden durdurmayı uygulayacağız. Bu eğitimin sonuna doğru, stratejiyi geriye dönük olarak test edeceğim ve bu takip eden durdurma yöntemiyle elde edilebilecek potansiyel getirileri göstereceğim.

Başlamak için, 2003'ten 2021'e kadar EUR/USD döviz çifti için günlük mum grafiği olan verilerimizi yüklüyoruz. Destek ve direnç seviyelerinin yanı sıra yutma formasyonları gibi çeşitli şamdan formasyonlarını tespit etmeye yardımcı olan bir dizi fonksiyonumuz var. kayan yıldızlar ve reddetme kalıpları. Bu işlevlerin uygulama ayrıntılarıyla ilgileniyorsanız, lütfen önceki videolara bakın.

Ardından, ticaret sinyallerimizi oluşturuyoruz. Alış sinyali 2, satış sinyali 1 değeri ile gösterilir ve sinyal yoksa değer 0 olarak ayarlanır. Bu bilgi veri çerçevemize yeni bir sütun olarak eklenir. Açılış fiyatı, yüksek, düşük, kapanış fiyatı, hacim (bu stratejide kullanmayacağız) ve sinyal sütunu için sütunlarla veri çerçevemiz şimdi böyle görünüyor.

Stratejimizi geriye dönük olarak test etmek için, bu oynatma listesinin son videosunda tanıtılan geriye dönük test paketini kullanacağız. Backtesting paketi tarafından sağlanan "Strategy" sınıfından miras alan "MyCandleStrategy" adında bir sınıf tanımlıyoruz. İki işlevi geçersiz kılıyoruz: "initialize" ve her mum çubuğunda çağrılan bir sonraki işlev. Başlatma işlevinde, takip eden durağımız için mesafeyi (pip cinsinden) temsil eden "stop_loss_trail" değişkenini tanımlarız. Stratejimiz için en uygun takip eden durdurma değerini bulmak için bu değer denenebilir.

Bir sonraki işlevde, takip eden durağımız için mantığı uyguluyoruz. Açık pozisyonumuz olup olmadığını kontrol ederek başlıyoruz. Bunu yaparsak, pozisyona girdiğimizden beri en yüksek fiyattan takip eden stop değerini çıkararak mevcut stop-loss seviyesini hesaplarız. Bu, zararı durdur seviyesinin yükselen fiyatın gerisinde kalmasını sağlar. Ardından, mevcut fiyatın zararı durdur seviyesine ulaşıp ulaşmadığını veya altına düşüp düşmediğini kontrol ederiz. Varsa, pozisyonu kapatır ve ticaret istatistiklerimizi güncelleriz.

Artık takip eden durdurma mantığını uyguladığımıza göre, arka testi çalıştırmaya ve sonuçları analiz etmeye devam edebiliriz. Aşağıda, geriye dönük testin nasıl çalıştırılacağına ve özkaynak eğrisinin nasıl yazdırılacağına ilişkin bir örnek verilmiştir: Bu, stratejimizin özkaynak eğrisini takip eden durdurma uygulanmış olarak gösteren bir grafik oluşturacaktır. Stratejinin performansını değerlendirmek için geriye dönük test paketi tarafından sağlanan diğer performans ölçümlerine ve istatistiklere de erişebilirsiniz.

Son olarak, takip eden durma değerine ince ayar yapmak için bir dizi değer üzerinde yineleme yapabilir ve sonuçları karşılaştırmak için birden fazla arka test çalıştırabilirsiniz. Bu, getirilerinizi en üst düzeye çıkaran en uygun takip eden durdurma değerini bulmanıza yardımcı olacaktır.

Bu, ticaret stratejimizde takip eden bir stop uygulama konusundaki eğitimimizi sonlandırıyor. Gerçek ticarete uygulamadan önce farklı değerlerle denemeler yapmayı ve stratejiyi kapsamlı bir şekilde test etmeyi unutmayın. Herhangi bir sorunuz varsa veya daha fazla yardıma ihtiyacınız varsa, sormaktan çekinmeyin. Mutlu kodlama ve mutlu ticaret!

How To Code A Trail Stop In Python Strategy Backtesting
How To Code A Trail Stop In Python Strategy Backtesting
  • 2021.10.22
  • www.youtube.com
Trailing stop, or stop loss strategy is presented and coded in python for algorithmic trading methods. The strategy is Backtested showing high profitability...
 

Python'da Bir Ticaret Stratejisinin Geri Testi Nasıl Yapılır?



Python'da Bir Ticaret Stratejisinin Geri Testi Nasıl Yapılır?

Herkese merhaba, başka bir videoya hoş geldiniz. Bugün, ticaret stratejilerimiz için çok önemli olan bir konuyu tartışmak istiyorum, bu da geriye dönük testtir. Şimdiye kadar, farklı stratejiler sunduk ve modelimizin alım satım tahminlerinin güvenilirliğini kontrol etmek için yalnızca istatistiksel sayımlara güvendik. Ancak, stratejimizi geriye dönük olarak test etmek, belirli bir süre içinde elde edilebilecek kâr miktarı olan ek bilgiler getirir.

Bu kar yüzdesi, stratejinize herhangi bir yatırım yapmayı düşünüp düşünmediğinizi belirlemek için önemlidir. Devam etmeden önce, her zamanki gibi kod, bu videonun açıklamasındaki bağlantıdan indirebileceğiniz bir Jupyter Python not defteridir. Bu konu mesajlarınızdan biri tarafından önerildi, bu nedenle düşüncelerinizi paylaştığınız için tekrar teşekkür ederiz. Geri bildirimlerinizden gerçekten ilginç fikirler alıyoruz ve önerilen tüm fikirleri tartışmak için zamanım olmadıysa özür dilerim, ancak bir liste tutuyorum ve gelecekte bunları ele alacağımızı düşünüyorum.

Şimdi geriye dönük test araçlarından bahsedelim. Çevrimiçi olarak birçok kullanılabilir kitaplık var, ancak kişisel olarak kendi işlevlerimi kodlamayı tercih ediyorum. Bu şekilde, özellikle geriye dönük test söz konusu olduğunda, kodumun içinde tam olarak neler olduğunu biliyorum. Güvenilir ve sağlam bir şeye ihtiyacımız var. Ancak önerilen paketler arasında iki seçeneğim vardı. Biri "vectorbt" adlı bir paket kullanıyordu, birkaç saat içinde öğrenmesi biraz zor geldi ve onu kendi stratejilerim için kullanmaya başladım. Belgeler azdı ve birçok ayrıntıyı bulmak için forumlarda ve çevrimiçi örneklerde arama yapmak zorunda kaldım. Muazzam bir potansiyele sahip olmasına ve birçok seçenek sunmasına rağmen, sadece basit bir stratejiyi test etmek adına gerekli işlevlere aşina olmak için bir ay harcamak istemedim.

Bu video için ikinci seçeneği seçtim, bu da "backtesting.py" adlı bir paket. Bence daha basit bir yaklaşım sunuyor. Şimdi konuya geçelim ve stratejimizin ne kadar para kazandıracağını görelim. Bu örnek için, direnç ve destek otomatik algılama ve şamdan kalıpları algılama videosunda tartıştığımız önceki stratejiyi test edeceğim. Bunlar, bu videoda birleştirip kullanacağımız iki göstergedir.

İlk olarak, verileri yükleyip temizleyeceğim. Daha sonra tespit için destek ve direnç fonksiyonlarını uygulayacağım. Bu kanalı ilk kez izliyorsanız, geri dönüp destek ve direnç fonksiyonlarının nasıl tespit edileceğine dair önceki videoların yanı sıra yutan desenler, kayan yıldızlar, asılı adam ve diğer şamdan modelleri.

Daha sonra, daha önce bahsedilen yaklaşıma dayalı olarak sinyalimizi, bir alım sinyali mi, satış sinyali mi yoksa hiç sinyal mi olmadığını hesaplıyoruz. Hem sinyallerimizi etiketliyoruz hem de veri çerçevemizde bir sütunu dolduruyoruz. Fonksiyonlarımızın düzgün çalıştığından emin olmak için aldığımız sinyallerin sayısını kontrol edebiliriz.

Şimdi backtesting.py paketi ile uyumlu hale getirmek için sütun başlıklarını değiştireceğim. Bu adım büyük/küçük harfe duyarlıdır, bu nedenle adların tam olarak eşleştiğinden emin olmamız gerekir. Ardından, çalışmak için bir dizi satır seçiyorum.

Veri çerçevemizi kurduktan sonra en ilginç kısma geçiyoruz: stratejimizi tanımlama ve geriye dönük test etme. "Strateji" modülü de dahil olmak üzere gerekli kitaplıkları içe aktaracağım ve yavaş ve hızlı hareket eden ortalamaların çaprazlanması örneğini kaldıracağım.

Ardından, "Strategy" sınıfını genişleten ve onun iki soyut yöntemini geçersiz kılan "MyCandlesStrategy" adında yeni bir sınıf tanımlıyorum: __init__ ve next. __init__ yöntemi, stratejinin başlangıcındaki ilk değişkenleri veya işlevleri başlatmak için kullanılır. İdeal olarak, stratejinin bağlı olduğu herhangi bir gösterge ve sinyali önceden hesaplamak için yalnızca bir kez çalıştırılır.

Genel olarak, geriye dönük test, bir stratejinin belirli bir zaman diliminde potansiyel karlılığı hakkında değerli bilgiler sağladığından, alım satım stratejilerinin çok önemli bir yönüdür. Bu videoda, geriye dönük testi ve ticaret stratejilerimiz için önemini inceleyeceğiz.

Devam etmeden önce, her zamanki gibi, bu tartışmanın kodu, video açıklamasında sağlanan bağlantıdan indirebileceğiniz bir Jupyter Python not defteri olarak mevcuttur. Geriye dönük test konusu izleyicilerimizden biri tarafından önerildi ve hepinizden aldığım ilginç fikirler ve geri bildirimler için teşekkür ederim. Önerilen tüm fikirleri hemen tartışma fırsatım olmasa da, bir liste tutuyorum ve bunları gelecek videolarda ele almaya çalışıyorum.

Geriye dönük test araçları söz konusu olduğunda, çevrimiçi olarak kullanılabilen çok sayıda kitaplık vardır. Hepsine aşina olmasam da kişisel olarak kendi fonksiyonlarımı kodlamayı tercih ederim. Bu yaklaşım, özellikle geriye dönük testler için çok önemli olan kodun iç işleyişi üzerinde tam kontrole ve anlayışa sahip olmamı sağlıyor. Ticaret modellerimizi değerlendirmek için sağlam ve güvenilir bir çözüme ihtiyacımız var.

Önerilen paketler arasında iki seçeneğim vardı. İlki, güçlü ve zengin özelliklere sahip olmasına rağmen dik bir öğrenme eğrisine sahip olan "Vectorbt" adlı bir paketti. Bu paketin belgeleri biraz sınırlıydı ve gerekli bilgileri toplamak için forumlarda ve çevrimiçi örneklerde arama yapmak zorunda kaldım. Vectorbt muazzam bir potansiyele sahip olsa da, yalnızca bu videoda basit bir stratejiyi test etmek amacıyla işlevlerini tanımak için fazla zaman harcamak istemedim.

Bu nedenle, ikinci seçeneği, "backtesting.py" adlı bir paketi seçtim. Bence bu paket, geriye dönük test için daha basit bir yaklaşım sunarak ihtiyaçlarımıza daha uygun hale getiriyor. Bunu söyledikten sonra, konuyu derinlemesine inceleyelim ve stratejimizin ne kadar kâr getirebileceğini görelim.

Bu örnekte, direnç ve destek seviyelerinin otomatik tespitinin yanı sıra şamdan deseni tespitini içeren, tartıştığımız önceki stratejiyi test edeceğim. Bu iki gösterge stratejimizi oluşturmak için birleştirilecektir. Destek ve direnç seviyeleri ile şamdan formasyonlarının tespiti ile ilgili detaylı anlatım için kanalımızdaki ilgili videoları izlemenizi tavsiye ederim.

Başlamak için, verileri her zamanki gibi yükleyip temizliyoruz. Ardından, tespit için destek ve direnç fonksiyonlarını uygularız. Bu kanalda yeniyseniz, daha iyi anlamak için destek ve direnç tespiti ve mum formasyonunun belirlenmesi ile ilgili önceki videolara göz atmanızı tavsiye ederim.

Alış mı, satış mı yoksa sinyal yok mu olduğunu belirleyen sinyallerimizi hesapladıktan sonra, fonksiyonlarımızın doğru çalıştığından emin olmak için sinyal sayısını sayarız.

İleride, DataFrame'deki sütun adlarını "backtesting.py" paketiyle uyumlu olacak şekilde ayarlamamız gerekiyor. Paketin gerektirdiği büyük/küçük harf duyarlılığına ve adlandırma kurallarına uymak önemlidir. Ek olarak, bir dizi satır seçip gerekli sütun değişikliklerini yapıyoruz.

Özetlemek gerekirse, DataFrame'imiz şu sütunları içerir: zaman, açılış, yüksek, düşük ve kapanış fiyatları ile hacim (şu anda kullanmayacağız) ve daha önce hesapladığımız sinyal sütunu.

Ardından, DataFrame'imizden sinyal sütununu döndüren bir sinyal işlevi tanımlarız. Bu işleve daha sonra strateji sınıfımızı tanımladığımızda ihtiyaç duyulacaktır.

Şimdi stratejimizi tanımladığımız ve geriye dönük test yaptığımız en ilginç kısma geliyoruz. Bunu başarmak için, backtesting.py belgelerinde sağlanan yönergeleri takip ediyoruz. Yeni bir stratejinin, Strategy sınıfını genişletmesi ve onun iki soyut yöntemini geçersiz kılması gerektiğini öne sürüyorlar: init ve next.

init yöntemi, stratejinin gerektirdiği değişkenleri ve işlevleri başlatmaktan sorumludur. Strateji çalıştırılmadan önce çağrılır ve genellikle stratejinin dayandığı herhangi bir gösterge veya sinyali önceden hesaplamak için kullanılır. Bu işlevi aşırı yükleyerek, normal Python işlevlerini ve backtesting.py belgelerinde sağlanan örnekleri kullanarak gerekli göstergeleri tanımlayabiliriz.

İnit yöntemimizde stratejimiz için gerekli göstergeleri tanımlıyoruz. Bu durumda, DataFrame'imizden sinyal sütununu elde etmek için daha önce oluşturduğumuz sinyal fonksiyonunu kullanacağız. Bu örnek için herhangi bir işlem ücretini dikkate almayacağımız için komisyon ücretini de sıfır olarak belirledik.

Bir sonraki yöntem, stratejimizin kalbidir. Her ticaret çubuğu için çağrılır ve mevcut piyasa koşullarına göre ticaret kararlarını vermekten sorumludur. Uygulamamızda, bir satın alma sinyali olup olmadığını (sinyal 1'e eşittir) kontrol ediyoruz ve şu anda bir pozisyonumuz yok. Bu koşullar karşılanırsa, uzun bir pozisyona (alış) gireriz.

Benzer şekilde bir satış sinyali varsa (sinyal -1'e eşittir) ve uzun bir pozisyonumuz varsa, pozisyondan (satış) çıkarız. Bu örnekte kısa pozisyonları dikkate almıyoruz, bu nedenle sadece al ve sat sinyallerimiz var.

Stratejimizi tanımladıktan sonra, bunun bir örneğini yaratırız ve DataFrame ile sinyal fonksiyonumuzu argüman olarak iletiriz. Ardından, strateji örneğimizi ve DataFrame'i bağımsız değişken olarak ileterek backtesting.py paketinden Backtest sınıfının bir örneğini oluştururuz.

Son olarak, Backtest örneğimizde run yöntemini çağırarak backtest'i çalıştırıyoruz. Bu yöntem stratejiyi yürütür ve sonuçları üretir.

Sonuçlar, toplam getiri, yıllık getiri, maksimum düşüş ve daha fazlası gibi çeşitli performans ölçümlerini içerir. Backtest örneğinin karşılık gelen özniteliklerini kullanarak bu ölçümlere erişebiliriz.

Performans ölçümlerine ek olarak, Backtest örneği, sonuçları görselleştirmek için çeşitli çizim işlevleri sağlar. Alım satım hesabının zaman içindeki büyümesini gösteren hisse senedi eğrisinin yanı sıra düşüşler ve ticaret günlüğü gibi diğer faydalı çizimleri çizebiliriz.

Örneğimizde, eşitlik eğrisini çiziyoruz ve performans ölçümleri dahil olmak üzere geriye dönük test sonuçlarının özetini yazdırıyoruz.

Kodu çalıştırdıktan sonra, ticaret hesabımızın zaman içinde büyümesini gösteren hisse senedi eğrisi grafiğini gözlemleyebiliriz. Geriye dönük test sonuçlarının özeti, stratejimizin performansı hakkında değerli bilgiler sağlar.

Stratejimizi geriye dönük olarak test ederek, karlılığını ve performansını değerlendirebiliriz. Bu süreç, ticaret modelimizin etkinliği hakkında fikir edinmemizi ve gerçek ticaret senaryolarında potansiyel kullanımı hakkında bilinçli kararlar almamızı sağlar.

Bu, backtesting.py paketini kullanarak geriye dönük test yapma konusundaki tartışmamızı sonlandırıyor. Umarım bu videoyu bilgilendirici bulmuşsunuzdur ve ticaret stratejilerinizi geriye dönük olarak test etmek için size pratik bir yaklaşım sağlamıştır. Ticaret hedeflerinize en uygun olanı bulmak için farklı stratejiler, göstergeler ve parametrelerle denemeler yapmayı unutmayın.

Her zaman olduğu gibi, gelecek videolar için yorum, soru veya öneri bırakmaktan çekinmeyin. Geri bildiriminiz çok takdir edilmektedir. İzlediğiniz için teşekkürler, bir sonraki videoda görüşmek üzere!

How To Backtest A Trading Strategy in Python
How To Backtest A Trading Strategy in Python
  • 2021.10.07
  • www.youtube.com
In this video I am presenting a backtesting method using the backtesting.py package. We will backtest a winning strategy using python, we already detailed th...
 

Python'da Otomatik Fiyat Eylemi Ticaret Stratejisi



Python'da Otomatik Fiyat Eylemi Ticaret Stratejisi

Bu videoda, şamdan kalıplarını ve destek ve direnç seviyelerini kullanan bir ticaret stratejisini tartışacağız. Bu stratejinin temel amacı, fiyat hareket modellerini tespit etme sürecini otomatikleştirmek ve bunu Euro ve ABD Doları arasındaki tarihsel verilere uygulamaktır.

Başlamak için, bu stratejinin temel bileşenlerine bir göz atalım. Şamdan kalıpları, fiyat hareketlerinin çubuk veya mum şeklinde grafiksel temsilleridir. Bu modeller, piyasa duyarlılığı ve potansiyel trend dönüşleri hakkında değerli bilgiler sağlar. Bu kalıpları analiz ederek, tacirler işlemlere ne zaman girip çıkacakları konusunda bilinçli kararlar alabilirler.

Öte yandan destek ve direnç seviyeleri, piyasanın tarihsel olarak tersine dönme veya durma eğilimi gösterdiği belirli fiyat noktalarıdır. Bu seviyeler tüccarlar için psikolojik bariyer görevi görür ve potansiyel giriş ve çıkış noktalarını belirlemek için kullanılabilir.

Şimdi bu stratejinin Python'da uygulanmasına geçelim. Çeşitli finansal veri kaynaklarından veya API'lerden elde edilebilecek Euro ve ABD Doları geçmiş verilerini kullanacağız. Bu örnekte, gerekli verileri önceden topladığımızı ve önceden işlediğimizi varsayacağız.

Python ve birkaç popüler kitaplığı kullanarak stratejiyi otomatikleştireceğiz. İlk adım, veri manipülasyonu için pandalar, çizim için matplotlib ve teknik analiz göstergeleri için talib dahil olmak üzere gerekli kitaplıkları içe aktarmaktır. Talib, şamdan deseni tanıma da dahil olmak üzere bir dizi teknik analiz işlevi sağlayan, yaygın olarak kullanılan bir kitaplıktır.

Kitaplıklar içe aktarıldıktan sonra, geçmiş verileri bir pandas DataFrame'e yükleyebiliriz. DataFrame, tarih, açık, yüksek, düşük, kapanış ve hacim gibi gerekli sütunları içermelidir. Bu sütunlar genellikle teknik analizde kullanılır ve göstergelerin ve modellerin hesaplanması için gereklidir.

Ardından, şamdan modellerini algılamak için bir işlev tanımlayabiliriz. Bu örnekte, basit bir kalıba, yutan boğa kalıbına odaklanacağız. Bu formasyon, küçük bir düşüş mumunun ardından önceki mumu tamamen yutan daha büyük bir yükseliş mumunun gelmesiyle oluşur. İşlev, DataFrame üzerinde yinelenir ve boğa yutma modelinin örneklerini tanımlar.

Stratejiyi geliştirmek için destek ve direnç seviyelerini de dahil edebiliriz. Bu seviyeler, tarihsel fiyat tablosu analiz edilerek veya teknik analiz teknikleri kullanılarak manuel olarak belirlenebilir. Bu örnekte, ilgili destek ve direnç seviyelerini belirlediğimizi ve bunları ayrı bir DataFrame'de sakladığımızı varsayacağız.

Şamdan kalıpları ile destek ve direnç seviyelerine sahip olduğumuzda, stratejiyi otomatikleştirmeye devam edebiliriz. DataFrame üzerinde yineleme yapacağız ve mevcut çubuğun yukarı yönlü yutma formasyonunun koşullarını karşılayıp karşılamadığını ve mevcut fiyatın bir destek seviyesine yakın olup olmadığını kontrol edeceğiz. Bu koşullar karşılanırsa, bir satın alma sinyali üretiriz.

Tersine, mevcut çubuk aşağı yönlü bir yutma modelinin koşullarını karşılıyorsa ve mevcut fiyat bir direnç seviyesine yakınsa, bir satış sinyali üretiriz. Bu sinyaller, canlı bir ticaret ortamında alım veya satım emirlerini tetiklemek için kullanılacaktır.

Stratejimizin sonuçlarını görselleştirmek için, belirlenen şamdan kalıpları ve destek ve direnç seviyeleri ile tarihsel fiyat grafiğini çizebiliriz. Bu, stratejimizin etkinliğini anlamamıza ve iyileştirilebilecek alanları belirlememize yardımcı olacaktır.

Son olarak, stratejimizin performansını tarihsel veriler üzerinde geriye dönük test ederek değerlendirebiliriz. Geriye dönük test, geçmiş verilere dayalı olarak işlemlerin simüle edilmesini ve stratejinin karlılığının ve riskinin değerlendirilmesini içerir. Toplam getiri, yıllık getiri, maksimum düşüş ve daha fazlası gibi çeşitli performans ölçümlerini hesaplayabiliriz.

Stratejimizi geriye dönük olarak test ederek, performansı hakkında bilgi edinebilir ve gerçek ticaret senaryolarında potansiyel kullanımı hakkında bilinçli kararlar alabiliriz. Yaklaşımımızın uygulanabilirliğini ve karlılığını değerlendirmemize yardımcı olduğundan, geriye dönük testin strateji geliştirmede çok önemli bir adım olduğuna dikkat etmek önemlidir.

Bu video, şamdan kalıpları ile destek ve direnç seviyelerini birleştiren basit bir ticaret stratejisi sunuyordu. Strateji otomatikleştirildi ve Euro'nun ABD Dolarına karşı geçmiş verileri kullanılarak Python'da test edildi. Tüccarlar, bu teknik analiz tekniklerinden yararlanarak potansiyel olarak karlı ticaret fırsatlarını belirleyebilir ve finansal piyasalarda bilinçli kararlar alabilir.

Automated Price Action Trading Strategy In Python
Automated Price Action Trading Strategy In Python
  • 2021.09.09
  • www.youtube.com
This video presents a simple trading strategy using candlestick patterns and support and resistance values. The strategy can be automated for price action d...
 

PYTHON'da Otomatik Destek ve Direnç Tespiti



PYTHON'da Otomatik Destek ve Direnç Tespiti

Herkese merhaba ve bu videoya tekrar hoş geldiniz. Bu videoda, Python kullanarak destek ve direnç seviyelerinin tespitinin nasıl otomatikleştirileceğine dair ayrıntılı bir açıklama sağlayacağız. Bu fikir yorumlardan biri tarafından önerildi, bunun için çok teşekkür ederim. Her zaman olduğu gibi, programın aşağıdaki açıklamadaki bağlantıdan indirilebileceğini unutmayın. Kendi deneyleriniz için kullanabileceğiniz bir Jupyter Notebook dosyasıdır. Bunu farklı para birimlerinde veya farklı zaman dilimlerinde denemek isteyebilirsiniz ve ayrıca kodda verilen değişkenleri değiştirebilirsiniz.

Bir fiyat hareket tablosuna bakarak destek ve direnç seviyelerini görsel olarak belirlemek kolay olsa da, bunları programlı olarak tanımlamak karmaşık görünebilir. Ancak, uygun bir algoritma ile süreç otomatikleştirilebilir. Bu videoda sunduğumuz algoritmanın, destek ve direnç seviyelerini tespit eden tek algoritma olmadığını belirtmek önemlidir. Farklı yaklaşımlar var, ancak biz kodda uygulanması görece basit olanı seçtik.

Burada gördüğünüz rakam birazdan anlatacağımız kod kullanılarak üretilmiş ve gördüğünüz gibi destek ve direnç seviyeleri programımız tarafından doğru bir şekilde tespit edilmiş. Bu yaklaşım, herhangi bir para birimi için ve herhangi bir piyasa koşulunda çalışır. Ancak, mükemmel bir algoritma değildir ve bazı seviyelerin tespit edilmediğini fark edebilirsiniz. Videonun devamında buna değineceğiz.

Destek ve direnç seviyelerini tanımlamanın arkasındaki temel fikir, stratejinize kaç seviye dahil etmek istediğinize bağlı olarak, bir veya iki ay gibi belirli bir süre içinde geriye bakmaktır. Ne kadar çok veriye sahipseniz, o kadar çok seviye keşfedeceksiniz. Örneğin, burada gösterilene benzer bir günlük grafik düşünüyorsanız ve belirli bir tarihte bir ticarete devam etmek istiyorsanız, belirli bir zaman diliminde, örneğin bir ay içinde, sizi bekleyen destek ve direnç seviyelerini keşfetmek için geriye bakarsınız. o dönemde meydana geldi. Bu, seviye tespiti için sınırlı bir süreyi dikkate alarak programımızda simüle edeceğimiz şeydir. Mevcut tüm verileri kullanarak destek ve direnç seviyelerini tespit etmeye çalışırsak, bir ticaret stratejisi için pratik olmayan çok sayıda seviye elde ederiz. Bu nedenle, geçerli tarihten önceki birkaç aya odaklanmak en iyisidir.

Şimdi algoritmanın kendisine dalalım. Destek seviyeleri için, ilgilenilen mumdan önce gelen belirli sayıda azalan dip arayacağız. İlgili mum diğer mumlardan daha düşük bir değere sahip olmalıdır. Ek olarak, ilgilenilen mumdan sonra üç artan düşük seviyemiz olması gerekir. Bir mum grubu için tüm bu koşullar sağlandığında, bu mumlar arasında en düşük fiyat olarak tanımlanan bir destek seviyesi belirleyebiliriz. Aynı prensip direnç seviyeleri için de geçerlidir. İlgili mumdan önce artan tepelere ve ilgili mum için daha yüksek bir tepeye ihtiyacımız var. O zaman, ilgi mumundan sonra azalan yükseklere sahip olmalıyız. Bu, bu mumlar arasında en yüksek fiyat olan direnç seviyesini bulmamızı sağlar.

Bu aşamada ilginç bir parametre, ilgilenilen mumdan önce ve sonra kaç tane mum düşünmemiz gerektiğidir. Bu, kullanıcının tercihine göre özelleştirilebilir ve farklı değerlerle deneme yapmak iyi olur. Programımızda bunları n1 ve n2 adlı iki değişken olarak tanımlıyoruz. İlgili mumun endeksi l değişkeni ile temsil edilir.

Şimdi bu algoritmayı Python'da nasıl uygulayabileceğimize bakalım. Bu gösteri için bir Jupyter Notebook kullanacağız. İlk olarak, veri işleme için pandalar da dahil olmak üzere gerekli kitaplıkları içe aktarıyoruz. Verileri read_csv işlevini kullanarak yüklüyoruz ve bu örnekte, yaklaşık 18 yıllık veri olan 2003'ten 2021'e kadar EUR/USD günlük grafiklerini kullanıyoruz.

Ardından, ss ve rr listelerinde saklanan destek ve direnç seviyelerini mum grafiğinde çizgiler çizmek için kullanacağız. Her destek seviyesini ss'de dolaşacağız ve bu fiyat seviyesindeki grafiğe yatay bir çizgi ekleyeceğiz. Benzer şekilde, rr'deki her bir direnç seviyesinden geçeceğiz ve her seviye için yatay bir çizgi ekleyeceğiz. Bu, fiyat hareketiyle ilgili destek ve direnç seviyelerini görselleştirmeyi kolaylaştıracaktır.

Kodu çalıştırarak, destek seviyelerinin mor kesikli çizgilerle ve direnç seviyelerinin mavi kesikli çizgilerle gösterildiği bir mum grafiği oluşturacaksınız. Grafik, tespit edilen destek ve direnç seviyelerinin görsel bir sunumunu sunacak ve alım satım kararları için temel fiyat seviyelerini belirlemeyi kolaylaştıracaktır.

Burada sunulan algoritmanın, destek ve direnç seviyelerini tespit etmeye yönelik çeşitli yaklaşımlardan biri olduğunu unutmayın. Düzeylerin saptanmasını ve birleştirilmesini nasıl etkilediklerini görmek için farklı n1 ve n2 değerleri ile deneyler yapabilirsiniz. Ek olarak, koddaki eşik değerini ayarlayarak seviyeleri birleştirme koşulunu değiştirebilirsiniz.

Destek ve direnç seviyelerinin otomatik tespitinin yararlı bir araç olduğunu, ancak bilinçli alım satım kararları almak için diğer teknik analiz teknikleri ve piyasa bilgileriyle birlikte kullanılması gerektiğini unutmayın.

Automated Support and Resistance Detection in PYTHON
Automated Support and Resistance Detection in PYTHON
  • 2021.08.19
  • www.youtube.com
This video describes an algorithm to detect support and resistance levels in python language. 🍓 If you want to follow structured courses with more details a...
 

Python'da Otomatik Fiyat Eylem Modelleri Analizi


Python'da Otomatik Fiyat Eylem Modelleri Analizi

Bu video, Python'da Şamdan Analiz Modelleri'nin nasıl birleştirileceğine ve sinyal sayısının yanı sıra fiyat hareketi tahminlerinin doğruluğunun nasıl kontrol edileceğine dair bir açıklama sağlar. Yöntemler, otomatik ticaretle uyumludur. Fiyat hareket hareketlerinden nispeten güçlü sinyaller aramak için iyi bir yöntem, Şamdan Analizi, Yutma Kalıpları, Fiyat Hareket Analizi.

00:00 Fiyat Hareketli Mumlar Tanıtım
00:35
Kayan Yıldız, Çekiç, Asılı Adam, Yutan Desen
03:10 Python Fiyat Eylem Tespiti
12:13 Fiyat Eylem Analizi Sonuçları
18:45 Python'da Fiyat Mumlarını Çizmek

Automated Price Action Patterns Analysis In Python
Automated Price Action Patterns Analysis In Python
  • 2021.08.05
  • www.youtube.com
This video provides an explanation on how to combine Candlestick Analysis Patterns in Python and check the number of signals as well as the accuracy of the p...
 

Python'da Otomatikleştirilmiş Fiyat Eylem Modelleri



Python'da Otomatikleştirilmiş Fiyat Eylem Modelleri

Herkese merhaba ve bu videoya tekrar hoş geldiniz. Bugünün tartışmasında, yutan mumlara, özellikle de boğa ve ayı yutan formasyonlara odaklanacağız. Bu kalıplara zaten aşina olanlarınız için, onların alım satımdaki göstergeler olarak önemini anlıyorsunuz.

Bu kalıpların geçerliliğini analiz etmek için EUR/USD döviz çiftinin yaklaşık 10 yılı kapsayan geçmiş verilerini kullanacağız. Amacımız, Python'da basit istatistiksel teknikleri uygulayarak bu kalıpların istatistiksel önemi olup olmadığını veya sadece bir efsane olup olmadığını belirlemektir. Bu bilgi, özellikle şamdan modellerini ticaret stratejinize gösterge olarak dahil etmeyi düşünüyorsanız çok önemlidir.

Size kolaylık sağlamak için, aşağıdaki açıklamada verilen bağlantıyı takip ederek bu analizde kullanılan kodun tamamını bulabilirsiniz. Kod, bir Jupyter Notebook dosyası olarak mevcuttur ve aynı anda kodu keşfederken rahatlamanıza ve bu videonun keyfini çıkarmanıza olanak tanır.

Yutma desenleri iki farklı biçimde gözlemlenebilir. Yükseliş paterni, birden fazla düşüş trendi mumunun ardından tek bir yükseliş mumu geldiğinde oluşur. Bu yükseliş trendi mumu, son düşüş trendi mumunun kapanış fiyatından veya altından başlar ve bir önceki mumun açılış fiyatının üzerinde kapanır. Bu model tipik olarak piyasada yaklaşmakta olan bir yükseliş trendini gösterir.

Öte yandan, yutan düşüş paterni, yükseliş formasyonunun simetrik zıttıdır. Yükselen mumları aşağı yönlü yutan bir mum takip ettiğinde ortaya çıkar. Aşağı yönlü yutan bir mum, bir önceki mumun kapanış fiyatından veya üzerinde başlar ve aynı mumun açılış fiyatının altında kapanır. Bu model, fiyatta yaklaşmakta olan bir düşüş hareketini ifade eder.

Bu videoda amacımız, bu iddiaların doğru olup olmadığını doğrulamak. Bu modellerin gerçekten belirli pazar davranışlarını gösterip göstermediğini belirlemeyi amaçlıyoruz. Tipik olarak, yutan bir boğa paterni, alıcıların piyasadaki satıcılardan daha güçlü olduğunu gösterirken, yutan bir düşüş paterni bunun tersini gösteriyor. Bu doğrulamayı gerçekleştirmek için, boğa ve ayı yutan mumları tespit etmek için Python kodu yazacağız. Ardından, fiyatın beklenen yönde hareket edip etmediğini belirlemek için aşağıdaki birkaç mumu (bir ila üç mum veya daha fazla) analiz edeceğiz.

Daha kesin olmak gerekirse, son yutan mumun kapanış fiyatını ele alacağız. Bir boğa yutma formasyonunda, sonraki mumların yüksek değerlerini dikkate alacağız ve yutma mumunun yüksek ve kapanış fiyatları arasındaki farkı hesaplayacağız. Bu, "d" olarak göstereceğimiz üç farklı değerle sonuçlanacaktır. Ardından, bu farklılıklardan herhangi birinin tanımlayacağım bir değişkenle temsil edilen belirli bir sınırı aşıp aşmadığını test edeceğiz. Bu limit tercihinize göre 20, 30 veya 40 pip olarak ayarlanabilir. Daha sonra bu farkın pip sınırını aşma yüzdesini hesaplayacağız.

Benzer şekilde, yutma eğilimi gösteren formasyon için sonraki mumların düşük değerlerini dikkate alacağız. Yutan mumun kapanış fiyatı ile bu düşük değerler arasındaki farkı X değişkeni ile karşılaştıracağız. Bir kez daha, bu farkın X'i aştığı durumları arıyoruz. Temelde, fiyatın yükselişi mi yoksa düşüşü mü aştığını değerlendiriyoruz. yutma desenini takip eden iki ila üç mum içinde eşik. Bu kalıplar oluştuktan sonra fiyatın beklendiği gibi davrandığı durumların yüzdesini hesaplayacağız.

Bu farklardan yalnızca birinin X değişkenini aşması gerektiğine dikkat etmek önemlidir. Üç farkın da bu pip sınırını aynı anda aşmasını istemiyoruz. Bu nedenle, fiyat, yutan mumun kapanış değerinin belirli bir pip kadar altına düşerse, bu formasyonun tahmini başarılı kabul edilir. Aynı ilke, yutan yükseliş paterni için de geçerlidir, ancak yukarı yönlüdür.

Şimdi Python kodunu kontrol etmeye ve davranışını gözlemlemeye devam edelim.

Bunu trend eşit bir için, yani yutan düşüş paterni ve düşüş trendi tahmini için yapıyorsam, kesinliği, trendin bire eşit olduğu sonuçlar sütunundaki değerleri toplayıp toplam sayıya bölerek hesaplayabilirim. yutan düşüş paterni için sinyallerin sayısı. Benzer şekilde, yükseliş eğilimi paterni ve yükseliş trendi tahmini için kesinliği hesaplayabilirim.

Şimdi, veri çerçevesini girdi olarak alan ve her iki desen için kesinliği hesaplayan "calculate_precision" adlı yeni bir işlev oluşturalım. İlk olarak, her model için toplam sinyal sayısını saymak için "bearish_signals" ve "bullish_signals" değişkenlerini başlatıyoruz. Ardından, veri çerçevesini yineliyoruz ve karşılık gelen sinyal sayacını sinyal değerine göre artırıyoruz.

Daha sonra, düşüş eğilimi formasyonunun kesinliğini sonuçlar sütunundaki trendin bire eşit olduğu değerleri toplayıp toplam düşüş sinyali sayısına bölerek hesaplıyoruz. Aynı şeyi boğa yutma paterni ve yükseliş trendi tahmini için de yapıyoruz.

Son olarak, her iki desen için kesinlik değerlerini döndürürüz. Şimdi, kesinliği hesaplamak için veri çerçevemizde bu işlevi çağıralım.

Kesinliği hesapladıktan sonra, tahminlerimizin gerçek eğilimle ne kadar uyumlu olduğunu görmek için sonuçları yazdırabiliriz. Bu kesinlik değerlerinin, kodumuzda belirlediğimiz belirli parametrelere ve koşullara bağlı olduğuna dikkat etmek önemlidir. Belirli ticaret stratejiniz için kesinliği optimize etmek üzere farklı parametreler ve koşullarla denemeler yapabilirsiniz.

Sonuç olarak, bu video ticarette mum modellerini yutmaya odaklandı ve bu modellerin istatistiksel önemi olup olmadığını veya sadece bir efsane olup olmadığını belirlemeyi amaçladı. Python kullanarak EUR/USD döviz çiftinin geçmiş verilerini analiz ederek, aşağı ve yukarı yönlü mum modellerini tespit ettik ve belirli sayıda mum içinde müteakip trend davranışını inceledik. Kesinliği hesaplayarak, tahminlerimizin doğruluğuna dair içgörüler kazandık. Bu analizin sınırlamalarını göz önünde bulundurmayı unutmayın ve ticaret stratejinizi kendi tercihlerinize ve hedeflerinize göre geliştirmeye devam edin.

İzlediğiniz için teşekkürler ve kodun tamamını Jupyter Notebook formatında indirmek için video açıklamasındaki bağlantıyı kontrol etmeyi unutmayın. Ticaret yolculuğunuzun tadını çıkarın ve çabalarınızda bol şans!

Engulfing Price Action Patterns Automated in Python
Engulfing Price Action Patterns Automated in Python
  • 2021.07.08
  • www.youtube.com
This video describes the Engulfing Candlestick Patterns, bullish and bearish engulfing candles and statistics are carried out in python to check if these pat...
 

Python'da Otomatik Şamdan Stratejisi | kayan yıldızı test etmek



Python'da Otomatik Şamdan Stratejisi | kayan yıldızı test etmek

Bugünkü oturumda Şamdan kalıplarının büyüleyici dünyasına dalacağız ve bunları Python'da nasıl programlayacağımızı öğreneceğiz. Amacımız, belirli kalıpları tanımlayabilen ve potansiyel olarak fiyat eğilimi tersine dönüşlerini tespit edebilen bir kod oluşturmaktır. Ek olarak, Şamdan tahminlerine dayalı olarak kazanan bir otomatik bot geliştirme şansını değerlendirmek için basit bir istatistiksel yaklaşım kullanarak Şamdan sinyallerini kullanan bir strateji üzerinde geriye dönük test gerçekleştireceğiz. Bu içerik ilginizi çektiyse, program dosyasını aşağıdaki açıklamada verilen bağlantıdan indirebilirsiniz. Bu bilgilendirici oturumdan keyif alacağınızı umuyoruz.

Devam etmeden önce, bu videonun Şamdan kalıpları hakkında zaten bilgi sahibi olduğunuzu varsaydığını açıklığa kavuşturalım. En iyi bilinen formlara odaklanacağımız için her bir modeli açıklayan ayrıntılara girmeyeceğiz. Lütfen bu listenin eksiksiz olmadığına dikkat edin, çünkü daha birçok model var. Şimdilik, temellere bağlı kalacağız. Kararsız bir pazarı temsil eden Doji'ye zaten aşina olabilirsiniz. Diğer bir önemli model ise, Şamdan gövdesinin üzerinde uzun bir kuyrukla karakterize edilen Kayan Yıldız'dır. İki şekilde görünebilir ama en önemlisi uzun kuyruğun varlığıdır. Bir yükseliş trendi sırasında bir Kayan Yıldız ile karşılaştığınızda, bu bir trendin tersine döndüğünü gösterebilir ve düşüş trendine geçiş anlamına gelebilir. Benzer şekilde, Kayan Yıldız'a benzeyen ancak ters çevrilmiş Çekiç modelimiz var. Uzun bir alt kuyruk ile bir yükseliş trendi sırasında bir ret noktası anlamına gelir. Bu formasyon, yükseliş trendinin sona yaklaştığını ve ardından bir düşüş trendinin geri çekilebileceğini gösteriyor.

Devam edelim, Yutan Boğa modelini tartışalım. Bu, son kırmızı Mum Çubuğunun tamamen yukarı doğru daha büyük bir Şamdan tarafından kaplandığı bir düşüş trendi sırasında meydana gelir. Bu tersine dönüş modeli, düşüş trendinin sonunu ve yükseliş trendinin başlangıcını işaret eder. Tersine, Yutan Boğa formasyonunun tam tersi olan Yutan Ayı formasyonuna sahibiz. Yükselen bir Mum Çubuğunun ardından bir öncekini kaplayan daha büyük bir Mum Çubuğunun geldiği bir yükseliş trendi sırasında oluşur. Bu, yükseliş trendinin sonunu ve düşüş trendinin başladığını gösterir. Diğerlerinin yanı sıra Üç Karga gibi burada ayrıntılı olarak ele almayacağımız başka Şamdan desenleri olduğunu unutmayın. Bununla birlikte, bu videoda, özellikle bir düşüş trendi bir yükseliş trendine dönüştüğünde, özellikle Kayan Yıldız ve Çekiç formasyonlarına odaklanacağız.

Kayan Yıldız ve Çekiç formasyonları, bir yükseliş trendine piyasa tepkisinin açık bir göstergesi olması nedeniyle kişisel favorilerimdir. Satıcıların belirli bir fiyat seviyesini reddederek piyasaya adım attığı açıktır. Bu yüzden bu kalıplara diğerlerinden daha fazla güvenme eğilimindeyim. Elbette bireysel tercihler, bu kalıpları nasıl kullandığınıza ve diğer göstergeler veya stratejilerle nasıl birleştirdiğinize bağlı olarak değişebilir. Bu videonun amacı doğrultusunda, Kayan Yıldız'ı fiyat reddinin ve bu Şamdan'a farklı formunu veren satıcıların güçlü tepkisinin ikna edici bir örneği olarak ele alalım. Bu kalıbı Python'da kodlamaya ve botumuza bu kalıpları tanımayı öğretmeye odaklanacağız. Tartışacağımız kavramları ilginizi çeken diğer kalıplara genişletebilirsiniz, ancak öncelikli odak noktamız Kayan Yıldız ve Çekiç olacaktır.

Yalnızca Şamdan kalıplarına güvenmenin doğru alım veya satım sinyalleri oluşturmak için yeterli olmadığına dikkat etmek önemlidir. Bu kalıplar favori göstergelerinizle birleştirilmelidir. Bizim durumumuzda, bunları Göreceli Güç Endeksi (RSI) ile birleştireceğiz. Şamdan kalıplarının yanı sıra farklı teknik göstergeleri ve hatta temel analizleri dahil etmeyi seçebilirsiniz. Tek başına şamdan kullanmak kapsamlı değildir.

Tahmin yaklaşımımızın başarı oranını değerlendirmek için, sinyale ek bir onay eklemek için onu RSI ile Mum Çubuğu formasyonuyla birleştirmemiz gerekiyor. Daha yüksek bir RSI değeri, kayan yıldız paterni tarafından önerilen potansiyel trendin tersine dönmesiyle uyumlu olan daha güçlü bir satın alma baskısını gösterir.

Tüm koşullar karşılanırsa, bir satın alma sinyali oluşturabiliriz. Veri çerçevesindeki karşılık gelen satır için sinyal sütununa 1 değeri atarız. Aksi takdirde, sinyal olmadığını belirten 0 değeri atarız. Bu süreç, potansiyel satın alma sinyallerini belirlemek için tüm veri setini etkili bir şekilde tarayarak veri çerçevesindeki her satır için tekrarlanır.

Ardından, tanımlanan satın alma sinyalleri için zararı durdur ve kârı al seviyelerini tanımlamaya geçiyoruz. Alış fiyatından ortalama gerçek aralığı (ATR) çıkararak zararı durdur değerini hesaplıyoruz. ATR, bir oynaklık ölçüsü sağlar ve zararı durdurma için uygun bir mesafenin belirlenmesine yardımcı olur. Daha geniş bir ATR, daha büyük bir stoploss gerektiren daha oynak bir piyasayı gösterirken, daha küçük bir ATR daha az volatil bir piyasayı önererek daha sıkı bir stoploss sağlar.

Kâr al seviyesi için, 2 olarak belirlediğimiz Kâr Al-Zararı Durdur oranını ATR ile çarpar ve alış fiyatına ekleriz. Bu, kar alma seviyesinin, zararı durdur seviyesinin alış fiyatından iki kat daha uzak olmasını sağlar. Kar alma seviyesi, ticaret için potansiyel kar hedefini temsil eder.

Artık satın alma sinyallerine ve karşılık gelen zararı durdur ve karı al seviyelerine sahip olduğumuza göre, stratejiyi geriye dönük test etmeye devam edebiliriz. Veri çerçevesindeki her satırı yineliyoruz ve üretilen sinyallere dayalı olarak işlemleri simüle ediyoruz.

Fiyat önce zararı durdur seviyesine ulaşırsa, bunu kaybeden bir ticaret olarak kabul ederiz. Tersine, eğer fiyat önce kar alma seviyesine ulaşırsa, bunu kazanan bir ticaret olarak kabul ederiz. Kazanan ve kaybeden işlemlerin sayısını takip ediyoruz.

Stratejinin performansını değerlendirmek için, kazanma oranını, toplam işlemlerden kazanan işlemlerin yüzdesi olarak hesaplarız. Bu durumda, kârı al-zararı durdur oranını 2 olarak belirlediğimiz için, kazanan her işlem, kaybedilen iki işlemi telafi eder. Bu nedenle, kazanan bir sisteme sahip olmak için, zamanın en az %34'ünde haklı olmamız gerekir.

Bu değerlendirmenin, ücretler ve gecelik takas değerleri gibi alım satım maliyetlerini hesaba katmadığına dikkat etmek önemlidir. Ek olarak, bu basitleştirilmiş bir örnektir ve gerçek dünya ticaretinde piyasa koşulları, risk yönetimi ve genel piyasa analizi gibi diğer faktörleri dikkate almak önemlidir.

Şamdan modelleri, RSI ve ticaret yönetimine yönelik sistematik bir yaklaşımı birleştirerek, potansiyel olarak karlı işlemler oluşturabilecek bir ticaret stratejisi geliştirmeyi amaçlıyoruz. Bununla birlikte, geçmiş verileri kullanarak stratejiyi kapsamlı bir şekilde test etmek ve doğrulamak ve değişen pazar koşullarına uyum sağlamak için devam eden pazar analizini dikkate almak çok önemlidir.

Sonuç olarak, bu video eğitimi Python'da Şamdan kalıplarının programlanmasına bir giriş sağlar, belirli kalıpların nasıl tanınacağını gösterir ve bu kalıplara dayalı bir stratejinin performansını değerlendirmek için bir geriye dönük test yaklaşımının ana hatlarını verir. Bu, fiyat eğilimi tersine dönüşlerini tahmin etmek ve otomatik işlem botları geliştirmek için bir araç olarak Şamdan kalıplarının potansiyelini keşfetmek için bir fırsattır.

Automated Candlestick Strategy in Python | testing the shooting star
Automated Candlestick Strategy in Python | testing the shooting star
  • 2021.04.21
  • www.youtube.com
This video is a walkthrough coding the candlestick patterns in Python language. After a general introduction we focus mainly on the shooting star rejection p...
 

Algoritmik Ticaret ve Makine Öğreniminde Yaygın Hatalardan Kaçının



Algoritmik Ticaret ve Makine Öğreniminde Yaygın Hatalardan Kaçının

Siz uyurken veya boş zamanınızın tadını çıkarırken sizin adınıza karlı işlemler yapan kazanan bir ticaret botuna sahip olmanın nasıl bir şey olduğunu hiç merak ettiniz mi? Belki de kodu kırmak ve yaşam tarzınızda devrim yaratabilecek o anlaşılması zor programı bulmak için saatler, aylar ve hatta yıllar harcadınız.

Makine öğrenimi söz konusu olduğunda, birçok kişi onun pazarlama ve satış gibi çeşitli alanlarda harikalar yaratma gücüne sahip olduğuna inanıyor. Ancak, makine öğreniminin hala mücadele ettiği iki alan var: hava durumu verileri tahmini ve fiyat piyasası tahmini. Bu alanlardaki sayıların son derece rastgele doğası, yalnızca makine öğrenimini kullanarak fiyatları doğru bir şekilde tahmin etmeyi zorlaştırıyor.

Ancak işin püf noktası şu: Makine öğrenimini kullanarak fiyatları tahmin etmek mümkündür, ancak bunun için uygun bir ticaret stratejisiyle birleştirilmesi gerekir. Bu, yaptığınız tahmin türünün uyguladığınız ticaret stratejisiyle uyumlu olması gerektiği anlamına gelir.

Şimdi, ticaret modelinizin başarısını engelleyebilecek bazı yaygın hatalara ve bunlardan kaçınmak için neler yapabileceğinize bakalım.

Hata 1: Fiyat değerlerini bir regresör olarak bir makine öğrenimi modeline uydurmak. Fiyat değerlerini doğrudan bir makine öğrenimi regresörüne girerek bir sonraki piyasa değerini tahmin etmeye çalışmak, yeni başlayanların sık yaptığı bir hatadır. Bu yaklaşım, yüzey alanına dayalı ev fiyatlarını tahmin etmek gibi ilişkili değerler için işe yarasa da, hisse senedi veya döviz piyasaları için geçerli değildir. Bu piyasalar tek başına zaman değişkeni ile net bir korelasyon göstermez, bu da doğrudan regresyonu etkisiz hale getirir.

Hata 2: Mutlak değerleri model girdisi olarak kullanmak. Ham fiyat veya teknik gösterge değerlerinin girdi olarak kullanılması başka bir tuzaktır. Sadece açılış, kapanış, yüksek, düşük fiyatların yanı sıra hareketli ortalamalar ve diğer göstergeler sağlamak, gelecekteki doğru fiyat tahminlerini garanti etmez. Beynimiz, bireysel değerlerden ziyade genel görüntüye ve fiyat hareketlerinin eğimlerine odaklanarak bilgiyi farklı şekilde işler. Benzer şekilde, modelinizin tek tek veri noktaları yerine genel eğilimleri ve kalıpları dikkate alması gerekir.

Hata 3: Rastgele tren testi veri bölme kullanarak veri örnekleme. Rastgele tren testi bölme, makine öğreniminde yaygın bir uygulama olsa da, özellikle fiyat piyasalarında zaman serisi analiziyle çalışırken sorunlu olabilir. Verilerinizi eğitim ve test için rastgele bölmek, test setinin eğitim setine çok benzediği bir duruma yol açabilir. Bu benzerlik, modelin geriye dönük test sırasında doğru görünmesine, ancak yeni canlı verilerle iyi performans göstermemesine neden olabilir.

Hata 4: Yalnızca teknik analize güvenmek. Makine öğrenimi modellerinde teknik göstergeler önemli bir rol oynarken, yalnızca bunlara güvenmek uzun vadeli başarı için yeterli değil. Piyasa davranışını önemli ölçüde etkileyebilecek ekonomik takvimler ve önemli olaylar gibi dış faktörleri dikkate almak çok önemlidir. Bu faktörlerin göz ardı edilmesi, kötü sonuçlara yol açabilir ve sağlam bir modeli itibarsızlaştırabilir.

Hata 5: Modelin kesinliğine uyan bir strateji düşünmemek. Model hassasiyeti tek başına karlılığını belirlemez. Modelin doğruluğunu, uygun bir kar alma-kaybı durdurma oranı gibi optimize edilmiş bir ticaret stratejisiyle birleştirmek, görünüşte zarar eden bir modeli karlı bir modele dönüştürebilir. Doğru strateji ile eşleştirilirse %33'ün üzerinde bir kesinlik yeterli olabilir.

Hata 6: Bir giriş stratejisini atlamak ve yalnızca modelin tahminlerine güvenmek. Modeliniz doğru tahminler sunsa bile, piyasaya ne zaman gireceğinizi ve alım satımları gerçekleştireceğinizi bilmek çok önemlidir. Modelin tahminlerini tamamlayan bir pazara giriş stratejisinin tanımlanması, karı maksimize etmek için çok önemlidir. Piyasaya yanlış anda girerseniz ve hedefinize ulaşamadan durdurulursanız, doğru bir trend tahmini yeterli değildir.

Hata 7: Alım satım ücretlerini ve komisyonlarını dikkate almamak. Ücretleri ve komisyonları dikkate almamak, ticaret stratejinizin karlılığı üzerinde önemli bir etkiye sahip olabilir. Kazanan bir stratejinin küçük bir avantajı olsa da, işlem ücretleri bu kazançları aşındırabilir. Gecelik veya hafta sonu ücretlerinden kaçınmak için aynı gün içinde işlemleri kapatmak gibi stratejinizi tasarlarken ücretleri göz önünde bulundurmanız önemlidir.

Ardından, modelinizi uzun bir süre boyunca geriye dönük olarak test etmeniz çok önemlidir. Modelinizi farklı pazar koşullarında test etmek, etkinliğini sağlamak için çok önemlidir. Modelin uzun vadeli uygulanabilirliğini yansıtmayabileceğinden yalnızca kısa vadeli performansa güvenmeyin. Modelinizi en az altı ay boyunca geriye dönük test etmeyi hedefleyin ve sürekli olarak olumlu kazanımlar sağlayıp sağlamadığını değerlendirin.

Son olarak, sabırsızlanmaktan ve işlemlere müdahale etmekten kaçının. Yüksek hassasiyetli bir model, işlemleri gerçekleştirmeden önce güçlü sinyalleri bekleme eğilimindedir. Bu, bazı fırsatları kaçırmanıza neden olsa da, modelin kararlarına müdahale etmemeniz önemlidir. Sabırsızlığa dayalı olarak yeni işlemler açmaktan veya mevcutları kapatmaktan kaçının. Bazen, sıfır işlem yapmak, kaybedilen bir işlem yapmaktan daha iyidir.

Sonuç olarak, bu bilgiler ticaret deneyiminizi geliştirmenize yardımcı olacaktır. Algoritmanız henüz pazara hazır değilse, ona fazla odaklanmamanın en iyisi olduğunu unutmayın. Ara verin, güzel bir sıcak pizza dilimi sipariş edin ve eğlenmeyi unutmayın.

Avoid Common Mistakes in Algorithmic Trading And Machine Learning
Avoid Common Mistakes in Algorithmic Trading And Machine Learning
  • 2021.03.05
  • www.youtube.com
This video presents 9 very common mistakes that every algorithmic trader might fall in especially when using Machine Learning models to predict price movemen...
 

Pandaları Kullanarak Ticaret İçin Teknik Göstergeler Nasıl Hesaplanır?



Pandaları Kullanarak Ticaret İçin Teknik Göstergeler Nasıl Hesaplanır?

Herkese merhaba ve bu videoya tekrar hoş geldiniz. Bugün, Python kullanarak forex piyasası fiyatlarını analiz etmeye ve istatistiklerin teknik göstergeler ile gelecekteki fiyat yönü arasındaki herhangi bir ilişkiyi ortaya çıkarıp çıkaramayacağını keşfetmeye başlayacağız. Takip etmek için alım satım veya programlama konusunda uzman olmanıza gerek yok, ancak hareketli ortalamalar ve göreceli güç göstergesi (RSI) gibi temel teknik göstergelere biraz aşina olmanız yardımcı olacaktır. Alım satımda makine öğrenimi uygulamalarına hızlı bir giriş yapmak için buradaysanız, her şeyi basit tutacağımız için doğru yerdesiniz.

Bu videomuzda aşağıdaki konuları işleyeceğiz:

  1. Döviz kuru verilerini indirme: cascope.com web sitesini ziyaret edeceğiz ve özellikle USD/CHF (ABD doları - İsviçre frangı) döviz çifti için geçmiş veri akışını seçeceğiz. Verilerimiz için saatlik mum çubuğu zaman dilimini seçeceğiz.

  2. Pandas kullanarak Python'a veri yükleme: İndirilen dosyayı bir pandas DataFrame'e yüklemek için pandas kitaplığının read_csv işlevini kullanacağız. DataFrame'in son beş satırını inceleyerek verilerin doğru yüklenip yüklenmediğini de kontrol edeceğiz.

  3. Veri temizleme ve ilk analiz: Verileri anlamak çok önemlidir, bu nedenle sıfır hacimli satırları kaldırarak ve eksik değerleri kontrol ederek verileri temizleyeceğiz. Ek olarak, veriler içindeki kalıpları veya korelasyonları belirlemek için kısa bir istatistiksel analiz gerçekleştireceğiz.

  4. Teknik göstergeler ekleme: Çeşitli teknik analiz göstergeleri sağlayan numpy ve pandas_ta (pandalar teknik analizi) dahil olmak üzere gerekli kitaplıkları içe aktaracağız. DataFrame'imize ortalama gerçek aralık (ATR), RSI, hareketli ortalamalar gibi çeşitli göstergeler ekleyeceğiz ve bunların eğimlerini hesaplayacağız.

  5. Hedef belirleme: Teknik göstergelere dayalı tahmin yapabilmek için hedef belirlememiz gerekir. Zorlayıcı olabilecek gelecekteki ortalama fiyatı tahmin etmek yerine, eğilimleri üç kategoriye ayıracağız: yukarı, aşağı ve net bir eğilim yok.

  6. Histogramların çizilmesi: Histogramları kullanarak çeşitli özelliklerin dağılımlarını görselleştireceğiz. Buna hacim, ATR, RSI, orta fiyatlar, hareketli ortalamalar, eğimler ve hedef kategorileri dahildir. Histogramlar, verilere hızlı bir genel bakış sağlar ve herhangi bir aykırı değerin belirlenmesine yardımcı olur.

  7. RSI'yi analiz etme: Bir trend göstergesi olarak RSI'ya odaklanacağız ve üç hedef kategori için ayrı DataFrame'ler oluşturacağız: yukarı, aşağı ve belirsiz trendler. Ayırt edilebilir farklılıklar olup olmadığını görmek için her kategorideki RSI değerleri için histogramlar çizeceğiz.

Ancak, yalnızca RSI'ya güvenmenin fiyat eğilimlerini doğru bir şekilde tahmin etmek için yeterli olmayabileceğini unutmayın. Fiyat trendlerini tahmin etmede avantaj elde etmek için diğer teknik göstergeleri veya gösterge kombinasyonlarını keşfetmeniz önerilir.

Bu, bu videonun içeriğini tamamlıyor. Umarım bilgileri faydalı bulursunuz. Herhangi bir spesifik sorunuz varsa veya daha fazla açıklamaya ihtiyacınız varsa, yorumlar bölümünde sormaktan çekinmeyin. Mutlu kodlama!

How To Calculate Technical Indicators For Trading Using Pandas
How To Calculate Technical Indicators For Trading Using Pandas
  • 2021.02.22
  • www.youtube.com
If you're a beginner looking to learn how to calculate technical indicators and download price history, then you don't want to miss this video! These indicat...
 

Backtesting.py - Python'da tam kurs



Backtesting.py - Python'da tam kurs

Eğitmen, ticaret stratejilerini geriye dönük test etmek için bir kitaplık olarak backtesting.py kullanmanın olumlu ve olumsuz yanlarını tartışır. Kitaplık, bir gösterge kitaplığı veya aracılar veya diğer platformlarla entegrasyon gibi özellikleri atlayarak, yalnızca geriye dönük testin esaslarına odaklanmak üzere tasarlanmıştır. Bu basitlik, kitaplığın hafif ve kullanımı kolay olmasını sağlar. Sağlanan belgeler açık ve anlaşılması kolay olup, kullanıcıların kitaplığın kavramlarını ve işlevlerini hızla kavramasını sağlar.

Backtesting.py'nin önemli bir avantajı, özellikle tek stratejileri test ederken hızıdır. Kitaplık, performans için optimize edilmiştir ve kullanıcıların geriye dönük testleri verimli bir şekilde çalıştırmasına ve sonuçları zamanında almasına olanak tanır. Bu hız, optimum ayarları bulmak için birden çok strateji veya parametre kombinasyonunu yinelerken faydalıdır.

Ancak, backtesting.py kullanırken dikkate alınması gereken birkaç sınırlama vardır. İlk olarak, kitaplık birden çok varlıkla ticareti desteklemez. Öncelikle stratejileri tek bir varlık veya güvenlik üzerinde test etmek için tasarlanmıştır. Ek olarak, backtesting.py, kesirli hisse senetleri için destek sağlamaz; bu, daha küçük pozisyon boyutlarıyla ticaret yapmak isteyen kullanıcılar için bir dezavantaj olabilir.

Bu sınırlamalara rağmen, backtesting.py, yalnızca ticaret stratejilerini geriye dönük test etmeye odaklanmak isteyenler için mükemmel bir seçim olmaya devam ediyor. Sadeliği ve hafif yapısı, anlaşılmasını ve mevcut iş akışlarına entegre edilmesini kolaylaştırır.

Öğreticide eğitmen, sanal bir ortam oluşturmak ve gerekli bağımlılıkları kurmak için gerekli adımları izleyerek backtesting.py'nin kullanımını gösterir. Eğitmen, 2006'dan 2013'e kadar Google hisse senedi fiyatları için test verileri gibi gerekli bileşenleri içe aktararak, bir geriye dönük test gerçekleştirme aşamasını hazırlar.

Eğitmen daha sonra iki temel işlevin, __init__ ve next'in tanımlandığı bir strateji sınıfı oluşturmaya devam eder. __init__ işlevinde, eğitmen Göreceli Güç Endeksinin (RSI) gösterge değerini hesaplar. Bir sonraki işlev, RSI değerlerine göre satın alma kriterlerini değerlendirmek için kullanılır.

Daha sonra eğitmen, bir sonraki işleve beslenen önceden hesaplanmış değerleri kullanarak basit bir geçiş stratejisinin nasıl uygulanacağını açıklar. Backtesting.py'deki çapraz kitaplık, RSI'yi üst ve alt sınır değerleri ile karşılaştırmak için içe aktarılır. RSI belirli bir değeri aştığında satış sinyali, başka bir değerin altına düştüğünde ise satın alma sinyali tetiklenir. Eğitmen üst ve alt sınır değerleri tanımlar ve bir sonraki işlevde erişim için sınıfa atar.

Eğitmen, stratejiyi test etmek için verileri sağlayarak, başlangıçtaki nakit miktarını seçerek ve istatistikleri yazdırarak bir geriye dönük test oluşturur. Eğitmen, backtesting.py kullanarak geriye dönük test sonuçlarını çizmenin kolaylığını vurgular ve ekrandaki kırmızı ve yeşil kutuların ayları nasıl gösterdiğini vurgular.

Eğitmen, diğer faydalı metriklerin yanı sıra ticari bilgiler, kârlar ve zararlar, portföy değeri ve göstergelerin kapsamlı bir görünümünü sunan backtesting.py kontrol paneline genel bir bakış sağlamaya devam eder. Eğitmen, RSI penceresinin üst ve alt sınırları için farklı aralıklar tanımlayarak, backtesting.py kullanılarak strateji optimizasyonunun nasıl elde edilebileceğini gösterir. Optimize edici, Sharpe oranı gibi istatistikler üretir ve en değerli işlevi bulmak için çeşitli kombinasyonları simüle eder. Eğitmen, kullanıcıların optimizasyon sonuçlarını iyileştirmek için özel metrikler tanımlayabileceğini ve kısıtlamalar uygulayabileceğini vurgular.

Ayrıca eğitmen, belirli parametrelere dayalı olarak doğru veya yanlış döndüren lambda işlevlerini kullanarak bir değer alt kümesi seçmek için kısıtlamaların nasıl uygulanacağını açıklar. Video, Sharpe oranını en üst düzeye çıkarmak için optimize edici işlevini kullanarak stratejinin nasıl optimize edileceğini ve optimizasyon işlevinin normal bir Python işlevi olarak nasıl tanımlanacağını gösterir. Eğitmen ayrıca, piyasada harcanan zamanı en aza indirirken kârı en üst düzeye çıkarmak için bir ölçüt oluşturmayı tartışır.

Öğreticide, eğitmen, aşırı uyumu önlemek için optimizasyon işlevine minimum işlem sayısı filtresi ekler. Bu filtreyi dahil ederek, geriye dönük test işlevi, daha karlı parametre kombinasyonlarını keşfetme şansını artırarak, tek bir dalgalanma döneminin ötesine bakmaya zorlanır. Ek olarak eğitmen, birden fazla geriye dönük test çalıştırırken yardımcı olabilecek ve farklı parametre kombinasyonlarını takip etmeye ihtiyaç duyan, geriye dönük test sonuçlarının HTML dosyalarının nasıl oluşturulacağını gösterir. Eğitmen ayrıca, çalışma dizinini karıştırmamak için oluşturulan dosyaları adlandırma ve düzenleme konusunda rehberlik sağlar.

Öğretici ayrıca, olası her kombinasyonu test etmek zorunda kalmadan bir stratejiyi verimli bir şekilde optimize etmek için backtesting.py içindeki optimize işlevinin kullanımını araştırıyor. Program, maksimum sayıda deneme ayarlayarak, kombinasyonlar için rastgele bir ızgara araması gerçekleştirerek, geriye dönük test için harcanan süreyi ve fazla uydurma riskini azaltır. Eğitmen, üst ve alt sınırları değiştirerek farklı değerlerin strateji üzerindeki etkilerini görselleştirmek için ısı haritalarının nasıl oluşturulacağını gösterir. Sütunları üst ve alt sınırlara göre gruplandırmak için bir pandas group by deyimi kullanılır ve her kombinasyon için ortalama değerler elde etmek üzere ortalama hesaplanır.

Konuşmacı, backtesting.py'deki işlevin, üst ve alt sınırlar gibi, belirtilen sütunların tüm benzersiz kombinasyonlarını nasıl bulduğunu açıklar. Bu kombinasyonlar daha sonra birlikte gruplandırılır ve ortalama gibi bir toplama işlevi uygulanır. Ortaya çıkan çıktı, Seaborn modülü kullanılarak çizilebilen bir ısı haritasıdır. Eğitmen, Sharpe oranını optimize etmeyi ve ısı haritası için renk haritasını değiştirmeyi gösterir. Ek olarak, eğitmen, ikiden fazla parametre için çoklu ısı haritalarını çizmek için dahili plot_heat_maps işlevinin nasıl kullanılacağını gösterir.

Eğitmen, parametre optimizasyonu için ısı haritalarının nasıl kullanılacağını ve backtesting.py kitaplığından yeniden örnekleme uygulama işlevini kullanarak çok zamanlı çerçeve stratejilerinin nasıl uygulanacağını gösterir. Isı haritaları, farklı parametrelerdeki değişikliklerin ticaret stratejilerini nasıl etkilediğinin görsel bir temsilini sağlar. Tüccarlar, yeniden örnekleme uygulama işlevini kullanarak farklı zaman dilimlerini birleştirerek, farklı piyasa koşullarını dikkate alan daha karmaşık stratejiler oluşturabilir.

Eğitmen, backtesting.py kitaplığını kullanarak bir ticaret stratejisinde farklı zaman çerçevelerinin nasıl kullanılabileceğini açıklar. Altörnekleme yaparak ve işlevleri uygulayarak, kitaplık farklı zaman dilimlerinin analizini kolaylaştırarak daha küçük zaman çerçevesine geri ileri doldurma ve yeniden indeksleme gerçekleştirebilir. Sağlanan örnekte strateji, yalnızca bir geçiş gerçekleştiğinde ve RSI belirli bir eşiğin üzerinde veya altında olduğunda alım satımları tetiklemek için günlük ve haftalık RSI kullanmayı içerir. Eğitmen, stratejinin parametreler ayarlanarak optimize edilebileceğinden ve kütüphanenin zararı durdur ve kârı al gibi farklı emir türleriyle denemeyi desteklediğinden bahseder.

Sunum yapan kişi, RSI alt sınırın altına düştüğünde kısa pozisyonun nasıl başlatılacağını ve satın alırken kısa pozisyonların nasıl kapatılacağını gösterir. Benzer şekilde sunum yapan kişi, RSI üst sınırın üzerine çıktığında, herhangi bir uzun pozisyonu sattığını ve bir kısa pozisyon başlattığını gösterir. Ancak sunum yapan kişi, programın birden fazla pozisyon almasını engelleyecek bir kod olmadığını ve bunun da programın yatırılan öz sermayenin yüzde 80'ini kaybetmesine yol açtığını belirtiyor. Sunum yapan kişi, yalnızca mevcut pozisyon yoksa veya portföyde uzun/kısa pozisyon varsa yeni bir ticaret başlatmak için bir madde ekleyerek bu sorunun nasıl çözüleceğini açıklar.

Eğitmen, backtesting.py'de zararı durdur ve kârı al emirlerinin nasıl kullanılacağını gösterir. Strateji, cari fiyatın altında belirli bir yüzdede bir stop-loss belirleyerek, her bir işlemdeki kayıpları sınırlayabilirken, bir kâr alma düzeyi belirlemek, işlemlerden belirli bir kâr düzeyinde çıkmayı sağlar. Eğitmen ayrıca, her ticarete belirli bir kullanılabilir fon yüzdesi tahsis etmek için satın alma sürecinde boyut parametresinin nasıl ayarlanacağını gösterir. Örnekteki satış taktikleriyle ilgili bazı sorunlar olsa da video, ticaret stratejileri oluşturmak ve test etmek için backtesting.py'nin kullanımına ilişkin faydalı bilgiler sağlıyor.

Video, geriye dönük testte konum boyutlandırmayı uygulamanın farklı yollarını tartışıyor. Bir yaklaşım, mevcut nakit yüzdesi yerine her seferinde bir hisse alıp satmaktır. Bu yaklaşım, bir pozisyona merdivenle çıkmayı veya dolar maliyeti ortalamasını içeren stratejiler için yararlı olabilir. Video, bir geçiş stratejisinin RSI göstergesine dayalı bir stratejiye dönüştürülmesini göstermektedir. Bu değiştirilmiş stratejide, alım satımlar, en son RSI değeri alt sınırdan küçük olduğunda gerçekleştirilir. Video ayrıca, giriş ve çıkış tarihleri ve diğer önemli metrikler dahil olmak üzere işlemlerin bir pandas veri çerçevesi olarak arka testten çıkarılabileceğini vurgulamaktadır. Bu ticaret verileri, daha fazla analiz ve inceleme için Excel veya diğer Python betikleri gibi diğer görselleştirme araçlarına aktarılabilir.

Backtesting.py'nin yaratıcısı, stratejileri optimize etmek ve önceki günlerin verilerini karşılaştırmak için çok sayıda if ifadesi yazma ihtiyacını ortadan kaldırmak için güçlü bir araç olan "şu zamandan beri çubuklar" işlevini sunar. İşlev, kullanıcıların belirli bir ticaret koşulunun en son karşılanmasından bu yana çubuk sayısını belirlemesine olanak tanır. Bu özellik, stratejileri belirli zamana dayalı koşullara göre optimize etmenin uygun bir yolunu sağlar. Ayrıca, içerik oluşturucu, backtesting.py'nin açık kaynaklı doğasını vurgulayarak kullanıcıları kitaplığı kendi özel ihtiyaçlarına ve tercihlerine göre özelleştirmeye teşvik eder.

Sonuç olarak, backtesting.py'deki öğretici, eğitmenin izleyicileri herhangi bir soru veya endişeleri için ulaşmaya teşvik etmesiyle sona erer. Eğitmen onlara geriye dönük test etme çabalarında şans diler ve onlara backtesting.py kullanarak geriye dönük test yapma ve ticaret stratejilerini optimize etme olanaklarını keşfederken eğlenmelerini hatırlatır. Eğitmen, daha fazla ayrıntı için backtesting.py belgelerine başvurmanın ve geriye dönük test altyapısını oluşturmak ve optimize etmek için mevcut ek özellikleri keşfetmenin önemini vurgular.

Genel olarak, eğitim, backtesting.py'ye, avantajlarına, sınırlamalarına ve çeşitli özelliklerine kapsamlı bir genel bakış sağlar. Kullanıcılara bir geriye dönük test ortamı oluşturma, stratejileri uygulama, parametreleri optimize etme, analiz için ısı haritalarını kullanma, çoklu zaman çerçevelerini dahil etme ve konum boyutlandırma tekniklerini uygulama sürecinde rehberlik eder. İzleyiciler öğreticiyi izleyerek, backtesting.py kullanarak işlem stratejilerini etkili bir şekilde test etmelerine ve iyileştirmelerine yardımcı olabilecek değerli içgörüler ve pratik bilgiler edinir.

  • 00:00:00 Eğitmen backtesting.py'nin olumlu ve olumsuz yönlerini tartışır. Kitaplık yalnızca geriye dönük testin temellerine odaklanır ve bir gösterge kitaplığı veya aracılar veya diğer platformlarla entegrasyon içermez. Dokümantasyon basit ve anlaşılması kolaydır. Ek olarak, özellikle tek stratejileri test ederken çok hızlıdır. Olumsuz tarafı, birden fazla varlık veya kesirli hisse ile alım satıma izin vermez. Genel olarak, kitaplık hafif ve basittir, bu da onu yalnızca geriye dönük test etmeye odaklanmak isteyenler için mükemmel bir seçim haline getirir. Eğitmen ayrıca sanal bir ortam oluşturma ve öğretici için gerekli bağımlılıkları yükleme adımlarını da adım adım anlatır.

  • 00:05:00 Backtesting.py kitaplığının yazarının, 2006'dan 2013'e kadar Google hisse senedi fiyatları için test verileri ve iki işlevin olduğu bir strateji sınıfının oluşturulması gibi bir geriye dönük test çalıştırmak için gereken gerekli bileşenleri içe aktardığını görüyoruz. , init ve next tanımlanır. Başlangıçta, RSI'nın gösterge değerini hesaplıyoruz ve sonraki işlev, RSI değerlerinin hesaplanmasına dayalı olarak satın alma kriterlerini değerlendirmek için kullanılıyor.

  • 00:10:00 Eğitmen, gelecek yıla beslenen önceden hesaplanmış değerleri kullanarak basit bir geçiş stratejisinin nasıl uygulanacağını tartışır. RSI'yi üst ve alt sınır değerleri ile karşılaştırmak için çapraz kitaplığı backtesting.py'den içe aktarırlar. RSI belirli bir değerin üzerine çıktığında satar, altına düştüğünde ise satın alır. Ayrıca üst ve alt sınır değerleri tanımlarlar ve işlevde bunlara erişmek için sınıfa atarlar. Eğitmen daha sonra strateji için bir geriye dönük test ayarlar ve verileri sağlar, nakit miktarını seçer ve istatistikleri yazdırır. Geriye dönük testin nasıl kolayca çizilebileceğini ve ekrandaki kırmızı ve yeşil kutuların ayları nasıl gösterdiğini açıklarlar.

  • 00:15:00 Konuşmacı, backtesting.py kullanarak geriye dönük test sonuçlarını görselleştirmek için kullanılabilecek panoya genel bir bakış sağlar. Pano, diğer şeylerin yanı sıra işlemler, karlar ve zararlar, portföy değeri ve göstergeler hakkında bilgi sağlar. Konuşmacı ayrıca, üst ve alt sınırlar ve RSI penceresi için farklı değer aralıkları tanımlayarak backtesting.py kullanılarak strateji optimizasyonunun nasıl elde edilebileceğini gösterir. Optimize edici, Sharpe oranı gibi istatistikler üretir ve en yüksek değerli işlevi bulmak için çeşitli kombinasyonları simüle eder. Konuşmacı, kullanıcıların optimize etmek için özel metrikler tanımlayabileceğini ve daha iyi optimizasyon sonuçları elde etmek için kısıtlamalar uygulayabileceğini belirtiyor.

  • 00:20:00 Eğitmen, bir değer alt kümesi seçmek için kısıtlamaların nasıl uygulanacağını ve herhangi bir parametreye dayalı olarak doğru veya yanlış döndüren lambda fonksiyonlarının nasıl oluşturulacağını açıklar. Video, stratejinin nasıl optimize edileceğini, keskin oranı maksimize etmek için optimize edici fonksiyonunun nasıl kullanılacağını ve optimizasyon fonksiyonunun normal bir Python fonksiyonu olarak nasıl tanımlanacağını gösterir. Eğitmen ayrıca piyasada en az süre kalarak en çok parayı nasıl kazanacağınızı belirleyen bir ölçütün nasıl oluşturulacağını tartışır.

  • 00:25:00 Eğitmen, aşırı uyumu önlemek için optimizasyon işlevine minimum işlem sayısı filtresinin nasıl ekleneceğini açıklar. Bu filtre eklendiğinde, geriye dönük test işlevi tek bir dalgalanma döneminin ötesine bakmaya zorlanarak daha kârlı parametre kombinasyonlarını keşfetme şansını artırır. Eğitmen ayrıca, birden fazla geriye dönük test çalıştırırken faydalı olabilecek ve kullanılan farklı parametre kombinasyonlarını takip etmesi gereken, geriye dönük test sonuçlarının HTML dosyalarının nasıl oluşturulacağını da gösterir. Son olarak eğitmen, çalışma dizininin tıkanmasını önlemek için oluşturulan dosyaların nasıl adlandırılacağını ve düzenleneceğini tartışır.

  • 00:30:00 Eğitmen, mümkün olan her kombinasyonu gerçekleştirmek zorunda kalmadan bir stratejiyi hızlı bir şekilde optimize etmek için backtesting.py'deki optimize işlevinin nasıl kullanılacağını açıklar. Program, maksimum sayıda deneme ayarlayarak, kombinasyonlar için rastgele bir ızgara araması gerçekleştirerek, geriye dönük test için harcanan süreyi ve fazla uydurma riskini azaltır. Eğitmen ayrıca, üst ve alt sınırları değiştirirken farklı değerleri ve bunların strateji üzerindeki etkilerini görselleştirmek için ısı haritalarının nasıl oluşturulacağını gösterir. Sütunları üst ve alt sınırlara göre gruplandırmak için bir pandas group by deyimi kullanılır ve her kombinasyon için ortalama değerleri hesaplamak için ortalama alınır.

  • 00:35:00 Konuşmacı, işlevin belirtilen sütunların üst ve alt sınırlar gibi tüm benzersiz kombinasyonlarını nasıl bulduğunu açıklar. İşlev daha sonra bu kombinasyonları birlikte gruplandırır ve bu durumda ortalama olan bir toplama işlevi uygular. Ortaya çıkan çıktı, Seaborn modülü kullanılarak çizilebilen bir ısı haritasıdır. Konuşmacı, Sharpe oranı için nasıl optimize edileceğini ve ısı haritası için renk haritasının nasıl değiştirileceğini gösterir. Son olarak, konuşmacı, ikiden fazla parametre için çoklu ısı haritalarını çizmek için yerleşik bir işlevin, plot_heat_maps, nasıl kullanılacağını gösterir.

  • 00:40:00 Eğitmen, parametre optimizasyonu için ısı haritalarının nasıl kullanılacağını ve geriye dönük test kitaplığından yeniden örnekleme uygulama işlevini kullanarak çok zamanlı çerçeve stratejilerinin nasıl uygulanacağını gösterir. Isı haritalarını kullanarak kullanıcılar, farklı parametrelerdeki değişimlerin ticaret stratejilerini nasıl etkilediğini görselleştirebilir. Yeniden örnekleme uygulama işlevi, kullanıcıların verileri çok zamanlı bir çerçeve stratejisinde birlikte kullanmak için haftalık ve günlük gibi farklı zaman çerçevelerine göre yeniden örneklemesine olanak tanır. Tüccarlar, farklı zaman dilimlerini birleştirerek farklı piyasa koşullarını dikkate alan daha karmaşık stratejiler oluşturabilir.

  • 00:45:00 Eğitmen, backtesting.py kitaplığını kullanarak bir ticaret stratejisinde farklı zaman dilimlerinin nasıl kullanılacağını açıklar. Aşağı-örnekleme yaparak ve işlevleri uygulayarak, kitaplık ileriye doğru doldurma ve daha küçük zaman çerçevesine yeniden indeksleme gerçekleştirebilir, bu da farklı zaman dilimlerini analiz etmeyi kolaylaştırır. Bu örnekteki strateji, yalnızca bir geçiş gerçekleştiğinde ve RSI belirli bir eşiğin üzerinde veya altında olduğunda işlemleri tetiklemek için günlük ve haftalık RSI kullanmayı içerir. Strateji, parametreler değiştirilerek optimize edilebilir ve kitaplık, zararı durdur ve kârı al gibi farklı sipariş türlerini denemek için kullanılabilir.

  • 00:50:00 Sunum yapan kişi, RSI alt sınırın altına düştüğünde ve satın alırken kısa pozisyonları kapattığında nasıl kısa pozisyon başlatılacağını gösterir. Benzer şekilde, RSI üst sınırın üzerine çıktığında ve herhangi bir uzun pozisyon sattığında, programın da bir kısa pozisyon başlattığını gösteriyor. Ancak, programın birden fazla pozisyon almasını durduracak bir kod yoktur, bu da programın yatırılan öz sermayenin yüzde 80'ini kaybetmesine yol açar. Sunum yapan kişi, yalnızca mevcut pozisyon yoksa veya portföyde uzun/kısa pozisyon varsa yeni bir ticaret başlatmak için bir madde ekleyerek bunun nasıl düzeltileceğini açıklar.

  • 00:55:00 Eğitmen, backtesting.py'de zararı durdur ve kârı al emirlerinin nasıl kullanılacağını gösterir. Stop-loss'u mevcut fiyatın altında belirli bir oranda ayarlayarak, strateji her işlemde belirli bir miktardan daha fazlasını kaybetmekten kaçınabilirken, kâr al'ı ayarlamak, işlemlerden belirli bir kâr düzeyinde çıkmayı sağlar. Eğitmen ayrıca, her ticarete belirli bir kullanılabilir fon yüzdesi tahsis etmek için satın alma sürecinde boyut parametresinin nasıl ayarlanacağını gösterir. Bu örnekte satış taktikleriyle ilgili bazı sorunlar olsa da video, ticaret stratejileri oluşturmak ve test etmek için backtesting.py'nin kullanımına ilişkin yararlı bilgiler sağlar.

  • 01:00:00 Video, geriye dönük testte konum boyutlandırmayı uygulamanın farklı yollarını tartışıyor. Bunun bir yolu, mevcut nakit yüzdesi yerine her seferinde bir hisse alıp satmaktır; bu, bir pozisyona yükselmek veya dolar maliyeti ortalamasını almak için yararlı olabilir. Video, bir geçiş stratejisini, en son RSI değeri alt banttan küçük olduğunda satın alan RSI göstergesine dayalı bir stratejiye dönüştürmeyi gösteriyor. Video ayrıca, giriş ve çıkış tarihleri ve diğer önemli metrikler dahil olmak üzere işlemlerin bir pandas veri çerçevesi olarak arka testten çıkarılabileceğini gösteriyor. İşlemler, Excel veya diğer Python betikleri gibi diğer görselleştirme araçlarına aktarılabilir.

  • 01:05:00 Oluşturucu, backtesting.py'de, belirli bir ticaret koşulunun en son karşılanmasından bu yana çubuk sayısını belirlemek için kullanılabilen "şu zamandan beri çubuklar" işlevini sunar. Bu işlev, stratejileri optimize etmek ve önceki günlerin verilerini karşılaştırmak için çok sayıda if ifadesi yazma ihtiyacını ortadan kaldırmak için mükemmel bir araç olabilir. Yaratıcı, yalnızca günlük rsi üst sınırın üst sınırın üzerinde olduğunda satış örneğini kullanır. Ayrıca, daha fazla analiz için ham ticaret verilerinin nasıl çıkarılacağını ve backtesting.py'nin açık kaynak yapısının kullanıcıların kitaplığı kendi özel ihtiyaçlarına göre özelleştirmesini nasıl kolaylaştırdığını tartışıyor. Eğiticinin sonucu, öğrencileri backtesting.py belgelerini keşfetmeye ve geriye dönük test altyapılarını oluşturmaları ve optimize etmeleri için mevcut olan daha fazla ayrıntı ve özelliği keşfetmeye davet ediyor.

  • 01:10:00 Konuşmacı, izleyicileri herhangi bir soru veya endişeleri için kendisine ulaşmaya teşvik ederek backtesting.py'deki kursu bitirir. Ayrıca geriye dönük test etme çabalarında onlara şans diler ve eğlenmelerini hatırlatır.
Backtesting.py - Full course in python
Backtesting.py - Full course in python
  • 2022.04.26
  • www.youtube.com
A full course covering all you need to know about the backtesting.py python library. Backtesting.py is a lightweight backtesting framework in the style of Ba...