Bollinger band ve super trend ile oluşturulmuş bir indikatör

110
import pandas as pd
import numpy as np

# Super Trend hesaplama fonksiyonu
def calculate_super_trend(data, atr_period, multiplier):
tr = data['High'] - data['Low']
atr = tr.rolling(atr_period).mean()
super_trend_upper = data['High'] - (multiplier * atr)
super_trend_lower = data['Low'] + (multiplier * atr)
data['SuperTrend'] = (super_trend_upper + super_trend_lower) / 2
return data

# Bollinger Bands hesaplama fonksiyonu
def calculate_bollinger_bands(data, window, num_std_dev):
rolling_mean = data['Close'].rolling(window=window).mean()
rolling_std = data['Close'].rolling(window=window).std()
data['BollingerUpper'] = rolling_mean + (rolling_std * num_std_dev)
data['BollingerLower'] = rolling_mean - (rolling_std * num_std_dev)
return data

# Veriyi yükle
data = pd.read_csv('your_data.csv')
data['Date'] = pd.to_datetime(data['Date'])
data.set_index('Date', inplace=True)

# Super Trend ve Bollinger Bands hesaplama
atr_period = 14
multiplier = 1.0
bollinger_window = 20
num_std_dev = 2.0

data = calculate_super_trend(data, atr_period, multiplier)
data = calculate_bollinger_bands(data, bollinger_window, num_std_dev)

# Al-Sat kararları
data['Buy_Signal'] = np.where(data['Close'] > data['SuperTrend'], 1, 0)
data['Sell_Signal'] = np.where(data['Close'] < data['SuperTrend'], -1, 0)
data['Buy_Signal'] = np.where(data['Close'] > data['BollingerUpper'], 1, data['Buy_Signal'])
data['Sell_Signal'] = np.where(data['Close'] < data['BollingerLower'], -1, data['Sell_Signal'])

# Al-Sat sinyallerini birleştirme
data['Signal'] = data['Buy_Signal'] + data['Sell_Signal']

# Veriyi gösterme
print(data)

Feragatname

Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.