: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

交易系統送信號如何比別人更快幾秒[MC平台]

交易系統送信號如何比別人更快幾秒[MC平台]

在盤中常常發現某些整點時間或特定時間週期會突然有許多系統單同時出來
特別是長週期的突破系統,通常會在突破後的下一個整點時間全數出籠,
因此出現滑價或買不到好價位

針對這個問題,可以用語法來解決,讓你比別人快幾秒進場,甚至可以吃點別人的豆腐
一般程序化交易系統都往往會在這根bar結束(buy this bar at close)或是下根bar開始(buy next bar at open)時送出委託單,如果你可以在這根bar結束前就進場,自然比別人更佔便宜!


這裡把送出委託單的時間在往前移10秒,必須啟動IntrabarOrderGeneration才能正常運作。
在Multicharts裡設置 Format(格式)->Signal(信號)->Fomat(設置)->IntrabarOrderGeneration(Bar內產生委託)

  1. vars:

  2. intrabarpersist waitingForBuy(false),

  3. intrabarpersist mySec(0),

  4. intrabarpersist myEntrySec(0);

  5. if barstatus=0 then begin

  6. mySec = currenttime_s;

  7. myEntrySec = currenttime_s+barinterval*60-10;

  8. end else begin

  9. mySec = mySec[1];

  10. myEntrySec = myEntrySec[1];

  11. end;

  12. if {your entry condition} then begin

  13. waitingForBuy = true;

  14. end;

  15. if waitingForBuy and currenttime_s>=myEntrySec then begin

  16. buy next bar at open;

  17. waitingForBuy =false;

  18. end;
复制代码

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

下面进行解释一下:

IntrabarOrderGeneration:这个意思是允许K线BAR还在走的过程中就可以产生交易信号。因为一般是默认这根K线走完才出信号,只有加上这一个才能让这根K线还没有走完就可以盘中发出委托单来。

barstatus=0 意思是当前这根BAR出第一个TICK价格。
*注: 这里做一个说明,关于技术图表上面数据的分类,一般的交易软件都是分这么两种,一是分时图,一个是技术图的。分时图就不说了,技术图表现价格的方式很多种,像美国线,宝塔线等等,但是国际上通用最多的就是蜡烛图,也叫K线。但是无论是蜡烛图还是分时图都源于一种数据叫TICK数据。国内默认的TICK数据是一秒钟统计的一秒钟内成交的数量,价格以及持仓情况的信息流。无数个秒级的TICK画成了分时图,而在某一时间段内(比方说五分钟或一小时),这个时间段第一个TICK数据的价格就是这个时间段K线的开盘价,最后一个TICK的价格就是这个时间段K线的收盘价,在这段时间内最大的TICK价就是最高价,最小的TICK价就是这段时间的K线的最低价。而在这个时间短内所有的TICK上面的成交加总就是这个时间段时K线的成交量,持仓量类似。

barstatus=2的时间,说明这个TICK是这根BAR也叫K线的最后一个TICK价格。也就是这根BAR的收盘价了。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

if barstatus=0 then begin

mySec = currenttime_s;

myEntrySec = currenttime_s+barinterval*60-10;
这一段的意思是说系统检查到现在这根K线的第一个TICK数据出来了,就是相当于这个K线刚开始,那么我设定的时间就是现在的时间。我进场的时间就是我设置时间+ BAR/K线周期*60秒-10.就是就是这根BAR结束之前10秒钟。比方说要是我们做程序化跑的是5分钟,那么五分钟内有5*60=300秒时间。减去10秒,也就是在这根BAR在第290秒时就是我要进场的时间了 。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

回复 1# 龙听

else begin

mySec = mySec[1];

myEntrySec = myEntrySec[1];

这一段的时间是如果现在不是这根K线的第一个TICK数据。那么我时间的时间就是上一根BAR/K线的记录的第一个BAR时的时间。这主要是为了应对盘中BAR在一直不停的运行的情况。这时系统只要检查到现在的TICK并不是这根BAR的第一个TICK,就一直忽略,延用第一个TICK的时间。

TOP

if {your entry condition} then begin

waitingForBuy = true;

end;

这是一个控制开关,只有条件达到进场的标准了,才打开等等买进的开关。默认是关上的。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

if waitingForBuy and currenttime_s>=myEntrySec then
begin

buy next bar at open;

waitingForBuy =false;

end;

这里有一个过滤,条件达到了进场的标准,同时时间也达到了标准。就激活下单委托指令,然后接着关上这个时间阀门。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

整体来说这个策略的目的是要在这根K线收盘前N秒进场,不过这个也有一个出现可能性不是很大,但是也有可能出现的情况,就是在这个N秒内价格出现了巨幅的回撤。比方说我们上面写的是这根BAR收前10秒下单,然后在这剩下的9秒内出现了巨幅的回搪,条件又没有达到了,但是单子已经发出去了并且成交了,但是从盘后看这个信号并没有出现。这就是信号闪烁,这个就没法避免了,就得再写个检查的策略,要是上一根BAR成交了,但是收盘时这个信号又没有了,那么在现在的这个BAR上把这个单子给平掉。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

返回列表