根据mindgo和vnpy量化金融视频做一个最简单的因子分析。

参考资料:

               mindgo 单因子分析链接:http://quant.10jqka.com.cn/platform/html/strategylib.html#/

               vnpy量化金融视频链接:https://www.bilibili.com/video/BV1yJ411u7WG?p=2

 

 

代码:

price = ts.get_hist_data('000002')
price=price.sort_index()
# 获取收盘价数据
close = price['close'].values
# # sh = ts.get_hist_data('sh')
# # sh = sh.sort_index()
# # #print sh['close']
# # ma = ta.MA(sh['close'].values,20)     #20日均线
# # ma1 = pd.DataFrame(ma)
# # ma1.index = sh.index

# 计算SMA
money=10000
moneylist=[]


ma = ta.MA(price['close'].values,20)     #20日均线
ma1 = pd.DataFrame(ma)
ma1.index = price.index
#print ma1
price['SMA20'] = ma1
# 获取当前的股票价格
crtprice = price['open'].values
# 获取当前个股的持仓
curposition = 0
buypi=0
le=len(crtprice)
for i in range(le):
#若开盘价上穿均线,且持仓为0,则全仓买入
    if crtprice[i] > ma[i-1] and curposition == 0 and money>0:
        curposition=money/crtprice[i]+curposition
        sub=crtprice[i]
        moneylist.append(sub)
        money = 0
        buypi=crtprice[i]
        print('买入价格:' ,sub)


        # print('买入价格:' + str(crtprice))
    # 若开盘价下穿均线,且有持仓,则清仓
    elif crtprice[i] < ma[i-1] and curposition != 0 :
        #money = round(have * crtprice,2)
        money=curposition * close[i]
        curposition = 0
        sub=close[i]*close[i]/buypi
        moneylist.append(sub)
        print('卖出价格:' + str(sub))
    else:
        sub=close[i]*close[i]/buypi
        moneylist.append(sub)
    print("无操作:"+str(sub))
# # 绘图
# # record
price['strage']=moneylist
price[['close', 'SMA20','open','strage']].plot(figsize=(15, 8), grid=True)
plt.show()
print(price['strage'])

效果图为:

在本地做一个最简单的因子分析

 

相关文章:

  • 2021-10-16
  • 2021-12-10
  • 2022-12-23
  • 2021-11-24
  • 2021-04-26
  • 2022-12-23
  • 2022-12-23
  • 2021-08-03
猜你喜欢
  • 2022-01-11
  • 2021-06-17
  • 2021-06-09
  • 2021-07-19
  • 2021-06-05
  • 2021-08-02
  • 2022-01-07
相关资源
相似解决方案