本文整理汇总了Python中talib.abstract.SMA属性的典型用法代码示例。如果您正苦于以下问题:Python abstract.SMA属性的具体用法?Python abstract.SMA怎么用?Python abstract.SMA使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类talib.abstract
的用法示例。
在下文中一共展示了abstract.SMA属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: resample
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def resample( dataframe, interval, factor):
# defines the reinforcement logic
# resampled dataframe to establish if we are in an uptrend, downtrend or sideways trend
df = dataframe.copy()
df = df.set_index(DatetimeIndex(df['date']))
ohlc_dict = {
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last'
}
df = df.resample(str(int(interval[:-1]) * factor) + 'min', plotoschow=ohlc_dict)
df['resample_sma'] = ta.SMA(df, timeperiod=25, price='close')
df = df.drop(columns=['open', 'high', 'low', 'close'])
df = df.resample(interval[:-1] + 'min')
df = df.interpolate(method='time')
df['date'] = df.index
df.index = range(len(df))
dataframe = merge(dataframe, df, on='date', how='left')
return dataframe
示例2: resample
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def resample(self, dataframe, interval, factor):
# defines the reinforcement logic
# resampled dataframe to establish if we are in an uptrend, downtrend or sideways trend
df = dataframe.copy()
df = df.set_index(DatetimeIndex(df['date']))
ohlc_dict = {
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last'
}
df = df.resample(str(int(interval[:-1]) * factor) + 'min',
label="right").agg(ohlc_dict).dropna(how='any')
df['resample_sma'] = ta.SMA(df, timeperiod=25, price='close')
df = df.drop(columns=['open', 'high', 'low', 'close'])
df = df.resample(interval[:-1] + 'min')
df = df.interpolate(method='time')
df['date'] = df.index
df.index = range(len(df))
dataframe = merge(dataframe, df, on='date', how='left')
return dataframe
示例3: resample
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def resample(self, dataframe, interval, factor):
# defines the reinforcement logic
# resampled dataframe to establish if we are in an uptrend, downtrend or sideways trend
df = dataframe.copy()
df = df.set_index(DatetimeIndex(df['date']))
ohlc_dict = {
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last'
}
df = df.resample(str(int(interval[:-1]) * factor) + 'min',
label="right").agg(ohlc_dict).dropna(how='any')
df['resample_sma'] = ta.SMA(df, timeperiod=50, price='close')
df = df.drop(columns=['open', 'high', 'low', 'close'])
df = df.resample(interval[:-1] + 'min')
df = df.interpolate(method='time')
df['date'] = df.index
df.index = range(len(df))
dataframe = merge(dataframe, df, on='date', how='left')
return dataframe
示例4: populate_indicators
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
macd = ta.MACD(dataframe)
dataframe['macd'] = macd['macd']
dataframe['macdsignal'] = macd['macdsignal']
dataframe['macdhist'] = macd['macdhist']
dataframe['tema'] = ta.TEMA(dataframe, timeperiod=9)
dataframe['sma_200'] = ta.SMA(dataframe, timeperiod=200)
dataframe['sma_50'] = ta.SMA(dataframe, timeperiod=200)
dataframe['adx'] = ta.ADX(dataframe)
# required for graphing
bollinger = qtpylib.bollinger_bands(dataframe['close'], window=20, stds=2)
dataframe['bb_lowerband'] = bollinger['lower']
dataframe['bb_middleband'] = bollinger['mid']
dataframe['bb_upperband'] = bollinger['upper']
return dataframe
示例5: resample
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def resample(self, dataframe, interval, factor):
# defines the reinforcement logic
# resampled dataframe to establish if we are in an uptrend, downtrend or sideways trend
df = dataframe.copy()
df = df.set_index(DatetimeIndex(df['date']))
ohlc_dict = {
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last'
}
df = df.resample(str(int(interval[:-1]) * factor) + 'min', label="right").agg(ohlc_dict)
df['resample_sma'] = ta.SMA(df, timeperiod=100, price='close')
df['resample_medium'] = ta.SMA(df, timeperiod=50, price='close')
df['resample_short'] = ta.SMA(df, timeperiod=25, price='close')
df['resample_long'] = ta.SMA(df, timeperiod=200, price='close')
df = df.drop(columns=['open', 'high', 'low', 'close'])
df = df.resample(interval[:-1] + 'min')
df = df.interpolate(method='time')
df['date'] = df.index
df.index = range(len(df))
dataframe = merge(dataframe, df, on='date', how='left')
return dataframe
示例6: populate_indicators
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['maShort'] = ta.EMA(dataframe, timeperiod=8)
dataframe['maMedium'] = ta.EMA(dataframe, timeperiod=21)
##################################################################################
# required for graphing
bollinger = qtpylib.bollinger_bands(dataframe['close'], window=20, stds=2)
dataframe['bb_lowerband'] = bollinger['lower']
dataframe['bb_upperband'] = bollinger['upper']
dataframe['bb_middleband'] = bollinger['mid']
dataframe_long = resample_to_interval(dataframe, timeframe_to_minutes(self.ticker_interval) * 12)
dataframe_long['sma'] = ta.SMA(dataframe_long, timeperiod=50, price='close')
dataframe = resampled_merge(dataframe, dataframe_long, fill_na=True)
return dataframe
示例7: populate_indicators
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['rsi'] = numpy.nan_to_num(ta.RSI(dataframe, timeperiod=5))
rsiframe = DataFrame(dataframe['rsi']).rename(columns={'rsi': 'close'})
dataframe['emarsi'] = numpy.nan_to_num(ta.EMA(rsiframe, timeperiod=5))
dataframe['adx'] = numpy.nan_to_num(ta.ADX(dataframe))
dataframe['minusdi'] = numpy.nan_to_num(ta.MINUS_DI(dataframe))
minusdiframe = DataFrame(dataframe['minusdi']).rename(columns={'minusdi': 'close'})
dataframe['minusdiema'] = numpy.nan_to_num(ta.EMA(minusdiframe, timeperiod=25))
dataframe['plusdi'] = numpy.nan_to_num(ta.PLUS_DI(dataframe))
plusdiframe = DataFrame(dataframe['plusdi']).rename(columns={'plusdi': 'close'})
dataframe['plusdiema'] = numpy.nan_to_num(ta.EMA(plusdiframe, timeperiod=5))
dataframe['lowsma'] = numpy.nan_to_num(ta.EMA(dataframe, timeperiod=60))
dataframe['highsma'] = numpy.nan_to_num(ta.EMA(dataframe, timeperiod=120))
dataframe['fastsma'] = numpy.nan_to_num(ta.SMA(dataframe, timeperiod=120))
dataframe['slowsma'] = numpy.nan_to_num(ta.SMA(dataframe, timeperiod=240))
dataframe['bigup'] = dataframe['fastsma'].gt(dataframe['slowsma']) & ((dataframe['fastsma'] - dataframe['slowsma']) > dataframe['close'] / 300)
dataframe['bigdown'] = ~dataframe['bigup']
dataframe['trend'] = dataframe['fastsma'] - dataframe['slowsma']
dataframe['preparechangetrend'] = dataframe['trend'].gt(dataframe['trend'].shift())
dataframe['preparechangetrendconfirm'] = dataframe['preparechangetrend'] & dataframe['trend'].shift().gt(dataframe['trend'].shift(2))
dataframe['continueup'] = dataframe['slowsma'].gt(dataframe['slowsma'].shift()) & dataframe['slowsma'].shift().gt(dataframe['slowsma'].shift(2))
dataframe['delta'] = dataframe['fastsma'] - dataframe['fastsma'].shift()
dataframe['slowingdown'] = dataframe['delta'].lt(dataframe['delta'].shift())
return dataframe
示例8: analyze
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def analyze(self, historical_data, period_count=15):
"""Performs a SMA analysis on the historical data
Args:
historical_data (list): A matrix of historical OHCLV data.
period_count (int, optional): Defaults to 15. The number of data points to consider for
our simple moving average.
Returns:
pandas.DataFrame: A dataframe containing the indicators and hot/cold values.
"""
dataframe = self.convert_to_dataframe(historical_data)
sma_values = abstract.SMA(dataframe, period_count).to_frame()
sma_values.dropna(how='all', inplace=True)
sma_values.rename(columns={0: 'sma'}, inplace=True)
return sma_values
示例9: ema
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def ema(dataframe, period, field='close'):
import talib.abstract as ta
return ta.EMA(dataframe, timeperiod=period, price=field)
# HT_TRENDLINE Hilbert Transform - Instantaneous Trendline
# KAMA Kaufman Adaptive Moving Average
# MA Moving average
# MAMA MESA Adaptive Moving Average
# MAVP Moving average with variable period
# MIDPOINT MidPoint over period
# MIDPRICE Midpoint Price over period
# SAR Parabolic SAR
# SAREXT Parabolic SAR - Extended
# SMA Simple Moving Average
示例10: osc
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def osc(dataframe, periods=14) -> ndarray:
"""
1. Calculating DM (i).
If HIGH (i) > HIGH (i - 1), DM (i) = HIGH (i) - HIGH (i - 1), otherwise DM (i) = 0.
2. Calculating DMn (i).
If LOW (i) < LOW (i - 1), DMn (i) = LOW (i - 1) - LOW (i), otherwise DMn (i) = 0.
3. Calculating value of OSC:
OSC (i) = SMA (DM, N) / (SMA (DM, N) + SMA (DMn, N)).
:param dataframe:
:param periods:
:return:
"""
df = dataframe
df['DM'] = (df['high'] - df['high'].shift()).apply(lambda x: max(x, 0))
df['DMn'] = (df['low'].shift() - df['low']).apply(lambda x: max(x, 0))
return Series.rolling_mean(df.DM, periods) / (
Series.rolling_mean(df.DM, periods) + Series.rolling_mean(df.DMn, periods))
示例11: populate_indicators
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
Adds several different TA indicators to the given DataFrame
Performance Note: For the best performance be frugal on the number of indicators
you are using. Let uncomment only the indicator you are using in your strategies
or your hyperopt configuration, otherwise you will waste your memory and CPU usage.
"""
# MFI
dataframe['mfi'] = ta.MFI(dataframe)
# Stoch fast
stoch_fast = ta.STOCHF(dataframe)
dataframe['fastd'] = stoch_fast['fastd']
dataframe['fastk'] = stoch_fast['fastk']
# RSI
dataframe['rsi'] = ta.RSI(dataframe)
# Inverse Fisher transform on RSI, values [-1.0, 1.0] (https://goo.gl/2JGGoy)
rsi = 0.1 * (dataframe['rsi'] - 50)
dataframe['fisher_rsi'] = (numpy.exp(2 * rsi) - 1) / (numpy.exp(2 * rsi) + 1)
# Bollinger bands
bollinger = qtpylib.bollinger_bands(qtpylib.typical_price(dataframe), window=20, stds=2)
dataframe['bb_lowerband'] = bollinger['lower']
# EMA - Exponential Moving Average
dataframe['ema5'] = ta.EMA(dataframe, timeperiod=5)
dataframe['ema10'] = ta.EMA(dataframe, timeperiod=10)
dataframe['ema50'] = ta.EMA(dataframe, timeperiod=50)
dataframe['ema100'] = ta.EMA(dataframe, timeperiod=100)
# SAR Parabol
dataframe['sar'] = ta.SAR(dataframe)
# SMA - Simple Moving Average
dataframe['sma'] = ta.SMA(dataframe, timeperiod=40)
return dataframe
示例12: populate_indicators
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# SMA - Simple Moving Average
dataframe['fastMA'] = ta.SMA(dataframe, timeperiod=14)
dataframe['slowMA'] = ta.SMA(dataframe, timeperiod=28)
return dataframe
示例13: populate_indicators
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['adx'] = ta.ADX(dataframe, timeperiod=14)
dataframe['short'] = ta.SMA(dataframe, timeperiod=3)
dataframe['long'] = ta.SMA(dataframe, timeperiod=6)
return dataframe
示例14: algo_action
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def algo_action(self):
# type: () -> object
#数据转换,方便调用ta-lib函数进行技术指标的计算,这里用SMA指标
close = np.asarray(self.close_buffer)
ma = SMA({'close':close}, timeperiod=self.timeperiod)
delta = round(close[-1] - ma[-1],4) # 最新数据点,bar的收盘价跟ma的差
last_ma = round(ma[-1], 4) # 均线ma的最新值
momentum = round(self.last_price - last_ma,4) # 当前最新价格跟ma之间的差,成交价相对ma偏离
cross = (close[-1] - ma[-1]) * (close[-3] - ma[-3]) < 0 ## 判断有否交叉
#print 'close: ', close
print(('close ma delta: {0}, last_ma: {1}, momentum: {2}'.format(delta, last_ma, momentum)))
b_p = self.get_position(self.exchange, self.sec_id, OrderSide_Bid) #查询策略所持有的多仓
# 打印持仓信息
print(('pos long: {0} vwap: {1:.2f}'.format(b_p.volume if b_p else 0.0, b_p.vwap if b_p else 0.0)))
if cross < 0 and delta > threshold and momentum >= significant_diff: ## 收盘价上穿均线,且当前价格偏离满足门限过滤条件,多信号
# 没有超出下单次数限制
if self.trade_count < self.trade_limit:
# 依次获取下单的交易量,下单量是配置的一个整数数列,用于仓位管理,可用配置文件中设置
vol = self.trade_unit[self.trade_count]
# 如果本次下单量大于0, 发出买入委托交易指令
if vol > eps:
self.open_long(self.exchange, self.sec_id, self.last_price, vol)
self.trade_count += 1 #增加计数
elif cross < 0 and delta < -threshold and momentum <= - significant_diff: ## bar 收盘价下穿ma均线,且偏离满足信号过滤条件
# 超出下单次数限制
if b_p and b_p.available_yesterday > eps:
self.close_long(self.exchange, self.sec_id, self.last_price, b_p.available_yesterday)
self.trade_count = 0
else: ## 其他情况,忽略不处理
pass
# 策略启动入口
示例15: evaluate_sma
# 需要导入模块: from talib import abstract [as 别名]
# 或者: from talib.abstract import SMA [as 别名]
def evaluate_sma(self, period, field="close", prefix="sma", impact_buy=1, impact_sell=1):
"""
evaluates a sma moving average
:param dataframe:
:param period:
:param prefix:
:return:
"""
self._weights(impact_buy, impact_sell)
name = '{}_{}_{}'.format(prefix, field, period)
dataframe = self.dataframe
dataframe[name] = ta.SMA(dataframe, timeperiod=period, field=field)
dataframe.loc[
(
(dataframe[name] < dataframe[field])
),
'buy_{}'.format(name)
] = (1 * impact_buy)
dataframe.loc[
(
(dataframe[name] > dataframe[field])
),
'sell_{}'.format(name)
] = (1 * impact_sell)