Algoritmik ticarette Python - sayfa 18

 

Does this Crypto Scalping Indicator Actually Work!



Does this Crypto Scalping Indicator Actually Work!

Today, we are going to explore a sculpting strategy using the Volume Weighted Average Price (VWAP) in backtesting on the Bitcoin market. We will write a Python algorithm to implement this strategy and analyze the results.

First, let's set the context. The VWAP is a powerful tool for algorithmic trading as it provides dynamic support and resistance values. It remains independent of the time frame being used, making it advantageous for algorithmic trading since it reduces the number of parameters to optimize.

In this strategy, we will use a 15-minute time frame for Bitcoin-US Dollar trading prices. We will consider two indicators: the 100-day moving average (DMA) and the VWAP. By analyzing the price movements relative to these indicators, we can determine the market trend. When a certain number of candles trade below or above the 100 DMA, it indicates a downtrend or an uptrend, respectively. Similarly, if the candles are trading below or above the VWAP curve, it confirms the trend direction.

In an uptrend, we will only look for buying positions, while in a downtrend, we will focus on selling positions. The entry point for our positions will be triggered when the price is within a certain fixed distance to the VWAP curve.

To implement this strategy in Python, we will use the pandas_ta package to compute the VWAP and the 100 DMA. We will then create two new columns in our data frame: the EMA signal and the VWAP signal. The EMA signal will count the number of back candles that fall below or above the EMA curve to confirm a downtrend or an uptrend. Similarly, the VWAP signal will count the number of back candles that are below or above the VWAP curve.

We will merge these signals into a total signal column in our data frame, which will serve as the trigger for our buying and selling positions. For buying positions, we will check if the total signal is equal to 2 and there are no open trades. We will also verify if the price is close enough to the VWAP curve. Similarly, for selling positions, we will consider a total signal of 1 and check the distance of the price from the VWAP curve.

We can visualize the signals on a chart, plotting the candles along with the buying (purple) and selling (green) signals.

To backtest the strategy, we will calculate the Average True Range (ATR) as a measure of volatility. The stop loss distance will be set to 0.8 times the current ATR, and the take profit distance will be twice the stop loss distance. With these parameters, we can trigger buying and selling positions, taking into account the stop loss and take profit values. We will start with a cash amount of $100,000 and a leverage of 5.

Running the backtest, we can observe the results of our trading system. The algorithm shows a high return percentage, with an equity final of around $10 million after three years. In comparison, the buy and hold strategy only achieved a 248% return. However, it's important to note that the algorithm's performance fluctuates, and it might struggle during certain periods. This highlights the need for dynamic adaptation to changing market conditions.

To assess the stability of the equity, we can plot the equity curve over the years. The algorithm performed exceptionally well for two years but faced challenges in the last year. This underscores the passive nature of the algorithm, which relies on fixed parameters and may require adjustments to adapt to market changes.

The VWAP-based strategy showcased here is a good investment of attention and time. It has demonstrated significant returns over a long period, albeit with some limitations. Further optimizations and the inclusion of additional filters and indicators can be explored to enhance.

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

S&P 500'de Python Kullanarak Bir Borsa Stratejisini Geriye Dönük Test Etme


S&P 500'de Python Kullanarak Bir Borsa Stratejisini Geriye Dönük Test Etme

Herkese merhaba, bugün S&P 500'den alınan geçmiş verileri kullanarak basit bir heykel stratejisinin ayrıntılı bir testini yapacağız. Stratejinin temellerini açıklayacağız ve geriye dönük test amacıyla Python'da kod yazacağız. Stratejinin performansını ve sonuçlarını değerlendirmek için bize yeterli bilgiyi sağlaması gereken üç yıllık veriye sahibiz.

Her zaman olduğu gibi, bu stratejinin kodu aşağıdaki açıklamadaki bağlantı aracılığıyla indirilebilir. Bu test için 15 dakikalık bir zaman çerçevesi kullanacağız, ancak isterseniz farklı zaman dilimleriyle denemeler yapabilirsiniz. Artan gürültü ve dalgalanmalar nedeniyle daha düşük zaman aralıklarını kontrol etmek daha zor olabilir.

Strateji, düşüş veya yükseliş sinyalleri olabilen yutucu kalıpları belirleme etrafında döner. Sinyalleri iyileştirmek için iki koşul ekleyeceğiz. İlk koşul, önceki mumun kapanış fiyatı ile yutan mumun açılış fiyatı arasındaki fark olan minimum yutma yüksekliğidir. Sinyali doğrulamak için yutan mumun açılış fiyatı için bir minimum mesafe gereksinimi belirleyeceğiz. Diğer bir deyişle açılış fiyatı minimum yutma yüksekliğinden yüksek olmalıdır.

İkinci koşul, mumun kuyruğunun veya fitilinin uzunluğunu ifade eden maksimum mum kuyruğu uzunluğudur. Maksimum kuyruk uzunluğu için bir sınır belirleyeceğiz ve belirtilen parametreden daha küçük olmasını sağlayacağız. Bu koşul, belirli kalıpların filtrelenmesine yardımcı olur.

Alım satım süremiz boyunca sinyal sayısını artırmak için, normal yutma modeline bir değişiklik getireceğiz. Bir mumun bir öncekini yutmasını kesinlikle zorunlu kılmak yerine, iki veya daha fazla ardışık mumun ters yönde olmaları ve yutma koşullarını karşılamaları koşuluyla yutmayı gerçekleştirmelerine izin vereceğiz. Yutmayı başarmasına izin verilen mum sayısı, kodda bir değişken olacak ve esneklik ve denemeye izin verecektir.

Bu noktada programı yazmaya başlayabilir ve backtesting yaparak sonuçları test edebiliriz. Bu gösteri için bir Jupyter Notebook dosyası kullanacağız. İlk olarak, read_csv işlevini kullanarak geçmiş verileri df_spy adlı bir DataFrame'e yüklüyoruz. 15 dakikalık zaman dilimini ve 2019 - 2022 tarih aralığını belirtiyoruz. DataFrame indeksi GMT zaman sütununa ayarlı.

Ardından, iki parametre alan is_engulfing adlı bir işlev tanımlarız: DataFrame ve mevcut mumun dizini. Bu işlev, mumun yutucu bir model elde edip etmediğini test eder. Yutma modelini elde etmek için izin verilen maksimum mum sayısı, yutma farkı ve maksimum mum kuyruğu uzunluğu için parametreler belirledik. İşlev, hem düşüş hem de boğa yutma formasyonları için çeşitli koşulları kontrol eder ve düşüş için 1, yükseliş sinyalleri için 2 sinyali döndürür.

DataFrame'in bir kopyasını oluşturuyoruz, hareket etmeyen mumları filtreliyoruz (yukarının alçağa eşit olduğu yerde). Bu adım, hafta sonlarını ve resmi tatilleri kaldırır. Filtrelenmiş verileri df adlı bir DataFrame'de saklıyoruz. Ayrıca her sıra/mum için sinyalleri depolamak üzere Signal adlı yeni bir liste tanımlarız.

DataFrame df'deki her satır için, parametre olarak karşılık gelen indeks ve DataFrame ile is_engulfing işlevini kullanarak sinyali hesaplıyoruz. Sinyalleri sinyal listesinde saklarız. Son olarak, sinyal listesini DataFrame'de yeni bir sütun olarak ekliyoruz.

Sinyalleri görselleştirmek için, yükseliş veya düşüş sinyallerini temsil etmek için mum grafiğini mumların altında veya üstünde noktalarla çizen bir çizim işlevi kullanıyoruz. Sinyalleri çizmek ve gözlemlemek için belirli bir mum aralığı seçebiliriz.

