如何用python写策略

 时间:2026-02-13 01:40:12

1、以优矿为例,注册之后,在“开始研究”页面,新建一个 Notebook,就可以开始用 Python 写你自己的策略。

右上角的下拉框选择“策略”,就会帮你自动填写上策略回测的基本结构代码。

开始的一些变量是对回测的基本配置。initialize 里可以做一些初始化的工作。handle_data 则是回测代码的核心,用来实现每个交易日(或每分钟)的交易指令。

如何用python写策略

2、具体的变量含义,这里不做特别细致的解释,文档里都有说明。仅从命名和注释里也可以看出,设定了回测的时间,股票池,资金,交易频率等。

文档里给了一个最简单的日线策略代码:

def handle_data(account): for stock in account.universe: order(stock,100)

此策略就是,在每个交易日,把股票池里每一只股票都买入一手。

account.universe 就是开头设定的 universe 值。这里遍历股票池中的股票。

order 是买卖指令,函数原型是:order(symbol, amount)

参数 symbol 是股票代码,amount 是买卖数量,正为买入,负为卖出。此处买入 100 股,即 1 手。

点击“运行”,或 Ctrl+Enter,即可在页面上看到策略的执行情况。

如何用python写策略

3、我们再尝试改动一点点,写一个自己的策略。

我拍脑袋想了这样一个策略:

如果一只未持有的股票 2 个交易日累计涨了 10% 以上,就以当前资金的 5% 买入它。反过来,如果累计跌了 10% 以上,就全部卖出止损。

如何用python写策略

4、下面把它实现出来看下回测效果如何。

时间设为去年(2015)全年,起始资金 10 万元。

universe = set_universe('A')

股票池为 A 股所有股票。

account.get_attribute_history('closePrice', 3)

如何用python写策略

5、取得股票池中所有股票前 3 天的收盘价(closePrice)。

hist[s][2] - hist[s][0]

得到 1 天前和 3 天前收盘价的差值。

account.valid_secpos

是账户当前所持有的证券信息。

如何用python写策略

6、如果收盘价 2 天的差值满足买入条件且未持有,就执行:

order_pct(s, 0.05)

order_pct 表示按账户当前总价值的百分比买入股票。

如果满足卖出条件则执行:

order_to(s, 0)

OK,一个简单到不行的策略已完成。运行一下:

如何用python写策略

  • Excel选中区域的连续相同值的个数统计
  • Excel如何在VBA环境下自定义函数
  • win7系统(英文)分区详细步骤(最好附实图)
  • 工作表如何从字符串中提取指定字符右侧的内容?
  • 利用VBA代码设置超链接
  • 热门搜索
    甲骨文怎么写 企业宗旨大全 性视频的视频大全 教学设计怎么写 章太炎简介 心态不好怎么调整 舞蹈图片大全 手上起小水泡痒怎么办 好话大全 好词好句好段大全