返回介绍

第一部分 新手入门

第二部分 股票量化相关

第三部分 基金、利率互换、固定收益类

第四部分 衍生品相关

RSI指标策略

发布于 2022-02-20 22:26:15 字数 1656 浏览 882 评论 0 收藏 0

策略思路

  • 使用talib中的RSI函数计算每只股票过去20天的rsi
  • 当rsi低于30是买入,高于70时卖出
  • 每只股票仓位最多不超过总资金的10%
import talib as ta

start = '2011-12-01'
end   = '2015-04-01'

benchmark = 'SH50'
universe = set_universe('SH50')
capital_base = 5000000
longest_history = 21

def initialize(account):
    account.lower_rsi = 30
    account.upper_rsi = 70

def handle_data(account):
    all_close_prices = account.get_attribute_history('closePrice', longest_history)

    rsi, c_price, c_amount = {}, {}, {}
    for stock in account.universe:
        rsi[stock] = ta.RSI(all_close_prices[stock], longest_history-1)[-1]
        c_amount[stock] = account.secpos.get(stock, 0)

    for stock in account.universe:
        max_amount = int(0.1 * account.referencePortfolioValue / account.referencePrice[stock])  
        amount = min(int(25000./account.referencePrice[stock]), max_amount - c_amount[stock])
        if   (rsi[stock] < account.lower_rsi) and (c_amount[stock] < max_amount):
            order(stock, amount)
        elif (rsi[stock] > account.upper_rsi) and (c_amount[stock] >  0):
            order_to(stock, 0)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文