基于基本数据的交易算法

Fundamental data based trading algorithms

Q1: 是否有可能 创建一个 script/algorithm 纯粹放置 BUYSELL 所选货币对的订单,取决于是否如利率公告高于(或低于)预测数字?

我知道在买卖金融工具之前必须考虑许多其他技术和基本因素,但纯粹作为实验,我想确定这种方法是否可行。

如果能实现,
Q2:利率公告如何直接嵌入到脚本中,这样一旦图形已下达BUYorSELL订单是否立即执行?

注意:这将仅用于模拟交易账户。

之前根据基本数据价格反应执行头寸的替代尝试:

A1: IF ... 对,就是:

这个想法是可行的,但是一些外部因素使其对您的代码可以控制范围之外的因素非常敏感。

网络传输延迟 不是您最大的敌人。这些占一些 0.1 - 200 ms,具体取决于您尝试从哪个位置(通过哪个连接/服务)获取一些远程/远距离信息并在本地处理它们。对于并置托管,这将是该间隔的较短端,对于 COTS 办公设备,这将是较长的一端。

Application-based 事务处理延迟 是下一个更危险的延迟。每个 XTO 交易都不会在 zero-time 中发生。通常会定期记录/监控相应的延迟(延迟),以便为相应的市场准入代理/经纪人办公室提供 in-vivo 延迟范围。 数字各不相同,
Black-Swan事件时期[=79]期间,它们的over-relaxation
也有几个数量级的变化=] 或在高事务负载期间 / XTO-traffic-storms。

虚假传播爆炸
是你最糟糕的

虽然仍然隐藏
许多观点,
敌人. 在Fundamental News公告上,正如您上面所报告的,您感觉到了时间,但隐患不是线性时间滴答声,而是点差的爆炸,即PriceDOMAIN区域,no-one可以在其中进行交易( 一个 XTO ) 被填补,或者一个任何人都必须承担的暴露的交易者保证金攻击,如果在这段时间内有股票面临市场风险。

翻译成简单的英语 - no-one 主要是能够点击一个按钮 "in-time" 美国 NFP 和类似地震新闻公告.


A2: HOW ...算法将与新闻提供者通信

嵌入不是正确的表达方式,您的 algo-trading 将不得不成为 distributed-processing 系统的一部分,这将共同构成 trading-infrastructure.

市场数据馈送 -- 为您的本地处理提供quote-stream更新
市场准入 -- 您放置/取消您的XTO指令的地方
News Feed -- 您从哪里获取 macro-econ 新闻

用于采购动态消息数据的技术手段通常基于/取决于机构的商业产品/API 规范。虽然作为常见的外汇交易平台之一,MetaTrader 终端 确实提供了由经纪人提供的新闻服务,但人们迟早会意识到等待经纪人 re-publish 新闻是一把 dual-edged 剑,因为如果您的经纪商/他们的风险管理控制交易 "against" 一个人的头寸,他们有延迟公告的不公平优势,没有任何相关风险,这不平衡到同样公平,decision-making 交易者的头寸,他们的股票面临市场风险。接下来,一旦传送到 MetaTrader 终端 的本地主机领域,您的算法工具就没有 News-reading API/interface 来完全通过算法处理这些事件,因此在任何一种情况下您都将保持依赖在外部 news-stream 处理器上,与您的代码通信,在 MetaTrader 终端 的情况下,MQL4-代码以 distributed-system 方式。

话虽如此,您的 algo-trading 策略可以与 News Feed 合作并根据内容执行决策,自动发布(通常比获取/评估/(延迟)/re-processed / re-publish 通过其他三级处理器编辑)。

其中的关键是可行的 XTO & failure-remedies 策略,以逃避 time-trap 和爆炸的 spread-trap。

The Market does not wait a single [ms] see the FIX-Protocol API details on how many millions of EUR denominated value has been removed from L2-DoM just some 47 ms right before a nominal time of a News announcement: so this is a look into a microscope, how such gigantic holes appear in the PriceDOMAIN map ( painted by a Bid-pencil, whereas the Ask-side edge of the gap is not so easily visible, unless an extraordinary case happens as illustrated above )

