# -*- coding: UTF-8 -*-
# 2012/10/14 21:17:46
# version 0.1 for testing purpose
import sys
import time
from datetime import datetime, timedelta
import os
import sys
import string
import win32com
from win32com.client import Dispatch, constants
from win32com.client import DispatchEx
FN_AA='C:\\Program Files\\AmiBroker\\Scripts\\3K_AC_2.apx'# APX檔改成自己的檔案
FN_AD='D:\\AmiBrokerData\\BACKTEST\\'#目錄路徑改成自己的回測資料庫路徑
Ticker='TXF'#待測的 SYMBOL
FN_OUT='R:\\BTR.csv' #產生檔案路徑與檔名
AB = Dispatch('Broker.Application')
AB.Visible = 0
newAA=AB.AnalysisDocs.Open(FN_AA) 
newAD=AB.LoadDatabase(FN_AD) 
newSym=AB.Documents.Open(Ticker) 
try:
  print ('AmiBroker 開始回測')  
  newAA.Run(2)
  while (newAA.IsBusy):
    time.sleep(0.1)  
    #print ('.')  
  newAA.Export(FN_OUT)
  print ('報告產生完成')  
except IOError as IOE :
    time.sleep(0.1)   
    print ('有錯誤',retryCount)  