本脚本主要是每天自动按照交易时间启动交易软件,定时关闭软件。除了需要脚本启动外,还需要在开拓者中做账户密码设置等操作。从TB5以后,只要设置好密码及自动启动程序化交易,很多事情就变得容易起来。本脚本略去邮件提醒功能。每天收盘在c盘根目录的1.xls文件中记录每天收盘时的账户权益后,关闭TB。文件编译成exe文件后,放入启动项中随系统启动。
#include<file.au3>
#Include <date.au3>
#include <Array.au3>
#include <Excel.au3>
#include <Misc.au3>
Local $version="htstart"
if _Singleton($version,1)=0 Then;禁止同个脚本重复运行,对于程序化交易来说非常重要
Exit
EndIf
Dim $result,$tmpl,$path,$TBloginname,$TBloginpassword,$cal,$strNowDate,$Holiday,$bIsHoliday;定义变量
dim $sFilePath1,$oExcel,$val1,$val2,$H1
$TBloginname="*********" ;用你的TB登陆账号替换***
$TBloginpassword="******" ;用你的TB登陆密码替换***
$strNowDate =_NowDate();取得系统当前日期,务必设置系统日期为短格式日期,使之与ini文件中的日期格式保持一致
$Holiday=IniRead("C:\price.ini", "holiday","年","");读取ini中的所有非周末节假日日期
$bIsHoliday = StringInStr($Holiday,$strNowDate);检测当天是否是非周末节假日,如果是则返回0,不启动TB
While 1;程序常驻
while (WinExists("帐户登录")) ;启动前先检测是否存在账户登录界面,如果存在则点击登录按钮
WinActivate("帐户登录")
Sleep(500)
ControlFocus("帐户登录","","Button1")
Sleep(500)
ControlClick("帐户登录","","Button1")
Sleep(10000)
WEnd
If @WDAY>1 And @WDAY<7 and $bIsHoliday =0 And ((@HOUR=8 and @MIN>=40 And @MIN<=59) Or (@HOUR>=9 And @HOUR<15) Or (@HOUR=20 and @MIN>=40 And @MIN<=59) Or (@HOUR>=21 And @HOUR<