【量化投资】策略一(聚宽)
程序员文章站
2022-03-21 13:07:12
...
简述
在某位大佬的推荐下,发现聚宽这个好用。然后,我开始学着用聚宽来写下策略来玩一玩。
发出来是方便自己回去研究,有人愿意看也可以。
第一个策略,是我在看聚宽教程中的一个多股策略的demo时,有了点想法。
原来的那个策略跑出来效果很难看。所以,我就想能不能改进一下。就有了下面的这个策略
策略思路
- 既然都说是当前一天的股价高于历史m20的价格时,可以买,那么如果是多股的时候,买入的时候,是否可以按照一定的比例来购买呢?
- (因为第一个就是直接把第一个买空)
- 卖的还是跟之前是一样的,如果遇到了小于的画面,那就直接做空。
代码
def initialize(context):
# 存入兔宝宝、好想你 的股票代码
g.security = ['002043.XSHE','002582.XSHE']
g.rate = [0] * len(g.security)
def handle_data(context, data):
# 把g.security中的股票代码依次取出,逐个进行单股票均线策略
for i in range(len(g.security)):
# 获取取得最近日收盘价,命名为last_price
name = g.security[i]
last_price = data[name].close
# 获取近二十日股票收盘价的平均价,命名为average_price
average_price = data[name].mavg(20, 'close')
g.rate[i] = (last_price - average_price) / average_price
if last_price < average_price:
order_target(name, 0)# 将股票仓位调整到0,即全卖出
g.rate[i] = 0
g.rate /= sum(g.rate)
# 获取当前现金数量,命名为cash
cash = context.portfolio.cash
for i in range(len(g.rate)):
if g.rate[i] > 0:
order_value(g.security[i], cash * g.rate[i])
效果
一开始很起眼的,但是到后面,就跟大盘一起往下跑了。
不过说起来也是我的第一个靠自己的脑子想出来,并且实现的策略啊。