Amibroker 的 ZagTrader 插件
Amibroker 以其强大的技术分析功能和高准确度的自动买入/卖出信号而著称。ZagTrader 创建了一个与自己的订单管理平台集成的桥梁,可根据通过 Amibroker 收到的买入/卖出信号生成和发送订单,提供与 ZagTrader 引擎的 STP 无缝、可靠连接。
ZagTrader 提供可靠的基础设施,可以连接 AmiBroker 获奖的尖端技术,并将软件与 ZagTrader 连接起来。
特点
- 将交易信号即时转换为多用户交易。
- 多市场、多资产类别、多货币
- 机构级交易技术
- 智能订单路由的高频交易
- 功能强大的图表和技术指标
- 全球数据馈送
- 超轻量级多线程架构
- 高级研究工具
- KYC / AML 高级风险管理
- 客户入职自动化
- 完全白色标签
部分产品
- 台式机、平板电脑和移动应用程序均采用双因素身份验证,使交易者能够以完全安全的方式持续监控和管理交易流程。
- 与 ZagTrader 前台/中台/后台系统完全集成,并可与现有外部系统或第三方模块集成。
- 贸易工作流程,平台内置用户限制、审批和权限矩阵。
优势
- 高性能
- 利用动态报告功能按需制作报告
- 易于集成
- 高度可扩展性
- 在多个路由网络上进行中立交易
技术部件
ZagTrader 插件
它是 AmiBroker 和 ZagTrader 平台之间的接口。该桥梁可自动执行与下达买入/卖出订单相关的大部分任务。
优势分解
目前的情况:技术分析师一次只分析一到两张图表,必须持续监控买入/卖出信号的产生。一旦根据指标看到这个信号,就必须在交易平台上进行交易。所有这些都可能意味着失去宝贵的时间/机会,而这些时间/机会最终会决定你是否是一个成功的交易者/投资者。
如果您有一个可以写在纸上的技术策略--例如,假设您有一个在移动平均线交叉点买入/卖出的简单策略。您可以使用 AFL(AmiBroker 公式语言)在 AmiBroker 上非常容易地实现这一策略。创建 AFL 后,您可以在 AmiBroker 上对其进行回溯测试,如果确信该策略有利可图,您就可以将其实盘操作。您还可以使用筛选器,在数百种股票中找出根据您的公式发出买入/卖出信号的股票。同时,您可以在任意多的股票上运行公式。您还可以同时在多个脚本上运行多个公式,而这是人为无法跟踪的。以上所述就是 AmiBroker 的强大之处。
交易插件的作用是将 AmiBroker 更进一步,在 ZagTrader 上启动订单。因此,举例来说,如果您在 10 种不同的股票上运行移动平均线公式,其中 2 种股票发出买入信号,您就会自动向交易平台发送订单,并为这 2 种股票预设订单大小。您可以通过两种方式发送订单,然后将订单放到交易所。查看我们的视频,了解如何操作。
上述下单过程是完全自动化的,这意味着必须有一个定义下单样板的过程。一旦您对系统和您的策略完全有信心,这个过程就可以完全自动化。
特色
- 个人买入、卖出、做空和回补
- 多用户买入、卖出、做空和平仓
- 集成日志和订单面板
- 所有 ZagTrader 特色和功能(风险管理、Algos、订单管理、会计...)
安装
- .Net Framework 4.7.2 - Windows 10 默认安装了该框架
- 阿米经纪人
- 可从 ZagTrader 网站获取的 ZagTrader 插件安装程序。
- ZagTrader 账户
- 订阅任何供应商的数据源
- 首次运行 AmiBroker 时,会弹出一个窗口,您需要在其中填写用户名、密码、用户类型和 ZagTrader 服务器。
- 正确填写后,您将收到一条 "登录成功 "的信息,确认与 ZagTrader 的连接。
- AmiBroker 将启动,您就可以开始了。
可用的功能模式:
- 常规单用户模式
- 广泛战略模式(多用户模式)
常规单用户模式
这是单个用户的基本下单流程。您可以通过调用函数列表为单个用户下单(买入、卖出、补仓或做空):
- ZagBuy
- ZagSell
- 扎格短
- ZagCover
您必须根据 ZagTrader 平台的定义设置用户 ID,以便通过 ZagTrader OMS 向指定市场发送订单。
user_ID = ParamStr("user_id", "xxxxxxxxxxxxxxxxx");
MySymbol = ParamStr("Symbol", "BANKNIFTY18DECFUT");
qty = Param("Quatity",10,0,50000,1);
placeordertype = ParamList("Place Order On", "Realtime|CandleCompletion",0);
ZagBuy(MySymbol , user_id, qty , Close[0]) ;
我们准备了一个安装 ZagTrader 插件的完整示例,名为 "ButtonsExample"(按钮示例)。
广泛战略模式(多用户模式)
使用该模式,您可以根据从 AmiBroker 收到的同一信号为多个用户下多个订单。对于这种模式,我们还有另一套功能
- ZagStrategyBuy.
- ZagStrategySell.
- ZagStrategyShort.
- ZagStrategyCover.
SPeriod = 3;
LPeriod = 7;
placeordertype = ParamList("Place Order On","CandleCompletion|Realtime",0);
Statergy_Name = ParamStr("Name Of Brod Strategy","Intra") ;
Buy = Cross(EMA(C,SPeriod),EMA(C,LPeriod));
Sell = Cross(EMA(C,LPeriod),EMA(C,SPeriod));
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
Plot(EMA(C,SPeriod),"EMA-7",colorRed,styleLine);
Plot(EMA(C,LPeriod),"EMA-21",colorblue,styleLine);
tn = TimeNum();
dn = DateNum();
DateCond = dn == LastValue(dn);// check if it is last day of array
SetOption("NoDefaultColumns", True );
if(placeordertype == "Realtime")
{
tn = TimeNum();
dn = DateNum();
DateCond = tn == LastValue(tn);// check if it is last day of array
Buy = Buy AND DateCond;
Sell = Sell AND DateCond;
Last_Occurred_SellSig = LastValue(Sell);
Last_Occurred_BuySig = LastValue(Buy);
AlgoNum = LastValue( TimeNum());
AddColumn( DateTime(), "Date", formatDateTime );
If ( Last_Occurred_BuySig )
{
AlgoBuy = 1 ;
ZagStrategyBuy(Statergy_Name);
}
If ( Last_Occurred_SellSig )
{
AlgoSell = 1 ;
ZagStrategySell(Statergy_Name);
}
AlgoSell = lastvalue(Ref(Sell,-1));
}
if(placeordertype == "CandleCompletion")
{
AlgoNum = LastValue( TimeNum());
AlgoBuy = lastvalue(Ref(Buy,-1));
AlgoSell = lastvalue(Ref(Sell,-1));
if ( AlgoBuy )
{
ZagStrategyBuy(Statergy_Name);
}
if ( AlgoSell )
{
ZagStrategySell(Statergy_Name);
}
}
我们准备了一个安装 ZagTrader 插件后的完整示例,名为 "BrodStrategiesExample"。