开拓者期货期权程序化系统交易论坛

标题: (2015更新)用AUTOIT和TB打造国内期货无人值守全自动交易系统 [打印本页]

作者: hyjok    时间: 2009-9-10 15:19:53     标题: (2015更新)用AUTOIT和TB打造国内期货无人值守全自动交易系统

本帖最后由 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)

作者: ccms    时间: 2009-9-10 15:23:37

就在这把内容贴出来好了,还要人家跑那么远的路。。。
作者: hyjok    时间: 2009-9-10 16:17:14

原帖由 ccms 于 2009-9-10 15:23 发表
就在这把内容贴出来好了,还要人家跑那么远的路。。。

呵呵!不要急,跟着就贴
作者: hyjok    时间: 2009-9-10 16:19:02

一、AUTOITTB简介

AutoIt 可以做的事:


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系统设置,打开“系统设置”,在“常规”页选中“打开最后保存的工作室(所有工作区)”;
[attach]2289[/attach]

[ 本帖最后由 hyjok 于 2010-1-15 13:17 编辑 ]
作者: hyjok    时间: 2009-9-10 16:20:01

在“交易”页中将“默认显示交易师普通单确认页面”“默认显示交易师触发单确认页面” “默认显示预埋单之一键下单确认页面”“默认显示成交回报页面”四项前面的勾(√)去掉;然后点击“确定”
[attach]2290[/attach]

(以上设置目的是实现下次登录TB时自动打开交易图表)
作者: hyjok    时间: 2009-9-10 16:20:35

2TB交易帐户设置
打开“交易帐户”选择好自动交易的帐号,填写密码,在“保存密码”和“自动登录”处打勾,然后点击“登录”(设置目的是实行下次登录TB时自动登录交易帐户)
[attach]2291[/attach]
作者: hyjok    时间: 2009-9-10 16:21:15

3、自动交易指令设置
建立需要交易的期货合约图表,插入交易指令,打开“交易指令设置”窗口
点击“启动自动策略交易系统”在弹出窗口中点击“同意”
选择交易帐户,并点击选中“下单不需要用户确认”,然后点击“确定”
[attach]2292[/attach]
作者: hyjok    时间: 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可执行文件
作者: hyjok    时间: 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. ;循环结束
复制代码

作者: hyjok    时间: 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拨号上网的话,可以将电脑设置成开机自动拨号,具体设置请自己上网查)
作者: hyjok    时间: 2009-9-10 16:23:58

贴完了,花了我半天功夫做的简单教程,欢迎拍砖
作者: ccms    时间: 2009-9-10 16:29:11

建议此贴授精!虽没测试过,但楼主是好人啊!
冬天早上不用起来了?
作者: z16304607    时间: 2009-9-10 16:38:07

谢谢分享
作者: hyjok    时间: 2009-9-10 16:42:32

期待TB早日实现自动登陆,就象MT4那样可以自动登陆自动交易就好了,这样就不必让系统每天开盘前都要自动重起一次
作者: hyjok    时间: 2009-9-10 17:00:21

原帖由 ccms 于 2009-9-10 16:29 发表
建议此贴授精!虽没测试过,但楼主是好人啊!
冬天早上不用起来了?

授精不敢当!
我这也是被逼出来的,谁叫我这老停电呢,干脆就买了个VPS,尝试过不少方法才实现了现在的无人值守全自动交易。停电就停吧,有VPS+TB自动交易,老子不怕,哈哈
作者: ccms    时间: 2009-9-10 17:17:53

原帖由 hyjok 于 2009-9-10 05:00 PM 发表

授精不敢当!
我这也是被逼出来的,谁叫我这老停电呢,干脆就买了个VPS,尝试过不少方法才实现了现在的无人值守全自动交易。停电就停吧,有VPS+TB自动交易,老子不怕,哈哈 ...

停电了网络不也上不了,你用无线?
作者: 马不停蹄    时间: 2009-9-10 17:18:06

多 谢 分 享 !
作者: hyjok    时间: 2009-9-10 17:38:48

原帖由 ccms 于 2009-9-10 17:17 发表

停电了网络不也上不了,你用无线?

用的是VPS(虚拟服务器),是放在计算机机房里的,24小时不停电
在我这不停电的时候通过远程控制连接VPS,安装TB、AUTOIT,设置服务器系统自动登录、自动启动自动交易等
(停电的是本人所在的地方)