Görselleştirmeyi kolaylaştırmak için, DataFrame'in indeksini bir tamsayı indeksine sıfırlıyoruz ve tarih/GMT zaman indeksini kaldırıyoruz. Ardından, sinyalleri çizmek ve gözlemlemek için bir dizi mum seçiyoruz.

Şamdan grafiklerini kullanarak bir ticaret stratejisini geriye dönük test etmeyle ilgili adımların bir özeti aşağıda verilmiştir:

  1. Veri Hazırlama : İstenen finansal enstrüman (ör. hisse senetleri, kripto para birimleri) için her zaman dilimi (ör. dakika, saat, gün) için açılış, yüksek, düşük ve kapanış fiyatlarını içeren geçmiş fiyat verilerini elde edin. Verilerin kolayca analiz edilebilecek bir formatta olduğundan emin olun.

  2. Strateji Tanımı : Ticaret stratejisini şamdan modellerine göre tanımlayın. Örneğin, yutan bir yükseliş paterni gibi yükseliş kalıpları veya kayan bir yıldız gibi düşüş kalıpları arayabilirsiniz. Bu kalıplara dayalı olarak alım satımlara girme ve çıkma kurallarını belirleyin.

  3. Sinyal Üretimi : Geçmiş fiyat verilerini analiz edin ve tanımlanan stratejiye göre sinyaller oluşturun. Giriş veya çıkış kriterlerini karşılayan belirli mum çubuğu modellerinin oluşumunu tanımlayın.

  4. Portföy Simülasyonu : Varsayımsal bir portföyü izleyerek ticaret stratejisini simüle edin. Sabit miktarda sermaye ile başlayın ve oluşturulan sinyallere dayalı olarak işlemleri simüle edin. Geriye dönük test süresi boyunca portföyün değerini ve performansını takip edin.

  5. Performans Değerlendirmesi : Kârlılık, riske göre ayarlanmış getiriler, düşüşler ve diğer ilgili ölçütler gibi çeşitli ölçümleri kullanarak ticaret stratejisinin performansını değerlendirin. Etkinliğini değerlendirmek için stratejinin performansını bir kıyaslama veya alternatif stratejilerle karşılaştırın.

  6. Görselleştirme : Şamdan grafiklerini kullanarak geriye dönük test edilen sonuçları görselleştirin. Geçmiş fiyat verilerini çizin ve oluşturulan sinyalleri (giriş ve çıkış noktaları) grafikte gösterin. Bu görselleştirme, stratejinin performansının anlaşılmasına ve iyileştirme alanlarının belirlenmesine yardımcı olabilir.

Bu adımları izleyerek, mum grafiklerini kullanarak bir ticaret stratejisini geriye dönük olarak test edebilirsiniz. Geriye dönük testin geçmiş performans sağladığını ve gelecekteki sonuçları garanti etmediğini unutmamak önemlidir. Ayrıca, bir ticaret stratejisi geliştirirken ve uygularken işlem maliyetleri, kayma ve piyasa koşulları gibi diğer faktörleri de dikkate almak çok önemlidir.

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

Python'da Algoritmik Ticaret İçin Fiyat Eylem Stratejisi



Python'da Algoritmik Ticaret İçin Fiyat Eylem Stratejisi

Herkese merhaba! Huffman'ın envanter izleme çubuğundaki üçüncü videoya hoş geldiniz. Bu strateji birkaç ticaret yarışması kazandı, bu yüzden birkaç ay veya daha uzun bir süre içinde olumlu getiri sağlayabilecek otomatik bir sürüm yaratmayı düşündüm. Bu videoyu kısa tutmak için, stratejiyi ayrıntılı olarak açıkladığımız önceki iki videoyu izlemenizi tavsiye ederim. Bu videoların linkini açıklamada bulabilirsiniz.

Kısaca, strateji, düzeltme çubuklarını tanımlamayı ve trend tanımı için belirli bir eğimi korumayı içerir. Bir yükseliş trendinde, çubuklar için belirli bir şekil ararız ve bir düşüş trendinde, düzeltme çubuğunun ters şeklini ararız. Ancak bu videomuzda bir koşul daha ekleyeceğiz. Düzeltme çubuğunun önceki ve gelecekteki çubuklardan daha yüksek (yükseliş trendinde) veya daha düşük (düşüş trendinde) olmasını şart koşuyoruz. Esasen, bir pivot noktası görevi gören ve eğilimi tersine çevirmeye çalışan satıcılardan veya alıcılardan gelen güçlü bir tepkiyi gösteren bir düzeltme çubuğu arıyoruz.

Bu ek koşulu algoritmik bir ticaret stratejisine uygulamak, kavramı açıklamadan daha zordur. Gösterilen örnekte, bir yükseliş trendimiz var ve yüksek bir pivot noktası görevi gören bir Huffman düzeltme çubuğu belirledik. Ek olarak, bu Huffman çubuğunun üst seviyesinin üzerinde bir kırılma gözlemliyoruz ve bu da yükseliş eğiliminin devam edeceğini gösteriyor. Tüm bu koşulları Python algoritmamıza dahil edeceğiz ve önceki videolarda elde edilen sonuçları iyileştirip iyileştirmediklerini değerlendireceğiz.

Kısa bir genel bakış sağlamak için, 2003'ten 2022'ye kadar bir saatlik bir zaman diliminde EUR/USD döviz çiftinin geçmiş verilerini yüklüyoruz. Üstel hareketli ortalamayı (EMA) ve ortalama gerçek aralığı (ATR) hesaplıyoruz. zararı durdur ve kar al değerlerini ayarlamak için kullanışlıdır. Huffman stratejisinin koşullarından biri olduğu için EMA'nın eğimini hesaplıyoruz. Ek olarak, iki yeni parametre sunuyoruz: Huffman mumunun en yüksek veya en düşük değeriyle karşılaştırılacak mum sayısını belirleyen toplam sinyal arka mumları (sol ve sağ).

Algoritma, bir yükseliş veya düşüş trendinde bir Huffman çubuğunu tanımlama koşullarını tanımlar. Bu videoda, Huffman çubuğunun aynı zamanda bir pivot noktası görevi görüp görmediğini kontrol etmek için fazladan bir koşul ekliyoruz. Huffman çubuğunun düşük (düşüş trendinde) veya yüksek (yükseliş trendinde) değerlerini, belirtilen aralıktaki önceki ve gelecekteki mumlarla karşılaştırırız. Koşul sağlanıyorsa düşüş trendi için 1, yükseliş trendi için 2 değeri atarız ve sinyalleri veri çerçevesinde "toplam sinyali" adı verilen yeni bir sütunda saklarız.

Algoritmanın doğru çalıştığından emin olmak için, Huffman çubuklarını temsil eden mor noktaları görselleştirerek sinyalleri bir grafik üzerinde çizeriz. Algoritmanın, özelliklerine göre çubukları doğru bir şekilde tanımladığını doğrulayabiliriz.

Ardından, EMA sinyalini trend yönü için bir onay sinyali olarak dahil ediyoruz. Huffman çubuklarının altındaki veya üstündeki kırılmaları algılayan ve buna göre sinyaller atayan Huffman kırılma sinyali işlevini de uyguluyoruz.

Stratejiyi geriye dönük olarak test etmek için, belirli koşullara ve kullanılan göstergelere bağlı olarak değişebilen zararı durdur ve kârı al değerlerini belirliyoruz. Bu durumda, zararı durdur ve karı al/zararı durdur oranını 1,5 olarak tanımlamak için ATR'yi kullanırız. Geriye dönük testi 10.000$'lık bir başlangıç depozitosu, 1:50'lik bir marj ve her seferinde bir işlemle gerçekleştiriyoruz.

