QuickStart- 镭矿python 策略 1分钟 快速上手

+2 投票

 

量化策略是干什么的?


写一段很简单的代码,就可以模拟股票交易,看看股市里面广为流传的交易方法是否真的能赚钱。

def init(context):
    context.s1="sha-600000"
    sma12_factor=SMAFactor(12,"close")
    sma30_factor=SMAFactor(30,"close")
    reg_factor("sma12",sma12_factor)
    reg_factor("sma30",sma30_factor)
    schedule_function(my_func,DateRule.every_day(),TimeRule.once_per_day(15,0))
def my_func(context,data):
    stock=context.s1
    ma12=factor_output("sma12",[context.s1])["sma12"][context.s1]
    ma30=factor_output("sma30",[context.s1])["sma30"][context.s1]
    if ma12>ma30:
        order(stock,1000)
    elif ma12 < ma30 and context.portfolio.positions[stock].amount > 0:
        order_target_value(stock,0)

  • 使用5日均线上穿10日均线进行交易

 

复制上述代码,点击“我的策略”页面的 “回测” 按钮,即可进行回测。回测也就是使用股市的历史数据,来验证这个"5日均线上穿10日均线买入股票"的方法,是否能够赚钱。

 

 

出现上图之后,可以看到,策略赚了15%。红色的线即为策略净值的历史表现。果然用简单的方法买卖股票,不一定靠谱。

 

  • 使用RSI指标进行买卖股票
def init(context):
    context.s="sha-601318"
    f1=RSIFactor(14,'close')
    reg_factor("rsi",f1)
def every_day(context,data):
    alldata=factor_output("rsi",[context.s])["rsi"]
    log.info(alldata)
    rsi=alldata["sha-601318"]
    record("rsi",rsi)

 

复制粘贴上面代码,回测程序将打印出RSI指标的轨迹。

 

看到大概RSI的取值在40到60之间,我们做一个简单的调试,加一个逻辑,rsi数值<45时买入股票,rsi数值>55时卖出股票,

看看效果怎么样?

收益从一条直线变的略有改变。

 

 

  • 总结

 

使用order等一些方法可以直接下单,使用镭矿提供的factor等API可以获得市场股票信息。这样你就可以验证你的交易代码,在股票市场寻找赚钱的机会。

想要了解更多详细,请挪步到镭矿API文档,策略不错的可以申请镭矿实盘基金哦,加油吧!

最新发帖 11月 27, 2016 分类:新手小白上路 | 用户: maserati (2,540 分)
修改于 2月 15, 2017 用户:maserati

1个回复

0 投票

你这个指南是Python平台上的吧,我用Java平台没有

context.portfolio.positions["sha-600000"].amount这个方法

我该改成啥样才对?

 

最新回复 12月 5, 2016 用户: 鑫荣 (1,480 分)

Java不支持这么销魂的写法哦

“positions["sha-600000"]”;

为了减少可恶的”."操作的长度,java下面将持仓头寸的常用方法升到了portfolio下面,点击上面链接会有说明,可以直接context.portfolio.getAmount("sha-600000");

Java果断还是get()、set()型的indecision

...