欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【量化投资】策略一(聚宽)

程序员文章站 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])    

效果

【量化投资】策略一(聚宽)

一开始很起眼的,但是到后面,就跟大盘一起往下跑了。

不过说起来也是我的第一个靠自己的脑子想出来,并且实现的策略啊。