Başlangıçta, -%70'lik bir getiri ve büyük bir düşüşle sonuçlar tatmin edici değil. Ancak bu, stratejinin veya göstergenin doğası gereği kötü olduğu anlamına gelmez. Stratejinin performansını önemli ölçüde etkileyebilecek para yönetimi ve zararı durdur ve kârı al değerlerinin seçimi gibi diğer faktörlerin dikkate alınmasının önemini vurgular.

Stratejinin performansını iyileştirmek için parametreleri optimize edebilir ve para yönetimi kurallarını ayarlayabiliriz. Bu örnekte, Huffman çubuğunun en yüksek veya en düşük değeriyle karşılaştırılacak mum sayısını belirleyen toplam sinyal geri mumları parametresini optimize edeceğiz. 2'den 10'a kadar değişen farklı değerleri test edip sonuçları değerlendireceğiz.

Parametreyi optimize ettikten sonra, %187'lik bir geri dönüş ve azaltılmış bir düşüş ile daha iyi performans elde ediyoruz. Bu, algoritmik ticaret stratejilerinde parametre optimizasyonunun önemini göstermektedir.

Stratejiyi daha da geliştirmek için ek filtreler veya koşullar eklemeyi düşünebiliriz. Örneğin, günlük veya haftalık grafik gibi daha yüksek bir zaman dilimi kullanarak bir trend filtresi uygulayabiliriz. Bu, işlemlerin yalnızca genel eğilim doğrultusunda alınmasını sağlamaya yardımcı olabilir.

Ayrıca, fiyat hareketine veya volatiliteye dayalı olarak takip eden stoplar veya dinamik kar alma seviyeleri gibi farklı çıkış stratejilerini de keşfedebiliriz. Bu ek bileşenler, performansını potansiyel olarak iyileştirmek için test edilebilir ve algoritmaya entegre edilebilir.

Geçmiş performansın gelecekteki sonuçları garanti etmediğini unutmamak önemlidir. Strateji, tarihsel veriler ve güçlü geriye dönük test yöntemleri kullanılarak kapsamlı bir şekilde test edilmeli ve doğrulanmalıdır. Stratejiyi gerçek zamanlı bir ticaret ortamında uygularken işlem maliyetlerini, kaymayı ve ticaretin diğer pratik yönlerini dikkate almak da çok önemlidir.

Sonuç olarak, Huffman'ın envanter düzeltme çubuğu stratejisi, piyasadaki potansiyel pivot noktalarını ve trend tersine dönüşlerini belirlemede faydalı bir araç olabilir. Ek koşulları dahil ederek ve parametreleri optimize ederek, stratejinin performansını iyileştirebiliriz. Bununla birlikte, kapsamlı ve etkili bir ticaret sistemi geliştirmek için kapsamlı testler yapmak ve para yönetimi ve çıkış stratejileri gibi diğer faktörleri göz önünde bulundurmak önemlidir.

Bu, Python'da Huffman'ın envanter izleme çubuğu stratejisini uygulamaya ilişkin videomuzu tamamlıyor. Umarım bu seriyi ticaret çabalarınızda bilgilendirici ve yardımcı bulmuşsunuzdur. Herhangi bir sorunuz veya yorumunuz varsa, lütfen bunları aşağıda bırakmaktan çekinmeyin. İzlediğiniz için teşekkürler ve mutlu ticaret!

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

Python'da Geri İzleme Çubuğu Ticaret Stratejisi Nasıl Kodlanır



Python'da Geri İzleme Çubuğu Ticaret Stratejisi Nasıl Kodlanır

Herkese merhaba, Hoffman'ın Envanter Çubuğu Düzeltme yönteminin bu devamına hoş geldiniz. Bir önceki videoda bu yöntemi tanıtmış ve belirli mum şekillerini ve fiyat trendlerini algılama kodunu açıklamıştık. Kodla ilgileniyorsanız, Jupyter Notebook dosyasını aşağıdaki açıklamada verilen bağlantıdan indirebilirsiniz.

Bu videoda daha önce belirlediğimiz Hoffman barlarını bir ticaret stratejisinde kullanacağız, sistemi geriye dönük test edeceğiz ve sonuçları değerlendireceğiz. Strateji, bir yükseliş veya düşüş trendinde belirli mum şekillerini belirlemeye ve bu mumların en yüksek veya en düşük seviyesinin altındaki kırılmaları kontrol etmeye odaklanır.

Bir yükseliş trendinin olduğu bir örneği ele alalım. Üst kuyruğun tüm mum hacminin en az %45'i olduğu bir Hoffman düzeltme çubuğu tespit ettik. Bu, satıcıların yükseliş hareketine karşı koymaya çalıştıklarını gösterir. Ancak bir sonraki mumda kapanış fiyatının bir önceki Hoffman mumunun yüksek seviyesinden daha yüksek olduğunu gözlemliyoruz. Bu, alıcıların piyasada hala güçlü olduğunu ve muhtemelen fiyatı yükseltmeye devam edeceklerini gösteriyor.

Python'da bu stratejiyi uygulamak için, her bir mumun kapanış fiyatını yineleyeceğiz ve önceki komşu mumlardan herhangi birinin bir Hoffman düzeltme çubuğu oluşturup oluşturmadığını kontrol edeceğiz. Hoffman'ın çubuğunu ararken dikkate alınması gereken mum sayısını belirleyen "back_candles" adlı bir parametre tanımlayacağız. Bu parametre, farklı değerlerle deney yapmak için ayarlanabilir.

Hoffman mumunun en yüksek seviyesinin üzerinde veya en düşük seviyesinin altında bir kırılma meydana gelirse, mevcut fiyat trendine bağlı olarak sırasıyla bir alış veya satış pozisyonu yerleştireceğiz. Fiyat trendine bağlı olarak, ortalama gerçek aralığa (ATR) veya önceki mumların en yüksek/en düşük değerlerine dayanabilen zararı durdur ve kârı al değerlerini de belirleyebiliriz.

Şimdi stratejiyi Python'da yazalım ve sonuçları değerlendirmek için birkaç aylık geçmiş verileri kullanarak geriye dönük test edelim. Jupyter Notebook dosyası, yfinance modülü kullanılarak 15 dakikalık bir zaman diliminde 59 günlük verinin yüklenmesiyle başlayan kodu içerir. Üstel hareketli ortalamayı (EMA), ATR'yi ve hareketli ortalamanın eğimini hesaplıyoruz.

Ardından, hareketli ortalamanın eğimine ve mumların şekline göre Hoffman'ın çubuklarını belirliyoruz. Sinyalleri bir grafik üzerinde görselleştiriyoruz ve ardından iki parametre alan "hofmann_break_signal" adlı yeni bir işlev tanımlıyoruz: mevcut mum indeksi ve Hoffman'ın mum modelini ararken dikkate alınması gereken arka mum sayısı.

Fonksiyonun içinde, her bir mumu yineliyoruz ve bir Hoffman's bar ve kırılma koşullarının karşılanıp karşılanmadığını kontrol ediyoruz. Eğer öyleyse, bir yükseliş trendi için bir satın alma sinyali veya bir düşüş trendi için bir satış sinyali döndürürüz.

Bu işlevi veri çerçevesinin her satırına uyguluyoruz ve sonuçları bir dizide saklıyoruz. Son olarak, sinyalleri görselleştiriyoruz ve Hoffman'ın mumlarının doğru bir şekilde algılanıp algılanmadığını kontrol ediyoruz.

Mum algılamayı doğruladıktan sonra, stratejiyi geriye dönük test etmeye devam ediyoruz. Stop-loss'u önceki mumlar arasındaki minimum fiyata göre belirliyoruz ve stop-loss'a göre bir oran kullanarak kar alıyoruz. Bu örnekte, kaybı durdurma oranı 1,5 olan ATR tabanlı bir yaklaşım kullanıyoruz.

