温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

My语言怎么实现CTA交易系统和策略

发布时间:2022-03-25 16:58:54 来源:亿速云 阅读:156 作者:iii 栏目:互联网科技

这篇文章主要介绍了My语言怎么实现CTA交易系统和策略的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇My语言怎么实现CTA交易系统和策略文章都会有所收获,下面我们一起来看看吧。

第一代CTA交易系统和策略

第一代CTA交易系统出现在20世纪60年代和70年代。由于当时商品市场的强劲趋势,CTA策略在当时取得了可观的收益。这一时期商品市场的强劲趋势可归因于第二次世界大战后经济持续增长和经济通胀上升。强大的趋势市场允许简单的趋势跟踪系统实现更好的回报。第一代CTA系统处理较少的基本市场和品种,交易系统相对简单,通常是一个跟踪多个交易目标的交易系统。由于当时商品市场的趋势,这种策略运作良好。

第一代交易系统中使用的策略是那些现在熟悉趋势跟踪策略的策略,例如移动平均系统(加上一些简单的过滤条件,例如当短期移动平均线超过长期移动平均线时或者反之亦然),一个简单的趋势跟踪策略可以有效地发挥交易目标基本面的连续趋势。持续的经济增长,通货膨胀和石油危机是这种持续性背后的原因。但是,当许多交易者使用相同的策略并且基本面的持续存在不再存在时,第一代交易策略需要发展以适应新环境。

第二代CTA交易系统和策略

由于美元和黄金的脱钩,金融期货市场在1970年至1980年间迅速发展,允许期货管理基金参与许多期货市场,包括货币市场,债券市场,股指期货和股票金融衍生品。此外,信息技术的发展和低成本使得白天很容易获得数据。进入CTA基金的资金规模的增加和竞争的加剧使CTA策略更加复杂和适应性更强。

基于上述市场特征,第二代CTA交易系统和策略与第一代CTA策略相比具有以下特点:

  • 交易的主题更加多样化。金融期货市场的加入使得交易品种和市场更加多样化。

  • 在交易策略之上,第二代CTA交易系统的策略不仅限于纯趋势跟踪和价格突破。应用更多数学模型来监控多个市场。是否根据不同的市场条件或平均响应策略使用趋势跟踪。由于许多机构参与期货市场的流动性,期货市场的持续低波动期也已出现。在这种情况下,传统的第一代CTA系统难以盈利并适应市场变化。该战略变得重要。

  • 第二代CTA策略可以在交易窗口和持有时间进行短期交易。与第一代CTA战略不同,第二代战略已经开始监控短期和高频交易的日内交易模式。这一特征源于计算机技术的发展,使得财务数据的提供更加及时和频繁。

第三代CTA交易系统和策略

第三代CTA交易系统是第二代交易系统的进一步多样化,分散化和更多适应性。第三代CTA使用更多的交易系统来交易更多的市场和品种。在战略方面,使用更有利可图的市场模式。所有这些都是基于在多个市场中运行多个模型的组合。

鉴于CTA策略的运用如此之广,加之经过了时间的沉淀,也非常成熟,是广大量化交易员广泛接触和想了解的经典策略模型(特别是对于新手),发明者量化平台很早就开发了标准的CTA策略的类库,读者在发明者量化平台如想应用CTA策略,只需简单的把代码复制过去,或者直接引用这个类库。

扩展性方面也是十分方便,代码的注释非常清晰和简单易懂,想进行深度订制或者扩展,只需在现有的框架下直接进行。

部分源码(JavaScript版):

function main() {
    $.CTA(exchanges[0], 0.01, function(r, mp, pair){  // 第一个参数是要做的交易所对象,第二个参数0.01是交易所要求的最小下单数量,第三个匿名函数function(){...}是回调函数,交易逻辑就写在这个函数中,该回调函数第一个参数r接收最新的K线数据,第二个参数接收持仓数,第三个参数接收交易对名称

        if (r.length < 20) {   // 判断K线柱数量 
            return
        }
        var emaSlow = TA.EMA(r, 20)
        var emaFast = TA.EMA(r, 5)
        var cross = _Cross(emaFast, emaSlow); // 判断指标相交状态,_Cross参看:https://www.fmz.com/bbs-topic/1140
        if (mp <= 0 && cross > 1) {
            Log(pair, "买, 金叉周期", cross, "mp:", mp);
            return 0.1 * (mp < 0 ? 2 : 1)  // 返回的数值就是要开仓的数量,正数是 开多,负数是开空,0是全部平掉。
        } else if (mp >= 0 && cross < -1) {
            Log(pair, "卖, 死叉周期", cross, "mp:", mp);
            return -0.1 * (mp > 0 ? 2 : 1)
        }
    })
}

My语言怎么实现CTA交易系统和策略
My语言怎么实现CTA交易系统和策略
My语言怎么实现CTA交易系统和策略

关于“My语言怎么实现CTA交易系统和策略”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“My语言怎么实现CTA交易系统和策略”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI