查看: 186219|回复: 326

(2015更新)用AUTOIT和TB打造国内期货无人值守全自动交易系统 [复制链接]

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 15:19:53 |显示全部楼层
本帖最后由 hyjok 于 2015-6-3 15:22 编辑

2015.6.2更新:

;功能描述:
;TB自动登录并启动自动交易
;监视TB实盘运行状态
;自动发送TB登录事件、行情断开报警消息
;发送方式:电子邮件,qq电子邮件可以通过微信或QQ接收,即时可以收到消息

重要说明:本脚本程序目的是减轻人为重复劳动,并不能完全替代人的作用,收到报警信息后请及时登录服务器检查TB运行情况。
(不才非专业程序员,TB自动登陆脚本纯属一个小小的TB实盘用户个人兴趣捣鼓出来的小工具,专业程序员请勿喷)

脚本程序及使用说明见附件(链接:http://pan.baidu.com/s/1pXBqe 密码:oq2o)

适用于TB 4.5.2、TB 5.0.19、TB4.3.5.10版本的32位版本(暂不适用64位版TB)
已有 7 人评分威望 金钱 收起 理由
jrqh862189 + 1 很给力!
topgun0791 + 2 楼主V5!还请及时更新支持windows7-64位操.
levy + 5 赞一个!
blackmount + 2 很给力!
1分钟k线图 + 2 很给力!

总评分: 威望 + 1012  金钱 + 500   查看全部评分

Rank: 5Rank: 5

精华
0
UID
5212
积分
1297
帖子
73
主题
7
阅读权限
60
注册时间
2009-8-18
最后登录
2009-9-14
发表于 2009-9-10 15:23:37 |显示全部楼层
就在这把内容贴出来好了,还要人家跑那么远的路。。。

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:17:14 |显示全部楼层
原帖由 ccms 于 2009-9-10 15:23 发表
就在这把内容贴出来好了,还要人家跑那么远的路。。。

呵呵!不要急,跟着就贴

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:19:02 |显示全部楼层
一、AUTOITTB简介

AutoIt 可以做的事:



  • 运行 Windows DOS 下的可执行文件

  • 模拟键击动作(支持大多数的键盘布局)

  • 模拟鼠标移动和点击动作。

  • 对窗口进行移动、调整大小和其它操作。

  • 直接与窗口的控件交互(设置/获取
    文字、移动、关闭,等等)

  • 配合剪贴板进行剪切/粘贴文本操作

  • 对注册表进行操作
AUTOIT下载地址http://www.autoitscript.com/autoit3/files/archive/autoit/autoit-v3.3.0.0-setup.exe
AUTOIT在线中文帮助文档http://www.dreams8.com/autoit/
TB:指交易开拓者超强版,详见TB网站论坛http://www.tradeblazer.net/forum/index.php
二、电脑系统设置
用做自动交易的电脑系统必须设置成自动登录,否则无法实现无人值守自动交易,电脑系统自动登陆方面请自己到网上搜索,不管是WIN XPWIN2003都可以
(假设系统是设置成Administrator用户自动登录,后面设置自动启动交易时会用到自动登录用户Administrator的文件夹,见五)
三、TB准备工作
1、安装TB ,登陆TB
2TB系统设置,打开“系统设置”,在“常规”页选中“打开最后保存的工作室(所有工作区)”;


[ 本帖最后由 hyjok 于 2010-1-15 13:17 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:20:01 |显示全部楼层
在“交易”页中将“默认显示交易师普通单确认页面”“默认显示交易师触发单确认页面” “默认显示预埋单之一键下单确认页面”“默认显示成交回报页面”四项前面的勾(√)去掉;然后点击“确定”


(以上设置目的是实现下次登录TB时自动打开交易图表)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:20:35 |显示全部楼层
2TB交易帐户设置
打开“交易帐户”选择好自动交易的帐号,填写密码,在“保存密码”和“自动登录”处打勾,然后点击“登录”(设置目的是实行下次登录TB时自动登录交易帐户)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:21:15 |显示全部楼层
3、自动交易指令设置
建立需要交易的期货合约图表,插入交易指令,打开“交易指令设置”窗口
点击“启动自动策略交易系统”在弹出窗口中点击“同意”
选择交易帐户,并点击选中“下单不需要用户确认”,然后点击“确定”
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:21:48 |显示全部楼层
4、点击菜单“文件”“保存所有工作区”,关闭TB
到此,TB设置完成,上面的设置是TB的常用设置,对TB熟悉的朋友来说是比较简单的

四、AUTOIT脚本设置
AUTOIT下载地址http://www.autoitscript.com/autoit3/downloads.shtml
AUTOIT在线中文帮助文档http://www.dreams8.com/autoit/
1、
下载、安装AutoIt Full Installation
2、
D盘根目录下建立AUTORUNTB文件夹(用于存放AUTOIT脚本文件,不一定放在D:\AUTORUNTB文件夹,你也可以存放在其它文件夹内,这里只为方便表述举例而已)
3、
D:\AUTORUNTB文件夹内,按鼠标右键,点击“新建”-AutoIt v3 Script”,输入文件名字为AUTORUNTB,文件默认为au3后缀
4、
右击刚才新建的AUTORUNTB.au3,点击“Edit Script”,打开脚本编辑窗口,将以下代码复制到脚本编辑窗口,在代码中注明“用你的TB登陆账号(密码)替换***”处替换成你的TB登录帐号和密码,然后保存,按键盘F7键将脚本编译成EXE可执行文件

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:22:23 |显示全部楼层
本帖最后由 hyjok 于 2011-9-25 21:13 编辑

2011-09-25请下载1楼代码

第一部分,2010-2-26日更新前的旧代码,适用于TB的3.2.6及之前版本
  1. #Include <date.au3>
  2. Dim $result,$tmp1,$path,$TBloginname,$TBloginpassword,$WorkNum,$WorkTabID
  3. $path="C:\Program Files\TradeBlazer\"      ;TB默认安装路径,如非默认安装,这里需要更改为你TB安装路径
  4. $TBloginname="***"                         ;用你的TB登陆账号替换***
  5. $TBloginpassword="***"                     ;用你的TB登陆密码替换***
  6. $WorkNum=2                                 ;这里的数字2代表你打开工作区数量,请根据你的实际情况做相应修改(另外请务必保留工作区默认名字,如“工作区1”、“工作区2”,或者保持七个半角字符宽度,切记,否则会影响打开自动交易功能)
  7. $WorkTabID="TabWnd:400000:8:10003:02"      ;这里"TabWnd:400000:8:10003:02"需要替换为你的工作名控件标识,查询方法见帖子46楼
  8. ;循环开始
  9. While 1
  10. If ProcessExists("TradeBlazer.exe") And WinExists("交易开拓者(超强版) - ") = 0 Then
  11.     ProcessClose("TradeBlazer.exe")
  12.     ProcessClose("TradeBlazerWindows.exe")
  13.     Sleep(3000)
  14. EndIf
  15. If WinExists("交易开拓者(超强版) - ") = 0 And ((@HOUR=8 And @MIN>=50) Or @HOUR>=9) And @HOUR <=22 Then
  16.     $result=0
  17.     Run($path&"TradeBlazer.exe",$path)
  18.     WinWaitActive("欢迎登录交易开拓者(超强版)","",10)
  19.     ControlFocus("欢迎登录交易开拓者(超强版)","","Edit1")
  20.     ControlSetText("欢迎登录交易开拓者(超强版)","","Edit1",$TBloginname)
  21.     ControlFocus("欢迎登录交易开拓者(超强版)","","Edit2")
  22.     ControlSetText("欢迎登录交易开拓者(超强版)","","Edit2",$TBloginpassword)
  23.     ControlFocus("欢迎登录交易开拓者(超强版)","","Button2")
  24.     ControlClick("欢迎登录交易开拓者(超强版)","","Button2")
  25.     WinWaitActive("交易开拓者(超强版) - ","",30)
  26.     Sleep(2000)
  27.     WinActivate("交易开拓者(超强版) - ")
  28.     If WinExists("系统消息") Then
  29.         WinActivate("系统消息")
  30.         WinClose("系统消息")
  31.         Sleep(1000)
  32.     EndIf
  33. ;TB自动登陆设置*****结束*****
  34.     For $i=1 To $WorkNum
  35.         $tmp1 = 15 + 60 * ($i - 1)
  36.         WinActivate("交易开拓者(超强版) - ")
  37.         ControlClick("交易开拓者(超强版) - ","",$WorkTabID,"left",1,$tmp1,6)
  38.         Sleep(3000)
  39.         $result=WinMenuSelectItem("交易开拓者(超强版) - ","","文件(&F)", "启动所有自动交易");启动工作区内所有自动交易
  40.         Sleep(1000)
  41.     Next
  42.     If $result=1 Then DllCall("user32.dll","int","LockWorkStation");开启TB自动交易后,锁定电脑系统,用于服务器版系统如windows 2003
  43.     If $result=0 Then
  44.         WinActivate("交易开拓者")
  45.         WinClose("交易开拓者")
  46.         Sleep(2000)
  47.     EndIf
  48. ElseIf ((@HOUR=8 And @MIN<50) Or @HOUR<8) And @HOUR>22 Then
  49.     DllCall("user32.dll","int","LockWorkStation");非交易时间启动电脑后,立即锁定电脑系统
  50. EndIf
  51. If WinExists("交易开拓者") And @HOUR>22 Then ;非交易时间关闭TB
  52.         ProcessClose("TradeBlazer.exe")
  53.     ProcessClose("TradeBlazerWindows.exe")
  54.         ProcessClose("TradeBlazerConnect.exe")
  55.         ProcessClose("TradeBlazerDatabase.exe")
  56.         ProcessClose("icegridregistry.exe")
  57. EndIf
  58. Sleep(1000)
  59. WEnd
  60. ;循环结束
复制代码
第二部分,2010-2-26日更新后的新代码,适用于TB的3.2.7及其后续版本
  1. #Include <date.au3>
  2. Dim $result,$tmp1,$path,$TBloginname,$TBloginpassword
  3. $path="C:\Program Files\TradeBlazer\"      ;TB默认安装路径,如非默认安装,这里需要更改为你TB安装路径
  4. $TBloginname="***"                         ;用你的TB登陆账号替换***
  5. $TBloginpassword="***"                     ;用你的TB登陆密码替换***
  6. ;循环开始
  7. While 1
  8. If ProcessExists("TradeBlazer.exe") And WinExists("交易开拓者(超强版) - ") = 0 Then
  9.         ProcessClose("TradeBlazer.exe")
  10.         ProcessClose("TBDataCenter.exe")
  11.     Sleep(3000)
  12. EndIf
  13. If WinExists("交易开拓者(超强版) - ") = 0 And ((@HOUR=8 And @MIN>=50) Or @HOUR>=9) And @HOUR <=22 Then
  14.     $result=0
  15.     Run($path&"TradeBlazer.exe",$path)
  16.     WinWaitActive("欢迎登录交易开拓者(超强版)","",20)
  17.     WinActivate("交易开拓者(超强版)")
  18.     ControlFocus("欢迎登录交易开拓者(超强版)","","Edit1")
  19.     ControlSetText("欢迎登录交易开拓者(超强版)","","Edit1",$TBloginname)
  20.     ControlFocus("欢迎登录交易开拓者(超强版)","","Edit2")
  21.     ControlSetText("欢迎登录交易开拓者(超强版)","","Edit2",$TBloginpassword)
  22.     ControlFocus("欢迎登录交易开拓者(超强版)","","Button2")
  23.     ControlClick("欢迎登录交易开拓者(超强版)","","Button2")
  24.     WinWaitActive("交易开拓者(超强版) - ","",30)
  25.     Sleep(2000)
  26.     WinActivate("交易开拓者(超强版) - ")
  27.     If WinExists("系统消息") Then
  28.         WinActivate("系统消息")
  29.         WinClose("系统消息")
  30.         Sleep(1000)
  31.     EndIf
  32. ;TB自动登陆设置*****结束*****
  33.     WinActivate("交易开拓者(超强版) - ")
  34.     Sleep(2000)
  35.     $result=WinMenuSelectItem("交易开拓者(超强版) - ","","文件(&F)", "启动所有自动交易");启动工作区内所有自动交易
  36.     Sleep(2000)
  37.     If $result=1 Then DllCall("user32.dll","int","LockWorkStation");开启TB自动交易后,锁定电脑系统,用于服务器版系统如windows 2003
  38.     If $result=0 Then
  39.         WinActivate("交易开拓者")
  40.         WinClose("交易开拓者")
  41.         Sleep(2000)
  42.     EndIf
  43. ElseIf ((@HOUR=8 And @MIN<50) Or @HOUR<8) And @HOUR>22 Then
  44.     DllCall("user32.dll","int","LockWorkStation");非交易时间启动电脑后,立即锁定电脑系统
  45. EndIf
  46. If WinExists("交易开拓者") And @HOUR>22 Then ;非交易时间关闭TB
  47.         ProcessClose("TradeBlazer.exe")
  48.         ProcessClose("TBDataCenter.exe")
  49. EndIf
  50. Sleep(1000)
  51. WEnd
  52. ;循环结束
复制代码
[ 本帖最后由 hyjok 于 2010-3-2 14:30 编辑 ]

第三部分,应用到TB3.3.0版

  1. #Include <date.au3>
  2. Dim $result,$tmp1,$path,$TBloginname,$TBloginpassword
  3. $path="C:\Program Files\TradeBlazer\"      ;TB默认安装路径,如非默认安装,这里需要更改为你TB安装路径
  4. $TBloginname="***"                         ;用你的TB登陆账号替换***
  5. $TBloginpassword="***"                     ;用你的TB登陆密码替换***
  6. ;循环开始
  7. While 1
  8. If ProcessExists("TradeBlazer.exe") And WinExists("交易开拓者(超强版) - ") = 0 Then
  9.         ProcessClose("TradeBlazer.exe")
  10.         ProcessClose("TBDataCenter.exe")
  11.     Sleep(3000)
  12. EndIf
  13. If WinExists("交易开拓者(超强版) - ") = 0 And ((@HOUR=8 And @MIN>=50) Or @HOUR>=9) And @HOUR <=22 Then
  14.     $result=0
  15.     Run($path&"TradeBlazer.exe",$path)
  16.     WinWaitActive("欢迎登录交易开拓者(超强版)","",20)
  17.     WinActivate("交易开拓者(超强版)")
  18.     ControlFocus("欢迎登录交易开拓者(超强版)","","Edit1")
  19.     ControlSetText("欢迎登录交易开拓者(超强版)","","Edit1",$TBloginpassword)
  20.     ControlFocus("欢迎登录交易开拓者(超强版)","","Edit2")
  21.     ControlSetText("欢迎登录交易开拓者(超强版)","","Edit2",$TBloginname)
  22.     ControlFocus("欢迎登录交易开拓者(超强版)","","Button2")
  23.     ControlClick("欢迎登录交易开拓者(超强版)","","Button2")
  24.     WinWaitActive("交易开拓者(超强版) - ","",30)
  25.     Sleep(2000)
  26.     WinActivate("交易开拓者(超强版) - ")
  27.     If WinExists("系统消息") Then
  28.         WinActivate("系统消息")
  29.         WinClose("系统消息")
  30.         Sleep(1000)
  31.     EndIf
  32. ;TB自动登陆设置*****结束*****
  33.     WinActivate("交易开拓者(超强版) - ")
  34.     Sleep(2000)
  35.     $result=WinMenuSelectItem("交易开拓者(超强版) - ","","文件(&F)", "启动所有自动交易");启动工作区内所有自动交易
  36.     Sleep(2000)
  37.     If $result=1 Then DllCall("user32.dll","int","LockWorkStation");开启TB自动交易后,锁定电脑系统,用于服务器版系统如windows 2003
  38.     If $result=0 Then
  39.         WinActivate("交易开拓者")
  40.         WinClose("交易开拓者")
  41.         Sleep(2000)
  42.     EndIf
  43. ElseIf ((@HOUR=8 And @MIN<50) Or @HOUR<8) And @HOUR>22 Then
  44.     DllCall("user32.dll","int","LockWorkStation");非交易时间启动电脑后,立即锁定电脑系统
  45. EndIf
  46. If WinExists("交易开拓者") And @HOUR>22 Then ;非交易时间关闭TB
  47.         ProcessClose("TradeBlazer.exe")
  48.         ProcessClose("TBDataCenter.exe")
  49. EndIf
  50. Sleep(1000)
  51. WEnd
  52. ;循环结束
复制代码

使用道具 举报

Rank: 9Rank: 9Rank: 9

精华
3
UID
2459
积分
12313
帖子
179
主题
19
阅读权限
150
注册时间
2008-9-26
最后登录
2015-12-3
发表于 2009-9-10 16:23:01 |显示全部楼层
5、
打开D:\AUTORUNTB文件夹,你看到有一个文件名为AUTORUNTB.exe的可执行文件,这就是我们需要的

五、将AUTORUNTB.exe设置为电脑开机自动登录后自动运行
打开“我的电脑” 本地磁盘(C:)”Documents and SettingsAdministrator“「开始」菜单” 程序”“启动”(即打开C:\Documents and Settings\Administrator\「开始」菜单\程序\启动文件夹)
在空白处按鼠标右键,点击“新建”“快捷方式”,在创建快捷方式窗口中填入AUTORUNTB.exe的完整路径和文件名,本例中是D:\AUTORUNTB\ AUTORUNTB.exe,点击“下一步”“完成”

至此,所有设置完毕,重新开机启动即可实现无人值守全自动交易
(如果是使用ADSL拨号上网的话,可以将电脑设置成开机自动拨号,具体设置请自己上网查)

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2020-1-24 01:08

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部