Stratejiyi üç aylık veriler üzerinden test ediyoruz ve getiriyi, kazanan işlemlerin yüzdesini ve hisse senedi eğrisini hesaplıyoruz. Bu ilk testte, getiri %51 ile pozitif, ancak öz sermaye eğrisi istikrarlı bir artış göstermiyor.

Ayrıca, önceki mumların en yüksek veya en düşük diplerini göz önünde bulundurarak, zararı durdur ve kar al seviyelerini belirlemek için farklı bir yöntem keşfediyoruz. Ancak bu durumda getiri -%4,8 ile negatiftir ve bu para yönetimi stratejisinin iyi performans göstermediğini gösterir.

Lütfen bu stratejinin bu videoda optimize edilmediğini unutmayın. Python uygulamasını göstermek için hızlı bir şekilde geliştirildi. Bu stratejiyi ilginç bulursanız, kodu kopyalayabilir ve ek teknik göstergeler ekleyerek daha da özelleştirebilirsiniz.

Bu videoyu izlediğiniz için teşekkür ederiz. Bir sonraki için bizi izlemeye devam edin, güvenle ticaret yapın ve bir dahaki sefere görüşürüz!

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

Algoritmik Ticaret İçin Python'da Kodlanmış Düzeltme Barkodu


Algoritmik Ticaret İçin Python'da Kodlanmış Düzeltme Barkodu

Merhaba, bu videomuzda Huffman's Inventory Retracement Bar'ı tanıtacağız ve Python'da tespitinin nasıl otomatikleştirileceğini göstereceğiz. Kodla ilgileniyorsanız, açıklamada verilen bağlantıdan Jupyter Notebook dosyasını indirebilirsiniz.

Bu stratejinin ilk kuralı, 20 günlük hareketli ortalama (MA) eğiminin yatay çizgi ile 45 derecelik bir açı oluşturup oluşturmadığını kontrol ederek fiyatın gidişatını tespit etmektir. Örnek olarak 20 günlük MA'nın kullanıldığını ve hareketli ortalama için farklı dönemler deneyebileceğinizi unutmayın. Bir düşüş trendi izliyorsanız, negatif eğim de yatay çizgi ile en az 45 derecelik bir açı oluşturmalıdır. Bununla birlikte, bir sinyal olarak yalnızca bu 45 derecelik açıya güvenmenin matematiksel olarak anlamsız olduğunu belirtmek önemlidir, çünkü bu açıyı bir ticaret tablosunda doğru bir şekilde tanımlamak imkansızdır. Algoritmik ticaret, videonun ilerleyen bölümlerinde inceleyeceğimiz bu soruna bir çözüm sunar.

Bu stratejinin ikinci kuralı, kuyruğun tüm mum uzunluğunun en az %45'i olduğu mumları tanımlamayı içerir. Örneğin, bir yükseliş trendinde, üst kuyruğu mumun toplam hareketinin %45'inden fazla olan mumları ararız. Benzer şekilde, bir düşüş trendinde, kuyruğu mum hacminin %45'inden fazla olan mumları ararız. Bu mum modeli, satıcıların veya alıcıların trende direnmeye veya tersine çevirmeye çalıştıkları anları ifade eder. Piyasa dinamiklerini mum kalıpları aracılığıyla anlayarak, özel stratejimizi tanımlayabiliriz.

Örnekte, bu spesifik mumları belirliyoruz ve piyasanın yüksek değerlerin üzerine çıkmasını bekliyoruz. Bir mum, Huffman'ın mumunun en yüksek seviyesinin üzerinde kapandığında, bu, satıcıların alım eğilimine karşı koyamadıklarını ve alıcıların hâlâ üstün durumda olduğunu gösterir. Bu da yükseliş trendinin devam edeceğini ve alıcılarla uzun pozisyona girebileceğimizi gösteriyor. Bu varsayımların sonuçlarını analiz ettiğimizde, çoğu durumda fiyatın beklentilerimizi takip ettiğini gözlemliyoruz.

Ancak, bu göstergenin uzun vadeli sonucunu belirlemek için Python kodumuzu kullanarak bir geriye dönük test yapmamız gerekiyor. Bu videoda, Huffman'ın mumlarının nasıl tespit edileceğini ve meydana geldiklerinde nasıl sinyal üretileceğini açıklamaya odaklanıyoruz. Ayrı bir videoda, bu göstergeyi eksiksiz bir ticaret stratejisinde kullanacağız ve uygun bir geriye dönük test yapacağız.

Başlamak için, yfinance modülünü kullanarak verileri indiriyoruz. Örnek, 15 dakikalık bir zaman dilimiyle 59 günlük bir süre için Euro/USD verilerini indirir. Daha fazla veriye ihtiyacınız varsa, bunları toplu olarak indirebilir ve veri çerçevelerini birleştirebilirsiniz. Verileri indirdikten sonra uzunluğu 20 olan üstel hareketli ortalamayı (EMA) hesaplıyoruz ve hareketli ortalamanın eğimini hesaplıyoruz. Eğim değerleri, veri çerçevesinde eğim_ema adlı yeni bir sütunda saklanır.

Ardından, her satırı yineleyerek sinyali hesaplıyoruz. Mevcut mumun eğimi negatifse ve eğim sınırını aşarsa, düşüş trendini gösterir, mumun alt kuyruğunun yüksek-düşük aralığa bölünmesiyle yüzde sınırından büyük olup olmadığına bakarız. Bu, düşüş trendindeki bir Huffman mumunu belirtir ve toplam sinyal 1'e ayarlanır. Benzer şekilde, eğim pozitifse ve eğim sınırını aşarsa, yükseliş trendini gösterir ve mumun üst kuyruğunun yüksek-düşük aralığa bölümü yüzde limitinden büyükse, Huffman'ın mumu yükseliş trendinde ve toplam sinyal 2'ye ayarlı.

Sinyali hesaplayıp sonuçları signal adlı bir listede sakladıktan sonra, onu veri çerçevesine tot_signal adlı yeni bir sütun olarak ekliyoruz. Daha sonra Plotly kullanarak sinyalleri bir grafik üzerinde görselleştirebiliriz.

Huffman'ın Envanter Düzeltme Çubuğu stratejisinin kod olmadan adım adım açıklaması:

  1. Fiyat verilerini indirin: Hisse senedi veya döviz çifti gibi istenen finansal araç için geçmiş fiyat verilerini edinin. Verileri almak için Python'daki yfinance gibi kitaplıkları kullanabilirsiniz.

  2. Üstel Hareketli Ortalamayı Hesaplayın (EMA): Belirli bir zaman dilimini kullanarak kapanış fiyatlarının EMA'sını hesaplayın. EMA, fiyat verilerindeki eğilimleri ve olası ters dönüşleri belirlemeye yardımcı olan yaygın olarak kullanılan bir göstergedir.

  3. Eğimi hesaplayın: Her veri noktasında EMA çizgisinin eğimini hesaplayın. Eğim, trendin yönünü ve gücünü gösterir. Eğimi hesaplamak için gradyan veya regresyon gibi matematiksel teknikleri kullanabilirsiniz.

  4. Parametreleri ayarla: Sinyal algılama için parametreleri tanımlayın. Huffman'ın Envanter Düzeltme Çubuğu stratejisinde, genellikle bir eğim limiti ve kuyruk yüzdesi limiti belirlersiniz. Eğim limiti, potansiyel bir sinyal için minimum eğim değerini belirlerken kuyruk yüzde limiti, üst veya alt kuyruğun olması gereken mum aralığının minimum yüzdesini belirler.

  5. Sinyalleri tanımlayın: Verileri yineleyin ve mevcut ve önceki eğimleri karşılaştırın. Her iki eğim de negatif eğim limitinin altındaysa, mevcut mumun alt kuyruğunun kuyruk yüzdesi limitinden büyük olup olmadığını kontrol edin. Eğer öyleyse, bunu bir yükseliş sinyali olarak işaretleyin. Benzer şekilde, her iki eğim de pozitif eğim limitinin üzerindeyse, mevcut mumun üst kuyruğunun kuyruk yüzdesi limitinden büyük olup olmadığını kontrol edin. Eğer öyleyse, düşüş sinyali olarak işaretleyin.

  6. Sinyalleri görselleştirin: Fiyat verilerinin bir tablosunu veya grafiğini oluşturun. Huffman'ın mumlarını görselleştirmek için grafikteki sinyalleri çizin. Grafiği oluşturmak ve sinyal noktalarını işaretlemek için Plotly veya Matplotlib gibi çizim kitaplıklarını kullanabilirsiniz.

