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)

כתב ויתור

המידע והפרסומים אינם אמורים להיות, ואינם מהווים, עצות פיננסיות, השקעות, מסחר או סוגים אחרים של עצות או המלצות שסופקו או מאושרים על ידי TradingView. קרא עוד בתנאים וההגבלות.