当前位置:   article > 正文

【量化投资】策略二(聚宽)_量化投资代码

量化投资代码

前言

在看其中一个新手教程的时候,发现没有一个总的代码。
然后,就根据自己的理解,整合了一下。

对于,一开始根据研究发现,在这段时间,如果买全市场市值最低的几个,那绝对是要亏本亏到难以理解的。
所以,我这里就选的是,全市值最高的几个。
但是,这样就跟指数的波动相近较大了。(beta偏高)

代码

def initialize(context):
    g.stocksnum = 5  # 持有最小市值股票数
    g.period = 10  # 轮动频率
    run_daily(daily, time='every_bar')  # 周期循环daily
    g.days = 1  # 记录策略进行到第几天,初始为1


def trade(context, buylist):
    # 对于每个当下持有的股票进行判断:现在是否已经不在buylist里,如果是则卖出
    for stock in context.portfolio.positions:
        if stock not in buylist:  # 如果stock不在buylist
            order_target(stock, 0)  # 调整stock的持仓为0,即卖出

    # 将总资产(现金+股票)除以持股数g.stocksnum
    position_per_stk = context.portfolio.total_value / g.stocksnum
    # 调整buylist中的每个股票持仓价值为position_per_stk
    for stock in buylist:
        order_target_value(stock, position_per_stk)


# 止损
def stop(context):
    # 循环查看持仓的每个股票
    for stock in context.portfolio.positions:
        # 如果股票最新价格除以平均成本小于0.8,即亏损超过20%
        if context.portfolio.positions[stock].price / context.portfolio.positions[stock].avg_cost < 0.8:
            # 调整stock的持仓为0,即卖出
            order_target(stock, 0)
            # 输出日志:股票名 止损
            print "\n%s 止损" % stock


def pick(context):
    date = context.current_dt.strftime("%Y-%m-%d")
    # 获取上证指数和深证综指的成分股代码并连接,即为全A股市场所有股票
    scu = get_index_stocks('000001.XSHG') + get_index_stocks('399106.XSHE')

    # 选出在scu内的股票的股票代码,并按照当前时间市值从小到大排序
    df = get_fundamentals(query(
        valuation.code, valuation.market_cap
    ).filter(
        valuation.code.in_(scu)
    ).order_by(
        valuation.market_cap.desc()
    ), date=date
    )

    # 取出前g.stocksnum名的股票代码,并转成list类型,buylist为选中的股票
    buylist = list(df['code'][:g.stocksnum])
    return buylist


def daily(context):
    # 每日止损
    stop(context)
    # 判断策略进行天数是否能被轮动频率整除余1
    if g.days % g.period == 1:
        buylist = pick(context)
        trade(context, buylist)
    else:
        pass  # 什么也不做
    g.days = g.days + 1  # 策略经过天数增加1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

效果图

这里写图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/836132
推荐阅读
相关标签
  

闽ICP备14008679号