Stratejinin bu adımlarla sınırlı olmadığını ve stratejiyi gereksinimlerinize ve alım satım tercihlerinize göre özelleştirebileceğinizi ve iyileştirebileceğinizi unutmayın. Ek olarak, zararı durdur emirleri belirleme veya pozisyon boyutlandırma gibi risk yönetimi tekniklerinin uygulanması, başarılı ticaret için çok önemlidir.

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

Python'da Ticaret Modelleri Nasıl Otomatikleştirilir | baş ve omuz modeli



Python'da Ticaret Modelleri Nasıl Otomatikleştirilir | baş ve omuz modeli

Python'da baş ve omuz kalıplarının algılanmasını otomatikleştirmek için metinde belirtilen algoritma adımlarını takip edebiliriz. Her adımın ayrıntılı bir açıklaması aşağıda verilmiştir:

  1. Pivot Noktalarını Algıla:

    • Bu adım, fiyat verilerinde komşu mumlardan daha yüksek veya daha düşük olan yüksek ve düşük değerleri belirlemeyi içerir.
    • İki tür pivot noktası algılanır: güçlü pivot noktaları ve zayıf pivot noktaları.
    • Güçlü pivot noktaları, çok çeşitli komşu mumlarla karşılaştırılırken, zayıf pivot noktaları daha az sayıda komşuyla karşılaştırılır.
  2. Pivot Noktalarını Görselleştirin:

    • Tespit edilen güçlü pivot noktaları ve zayıf pivot noktaları, bir mum grafiğinde işaretlenir.
    • Güçlü pivot noktaları, mumların üzerindeki mor noktalarla temsil edilirken, zayıf pivot noktaları, mumların altındaki kırmızı noktalarla temsil edilir.
  3. Baş ve Omuz Kalıbını Algıla:

    • Baş ve omuz modelini tespit etmek için, belirtilen aralıktaki mum kimliklerini yineleriz.
    • Her mum kimliği için, bunun bir pivot noktası (ne güçlü bir pivot ne de zayıf bir pivot) olup olmadığını kontrol eder ve ilerlemeye devam ederiz.
    • Güçlü bir pivot noktası bulunursa, maksimum ve minimumların koordinatlarını pivotun her iki tarafındaki bir mum penceresi içine kaydederiz.
    • Merkezi pivot mumundan önceki ve sonraki minimum ve maksimum sayılarını takip ediyoruz.
    • Her iki taraftaki minimum ve maksimumların sayısı birden azsa, desen oluşumu mümkün değildir ve bir sonraki muma geçilir.
    • Minimum ve maksimum sayıları koşulu karşılıyorsa, minimumlara doğrusal bir regresyon çizgisi uydurur ve eğimini ve kesişimini hesaplarız.
    • Argmax fonksiyonunu kullanarak maksimumlar içindeki başın indeksini buluyoruz.
    • Son olarak, baş ve omuzlar modelinin koşullarının karşılanıp karşılanmadığını kontrol ederiz:
      • Baş indeksinin maksimumu ile baştan önceki maksimum arasındaki fark bir eşikten daha büyük olmalıdır.
      • Kafa indeksinin maksimumu ile kafadan sonraki maksimum arasındaki fark da eşikten büyük olmalıdır.
      • Minimumların mutlak eğimi, bir eşikten küçük veya ona eşit olmalıdır.
    • Tüm koşullar karşılanırsa, bir baş ve omuz modeli saptadık.
Zararı durdur emirleri belirleme veya pozisyon boyutlandırma gibi risk yönetimi tekniklerini kullanmak, başarılı ticaret için çok önemlidir.
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Python'da Üçgen Fiyat Modeli Tespiti | Algoritmik Ticaret Göstergesi



Python'da Üçgen Fiyat Modeli Tespiti | Algoritmik Ticaret Göstergesi

Bu videoda, belirli algoritmalar kullanarak üçgen kalıplarının otomatik olarak algılanmasını keşfedeceğiz. Farklı fiyat hareketi üçgen şekillerini tespit etmek için basit bir yöntem sunacağız ve bunu forex verileri üzerinde test etmek için bir Python kodu yazacağız. Sonunda, sonuçları görselleştirmek için keşfedilen kalıpları çizeceğiz. Kodlama kısmıyla ilgileniyorsanız, video açıklamasında verilen bağlantıdan Python kodunu içeren Jupyter Notebook dosyasını indirebilirsiniz.

Üçgen kalıpları, ticaret stratejilerinde kullanıldıklarında tüccarlar için özellikle ilgi çekicidir. Örneğin, bazı tüccarlar üçgenlerin kırılmasını takas eder. Gösterilen örneklerde fiyat, kırılma yönünde gelecekteki bir trendi takip ediyor. Bir örnekte, fiyat düşüş trendinin ardından üçgen kenarlarından çıktı. Başka bir örnekte, fiyat bir yükseliş trendinin ardından üçgen kenarından çıktı. Her iki durumda da, kırılma eğilimi devam etti.

Yöntemin adımları şu şekildedir:

  1. Pivot noktalarını hesapla: Pivot noktaları, komşularından daha yüksek olan fiyat değerleridir. Pivot dipleri için, bir mumun dibi, kendisinden önceki ve sonraki belirli sayıda mumun diplerinden daha düşük olmalıdır. Pivot yüksekler için, bir mumun yüksekliği, öncesinde ve sonrasında belirtilen mum sayısının yüksekliğinden daha yüksek olmalıdır.

  2. Maksimumları ve minimumları doğrusal eğimlere sığdırın: Maksimumlar için, yüksek değerleri karşılaştırın ve yüksek değeri kendisinden önce ve sonra belirtilen mum sayısından daha yüksek olan merkezi bir mum arayın. Minimalar için, düşük değerleri karşılaştırın ve düşük değeri, kendisinden önce ve sonra belirtilen mum sayısından daha düşük olan merkezi bir mum arayın.

  3. Üçgen formlarını algıla: İstenen üçgen formuna bağlı olarak, maksimumların ve minimumların eğimlerine dayalı kalıpları tanımlayın. Örneğin, maksimum eğim negatif ve minimum eğim pozitif olduğunda yakınsak bir üçgen tespit edilebilir. Azalan bir üçgen, maksimum eğim negatif olduğunda ve minimum eğim sıfıra yakın veya yatay bir çizgi olduğunda tespit edilebilir.

Şimdi bu yöntemi uygulamak için kodu Python'da yazalım ve nasıl çalıştığını görelim. Jupyter Notebook dosyası, verileri içe aktarma, temizleme, pivot noktalarını hesaplama, pivot mumlarını görselleştirme ve üçgen modellerini algılama kodunu içerir. Veri işleme ve görselleştirme görevlerini yerine getirmek için Pandas, NumPy ve Plotly gibi kitaplıkları kullanıyoruz.

