程序化交易策略开发:第1个策略
学习程序化交易策略开发是一个很简单的事,也就是学习1门简单脚本语言或甚至是一个插件使用那么简单。难的是开发出一个能赚钱的策略,但程序员这么多,也许你能通过程序化交易找到适合你的发展方向呢。下面通过几个简单步骤开发一个交易策略。
1.选择开发平台,国内的有开拓交易者(期货),国外的MiultiCharts(期货),还有MT4(外汇),这里以开拓交易者(简称TB)为例。
2.下载、注册与登录,按提示操作即可
3.进入后关闭默认图表后的界面
4.点击左侧的“超级图表”,默认的投资标的不对,需要更换,图表中点右键,选择“插入商品”
一般选择“××指数”,这里选"股指指数"
继续在图表中点右键,选择“商品设置”,出现对话框,将默认合约下移后删除
这样,就选择了策略运行的投资标的(股指),最后需要选择你在几分钟上的K线周期上做交易
这时候可以保存一下工作区了,点工具栏“保存”,按提示操作即可,保存后,多工作区时注意切换
5.交易标的选择后之后,就是编写策略了。选择导航的“新建公式应用”,按提示输入英文名称,选择模板“交易策略”
生成默认代码,下面这个编译按钮很重要,没有出现时,随意修改下文件即可,例如输入一个空格。编译后,输出窗口会提示成功与否(默认代码的Condition1、Condition1赋初值错误,编译不通过)
6.修改代码
7.代码完成并编译通过后,记住公式名称。回到图表页面,点右键“插入公式应用”,选择编辑的公式。
下面是一个策略范例,大致逻辑是均线之下开空,均线之上开多
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | //------------------------------------------------------------------------ // 简称: eleven // 名称: eleven // 类别: 公式应用 // 类型: 用户应用 //------------------------------------------------------------------------ Params Numeric AM_CO(40); //Close-Open Numeric AM_CM(200); //Close-Max(High/low) Vars NumericSeries sum_up(0); NumericSeries sum_down(0); Numeric Am(0); Numeric Am2(0); Numeric Am3(0); Begin Am = Close[1] - Open[1]; Am2 = Close[1] - Close[2]; if ( sum_up[1] > 0 ) { if ( Am >= 0 ) { sum_up=sum_up[1]+1; } else if ( Abs(Am) <= AM_CO ) { if ( Close[2] - Open[2] < 0 ) { sum_down = 2; sum_up = 0; } else { sum_up=sum_up[1]+1; } } else { sum_down = 2; sum_up = 0; } PlotString( "num" , Text(sum_up)); if ( sum_up == 0 ) { if ( MarketPosition != -1 ) { SellShort(1,open); } } } else if ( sum_down[1] > 0 ) { if ( Am <= 0 ) { sum_down=sum_down[1]+1; } else if ( Abs(Am) <= AM_CO ) { if ( Close[2] - Open[2] > 0 ) { sum_up = 2; sum_down = 0; } else { sum_down=sum_down[1]+1; } } else { sum_up = 2; sum_down = 0; } if ( sum_down == 0 ) { if ( MarketPosition != 1 ) { Buy(1,open); } } PlotString( "num2" ,Text(sum_down)); } else { if ( Am > 0 ) { sum_up=sum_up[1]+1; } else if ( Am < 0 ) { sum_down = sum_down[1]+1; } } End |
8.选择完公式后,对效果进行测试,点击工具栏的测试报告图表,如下:
出现测试报告
可以看出总体是净利润为正,选择不同的K线周期效果不同。不过这还不是一个合格的策略。正常的交易不是市价就能成交的,需要考虑增加1-2个滑点。
暂时就到这里,后面会讲更多的开发问题和一些潜规则,避免大家走弯路。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库