[ 本帖最后由 hyjok 于 2009-9-10 17:43 编辑 ]
作者: ccms    时间: 2009-9-10 17:44:30

原帖由 hyjok 于 2009-9-10 05:38 PM 发表

用的是VPS(虚拟服务器),是放在计算机机房里的,24小时不停电
通过远程控制连接VPS
停电的是本人所在的地方


楼主你彻底自由了。。。
作者: 只求薄利    时间: 2009-9-10 22:14:41

用心良苦

TB团队应该认真考虑实现自动登录 自动启动交易策略,作为可选项
作者: 高架桥    时间: 2009-9-10 22:17:03

牛人天天有啊。。。。
作者: 只求薄利    时间: 2009-9-10 22:17:18

以前听TB团队解释过,好像是说每天早上有一个柜台结算的时间,在此之前启动自动交易会导致错误,无法初始化。不知道现在是否仍然存在这一的瓶颈
作者: hyjok    时间: 2009-9-11 09:35:12

原帖由 只求薄利 于 2009-9-10 22:17 发表
以前听TB团队解释过,好像是说每天早上有一个柜台结算的时间,在此之前启动自动交易会导致错误,无法初始化。不知道现在是否仍然存在这一的瓶颈

这个问题我不了解,不过我现在的实盘就是这样做,将服务器设置成每天8点49分自动重起,自动登录自动开启TB,自动交易,完全实现无人值守的自动化
作者: 天柏    时间: 2009-9-11 11:26:04

个人感觉现在实现无人值守还不合适,很多环节需要考虑的,你愿意把未知的因素变成亏损么?那可是真金白银啊!
作者: hyjok    时间: 2009-9-11 11:55:54

原帖由 天柏 于 2009-9-11 11:26 发表
个人感觉现在实现无人值守还不合适,很多环节需要考虑的,你愿意把未知的因素变成亏损么?那可是真金白银啊!

关于无人值守交易可靠度方面,必须要考虑几个方面:
1、你的交易系统是否可靠,也就是说你必须得先有一个你完全信任的交易系统,在不考滤网络连接影响等非正常因素的前提下,让交易系统自动交易,能够做到在正常情况下不人工干预交易
(不管是有人值守还是无人值守,有一个可盈利的交易系统以及坚定不移地执行交易信号这两方面是一切的前提,不能做到这两点,一切都是白费功夫)
2、自动交易信号执行方面,TB已经做得很好,配合TB的交易助手功能,可以很好的处理未成交单撤单和重新委托
3、其他非正常因素的影响,比如网络环境、电源供应的影响
做自动交易的电脑最后放在计算机机房,可以尽可能大的避免网络环境和电源供应的影响
在家交易的朋友可以考虑双网络连接,增加UPS不间断电源,以保证网络畅通和电源供应
4、还有其他不可控制的影响因素,比如交易所系统故障、全国网络堵塞网络等,当然这些不可避免因素出现的可能性比较低,万一发生,任何人都逃不过,这就不是有人值守还是无人值守的问题了
作者: ccms    时间: 2009-9-11 15:22:22

LS的说的灰常好。
同时嘛,TB真的不错。
作者: leixb    时间: 2009-9-11 16:25:31

顶!太好了。
作者: 马不停蹄    时间: 2009-9-11 17:19:58

原帖由 hyjok 于 2009-9-11 09:35 发表

这个问题我不了解,不过我现在的实盘就是这样做,将服务器设置成每天8点49分自动重起,自动登录自动开启TB,自动交易,完全实现无人值守的自动化 ...


8:15以后不会出现问题。
作者: leixb    时间: 2009-9-12 09:00:09     标题: 奇怪

Run("E:\TradeBlazer\TradeBlazer.exe")

把脚本中的其他内容都删除了,只留下这么一句,都运行不了。
每次执行脚本,都只能看到一个TB的图标显示在状态栏上,大约2秒之后就消失了。
听不见TB启动时的音乐,也看不到TB的启动窗体。
查看系统中的进程,也没有TB的进程。就像什么都没发生一样。

把上面的换成
Run("notepad.exe")或qq,或其他的软件,都能正常启动相对应软件。

楼主能否解答一下?谢谢
作者: hyjok    时间: 2009-9-12 14:55:54

