写了框架,很多读者不知道原理函数,今天写教程,程序只需要保持一次数据,后面数据都是程序模拟的数据快速交易
获取数据
模拟数据
模拟持股函数
def adjust_hold_data(self,stock='603918',trader_type='sell',price=12,amount=100):
'''
模拟持股数据
'''
price=float(price)
amount=float(amount)
df=pd.read_excel(r'持股数据\持股数据.xlsx',dtype='object')
del df['Unnamed: 0']
df.index=df['证券代码']
df1=df[df['证券代码']==stock]
if df1.shape[0]>0:
#可用余额
available_balance=df1['可用余额'].tolist()[-1]
#股票余额
stock_balance=df1['股票余额'].tolist()[-1]
if trader_type=='buy':
stock_balance+=float(amount)
available_balance+=float(amount)
elif trader_type=='sell':
available_balance-=float(amount)
stock_balance-=float(amount)
if available_balance<=0:
available_balance=0
stock_balance-=float(amount)
if stock_balance<=0:
stock_balance=0
else:
pass
df1['可用余额']=[available_balance]
df1['股票余额']=[stock_balance]
data=df.drop(stock,axis=0)
data=pd.concat([data,df1],ignore_index=True)
data.to_excel(r'持股数据\持股数据.xlsx')
print('持股数据调整成功')
else:
df2=pd.DataFrame()
df2['明细']=['0']
df2['证券代码']=[stock]
df2['证券名称']=['0']
df2['股票余额']=[amount]
df2['可用余额']=[amount]
df2['冻结数量']=[0]
df2['成本价']=[price]
df2['市价']=[price]
df2['盈亏']=[0]
df2['盈亏比(%)']=[0]
df2['市值']=[amount*price]
df2['当日买入']=[0]
df2['当日卖出']=[0]
df2['交易市场']=[0]
df2['持股天数']=[0]
data=pd.concat([df,df2],ignore_index=True)
data.to_excel(r'持股数据\持股数据.xlsx')
print('持股数据调整成功')
print('{}没有持股'.format(stock))
转股函数在账户没有这个标的回建立这个标的数据,有就在这个标的操作
else:
df2=pd.DataFrame()
df2['明细']=['0']
df2['证券代码']=[stock]
df2['证券名称']=['0']
df2['股票余额']=[amount]
df2['可用余额']=[amount]
df2['冻结数量']=[0]
df2['成本价']=[price]
df2['市价']=[price]
df2['盈亏']=[0]
df2['盈亏比(%)']=[0]
df2['市值']=[amount*price]
df2['当日买入']=[0]
df2['当日卖出']=[0]
df2['交易市场']=[0]
df2['持股天数']=[0]
data=pd.concat([df,df2],ignore_index=True)
data.to_excel(r'持股数据\持股数据.xlsx')
print('持股数据调整成功')
print('{}没有持股'.format(stock))
持股数据
比如输入600031,没有这个标的回自动建立,比如买入100,价格100
运行结果
比如卖出600031,100股,100价格
运行结果
完整的交易程序在知识星球