⼤智慧、通达信winner函数python代码实现
⼤智慧、通达信软件,公式中有⼀个winner函数,函数的作⽤是计算收盘获利⽐率。即计算按照⽬前收盘价,计算有多少⽐例持仓是盈利
聊斋志异聂小倩
的。要计算获利⽐率,⾸先得计算筹码分布,就是持仓价格分布。由于⽆法知道真实的交易情况,只能⼤致的估计。⾸先举个例⼦,假如某
只股票有1000万股,第⼀天平均交易价格10元,第⼆天换⼿率20%,平均交易价格11元,那第⼆天的筹码分布为,10元:1000 * (1 -
书包网官网0.2)=800万,11元:1000 * 0.2 = 200万。第三天换⼿率30%,平均交易价格12元,那第三天的筹码分布为,10元:1000 * (1 -
0.2)* (1 - 0.3)= 560万,11元:1000 * 0.2 * (1 - 0.3) = 140万,12元:1000 * 0.3 = 300万,以此类推。代码如下:
怎么美白def winner_core(ContextInfo, clo):
clo_price = clo[-1]
#获取上市⽇期
#ipo_date = _open__univer()[0])
df = _market_data(['volume', 'amount'], stock_code = _univer(), skip_paud = True, period = '1d', dividend_type = 'front', end_t df = df.loc[df['volume'] != 0]
df['mean'] = df['amount'] / df['volume'] / 100
turnover_rate = _turnover__univer(), df.index[0], df.index[-1])
以后的拼音小班活动教案df['turnover'] = turnover_rate['000001.SZ'].values
df['turnover'][0] = 0spot翻译
#1减去换⼿率鳗鱼干的做法大全
df['1_turnover'] = 1 - df['turnover']
df['2_turnover'] = df['1_turnover'][::-1].values
df['3_turnover'] = df['2_turnover'].shift(periods = 1)
df['3_turnover'][0] = 1
#print(df[['1_turnover', '2_turnover', '3_turnover']])
df['4_turnover'] = df['3_turnover'].cumprod()[::-1].values
中国第一长寿村df['turnover'][0] = 1
df['chouma'] = df['turnover'] * df['4_turnover']
return df.loc[df['mean'] < clo_price]['chouma'].sum()
def winner(ContextInfo, clo):
result = []
n = len(clo)
for i in range(n):
res = winner_core(ContextInfo, clo[: i + 1])
result.append(res)
return pd.Series(result, index = clo.index)
以上是000001计算出来的收盘获利⽐率,跟同花顺对⽐,还是很相近的。
注意:以上计算都是估算值。