Gerekli kütüphaneleri ve verileri içe aktardıktan sonra, belirtilen sayıda komşuya göre pivot noktalarını belirlemek için "pivot_id" adlı bir işlev tanımlarız. Bu işlev, veri çerçevesine "pivot" adlı yeni bir sütun ekler ve mumun pivot düşük mü (1) yoksa pivot yüksek mi (2) olduğunu gösterir.

Ardından, mumları çizmek ve pivot durumlarına göre altlarına ve üstüne noktalar eklemek için "points_position" adlı bir işlev tanımlarız. Bu işlev, noktaların y koordinatlarını belirlemek için "point_position" sütununu kullanır.

Plotly kitaplığını kullanarak, sonuçları görselleştirmek için mumları ve pivot noktalarını çiziyoruz. Bu, pivot noktalarının doğru bir şekilde tanımlandığını doğrulamamızı sağlar.

Ardından, üçgen desenlerini algılamak için kodu uyguluyoruz. Belirli bir mum seçiyoruz ve o alanda bir üçgen deseni olup olmadığını kontrol etmek için belirli sayıda mumu tarıyoruz. Mumları yineliyoruz ve maksimumların ve minimumların koordinatlarını ayrı NumPy dizilerinde saklıyoruz. Daha sonra lineer regresyon kullanarak bu noktaları lineer eğimlere uydurur ve maksimumlar ve minimumlar için eğimleri hesaplarız.

Üçgen modelini görselleştirmek için mumları, pivot noktalarını ve maksimumların ve minimumların eğimlerini çiziyoruz. Korelasyon faktörleri (r_min ve r_max) gibi üçgenin şekli için tanımlanan koşulları kontrol ederek bir üçgen deseninin mevcut olup olmadığını belirleyebiliriz. Koşullar karşılanırsa, arsa üzerinde üçgen desenini işaretliyoruz.

Son olarak, veri kümesindeki tüm mumları yineliyoruz ve üçgen kalıplarını algılama sürecini tekrarlıyoruz. Her model bulunduğunda, üçgenin koordinatlarını daha sonra görselleştirme için ayrı listelerde saklarız.

Kodun sonunda mumları, pivot noktalarını ve algılanan üçgen modellerini çizmek için Plotly'yi kullanırız. Bu, fiyat verilerinde tanımlanan üçgenlerin görsel bir temsilini sağlar.

Kodu çalıştırıp çizimi inceleyerek tespit edilen üçgen desenlerini görebilir ve şekillerini analiz edebiliriz. Bu bilgi, üçgen modellerini ticaret stratejilerine dahil etmek isteyen tüccarlar için yararlı olabilir.

Jupyter Notebook dosyasında sağlanan kodun, üçgen kalıplarını algılamanın olası uygulamalarından yalnızca biri olduğunu unutmayın. Bu soruna yaklaşmanın çeşitli yolları vardır ve farklı algoritmaları keşfedebilir veya mevcut kodu kendi özel gereksinimlerinize uyacak şekilde değiştirebilirsiniz.

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

Python AlgoTrading Arka Testi: Alış/Satış Sinyalleri için RSI ve ADX'i Hareketli Ortalama ile Kullanma



Python AlgoTrading Arka Testi: Alış/Satış Sinyalleri için RSI ve ADX'i Hareketli Ortalama ile Kullanma

Herkese merhaba! Bu videoda, Ortalama Yön İndeksi (ADX) ve Göreceli Güç Göstergesi (RSI) ile diğer doğrulama göstergelerini temel alan bir şekillendirme stratejisinin ayrıntılı bir testini yapacağız. Bu strateji, ölçeklendirme için karlı bir yaklaşım olarak ilan edilir. Tarif edeceğimiz algoritma tarafından otomatik olarak oluşturulan fiyat tablosundaki kırmızı okların hemen altında bulunan mor noktalara odaklanacağız.

Bu özel örnekte, mor noktalar satış sinyallerini temsil ediyor ve bu sinyallerin ardından fiyat düşüşünün geldiğini belirtmekte fayda var. Bu, bu sinyaller alım satımların kazanılmasıyla sonuçlandığından, bu stratejinin umut vaat ettiğini gösteriyor. Kodlama yönünü daha derinlemesine incelemek için, bir Jupyter Notebook dosyası olan Python kodunu açıklamada verilen bağlantıdan indirebilirsiniz.

Amacımız, Python'da ticaret kurmamıza, kodu çalışır durumda bırakmamıza ve uyurken potansiyel olarak kar etmemize olanak tanıyan otomatik bir şekillendirme stratejisi geliştirmektir. Ancak, başarıya ulaşmanın başlangıçta göründüğü kadar basit olmayabileceğini kabul etmek önemlidir.

Bu belirli strateji için önerildiği gibi, beş dakikalık zaman diliminde test etmeye başlayacağız. Fiyat eğilimini belirlemek için 50 Üssel Hareketli Ortalamayı (EMA) kullanacağız. Fiyat bu eğrinin üzerinde işlem görüyorsa, bu bir yükselişe işaret eder ve yalnızca alım pozisyonlarına odaklanacağız. Tersine, fiyat 50 EMA'nın altında işlem görüyorsa, bu bir düşüş trendine işaret eder ve biz yalnızca satış pozisyonlarını dikkate alırız.

Ek olarak, RSI'yı 3 periyodu ve 20 ve 80 olarak ayarlanmış tetik seviyeleri ile birleştireceğiz. RSI 20'nin altına düştüğünde, piyasanın aşırı satıldığını ve bir satın alma sinyalini tetiklediğini gösterir. Tersine, RSI 80'i aştığında, piyasanın aşırı alım yaptığını gösterir ve bu da bir satış sinyali ile sonuçlanır.

Stratejimiz aynı zamanda beş periyotlu Ortalama Yön Endeksini (ADX) de içermektedir. ADX 30'u aşarsa, hem yükseliş trendleri hem de düşüş trendleri için bir onay endeksi görevi gören güçlü bir trendi gösterir. Her iki durumda da, 30'un üzerindeki seviyeleri arıyoruz.

Tüm bu koşullar yerine getirildiğinde, sinyalimizin ilk kısmı üretilir. Bu sinyali daha fazla doğrulamak için, özellikle trendle uyumlu yutan bir mum arayan bir mum paterni yaklaşımı kullanacağız. Eğilim yukarı ise, yukarı yönlü yutan bir mum arayacağız; trend aşağı yönlü ise, aşağı yönlü yutan bir mum arayacağız.

Neyse ki, tüm bu göstergeler Python'da otomatikleştirilebilir ve geçmiş veriler üzerinde test edilebilir. Kullanacağımız örnek veri setinden rastgele seçilmiştir. İlk gözlemler olumlu sinyaller veriyor, çünkü satış sinyallerini genellikle fiyatta bir düşüş takip ederken, satın alma sinyallerini genellikle fiyatta bir artış takip ediyor.

Bu stratejiyi nihai teste tabi tutmak için, geriye dönük test yapmak ve sonuçların uygulanabilirliğini belirlemesine izin vermek için Python'u kullanacağız. EUR/USD döviz çifti için 2019'dan 2022'ye kadar olan geçmiş verilerini, özellikle beş dakikalık şamdanlar kullanarak içe aktaracağız. Ayrıca, hafta sonları ve resmi tatiller gibi ticari faaliyetin olmadığı dönemleri kaldırarak verileri temizleyeceğiz.

Pandas TA (Teknik Analiz) paketini kullanarak, veri çerçevemize dört ek sütun ekleyeceğiz: 50 EMA, 3 periyotlu RSI, 5 periyotlu ADX ve Ortalama Gerçek Aralık (ATR). İkincisi, stop-loss mesafesini hesaplamak için kullanılacaktır. EMA trend sinyali, mumların 50 EMA eğrisinin altında mı yoksa üstünde mi işlem yaptığını gösterecek ve sırasıyla düşüş trendinde mi yoksa yükseliş trendinde mi olduğumuzu belirleyecektir.