原帖由 leixb 于 2009-9-12 09:00 发表
Run("E:\TradeBlazer\TradeBlazer.exe")

把脚本中的其他内容都删除了,只留下这么一句,都运行不了。
每次执行脚本,都只能看到一个TB的图标显示在状态栏上,大约2秒之后就消失了。
听不见TB启动时的音乐,也看不到TB的启动窗 ...


Run("E:\TradeBlazer\TradeBlazer.exe")改为Run("E:\TradeBlazer\TradeBlazer.exe","E:\TradeBlazer\")再试试

代码已修改,见9楼红色部分

[ 本帖最后由 hyjok 于 2009-9-12 22:21 编辑 ]
作者: hyjok    时间: 2009-9-12 22:17:57

原帖由 leixb 于 2009-9-12 09:00 发表
Run("E:\TradeBlazer\TradeBlazer.exe")

把脚本中的其他内容都删除了,只留下这么一句,都运行不了。
每次执行脚本,都只能看到一个TB的图标显示在状态栏上,大约2秒之后就消失了。
听不见TB启动时的音乐,也看不到TB的启动窗 ...


代码已修改,见9楼红色部分
作者: leixb    时间: 2009-9-13 10:14:28     标题: 回复 30# hyjok 的帖子

测试过,可以了。楼主真牛!
作者: boss    时间: 2009-9-14 15:51:08     标题: 回复 1# hyjok 的帖子

请问你的QQ号是多少,很想加你为QQ好友,我的QQ号是806501855
作者: 程序交易    时间: 2009-9-14 21:20:51

5、
打开D:\AUTORUNTB文件夹,你看到有一个文件名为AUTORUNTB.exe的可执行文件,这就是我们需要的

----AUTORUNTB.exe找不到,楼主帮忙,谢谢
作者: hyjok    时间: 2009-9-14 21:55:16

原帖由 程序交易 于 2009-9-14 21:20 发表
5、
打开D:\AUTORUNTB文件夹,你看到有一个文件名为AUTORUNTB.exe的可执行文件,这就是我们需要的

----AUTORUNTB.exe找不到,楼主帮忙,谢谢

4、
右击刚才新建的AUTORUNTB.au3,点击“Edit Script”,打开脚本编辑窗口,将以下代码复制到脚本编辑窗口,在代码中注明“用你的TB登陆账号(密码)替换***”处替换成你的TB登录帐号和密码,然后保存,按键盘F7键将脚本编译成EXE可执行文件

F7编译脚本生成EXE文件,XP系统默认状态下,你电脑是不会显示文件后缀名的,看到如下图片所示
[attach]2297[/attach]
左边的是AUTORUNTB.exe可执行文件,右边的是AUTORUNTB.au3脚本源代码文件
作者: 只求薄利    时间: 2009-9-14 22:53:08

楼主辛苦
作者: 只求薄利    时间: 2009-9-14 22:53:25

给你加分加油
作者: hyjok    时间: 2009-9-16 11:17:36

2009-9-16增加每秒钟循环一次,防止占用系统资源,见9楼代码中粉色部分

增加前,原代码运行时系统CPU占用超90%,增加每秒循环一次后脚本运行占用CPU资源度几乎可以忽略不计

[ 本帖最后由 hyjok 于 2009-9-16 11:30 编辑 ]
作者: sunnyorange    时间: 2009-9-17 11:13:31

审核批准,此方案可行! 赞一个
作者: hyjok    时间: 2009-10-23 14:27:38

AUTOIT代码已更新,详见9楼
作者: hyjok    时间: 2009-10-25 15:11:00

2009-10-25更新AUTOIT代码,新代码见9楼
AUTOIT代码更新说明:
1、解决因其他程序影响无法自动登陆TB的问题(前提是:电脑必须能自动登录并能自动上网)
2、解决应用于远程服务器上,远程桌面登录时会关闭原已经登录的TB的问题
3、解决电脑在锁定状态下无法自动登录TB的问题
4、解决无法启动多工作区自动交易的问题
作者: 简单    时间: 2009-10-30 16:00:11

楼主太牛了,赞一个
作者: hyjok    时间: 2009-10-31 11:26:01

2009-10-28 AUTOIT代码更新说明
增加处理TB启动时出现“交易服务器数据库初始化失败”状态时的异常处理,新代码见9楼
作者: nickchen    时间: 2009-10-31 16:56:40

非常好 偶非常喜欢 正求之不得呢 谢谢
作者: hyjok    时间: 2009-11-17 14:55:24

NND,今天才发现,不同计算机上的控件标识竟然不一样,"TabWnd:400000:8:10011:02"是表示tb工作区名的控件的标识,在电脑上运行AutoIt Window Info
[attach]2476[/attach]

[attach]2477[/attach]
把AutoIt Window Info窗口拖到工作区名旁边,鼠标点击AutoIt Window Info窗口里的“Summary”---然后点tb的工作区名字(如燃油套1),保持鼠标在工作区名字(如燃油套1)不要动,记下AutoIt Window Info窗口里如图蓝底部分的值,将其替换本贴9楼autoit脚本代码第7行相应内容即可

autoit已经升级到3.3.2.0版,新版本无法查看到控件标识,请大家用3.3.0.0版的http://www.autoitscript.com/auto ... -v3.3.0.0-setup.exe

[ 本帖最后由 hyjok 于 2010-1-15 13:19 编辑 ]
作者: hyjok    时间: 2009-11-18 20:12:53

2009-11-18优化autoit代码,将代码中需要各位朋友自己修改的地方统一用变量代替,方便使用,见9楼
作者: hyjok    时间: 2009-11-19 18:18:16

2009-11-19 autoit代码有小小变动,代码结构优化
作者: hyjok    时间: 2009-11-19 23:05:17

2009-11-19 autoit再次更新优化代码,请到9楼下载最新版
作者: 女儿是期神    时间: 2009-11-20 08:00:11

乐丁好勤奋啊
作者: 游客    时间: 2009-11-20 11:17:06

乐丁,我好崇拜你啊
作者: hyjok    时间: 2009-12-14 14:58:51

2009-12-14 14:50 代码结构优化
新代码简单有效,遇到初始化失败、TB登录线路故障、登录密码账号错误、ICE类错误等造成无法正常登陆TB的情况会自动重起TB登录,新代码见9楼

作者: cwj    时间: 2009-12-14 16:09:03

楼主的贡献灰常大,灰常的有爱心。

PS: 租VPS的费用如何?
作者: hyjok    时间: 2009-12-14 16:51:56

原帖由 cwj 于 2009-12-14 16:09 发表
楼主的贡献灰常大,灰常的有爱心。

PS: 租VPS的费用如何?


淘宝上多着尼,5402双CPU、512MB内存、保证5M带宽的大约120元每月,买之前多了解多试用多比较,以远程登录操作流畅不感到有延迟为好
使用vps做实盘交易还要注意保证vps系统上时间的准确性,可以设置系统自动与Internet时间服务器自动同步,另外更改时间服务器地址为国家授时中心服务器地址210.72.145.44,设置更新时间周期为1小时

中国国家授时中心的时间服务器IP地址及时间同步方法大家都知道计算机电脑的时间是由一块电池供电保持的,而且准确度比较差经常出现走时不准的时候。通过互联网络上发布的一些公用网络时间服务器NTP server,就可以实现自动、定期的同步本机标准时间。依靠windows系统默认的windows或NIST等境外的时间服务器同步时间,总存在着访问堵塞、时间延迟大(同步精度低)等因素的影响。
现在中国的国家授时中心发布了一个时间服务器地址,大家可以用国人自己的标准时间!
方法一、采用系统自带的时间同步功能以Vista 操作系统为例,单击系统托盘下方的时间,单击弹出窗口里的“更改日期和时间设置”,弹出“日期和时间”对话框,选择“Internet时间”选项卡,单击 “更改设置”按钮,弹出“Internet时间设置”对话框,在服务器地址栏输入国家授时中心服务器的IP地址:210.72.145.44,单击“立即更新”按钮,同步完成后点击“确定”按钮退出,OK。
方法二、修改注册表,提高时间同步精度由于系统默认的时间同步间隔是7天,我们无法自由选择,使得这个功能在灵活性方面大打折扣。其实,我们也可以通过修改注册表来手动修改它的自动同步间隔以提高同步精度。
1. 在“开始”菜单→“运行”项下(或按Win+R)输入“Regedit”进入注册表编辑器。
2. 展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]分支,双击NtpServer将键值修改为国家授时中心服务器的IP地址:210.72.145.44,然后点击“确定”按钮保存。(注:若已用过方法一,此步可以省略)
3. 展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders \NtpClient]分支,并双击SpecialPollInterval键值,将对话框中的“基数栏”选择到“十进制”上,输入框中显示的数字正是自动对时的间隔(以秒为单位),比如默认的604800就是由7(天)×24(时)×60(分)×60(秒)计算来的。设定时间同步周期(建议设为900= 15分钟或3600=1小时等周期值),填入对话框,点击确定保存关闭对话框。
中国国家授时中心: http://www.time.ac.cn/stime.asp