14:29:59,953 <121402 MarketDataIncrementalRefresh (8=FIX.4.29=31135=X34=12140249=***52=20131206-13:29:51.55156=*****************62=20131206-12:37:09.000268=4279=0269=0278=264655=EUR/USD270=1.3654115=EUR271=2000000346=1279=2269=0278=265055=EUR/USD15=EUR279=0269=1278=265555=EUR/USD270=1.365615=EUR271=2000000346=1279=2269=1278=267755=EUR/USD15=EUR10=217)
|-------------------------------------------------(
                                                   8=FIX.4.2            ________FIX.8.BeginString           .aMessageHeaderBEGIN________________________________________<<HEADER>>
                                                   9=311                        FIX.9.BodyLength            .aMessageBodyLENGTH
                                                   35=X                         FIX.35.MsgType              .aTypeOfMESSAGE
                                                   34=121402                    FIX.34.MsgSeqNum            .aMessageSeqNUMBER              121402
                                                   49=***                       FIX.49.SenderCompID         .aSenderHostID
                                                   52=20131206-13:29:51.551     FIX.52.SendingTime          .aSenderTimeSTAMP               20131206-13:29:51.551
                                                   56=*************             FIX.56.TargetCompID         .aTargetHOST
                                                                        ________________________________________________________________________________________________<<HEADER>>
                                                   262=20131206-12:37:09.000    FIX.262.MDReqID             .aMarketDataRqstUUID            20131206-12:37:09.000        asString   .aMarketDataRqstUUID
                                                                        -----------------------------------------------------------------[*]----------------------------------------------
                                                   268=4                        FIX.268.NoMDEntries         .aMarketDataEntriesNUMBER       4
                                                                        -----------------------------------------------------------------[1]----------------------------------------------
                                                   279=0                        FIX.279.MDUpdateAction      .aMarketDataUpdateACTION        0               { 0: New, 1: Change, 2: Delete }
                                                   269=0                        FIX.269.MDEntryType         .aMarketDataEntryTYPE           0               { 0: Bid, 1: Offer, 2: Trade, 3: IndexVALUE, 4: aPriceOPEN, 5: aPriceCLOSE, 6: aPriceOfSETTLEMENT, 7: aTradingSessionPriceHIGH, 8: aTradingSessionPriceLOW, 9: aTradingSessionPriceVWAP }
                                                   278=2646                     FIX.278.MDEntryID           .aMarketDataEntryUUID           2646
                                                   55=EUR/USD                   FIX.55.Symbol               .aSYMBOL                        EUR/USD
                                                   270=1.36541                  FIX.270.MDEntryPx           .aMarketDataEntryPRICE          1.36541
                                                   15=EUR                       FIX.15.Currency             .anExplicitlyStatedCURRENCY     EUR
                                                   271=2000000                  FIX.271.MDEntrySize         .aMarketDataEntrySIZE           2.000.000 UoM/pieces
                                                   346=1                        FIX.346.NumberOfOrders      .aMarketDataEntryNumberOfORDERs 1
                                                                        -----------------------------------------------------------------[2]----------------------------------------------
                                                   279=2                        FIX.279.MDUpdateAction      .aMarketDataUpdateACTION        2               {} 2: Delete
                                                   269=0                        FIX.269                     .                               0               {} 0: Bid
                                                   278=2650                     FIX.278                     .                               2650
                                                   55=EUR/USD                   FIX.55                      .                               EUR/USD 
                                                   15=EUR                       FIX.15                      .                               EUR
                                                                        -----------------------------------------------------------------[3]----------------------------------------------
                                                   279=0                        FIX.279                     .                               0               {} 0: New
                                                   269=1                        FIX.269                     .                               1               {} 1: Ask/Offer
                                                   278=2655                     FIX.278                     .                               2655
                                                   55=EUR/USD                   FIX.55                      .                               EUR/USD
                                                   270=1.3656                   FIX.270                     .                               1.36560
                                                   15=EUR                       FIX.15                      .                               EUR
                                                   271=2000000                  FIX.271                     .                               2.000.000 UoM/pieces
                                                   346=1                        FIX.346                     .                               1
                                                                        -----------------------------------------------------------------[4]----------------------------------------------
                                                   279=2                        FIX.279                     .                               2               {} 2: Delete
                                                   269=1                        FIX.269                     .                               1               {} 1: Ask/Offer
                                                   278=2677                     FIX.278                     .                               2677
                                                   55=EUR/USD                   FIX.55                      .                               EUR/USD
                                                   15=EUR                       FIX.15                      .                               EUR
                                                   10=217               ________FIX.10.CheckSum______________________________________<<TRAILER>>            aTripleBYTE, asChar, ALGO ref. below
                                                  )

