求助 autoit 高手 今天在网上搜索到一个文华转飞狐盘后数据 期货修正版 这样一个autoit 源代码

Discussion in 'TradeStation' started by rogerhylt, Mar 21, 2010.

  1. 今天在网上搜索到一个文华转飞狐盘后数据 期货修正版 这样一个autoit 源代码
    目的是自动在盘后将日线 5分钟线有文华财经转入飞狐中分析,
    用的是autoit, 其中可以自动将文华数据专至文本 这个过程
    我想 那位可以将这个代码改一下
    只要转文本这一段 每5分钟转换一次 然后将文本数据再由hypertools
    转至xpo供ts使用 或许也算实时接收 可以将你的ts策略用在在5或10分钟k线上 。

    以下是网址
    http://www.55188.com/thread-2662970-1-1.html

    这是autoit代码
    #Region AutoIt3Wrapper 预编译参数(常用参数)
    #AutoIt3Wrapper_UseAnsi=n ;编码
    #AutoIt3Wrapper_Icon=norton3.ico ;图标
    #AutoIt3Wrapper_OutFile= ;输出文件名
    #AutoIt3Wrapper_OutFile_Type=exe ;文件类型
    #AutoIt3Wrapper_Compression=4 ;压缩等级
    #AutoIt3Wrapper_UseUpx=y ;使用压缩
    #AutoIt3Wrapper_Res_Comment=证券自动操盘系统 ;注释
    #AutoIt3Wrapper_Res_Description=操盘辅助程序 ;详细信息
    #AutoIt3Wrapper_Res_Fileversion=2.9.1.87
    #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y ;自动更新版本
    #AutoIt3Wrapper_Res_LegalCopyright=@一二基金 林清白 ;版权
    ;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段
    ;#AutoIt3Wrapper_Run_Tidy= ;脚本整理
    ;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑
    ;#AutoIt3Wrapper_Run_AU3Check= ;语法检查
    ;#AutoIt3Wrapper_Run_Before= ;运行前
    ;#AutoIt3Wrapper_Run_After= ;运行后
    #EndRegion AutoIt3Wrapper 预编译参数设置完成
    #cs ____________________________________

    AutoIt 版本: 3.3.0.1 (第一版)
    脚本作者: 林清白
    Email: linqbzqx@163.com
    QQ/TM: 393986160
    脚本版本: 一二基金自动操盘系统V2.0
    脚本功能: 自动从易盛或者财顺软件获取行情数据,进行判断加仓和平仓,可以设置止赢止损箱体

    #ce _______________脚本开始_________________

    #RequireAdmin ;Vista使用管理员权限
    #Include <Date.au3>
    #include <Timers.au3>
    #include <Math.au3>

    Opt("WinTextMatchMode", 2) ;1=完整, 2=快速 更改窗口函数在执行搜索操作时的窗口文本匹配模式.
    Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase 更改窗口函数在执行搜索操作时的标题匹配模式
    Opt("TrayIconDebug", 1) ;0=无信息, 1=调试信息

    $g_szVersion = "@文华转飞狐盘后数据@" ;只运行一个进程
    If WinExists($g_szVersion) Then Exit
    AutoItWinSetTitle($g_szVersion)

    Sleep(200)

    HotKeySet("!,", "BuRiXian") ;按{Alt+,}补相应品种日线历史K线!
    HotKeySet("!.", "BuFenShi") ;按{Alt+.}补飞狐交易师当前品种分时
    HotKeySet("!/", "Bu5FenZhong") ;按{Alt+/}补相应品种5分钟历史K线!
    HotKeySet("!'", "ToggleExit") ;按{Alt+'} 该休息了,退出飞狐交易师和文华软件吧!

    Global $Paused,$feiHuMaA
    Global $titleWH = "文华财经 - "
    Global $textWH = "Tab"
    Global $titleFH = "飞狐交易师"
    Global $textFH = "菜单条"
    Global $buShuJu = 0 ,$zhuangTai = "分时"
    Global $pathWH,$pathFH


    While True ; 自动刷新文华代码
    If Not WinExists($titleWH,$textWH) Then
    $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径
    If Not FileExists($wenHuaRuanJian) Then
    MsgBox(0,"提示","默认目录下找不到文华财经软件,请启动文华财经软件!",5)
    ContinueLoop
    EndIf
    Run($wenHuaRuanJian,StringLeft($wenHuaRuanJian,StringInStr($wenHuaRuanJian,"\",0,-1)))
    WinWait("登录","请选择服务器",8)
    Sleep(100)
    ControlClick("登录","请选择服务器","[CLASS:Button;TEXT:登录]","left",1)
    WinWaitClose("登录","请选择服务器",3)
    ControlClick("登录","请选择服务器","[CLASS:Button;TEXT:登录]","left",1)
    WinWait($titleWH,$textWH,8)
    Sleep(300)
    $pathWH = Processpath(WinGetProcess($titleWH,"")) ;取得文华软件的目录
    ElseIf Not WinExists($titleFH,"菜单条") Then
    $feiHuRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","飞狐交易师专业版","") ;飞狐交易师软件完整路径
    If Not FileExists($feiHuRuanJian) Then
    MsgBox(0,"提示","默认目录下找不到飞狐交易师,请启动飞狐交易师专业版!",5)
    ContinueLoop
    EndIf
    Run($feiHuRuanJian,StringLeft($feiHuRuanJian,StringInStr($feiHuRuanJian,"\",0,-1)))
    WinWait($titleFH,$textFH,6)
    Sleep(300)
    Send("^g") ;启动飞狐交易师接收系统
    Sleep(300)
    If WinExists("请确认","是") Then ControlClick("请确认","是","是")
    EndIf
    WinClose("消息")
    If Not $Paused Then
    ToolTip("")
    Sleep(200)
    $feiHuMaA = ""
    ContinueLoop
    EndIf
    $text = WinGetText($titleFH,$textFH)
    If StringInStr($text,"数据列表") == 1 Then $text = StringMid($text,StringInStr($text,@LF)+1)
    $text = StringLeft($text,StringInStr($text,@LF)-1)
    $text = StringStripWS($text,4)
    $text = StringStripWS($text,2)
    $pingZhongDaiMa = StringMid($text,StringInStr($text," ",0,-1)+1)
    $feiHuMa = $pingZhongDaiMa
    $wenHuaDaiMa = WenHuaJiaoYiMa($feiHuMa) ;获得交易代码

    $wHandWH = WinGetHandle($titleWH,"")
    $whTitle = WinGetTitle($wHandWH)
    $wHand = WinGetHandle("Active")


    If $feiHuMaA == $feiHuMa Then
    ToolTip($wenHuaDaiMa& ' 文华补' & $zhuangTai & '数据完成,暂停请按"Alt+."')
    BlockInput(0)
    Sleep(300)
    ContinueLoop
    EndIf
    ToolTip("正在后台补" & $wenHuaDaiMa& $zhuangTai & ",请稍候……")
    BlockInput(0)
    WinActivate($wHandWH,"")
    WinWaitActive($wHandWH,"",1)
    Sleep(300)
    Opt("SendKeyDelay", 100) ;5 毫秒
    ControlSend($wHandWH,"","Edit1",StringLeft($wenHuaDaiMa ,StringLen($wenHuaDaiMa)-1)) ;输入文华码
    Opt("SendKeyDelay", 100) ;100 毫秒
    ControlSend($wHandWH,"","Edit1",StringRight($wenHuaDaiMa,1)) ;输入文华码
    Sleep(50)
    ControlSend($wHandWH,"","Edit1","{Enter}" )
    Opt("SendKeyDelay", 5) ;5 毫秒
    BlockInput(0)
    Sleep(300)
    If $wHand <> $wHandWH Then
    WinActivate($titleFH,"")
    WinWaitActive($titleFH,"",1)
    Sleep(300)
    EndIf
    WinMove($titleWH,"",1,@DesktopHeight-10,"","",1) ;把文华藏起来,让您看不到!
    For $i=1 To 30
    If Not ControlGetHandle($wHandWH,"","msctls_progress321") Then ExitLoop
    ToolTip("正在后台补" & $wenHuaDaiMa& $zhuangTai & ",请稍候……")
    Sleep(100)
    If Not $Paused Then ;加快“退出此功能”的速度!
    ExitLoop
    EndIf
    Next
    If Not $Paused Then ;加快“退出此功能”的速度!
    ContinueLoop
    EndIf
    Sleep(300)
    ToolTip($wenHuaDaiMa& ' 补数据完成,暂停请按"Alt+."')
    $feiHuMaA = $feiHuMa
    ;如果需要补日线或者5分钟历史数据执行……
    If $buShuJu == 6 Then WHToFoxtraderTXT_Day() ;补日线
    If $buShuJu == 2 Then WHToFoxtraderTXT_Min5() ;补5分钟线
    If Not $Paused Then
    ContinueLoop
    EndIf
    ControlSend($titleFH,$textFH,"","{PGDN}")
    WEnd

    Func BuRiXian() ;补日线
    $Paused = Not $Paused
    $buShuJu = 6
    $zhuangTai = "日线"
    ZhunBeiBuShuJu($buShuJu)
    EndFunc
    Func Bu5FenZhong() ;补5分钟线
    $Paused = Not $Paused
    $buShuJu = 2
    $zhuangTai = " 五分钟线"
    ZhunBeiBuShuJu($buShuJu)
    EndFunc

    Func BuFenShi() ;脚本暂停
    $Paused = Not $Paused
    $buShuJu = 0
    $zhuangTai = "分时线"
    ZhunBeiBuShuJu($buShuJu)
    Return
    EndFunc

    Func ZhunBeiBuShuJu($buShuJu)
    If $Paused Then
    $state = WinGetState($titleWH,"")
    WinMove($titleWH,"",1,@DesktopHeight-10,"","",1) ;把文华藏起来,让您看不到!
    Sleep(600)
    WinActivate($titleWH,"")
    WinWaitActive($titleWH,"",1)
    ControlSend($titleWH,"","Edit1","{F5}") ;换到分时线或者K线
    Sleep(200)
    WinSetState($titleWH,"",$state)
    $pathWH = Processpath(WinGetProcess($titleWH,"")) ;取得文华软件的目录
    $pathFH = Processpath(WinGetProcess($titleFH,"")) ;取得文华软件的目录
    If $buShuJu == 0 Then
    ControlClick($titleWH,"","ToolbarWindow326","left",1,13,12) ;补分时线
    ElseIf $buShuJu == 2 Then
    ControlClick( $titleWH,"","ToolbarWindow326","left",1,82,11) ;补5分钟线
    ElseIf $buShuJu == 6 Then
    ControlClick($titleWH,"","ToolbarWindow326","left",1,218,11) ;补日线
    EndIf
    ;Sleep(200)
    ;WinMove($titleWH,"",1,@DesktopHeight-20,40,20)
    ;Sleep(500)
    Else
    ToolTip("")
    Sleep(200)
    MouseClick("left")
    WinMove($titleWH,"",0,0,@DesktopWidth,@DesktopHeight-40,1)
    WinSetState($wHandWH,"",@SW_MAXIMIZE)
    ;记住文华财经和飞狐交易师软件路径供小次使用!
    $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径
    $feiHuRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","飞狐交易师专业版","") ;飞狐交易师软件完整路径
    If $wenHuaRuanJian <> $pathWH Then IniWrite(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件",$pathWH)
    If $feiHuRuanJian <> $pathFH Then IniWrite(@ScriptDir & "\使用说明.TXT","飞狐→文华","飞狐交易师专业版",$pathFH)
    EndIf
    EndFunc

    Func ToggleExit() ;退出程序
    ControlSend($titleFH,"","","!{F4}")
    Sleep(100)
    ProcessClose(WinGetProcess($titleWH,""))
    Exit
    EndFunc

    Func TEXT2FOX($shuJuGeShi,$filePath,$daiMaFH) ;自动从文本文件格式导入到飞狐交易师
    Local $title = "数据管理"
    Local $text = "确定"
    WinActivate($titleFH,$textFH)
    WinWaitActive($titleFH,$textFH)
    Sleep(300)
    BlockInput(1)
    ;按下组合键,Ctrl+D 调入 “数据管理模块”
    Send("^d")
    WinWait($title,$text,1)
    ;选择导入
    $size = WinGetPos($title,$text)
    ControlClick($title,$text,"SysTabControl321","left",2,190,9)
    Sleep(100)
    ;选择数据类型
    ControlCommand($title,$text,"ComboBox1","SelectString", $shuJuGeShi)
    ;选择数据格式为文本
    ControlCommand($title,$text,"ComboBox2","SelectString", "文本数据")
    ;输入数据来源路径
    ControlSetText($title,$text,"Edit1",$filePath)
    ;文本格式设置”
    ControlClick($title,$text,"[CLASS:Button;TEXT:文本格式设置]","left",1)
    $title = "数据文本格式"
    $text = "确定"
    WinWait($title,$text,1)
    ;不需要跳过文件头一行
    ControlSetText($title,$text,"Edit3","7")
    ControlSetText($title,$text,"Edit2","0")
    ControlSetText($title,$text,"Edit4","TXT") ;输入文件后缀 TXT
    ;选择分隔符为空格
    ControlCommand($title,$text,"ComboBox8","SelectString", "空格")
    ;日期格式 年/月/日
    ControlCommand($title,$text,"ComboBox14","SelectString", "Y/M/D,Y-M-D,Y.M.D")
    ; 文本格式设置完成退出
    ControlFocus($title,$text,"[CLASS:Button;TEXT:确定]")
    Sleep(100)
    ControlSend($title,$text,"[CLASS:Button;TEXT:确定]","{Space}")
    Sleep(200)
    $title = "数据管理"
    $text = "确定"
    ;选择覆盖补充方式
    If $shuJuGeShi == "日线数据" Then
    ControlClick($title,$text,"[CLASS:Button;TEXT:补充方式]","left",1)
    Else
    ControlClick($title,$text,"[CLASS:Button;TEXT:覆盖方式]","left",1)
    EndIf
    ;输入当前品种代码,可能会加快导入速度
    ControlClick($title,$text,"[CLASS:Button;TEXT:加入个股]","left",1)
    WinWait("选择证券","确定",1)
    Send($daiMaFH)
    Sleep(100)
    Send("{Enter}")
    WinWaitClose("选择证券","确定",1)
    Sleep(100)

    ;开始执行导入
    $wHand = WinGetHandle($title,$text)
    If Not $wHand Then
    BlockInput(0)
    Return
    EndIf
    $size = WinGetPos($wHand)
    $XX = $size[0]+$size[2]*0.554
    $YY = $size[1]+$size[3]*0.832
    $oldColor=PixelGetColor($XX,$YY,$wHand)
    ControlClick($title,$text,"[CLASS:Button;TEXT:执行导入]","left",2)
    Sleep(300)
    ;超过3秒退出
    For $i=1 To 15
    Sleep(200)
    $nowColor = PixelGetColor($XX,$YY,$wHand)
    MouseMove($XX,$YY,1)
    If $oldColor<> $nowColor Then
    ;延时100*i毫秒,等待导入确实完成
    Sleep(10*$i)
    ControlSend($title,$text,"","{ESC}") ;飞狐数据导入完成则退出
    WinClose($title,$text)
    ;退出循环
    ExitLoop
    EndIf
    Next
    BlockInput(0)
    Return
    EndFunc

    ;文华数据结构
    ;struct WHDay
    ;{
    ; time_t Date; //日期
    ; float Open; //开盘价
    ; float Close; //收盘价
    ; float High; //最高价
    ; float Low; //最低价
    ; float Vol; //成交量
    ; float Position; //持仓量
    ;} wenhuaday;

    ;5分钟线和上面的差不多,但日线加了密。加密处理:用0表示每天的间隔。
    Func WHToFoxtraderTXT_Day() ;日线转换程序
    Local $jiaGe[10],$chars[10],$shuChu=""
    $text = WinGetText($titleFH,$textFH)
    If StringInStr($text,"数据列表") == 1 Then $text = StringMid($text,StringInStr($text,@LF)+1)
    $text = StringLeft($text,StringInStr($text,@LF)-1)
    $text = StringStripWS($text,4)
    $text = StringStripWS($text,2)
    $daiMaFH = StringMid($text,StringInStr($text," ",0,-1)+3)
    $shiChangFH = StringMid($text,StringInStr($text," ",0,-1)+1,2)
    $shiChangWH = WenHuaMa($daiMaFH,3) ;文华市场代码
    $daiMaWH = WenHuaMa($daiMaFH,1) ;获得文华自定义内部码
    $fileName ="C:\TXTDAY\" & $shiChangFH & $daiMaFH & ".TXT" ;导出飞狐交易师标准文本文件
    $dateNum = Number(IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","导出日K线数量","1000"))

    $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径
    $fileWH = StringLeft($wenHuaRuanJian,StringInStr($wenHuaRuanJian,"\",0,-1))
    $fileWH = $fileWH & "Data\" & $shiChangWH & "\day\" & StringRight("00000000" & $daiMaWH,8) & ".dat" ;文华数据存放位置
    $fileHand = FileOpen($fileWH,16) ;使用2进制读取
    If $fileHand = -1 Then ;文件不存在,退出吧!
    Return
    EndIf
    $K_LineNum = FileGetSize($fileWH)/37 ;K线数量
    If $K_LineNum>$dateNum Then
    FileRead($fileHand,($K_LineNum-$dateNum)*9*4)
    Else
    $dateNum = $K_LineNum
    EndIf

    For $i = 1 To $dateNum
    If Not $Paused Then ;加快“退出此功能”的速度!
    ContinueLoop
    EndIf
    ;数据结构为浮点数,暂时支持整数部分的转换输出!
    $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节,时间
    $riQi = _DateAdd( 's',$dat+28800, "1970/01/01 00:00:00") ;文华时间转为文本格式,G+8区加28800秒(8小时)
    For $j=1 To 6
    $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节
    $fd1 = BitAND($dat,0x40000000) /0x40000000 ;按位"与"运算取得浮点结构的符号位, 证券类一般是正数(用高位1位表示数据的正负号)
    $fd2 = BitAND($dat,0x7F800000)/0x800000-0x7F ;取得阶码(用8位数来表示)
    If $fd2 <= 0 Then ;这个可能是数值小于1的情况吧!
    $fd2 = 0
    $fd3 = 0
    Else ;期货数据一般都是大于2以上的。
    $fd3 = Mod($dat,0x800000) ;浮点中的小数部分(用23位数来表示)
    $fd3Z =($fd3+0x800000) /2^(23-$fd2) ;取得价格的整数部分,小数目前先不处理,如燃油为2938.50元,取2938元,0.5元先不取。
    EndIf
    $jiaGe[$j] = $fd3Z &" "
    Next
    $shuChu = $shuChu & $riQi & " " & $jiaGe[1] & $jiaGe[3] & $jiaGe[4] & $jiaGe[2] & $jiaGe[5] & $jiaGe[6] & @CRLF
    $riQi=""
    FileRead($fileHand, 9) ;跳过最后9个字节
    Next
    FileClose($fileHand)
    If DirGetSize("C:\TXTDAY") = -1 Then
    DirCreate("C:\TXTDAY")
    EndIf
    $fileHand = FileOpen($fileName,2) ;清除原来的内容
    FileWrite($fileHand,$shuChu)
    FileClose($fileHand)

    TEXT2FOX("日线数据","C:\TXTDAY",$daiMaFH) ;激活飞狐交易师窗口自动导入数据

    Return
    EndFunc


    Func WHToFoxtraderTXT_Min5()
    Local $jiaGe[10],$chars[10],$shuChu=""
    $text = WinGetText($titleFH,$textFH)
    If StringInStr($text,"数据列表") == 1 Then $text = StringMid($text,StringInStr($text,@LF)+1)
    $text = StringLeft($text,StringInStr($text,@LF)-1)
    $text = StringStripWS($text,4)
    $text = StringStripWS($text,2)
    $daiMaFH = StringMid($text,StringInStr($text," ",0,-1)+3)
    $shiChangFH = StringMid($text,StringInStr($text," ",0,-1)+1,2)
    $shiChangWH = WenHuaMa($daiMaFH,3) ;文华市场代码
    $daiMaWH = WenHuaMa($daiMaFH,1) ;获得文华自定义内部码
    $fileName ="C:\TXTMIN5\" & $shiChangFH & $daiMaFH & ".TXT" ;导出飞狐交易师标准文本文件
    $dateNum = Number(IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","导出5分钟K线数量","1000"))

    $wenHuaRuanJian = IniRead(@ScriptDir & "\使用说明.TXT","飞狐→文华","文华财经软件","") ;文华软件完整路径
    $fileWH = StringLeft($wenHuaRuanJian,StringInStr($wenHuaRuanJian,"\",0,-1))
    $fileWH = $fileWH & "Data\" & $shiChangWH & "\min5\" & StringRight("00000000" & $daiMaWH,8) & ".dat" ;文华数据存放位置
    $fileHand = FileOpen($fileWH,16) ;使用2进制读取
    If $fileHand = -1 Then ;文件不存在,退出吧!
    Return
    EndIf
    $K_LineNum = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;K线数量
    If $K_LineNum>$dateNum Then
    FileRead($fileHand,($K_LineNum-$dateNum)*9*4)
    Else
    $dateNum = $K_LineNum
    EndIf

    For $i = 1 To $dateNum
    If Not $Paused Then ;加快“退出此功能”的速度!
    ContinueLoop
    EndIf
    ;数据结构为浮点数,暂时支持整数部分的转换输出!
    $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节,时间
    $riQi = _DateAdd( 's',$dat+28800+3000, "1970/01/01 00:00:00") ;文华时间转为文本格式,G+8区加28800秒(8小时)+飞狐交易师收盘和文华差差5分钟(3000秒)
    For $j=1 To 6
    $dat = Int(FileRead($fileHand, 1))+Int(FileRead($fileHand, 1))*0x100+Int(FileRead($fileHand, 1))*0x10000+Int(FileRead($fileHand, 1))*0x1000000 ;读取4个字节

    $fd1 = BitAND($dat,0x40000000) /0x40000000 ;按位"与"运算取得浮点结构的符号位, 证券类一般是正数(用高位1位表示数据的正负号)
    $fd2 = BitAND($dat,0x7F800000)/0x800000-0x7F ;取得阶码(用8位数来表示)
    If $fd2 <= 0 Then ;这个可能是数值小于1的情况吧!
    $fd2 = 0
    $fd3 = 0
    Else ;期货数据一般都是大于2以上的。
    $fd3 = Mod($dat,0x800000) ;浮点中的小数部分(用23位数来表示)
    $fd3Z =($fd3+0x800000) /2^(23-$fd2) ;取得价格的整数部分,小数目前先不处理,如燃油为2938.50元,取2938元,0.5元先不取。
    EndIf
    $jiaGe[$j] = $fd3Z &" "
    Next
    $shuChu = $shuChu & $riQi & " " & $jiaGe[1] & $jiaGe[3] & $jiaGe[4] & $jiaGe[2] & $jiaGe[5] & $jiaGe[6] & @CRLF
    $riQi=""
    FileRead($fileHand, 8) ;跳过最后8个字节
    Next
    FileClose($fileHand)
    If DirGetSize("C:\TXTMIN5") = -1 Then
    DirCreate("C:\TXTMIN5")
    EndIf
    $fileHand = FileOpen($fileName,2) ;清除原来的内容
    FileWrite($fileHand,$shuChu)
    FileClose($fileHand)

    TEXT2FOX("5分钟数据","C:\TXTMIN5",$daiMaFH) ;激活飞狐交易师窗口自动导入数据
    Return
    EndFunc

    Func WenHuaMa($feiHuMa,$num) ;获得文华自定义内部码
    $wenHuaMaA = FileRead(@ScriptDir & "\使用说明.TXT")
    $wenHuaMaA = StringReplace($wenHuaMaA,@CR,@TAB)
    $wenHuaMaA = StringReplace($wenHuaMaA,@LF,@TAB)
    $wenHuaMaA = StringReplace($wenHuaMaA,@TAB & @TAB,@TAB)
    $wenHuaMaA = StringReplace($wenHuaMaA,@TAB & @TAB,@TAB)
    $wenHuaMaB = StringSplit($wenHuaMaA,@TAB)
    For $i=1 To $wenHuaMaB[0]
    If Not StringCompare($wenHuaMaB[$i],$feiHuMa) Then
    Return StringLower($wenHuaMaB[$i+$num])
    ExitLoop
    EndIf
    Next
    Return " "
    EndFunc

    Func WenHuaJiaoYiMa($feiHuMa) ;计算交易代码→备用程序
    If StringInStr($feiHuMa,"SQ") Or StringInStr($feiHuMa,"DL") Or StringInStr($feiHuMa,"ZZ") Or StringInStr($feiHuMa,"ZJ") Then

    ; 交易代码的计算
    $jiaoYiMa = StringMid($feiHuMa,3,StringLen($feiHuMa)-4)
    $heYueYueFen = StringRight($feiHuMa,2)
    $now_Year = @YEAR
    $now_Month = @MON
    ;跨年度合约
    If Number($now_Month)>Number($heYueYueFen) Then
    $now_Year = Number($now_Year )+1
    EndIf
    If StringInStr($feiHuMa,"ZZ") Then
    $jiaoYiDaiMa = $jiaoYiMa & Number(StringRight($now_Year,2)) & $heYueYueFen
    Else
    $jiaoYiDaiMa = $jiaoYiMa & StringRight($now_Year,2) & $heYueYueFen
    EndIf
    Return StringLower($jiaoYiDaiMa)
    Else
    Return StringMid($feiHuMa,3)
    EndIf
    EndFunc
    ;获得进程路径 (By sanhen)
    Func Processpath($iPID)
    Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
    If $aProc[0] = 0 Then Return SetError(1, 0, '')
    Local $vStruct = DllStructCreate('int[1024]')
    DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
    Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
    If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
    Return $aReturn[3]
    EndFunc

    Func OnAutoItExit ( )
    BlockInput(0) ;允许用户输入
    Return
    EndFunc ;==>脚本结束时调入此函数