zoukankan      html  css  js  c++  java
  • 【零基础】极星量化扩展一:如何做跨合约的交易

    一、前言

      最近有个童鞋想用A合约的信号来交易B合约,不懂为什么要这么做,在实现时发现无论怎么做都只能发A合约的委托。

      其实问题很简单,这里就以双均线策略为例,以RB2007为信号,交易RB2010。这里说的双均线策略是极星量化自带的示例策略DMA,我们改改。

    二、实现

      1、订阅两个合约

       注意这里先订阅信号合约,再订阅交易的合约。

      2、计算MA

      需要注意,这里要忽略第二个合约的行情,因为我们只用它下单。在极星里,如果触发的合约是A合约,那么Close()返回的就是A合约的价格。

      其次我们订阅了历史数据用以计算MA,所以还得忽略历史数据,等历史数据触发完毕再执行真实的策略。

      注意这里触发的是A合约,所以MA计算的是A合约的MA。

      3、下单

     

      tim_trigger获取的MA是A合约的,这里在下单时使用B合约,这就简单实现了A合约的信号交易B合约。

    三、扩展

      这里我们使用A合约信号交易B合约,而且首先订阅了A合约,所以A合约是基准合约。有童鞋实践时发现如果先订阅B合约,Close(contractID1)获取到的却是B合约的价格。一度让我以为只能先订阅A合约,这样就只能将B合约的成交显示到A合约的K线了。

      经过我测试其实并不是这样,无论先订阅那里一个都是OK的,只是在读价格时必须要将合约、周期写全才行。

    四、总结

      这篇实现了跨合约的交易,除了示例的用法,其实还可以用于延时行情交易,因为延时行的合约是不能直接交易的,可以用这个办法来交易,这样做外盘的童鞋不购买行情也能测试策略了。

      示例中的完整代码:

    https://share.weiyun.com/384d4xtt

  • 相关阅读:
    360手机青春版原装充电器
    然并卵却很拉风!360超级充电器评测_天极网
    39元超值!360超级充电器拆解与评测
    99元紫米10000mAh移动电源开箱拆解
    自己DIY PCB电路板制作(简单方便快捷)
    Easy EDA:在线创客软件服务是未来的趋势 | 雷锋网
    EasyEDA
    我的那些年(9)~我来团队了,Mvc兴起了
    我的那些年(8)~去朋友公司做网站开发
    我的那些年(7)~第一份互联网工作
  • 原文地址:https://www.cnblogs.com/cation/p/12963908.html
Copyright © 2011-2022 走看看