This illustrative sample was still quite exceptional for having just 4 items that have changed the EUR/USD pre-NFP announcement battle-field. Having done some quantitative empirical observations on "density of changes", enclosed you have a collection of LDF() data about how many FIX-messages contain between 10..380 aMarketDataUpdateACTION units:

max. value in FIX.268 ...== FIX.268.NoMDEntries   .aMarketDataEntriesNUMBER
                                                  |
                             1:   38774 x,  i.e. ~<  10 ..  19 > FIX.268.NoMDEntries per one FIX-Message delivered
                             2:   64764 x,  i.e. ~<  20 ..  29 > 
                             3:   27805 x,  i.e. ~<  30 ..  39 > 
                             4:   41307 x,  i.e. ~<  40 ..  49 >  
                             5:   17182 x,  i.e. ~<  50 ..  59 >  
                             6:   13640 x,  i.e. ~<  60 ..  69 >  
                             7:    5914 x,  i.e. ~<  70 ..  79 >  
                             8:    6544 x,  i.e. ~<  80 ..  89 >  
                             9:    3205 x,  i.e. ~<  90 ..  99 >  
                            10:    3150 x,  i.e. ~< 100 .. 109 >  
                            11:    1767 x,  i.e. ~< 110 .. 119 >  
                            12:    1432 x,  i.e. ~< 120 .. 129 >  
                            13:    1120 x,  i.e. ~< 130 .. 139 >  
                            14:     794 x,  i.e. ~< 140 .. 149 >  
                            15:     792 x,  i.e. ~< 150 .. 159 >  
                            16:     748 x,  i.e. ~< 160 .. 169 >  
                            17:     636 x,  i.e. ~< 170 .. 179 >  
                            18:     589 x,  i.e. ~< 180 .. 189 >  
                            19:     545 x,  i.e. ~< 190 .. 199 >  
                            20:     503 x,  i.e. ~< 200 .. 209 >  
                            21:     453 x,  i.e. ~< 210 .. 219 >  
                            22:     422 x,  i.e. ~< 220 .. 229 >  
                            23:     400 x,  i.e. ~< 230 .. 239 >  
                            24:     354 x,  i.e. ~< 240 .. 249 >  
                            25:     231 x,  i.e. ~< 250 .. 259 >  
                            26:     489 x,  i.e. ~< 260 .. 269 >  
                            27:     168 x,  i.e. ~< 270 .. 279 >  
                            28:     144 x   i.e. ~< 280 .. 289 >  
                            29:      48 x,  i.e. ~< 290 .. 299 >  
                            30:      42 x,  i.e. ~< 300 .. 309 >  
                            31:      16 x,  i.e. ~< 310 .. 319 >  
                            32:       6 x,  i.e. ~< 320 .. 329 >  
                            33:       8 x,  i.e. ~< 330 .. 339 >  
                            34:       5 x,  i.e. ~< 340 .. 349 >  
                            35:       2 x,  i.e. ~< 350 .. 359 >  
                            36:       4 x,  i.e. ~< 360 .. 369 >  
                            37:       1 x   i.e. ~< 370 .. 379 >

祝你好运,瞄准目标
在此
最终惊心动魄的狩猎!