[ 本帖最后由 hyjok 于 2009-12-14 16:53 编辑 ]
作者: cwj    时间: 2009-12-14 16:58:56     标题: 回复 54# hyjok 的帖子

多谢H兄。 你太牛了。修改注册表设置时间校准间隔这招很高。
作者: aocool    时间: 2009-12-14 17:13:42

楼主高人。灰常感谢!
作者: hyjok    时间: 2009-12-14 17:37:17

原帖由 cwj 于 2009-12-14 16:58 发表
多谢H兄。 你太牛了。修改注册表设置时间校准间隔这招很高。


不客气,另外,如果vps有客户服务器(vps)与物理服务器时间同步功能的话,把这个服务禁用,我试用过的几个vps供应商的物理服务器时间都不准
作者: cwj    时间: 2009-12-14 17:58:17     标题: 回复 57# hyjok 的帖子

H兄,好象那个国家授时中心服务器的IP地址:210.72.145.44 不行了。刚注册表改过了。我是用WIN7.
作者: cwj    时间: 2009-12-14 18:01:41

用VPS爽啊。比方专做SH的品种租用上海的VPS。那速度相当的快吧。5M独享啊。:可以MS级炒单了 lol 可惜上海收双边了。
作者: hyjok    时间: 2009-12-15 09:05:39

原帖由 cwj 于 2009-12-14 17:58 发表
H兄,好象那个国家授时中心服务器的IP地址:210.72.145.44 不行了。刚注册表改过了。我是用WIN7.

要保证Windows Time服务是运行状态才行(默认是自动开启的,一般不用管它),WIN7上没试过,俺在WinXP和2003上试过是可以的
[attach]2620[/attach]
作者: devcon    时间: 2009-12-16 18:41:33

请问楼主,TB能自动同步交易所和本机的时间,这个功能在VPS上起作用吗?
作者: hyjok    时间: 2009-12-18 21:01:31

原帖由 devcon 于 2009-12-16 18:41 发表
请问楼主,TB能自动同步交易所和本机的时间,这个功能在VPS上起作用吗?

VPS跟普通电脑一样可以的
作者: liuhai777    时间: 2009-12-20 17:23:55

楼主,牛,学习中
作者: liuhai777    时间: 2009-12-20 17:24:48

楼主,我加了你QQ,请多帮忙
作者: hyjok    时间: 2009-12-28 10:29:45

2009-12-28 10:17  更新说明
原代码没有涉及TB解锁部分,在TB锁定状态下,盘后无法正确关闭TB窗口,新代码增加盘后关闭TB时先判断TB是否已锁定,处在锁定状态时先解除锁定再关闭TB窗口否则直接关闭TB窗口
作者: aocool    时间: 2009-12-28 13:09:54

乐大侠的手很快啊!
作者: 趋势朋友    时间: 2010-1-3 12:53:10

无人值守全自动交易,好厉害啊!!!!
作者: hyjok    时间: 2010-1-4 11:04:05

2010-1-4 11:00  更新说明
上次更新解除锁定方式有问题,有时并不能解除锁定,现在更新,采取盘后直接关闭TB进程的方式

作者: hyjok    时间: 2010-1-5 09:01:05

2010-1-5 08:58 更新
昨天更新还是不能在锁定状态下关闭TB,今天调整后可以了,需要的朋友请重新下载
作者: liuhai777    时间: 2010-1-11 19:12:58     标题: 顶一个

牛人,就是牛人啊
作者: 交易理念    时间: 2010-1-14 17:03:23

为什么我开机时,第一次总是不能正常起启动TB,而要自动第二次才能正常启动TB,请问楼主是什么原因啊
作者: 交易理念    时间: 2010-1-14 17:16:29

还有我今天运行了一天,回家看CPU使用达到了100%,这和使用自动化有关吗?
作者: hyjok    时间: 2010-1-15 13:19:52

autoit已经升级到3.3.2.0版,新版本无法查看到控件标识,请大家用3.3.0.0版的http://www.autoitscript.com/autoit3/files/archive/autoit/autoit-v3.3.0.0-setup.exe
作者: hyjok    时间: 2010-1-15 13:25:25

原帖由 交易理念 于 2010-1-14 17:03 发表
为什么我开机时,第一次总是不能正常起启动TB,而要自动第二次才能正常启动TB,请问楼主是什么原因啊

可能电脑刚启动时装载过多程序造成系统响应过慢(如刚开机时,杀毒软件扫描系统,占用大量资源),影响TB启动
检查电脑是否自动启动其他程序,如QQ、msn等,清楚这类程序的自动启动
作者: hyjok    时间: 2010-1-15 13:28:51

原帖由 交易理念 于 2010-1-14 17:16 发表
还有我今天运行了一天,回家看CPU使用达到了100%,这和使用自动化有关吗?


一般来说,使用autoit外挂自动化跟不使用所占用的资源是没有多大区别的,cpu达100%跟使用autoit自动化无关,先保证在不使用autoit的情况下,手动运行TB看看是否也是出现同样问题,便于查找原因
作者: 交易理念    时间: 2010-1-17 10:40:37

谢谢楼主,我注意到我的CPU使用100%是因为360度实时保护测试版造成的.电脑刚起启动造成TB第二次才能成功启动的原因也许和你说的有关
作者: hyjok    时间: 2010-1-22 20:14:11

2010-1-22 20:15  更新说明
上次更新,采取盘后直接关闭TB进程的方式,现在更新,更改为正常关闭窗口方式,自动输入密码解锁、保存工作区、正常关闭TB
作者: 交易理念    时间: 2010-1-23 12:06:50

今天重装了TB,并且在电脑完全启动后加载autoit,第一次启动TB还是没有成功.第一次启动TB表现是出现TB登陆界面,不填写密码.然后第一次TB启动退出,第二次成功启动.还有一次,我看见第一次启动TB时填写的帐号不是我的帐号.另外在昨天我编写交易指令后,退出TB时(当时没用autoit),电脑异常关机,然后TB再也无法启动.不知道与autoit是否有关.首先要谢谢楼主,我现在仍然在用autoit.所以请教了.谢谢.
作者: hyjok    时间: 2010-1-23 13:37:49

原帖由 交易理念 于 2010-1-23 12:06 发表
今天重装了TB,并且在电脑完全启动后加载autoit,第一次启动TB还是没有成功.第一次启动TB表现是出现TB登陆界面,不填写密码.然后第一次TB启动退出,第二次成功启动.还有一次,我看见第一次启动TB时填写的帐号不是我的帐号 ...

第一次启动没有成功是因为电脑刚启动,电脑刚启动时其他进程占用资源造成TB启动的速度慢,超过autoit脚本默认的启动时限,autoit脚本会先关闭TB进程并重新启动TB,形成第二次启动,这是正常现象
填写账号不对的话,跟脚本内账号设置有关,检查autoit脚本源码修改成正确的TB登录账号
------------------
退出TB时(当时没用autoit),电脑异常关机,然后TB再也无法启动.不知道与autoit是否有关.
------------------
多半是系统问题,autoit脚本对系统是没有影响的
作者: 交易理念    时间: 2010-1-23 22:23:42

谢谢,以后如遇到问题再请教
作者: 简单    时间: 2010-1-31 09:25:53

原帖由 liuhai777 于 2010-1-11 19:12 发表
牛人,就是牛人啊


楼主为全自动交易提供了一个可行的平台,非常感谢智慧的奉献
作者: cyberfox2002    时间: 2010-2-5 15:40:55

感谢lz分享宝贵经验。。。
作者: cym138    时间: 2010-2-7 15:07:49

请教一下,如果我有3个工作区;$WorkNum=3          但$WorkTabID="TabWnd:400000:8:10003:02"  这里是要改另外增加2个吗?
作者: cym138    时间: 2010-2-7 15:31:08

每次都有这个界面,但我已设置电脑系统自动登陆
作者: hyjok    时间: 2010-2-7 15:37:18

原帖由 cym138 于 2010-2-7 15:07 发表
请教一下,如果我有3个工作区;$WorkNum=3          但$WorkTabID="TabWnd:400000:8:10003:02"  这里是要改另外增加2个吗?


$WorkNum=3是工作区数量
$WorkTabID="TabWnd:400000:8:10003:02"是工作区控件的ID,每台电脑内各个工作区都是一致的,可以按46楼的方法查询得到
($WorkNum和$WorkTabID是单独不相干,并不是改变$WorkNum就需要更改$WorkTabID)
作者: hyjok    时间: 2010-2-7 15:45:45

原帖由 cym138 于 2010-2-7 15:31 发表
每次都有这个界面,但我已设置电脑系统自动登陆

应用autoit代码自动登录TB后的会自动锁定计算机,这是正常的,你可以点击用户名“user”登录进去看看TB是否已经正常运行
不需要自动锁定计算机可以在autoit代码42行加半角分号注析
作者: cym138    时间: 2010-2-7 23:32:45

好的好的,非常感谢!
作者: cym138    时间: 2010-2-8 14:13:54

有个小问题,请你帮帮

TB接断开这个条件怎样写?如下图



(我想当TB接断开时,运行D盘某程序)
作者: hyjok    时间: 2010-2-26 14:00:09

2010-2-26 更新说明
TB发布3.2.7版本,新版本可以进入平台自动装载工作区,不再需要每个工作区手工激活,autoit代码中对应启动多工作区自动交易的部分,原代码可以继续使用,也可以需要做相应调整,简化autoit代码,当然,新autoit代码只适用于3.2.7及其后续版本
新autoit代码见9楼第二部分
http://www.tradeblazer.net/forum ... omuid=2459#pid35420
作者: 交易理念    时间: 2010-2-26 18:38:00

楼主功德无量,回帖感谢
作者: hyjok    时间: 2010-3-2 14:38:05

有朋友反映9楼第二部分新代码有时不能正确登录TB,今天对此问题做了小小调整,请需要的朋友重新下载新代码
http://www.tradeblazer.net/forum ... omuid=2459#pid35420
作者: zxjtqh    时间: 2010-3-4 18:30:54

我啥也不会,看不懂
作者: 文静的狮子    时间: 2010-3-16 23:00:06

请教楼主,都说TB不太稳定,是真的吗?您用无人值守自动交易,运行和交易意外情况多吗?
正准备申请TB实盘呢,看到说不稳定的人很多,您能否客观的评价一下?
作者: 文静的狮子    时间: 2010-3-16 23:02:57

原帖由 文静的狮子 于 2010-3-16 23:00 发表
请教楼主,都说TB不太稳定,是真的吗?您用无人值守自动交易,运行和交易意外情况多吗?
正准备申请TB实盘呢,看到说不稳定的人很多,您能否客观的评价一下? ...


补充一下:我是做波段和中长线的,不做日内,对小波动不太敏感。
作者: lzlzlz    时间: 2010-3-22 13:16:54

俺是来学习的!
作者: w9258637    时间: 2010-3-30 14:35:08

首先感谢楼住的无私奉献,按照楼主的方法一步一步设置成功,一切搞定后突然想起一个问题,就是从始至终始终没发现在哪里设置了自启动的时间,就像楼主说的自己是8:49分自启动,那如果我想在8:40自启动那么改在那里修改这个时间呢???看了所有的回复都没发现有谁提了这个问题,可能是我有点笨吧,情楼主或知情人士告知,拜谢!!!!!!!!!
作者: w9258637    时间: 2010-3-30 15:10:46

接上,我是不是理解错了,这样并不能自动启动电脑,它只是在手动启动电脑后自动登录tb??????
作者: jsz123    时间: 2010-4-15 08:42:21

不用AUTOIT还能进TB,用了AUTOIT后 不能进了!
作者: nickchen    时间: 2010-4-15 10:55:19

很好  学习了 谢谢
作者: jsz123    时间: 2010-4-16 15:47:38

后来代码是不是加了时间范围啊?
作者: 欲速不达    时间: 2010-5-23 09:18:14     标题: 自动启动user下第二帐号该怎样处理

请问版主:在自动启动系统中我的TradeBlazer\User\下有多个帐号,然而自动启动它只能启动User下按顺序排列的第一帐号,而User下帐号顺序又无法改变,如果要指定启动第二帐号咋办?假如第一帐号是LI,第二帐号是Ly。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2