Esempio n. 1
0
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from mpl_finance import candlestick_ohlc
import datetime,sys
strptime=datetime.datetime.strptime
import numpy as np

# 取得資料
# Date='20190902'
# Product='TXFI9'
Date=sys.argv[1]
Product=sys.argv[2]
FilePath='C:/Data/'
Broker='Simulator'
Table='Match'
Data=GetHistoryData(FilePath,Broker,Date,Product,Table)

# 取特定時間的資料
Data = [ line for line in Data if strptime(line[0],"%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345' ]

# 定義1分K棒的物件
MinuteKBar=KBar(Date,1)
# 計算K棒
for line in Data:
    time=strptime(line[0],"%Y/%m/%d %H:%M:%S.%f")
    price=int(line[2])
    qty=int(line[3])
    MinuteKBar.AddPrice(time,price,qty)

# 取得K線物件
KData=MinuteKBar.GetChartTypeData()
Esempio n. 2
0
# 載入必要套件
from indicator import GetHistoryData
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime, sys
strptime = datetime.datetime.strptime

# 取得資料
Date = sys.argv[1]
Product = sys.argv[2]
FilePath = 'C:/Data/'
Broker = 'Simulator'

# 取得資料
MData = GetHistoryData(FilePath, Broker, Date, Product, 'Match')

# 取特定時間的資料
MData = [
    line for line in MData
    if strptime(line[0], "%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345'
]

# 計算大額成交量資料
BigBuyOrder = [ MData[i] for i in range(1,len(MData)) if \
            int(MData[i][5])-int(MData[i-1][5]) < int(MData[i][6])-int(MData[i-1][6]) and int(MData[i][3]) > 50 ]
SellBuyOrder = [ MData[i] for i in range(1,len(MData)) if \
            int(MData[i][5])-int(MData[i-1][5]) > int(MData[i][6])-int(MData[i-1][6]) and int(MData[i][3]) > 50 ]

#取得轉換時間字串至時間格式
MTime = [strptime(line[0], "%Y/%m/%d %H:%M:%S.%f") for line in MData]
Esempio n. 3
0
# 載入必要套件
from indicator import GetHistoryData
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime,sys
strptime=datetime.datetime.strptime

# 取得資料
Date=sys.argv[1]
Product=sys.argv[2]
FilePath='C:/Data/'
Broker='Simulator'

# 取得資料
MData=GetHistoryData(FilePath,Broker,Date,Product,'Match')
CData=GetHistoryData(FilePath,Broker,Date,Product,'Commission')

# 取特定時間的資料(委託檔揭示時間從8點30開始,所以需要從8點45開始繪圖)
MData = [ line for line in MData if strptime(line[0],"%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345' ]
CData = [ line for line in CData if strptime(line[0],"%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345' \
           and strptime(line[0],"%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') > '0845'  ]

#取得轉換時間字串至時間格式
MTime = [ strptime(line[0],"%Y/%m/%d %H:%M:%S.%f") for line in MData ]
CTime = [ strptime(line[0],"%Y/%m/%d %H:%M:%S.%f") for line in CData ]

#價格由字串轉數值
Price = [ float(line[2]) for line in MData ]
OrderDIff = [ int(line[3])-int(line[5]) for line in CData ]
Esempio n. 4
0
# 期貨近月月份代號
Month = Product[3]
# 選擇權月份契約對照表
CallMonthTable = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
PutMonthTable = ['M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X']
# 找出相對應的買賣權月份代號
CallMonth = Month
PutMonth = PutMonthTable[CallMonthTable.index(Month)]

# 取得期貨、選擇權商品名稱
TXFName = Product
CallName = 'TXO' + ExercisePrice + CallMonth + Year
PutName = 'TXO' + ExercisePrice + PutMonth + Year

# 取得資料
TXFData = GetHistoryData(FilePath, Broker, Date, TXFName, Table)
CallData = GetHistoryData(FilePath, Broker, Date, CallName, Table)
PutData = GetHistoryData(FilePath, Broker, Date, PutName, Table)

# 取特定時間的資料
TXFData = [
    line for line in TXFData
    if strptime(line[0], "%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345'
]
CallData = [
    line for line in CallData
    if strptime(line[0], "%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345'
]
PutData = [
    line for line in PutData
    if strptime(line[0], "%Y/%m/%d %H:%M:%S.%f").strftime('%H%M') < '1345'