目前不清退的交易所推荐:
1、全球第二大交易所OKX欧意
国区邀请链接: https://www.promooboost.com/join/1837888 币种多,交易量大!
国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!
2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gateport.business/share/XgRDAQ8
全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031 币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!
买好币上KuCoin:https://www.kucoin.com/r/af/1f7w3 CoinMarketCap前五的交易所,注册友好操简单快捷!
FMZ量化交易平台邀请链接:https://www.fmz.com/
第一代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)
}
})
}



更多源码和类库的全部内容,请查看:https://www.fmz.com/strategy/57267
2026币圈信息集合