Düşüş trendindeysek, RSI'nın aşırı satım durumunu gösteren 20'nin altında olup olmadığını kontrol edeceğiz. Hem düşüş trendi hem de aşırı satış koşulları karşılanırsa, bir satış sinyali üreteceğiz.

Benzer şekilde, eğer bir yükseliş trendindeysek, RSI'nin aşırı alım durumuna işaret eden 80'in üzerinde olup olmadığını kontrol edeceğiz. Hem yükseliş trendi hem de aşırı alım koşulları karşılanırsa, bir satın alma sinyali üreteceğiz.

Bu sinyalleri daha fazla doğrulamak için, trendle uyumlu yutucu mum kalıplarını arayacağız. Bir satış sinyali için, mevcut mumun gövdesinin önceki mumun gövdesini aşağı yönde tamamen sardığı, aşağı yönlü yutan bir mum arayacağız. Bir satın alma sinyali için, mevcut mumun gövdesinin önceki mumun gövdesini yukarı yönde tamamen sardığı boğa yutan bir mum arayacağız.

Sinyaller üretildikten sonra, Ortalama Gerçek Aralık'ı (ATR) kullanarak zararı durdurma mesafesini hesaplayacağız. ATR, makul bir stop-stop seviyesi belirlememize yardımcı olabilecek, belirli bir süre boyunca ortalama fiyat aralığının bir tahminini sağlar.

Geriye dönük test aşamasında, geçmiş verileri yineleyeceğiz ve alım satım sinyallerini oluşturmak ve değerlendirmek için bu kuralları uygulayacağız. Her sinyal için, sinyal oluşturulduktan sonra bir sonraki mumun açılış fiyatından pozisyona girdiğimizi varsayarak bir ticaret simüle edeceğiz. Ayrıca, belirli bir ödül-risk oranına dayalı olarak sabit bir kâr alma düzeyi tanımlayacağız.

Simülasyon sırasında, her işlem için kâr veya zararı takip edeceğiz ve toplam kâr, toplam kayıp, kazanma oranı ve işlem başına ortalama getiri gibi temel performans ölçütlerini hesaplayacağız. Bu, stratejinin etkinliğini değerlendirmemize ve karlılığını belirlememize yardımcı olacaktır.

Geçmiş veriler üzerinde geriye dönük test sonuçlarının gelecekteki performansı garanti etmediğini unutmamak önemlidir. Piyasa koşulları değişebilir ve geçmişte iyi işleyen stratejiler gelecekte aynı derecede etkili olmayabilir. Bu nedenle, ticaret stratejilerini gerçek zamanlı piyasa koşullarına göre sürekli olarak değerlendirmek ve uyarlamak çok önemlidir.

Sonuç olarak, Ortalama Yön Endeksi (ADX), Göreceli Güç Göstergesi (RSI) ve yutan mum modellerine dayalı bir şekillendirme stratejisi belirledik. Python kullanarak bu stratejiyi otomatikleştirme ve geçmiş veriler üzerinde geriye dönük test yapma sürecini tartıştık. Geriye dönük testin sonuçları, stratejinin performansına ilişkin öngörüler sağlayacak ve ölçeklendirme için karlı bir yaklaşım olarak uygulanabilirliğinin değerlendirilmesine yardımcı olacaktır.

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

Python'da Ticaret Stratejisi Analizi İçin Hacim Göstergesi Nasıl Kullanılır?


Python'da Ticaret Stratejisi Analizi İçin Hacim Göstergesi Nasıl Kullanılır?

Bugün, hacimli ticaret stratejisini test ederken heyecan verici bir yolculuğa çıkıyoruz. Bu özel strateji, günlük zaman çerçevesinde çalışır ve teoride minimum risk içerdiğinden güvenliği ile bilinir. Hacme ve diğer teknik göstergelere dayanması nedeniyle uygun bir şekilde "Hacimli Ticaret Stratejisi" adını verdim.

Amacımız, 18 yıla kadar uzanan geçmiş verileri kullanarak bu stratejiyi otomatik olarak test edebilen bir kod geliştirmektir. Bunu yaparak, stratejinin performansını kapsamlı bir şekilde anlayabiliriz. Kodlama yönüyle ilgilenenler için Jupyter Notebook Python dosyasını video açıklamasında bulabilirsiniz. Bu test için kullanacağımız dosyanın tamamını indirebileceğiniz bir bağlantı var.

Başlamak için, ilk göstergemiz olarak 200 günlük üstel hareketli ortalamayı (EMA) kullanacağız. Fiyat bu eğrinin altında işlem görüyorsa, bu bir düşüş trendini gösterirken, 200 EMA'nın üzerinde işlem yapmak bir yükseliş trendini gösterir. İlk kuralımız çok açık: Bir düşüş trendi belirlediğimizde sadece satış pozisyonlarını dikkate alacağız ve bir yükseliş trendi olması durumunda sadece alım pozisyonlarına odaklanacağız.

Şimdi, stratejimizin ayrıntılarını inceleyelim. Mevcut trendin tersine hareket eden ardışık dört mum arıyor olacağız, yani fiyatı hareketli ortalamaya yaklaştıracağız. Mum sayısının kullanıcının tercihine göre ayarlanabileceğini unutmamak önemlidir. Jupyter Not Defterimizde, bu parametreyi herhangi bir zamanda değiştirme esnekliği sağladık. Şimdilik en az dört mum kullanacağız.

Ardından, trendin yönü ile aynı hizada olması gereken aşağıdaki mumu inceliyoruz. Örneğin, düşüş trendindeysek, düşüş mumu ararız. İşlem gününün sonunda mum kapandıktan sonra hacmini kontrol ederiz. Hacim önceki mumun hacmini aşarsa, düşüş trendinde satış sinyali görevi görür. Tersine, bir yükseliş trendinde, önceki mumdan daha yüksek hacimli bir yükseliş mumu tarafından takip edilen en az dört ardışık düşüş mumu ararız. Bu bir satın alma pozisyonunu ifade eder.

Şimdi karmaşık kısım geliyor: zararı durdur ve karı al seviyelerini belirlemek. Bu videoda iki farklı yaklaşımı inceliyor ve sonuçlarını değerlendiriyoruz. İlk yöntem, satış veya alış pozisyonlarımızdan ATR'nin iki veya üç katı gibi, Ortalama Gerçek Aralık (ATR) ile ilgili bir zararı durdurma mesafesi kullanmayı içerir. İkinci yöntem, önceki birkaç mum arasındaki en yüksek seviyeyi düşüş trendi ve satış pozisyonu için zararı durdur olarak kabul eder. Kaybı durdurmak için dikkate alınması gereken mum sayısı, Python programımızdaki bir değişkendir ve farklı senaryoları denememize ve test etmemize olanak tanır. Tipik olarak, ticaret sinyallerimizi kontrol etmek için kullanılan sayıya benzer dört mumla başlarım. Bir yükseliş trendi ve satın alma pozisyonu için, önceki birkaç mum arasında en düşük seviyeyi arıyoruz.

Şimdi kodu inceleyelim ve hep birlikte nasıl çalıştığını görelim. Jupyter Notebook dosyamızda, 2003'ten 2022'ye kadar günlük EUR/USD döviz kurlarını içeren CSV veri dosyasını okumak için kullanacağımız Pandalar da dahil olmak üzere gerekli kitaplıkları içe aktararak başlıyoruz. Ek olarak, diğer varlıklar için veri yüklüyoruz. Bu stratejiyi borsada da test etmeyi planladığımız için Amazon, eBay ve Volkswagen hisse senetleri. Günlük verilerle çalıştığımız için, ilk veri seti 6.858 satırdan oluşuyor ve bu satır, veri temizleme işlemi sırasında daha da azaltılacak. Ayrıca, farklı veri dosyalarında tutarlılık için "Zaman", "Açık", "Yüksek", "Düşük", "Kapanış" ve "Hacim" olarak yeniden adlandırarak sütun başlıklarının gereksinimlerimizle uyumlu olmasını sağlıyoruz.

Grafikteki sinyalleri çizdikten sonra, zararı durdur ve kârı al seviyelerimizi tanımlamaya geçiyoruz. Bu örnekte, iki yöntem test edilmektedir. İlk yöntem, kayıp durdurma mesafesini belirlemek için Ortalama Gerçek Aralık'ın (ATR) kullanılmasını içerir. Stoploss, giriş noktasından itibaren ATR'nin belirli bir katına ayarlanır. İkinci yöntem, zararı durdur seviyesini belirlemek için belirli sayıda önceki mumlar arasında satış pozisyonları için en yüksek tepeyi veya alım pozisyonları için en düşük seviyeyi dikkate alır.

Zararı durdur ve kârı al seviyeleri tanımlandıktan sonra, her işlem için kâr ve zararı (P&L) hesaplarız. Toplam sinyalin bir alım veya satım sinyali olup olmadığını kontrol eder ve buna göre Kâr ve Zararı hesaplarız. Bu bir satın alma sinyaliyse, K&Z'yi bir sonraki mumun kapanış fiyatı ile giriş fiyatı arasındaki fark olarak hesaplarız. Bu bir satış sinyaliyse, K&Z'yi bir sonraki mumun giriş fiyatı ile kapanış fiyatı arasındaki fark olarak hesaplarız.

Kümülatif K&Z daha sonra bireysel ticari K&Z'ler toplanarak hesaplanır. Pozitif P&L'lere dayalı olarak toplam işlem sayısını ve kazanma oranını (kazanan işlemlerin yüzdesi) de hesaplıyoruz.

Son olarak, toplam P&L, işlem sayısı ve kazanma oranı dahil olmak üzere sonuçları yazdırıyoruz.

Jupyter Notebook'ta sağlanan kod, stratejinin daha fazla özelleştirilmesine ve test edilmesine olanak tanır. Trend belirleme için dikkate alınacak arka mum sayısı, fiyat sinyali üretimi için önceki mum sayısı, zararı durdurma hesaplaması için ATR'nin katı ve zararı durdurma seviyesi belirlemesi için dikkate alınacak önceki mum sayısı gibi parametreleri değiştirebilirsiniz.

Kod, 200 günlük Üstel Hareketli Ortalama (EMA), hacim ve fiyat hareketleri gibi teknik göstergelere dayalı bir hacim ticareti stratejisi uygular. Stratejiyi, belirli bir tarihsel veri dönemi boyunca test eder ve karlılık ve performans ölçütlerini hesaplar.

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
 

Python'da Test Edilen Otomatik RSI Scalping Stratejisi



Python'da Test Edilen Otomatik RSI Scalping Stratejisi

Bugün, RSI'ye (Göreceli Güç Endeksi) dayalı bir ölçeklendirme stratejisini test edeceğiz. Strateji iki gösterge içerir: Üstel Hareketli Ortalama (EMA) ve RSI. Video açıklamasında verilen bağlantıdan indirebileceğiniz Python kodunu kullanarak geriye dönük test yapacağız.

Geriye dönük test için, stratejinin farklı zaman dilimlerine dayalı üç farklı versiyonunu kullanacağız: biri bir dakikalık mumlar için, diğeri 15 dakikalık mumlar için ve üçüncüsü bir saatlik mumlar için. Bu videonun odak noktası 15 dakikalık zaman dilimi olacak, ancak üç versiyonu da ele alacağız.

Strateji belirli kurallara uyar. İlk olarak, mevcut fiyatı 200 EMA'ya göre analiz ediyoruz. Fiyat 200 EMA'nın üzerinde işlem görüyorsa, bunu bir yükseliş olarak değerlendiriyoruz. Tersine, fiyat 200 EMA'nın altında işlem görüyorsa, bunu bir düşüş trendi olarak değerlendiriyoruz. Yükseliş trendinde sadece alış pozisyonları, düşüş trendinde ise sadece satış pozisyonları aranır.

Ardından, birbirini izleyen iki mumun RSI değerlerini inceliyoruz. Başlangıçta, bir dakikalık zaman çerçevesi için iki mumlu bir RSI kullanıyoruz. Bununla birlikte, bir dakikalık mumlarla birkaç yıl boyunca geriye dönük test yapmak çok büyük miktarda veri üreteceğinden, 15 dakikalık zaman çerçevesiyle başlayacağız. Bu durumda, zaman dilimine bağlı olarak RSI uzunluğunu üç veya dört mum olarak ayarlayabiliriz. Bir dakikalık zaman çerçevesi için, iki mumlu bir RSI kullanacağız ve 10'un altında ve 90'ın üzerindeki seviyeleri test edeceğiz.

Bir yükseliş trendinde, bir satın alma pozisyonu gerçekleştirmeden önce RSI'nın 10'un altına düşmesini bekleriz. Satış pozisyonları için RSI'nın 90'ın üzerine çıkmasını bekliyoruz. Bu RSI seviyeleri, alım satımlarımız için giriş noktaları görevi görüyor. Video, stratejinin fiyat ve RSI kriterlerine göre giriş konumlarını nasıl belirlediğine dair görsel örnekler sunar.

Bir sonraki adım, işlemler için zararı durdur ve kar al değerlerini belirlemektir. Sabit mesafe stop-loss, ATR ile ilgili durma mesafesi veya takip eden durma değerleri gibi çeşitli yöntemler kullanılabilir. Benzer şekilde, kârı al sabit bir mesafeye ayarlanabilir veya belirli bir kârı al/zararı durdur oranı ile zararı durdur mesafesiyle ilişkilendirilebilir.

Stratejinin etkinliğini değerlendirmek için, bir ila üç yıllık veriler üzerinde geriye dönük test yapmak üzere Python kodu yazıyoruz. Ek olarak, önyargıyı önlemek için ayrı tutulan yeni veriler üzerinde test ederek stratejinin sağlamlığını kontrol etmek için bir adım sunuyoruz.

Video, bir Jupyter Not Defterindeki kodu analiz etmeye devam ediyor. Verileri yükleyerek, sıfır hacimli girişleri kaldırarak (hafta sonlarını veya resmi tatilleri gösteren) temizleyerek ve 200 EMA ve RSI değerlerini hesaplayarak başlar. Ortalama Gerçek Aralık (ATR) ayrıca potansiyel kayıp durdurma mesafesi tespiti için hesaplanır.

Gerekli sinyaller hesaplandıktan sonra, video bu sinyallerin görselleştirilmesini bir grafik üzerinde gösterir. Göstergelerin davranışını görsel olarak analiz etmek için fiyat mumları, 200 EMA eğrisi ve giriş pozisyonları (alış ve satış) çizilir.

Sinyalleri analiz ettikten sonra video, karlılığını değerlendirmek için stratejiyi uzun bir süre boyunca geriye dönük olarak test etmenin önemini açıklıyor. Başlangıçta, strateji daha kısa sürelerde test edildi, ancak sonuç değişiklik gösterdi. Bu nedenle, stratejinin genel etkinliğini değerlendirmek için daha uzun bir süre boyunca geriye dönük testler yapmak çok önemlidir.

Video, önemli bir süre boyunca stratejinin performansını geriye dönük test etme ve kontrol etme ihtiyacını vurgulamaktadır. Geriye dönük testin nihai sonuçlarını inceleyerek, stratejinin karlı ve sağlam olup olmadığını belirleyebiliriz.

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...
Neden: