代码中下面一句需要做修改才能保证脚本放在任意目录均可运行,否则这能运行于TB目录内 Run("C:\TB\TradeBlazer.exe");这里需要更改为你的TB安装路径 修改如下: Run("C:\TB\TradeBlazer.exe","C:\TB\");这里有两处需要更改为你的TB安装路径
这样干风险太高,不过感谢这位弟兄的共享,精神可嘉。 买台服务器然后主机托管,自己买个最小的上网本外加3g上网,这样就可以满世界到处玩了,每天开盘前收盘前可以看下TB有没有挂掉,只要程序没死那么策略可以通过代码做到每天自己初始化
AUTOIT代码更新 Code: #Include <date.au3> Dim $result,$list[5][5],$pid1,$tmp1 While 1 ;循环开始 If ProcessExists("TradeBlazer.exe") And WinExists("交易开拓者(超强版") = 0 Then;系统中有TB进程,但没有TB窗口则先关闭TB进程;用于处理TB突然关闭马上重新运行TB时出现"交易开拓者(超强版)已经在运行..."错误提示的情况 Sleep(3000) EndIf If WinExists("交易开拓者(超强版") = 0 And ((@HOUR=8 And @MIN>=56) Or @HOUR>=9) And @HOUR <=16 And @WDAY>1 And @WDAY<7 Then;交易时间开启TB自动交易 ;TB自动登陆设置*****开始*****,这部分实行TB自动登陆功能,如果TB有自动登陆功能的话,就简单多了(目前TB不能自动登陆) If ProcessExists("TradeBlazer.exe") And WinExists("交易开拓者(超强版") = 0 Then $list=ProcessList("TradeBlazer.exe") If $list[0][0]=1 Then $pid1=$list[1][1] ElseIf $list[0][0]>1 Then $pid1=$list[1][1] for $i = 2 to $list[0][0] ProcessClose($list[$i][1]) next EndIf [COLOR="Red"] Run("C:\Program Files\TradeBlazer\TradeBlazer.exe","C:\Program Files\TradeBlazer\");TB默认安装路径,如非默认安装,这里有两处需要更改为你TB安装路径[/COLOR] WinWaitActive("欢迎登录交易开拓者(超强版)","",10) $list=ProcessList("TradeBlazer.exe") If $list[0][0]>1 Then for $i = 1 to $list[0][0] If $list[$i][1]<>$pid1 Then ProcessClose($list[$i][1]) next EndIf If $list[0][0]=1 Then ProcessClose("TradeBlazer.exe") Sleep(1000) [COLOR="Red"]Run("C:\Program Files\TradeBlazer\TradeBlazer.exe","C:\Program Files\TradeBlazer\");TB默认安装路径,如非默认安装,这里有两处需要更改为你TB安装路径[/COLOR] WinWaitActive("欢迎登录交易开拓者(超强版)","",10) WinActivate("欢迎登录交易开拓者(超强版)") ControlFocus("欢迎登录交易开拓者(超强版)","","Edit1") ControlSetText("欢迎登录交易开拓者(超强版)","","Edit1","***");用你的TB登陆账号替换*** ControlFocus("欢迎登录交易开拓者(超强版)","","Edit2") ControlSetText("欢迎登录交易开拓者(超强版)","","Edit2","***");用你的TB登陆密码替换*** ControlFocus("欢迎登录交易开拓者(超强版)","","Button2") ControlClick("欢迎登录交易开拓者(超强版)","","Button2") WinWaitActive("交易开拓者(超强版) - ","",10) If WinExists("系统消息") Then WinActivate("系统消息") WinClose("系统消息") EndIf Sleep(1000) ;TB自动登陆设置*****结束***** [COLOR="red"] For $i=1 To 5;//这里的数字5代表你打开工作区数量,请根据你的实际情况做相应修改(另外请务必保留工作区默认名字,如“工作区1”、“工作区2”)[/COLOR] $tmp1 = 40 + 60 * ($i - 1) WinActivate("交易开拓者(超强版) - ") ControlClick("交易开拓者(超强版) - ","","TabWnd:400000:8:10011:02","left",1,$tmp1,6) Sleep(1000) WinMenuSelectItem("交易开拓者(超强版) - ","","文件(&F)", "启动所有自动交易");启动工作区内所有自动交易 Sleep(1000) Next $result=DllCall("user32.dll","int","LockWorkStation");开启TB自动交易后,锁定电脑系统 ElseIf $result<1 Then $result=DllCall("user32.dll","int","LockWorkStation");非交易时间启动电脑后,立即锁定电脑系统 EndIf If WinExists("交易开拓者") And @HOUR>16 Then ;非交易时间关闭TB WinActivate("交易开拓者") Sleep(1000) WinClose("交易开拓者") EndIf WEnd ;循环结束 AUTOIT代码更新说明: 1、解决因其他程序影响无法自动登陆TB的问题(前提是:电脑必须能自动登录并能自动上网) 2、解决应用于远程服务器上,远程桌面登录时会关闭原已经登录的TB的问题 3、解决电脑在锁定状态下无法自动登录TB的问题 4、解决无法启动多工作区自动交易的问题
此贴已经很久没更新了,也不打算同步更新了,tb论坛上的autoit代码已经有更新,请需要的朋友多到tb论坛看看 http://www.tradeblazer.net/forum/thread-5465-1-1.html