Ejemplo n.º 1
0
#!/usr/bin/env python
#  -*- coding: utf-8 -*-
__author__ = 'chengzhi'

from tqsdk.api import TqApi
import datetime

api = TqApi("SIM")
# 获得cu1812 tick序列的引用
ticks = api.get_tick_serial("SHFE.cu1812")
# 获得cu1812 10秒K线的引用
klines = api.get_kline_serial("SHFE.cu1812", 10)

while True:
    api.wait_update()
    # 判断整个tick序列是否有变化
    if api.is_changing(ticks):
        # ticks[-1]返回序列中最后一个tick
        print("tick变化", ticks[-1])
    # 判断最后一根K线的时间是否有变化,如果发生变化则表示新产生了一根K线
    if api.is_changing(klines[-1], "datetime"):
        # datetime: 自unix epoch(1970-01-01 00:00:00 GMT)以来的纳秒数
        print("新K线",
              datetime.datetime.fromtimestamp(klines[-1]["datetime"] / 1e9))
    # 判断最后一根K线的收盘价是否有变化
    if api.is_changing(klines[-1], "close"):
        # klines.close返回收盘价序列
        print("K线变化",
              datetime.datetime.fromtimestamp(klines[-1]["datetime"] / 1e9),
              klines.close[-1])
Ejemplo n.º 2
0
#!/usr/bin/env python
#  -*- coding: utf-8 -*-

from tqsdk.api import TqApi


#时间转换函数
def timeChange(second=0, minute=0, hour=0):
    return second + minute * 60 + hour * 3600


api = TqApi("SIM")
ticks = api.get_tick_serial("SHFE.rb1901")
K_Line_one = api.get_kline_serial("SHFE.rb1901",
                                  timeChange(0, 3))  #负责大周期突破判断(时间自己判断)
K_Line_two = api.get_kline_serial("SHFE.rb1901", timeChange(0,
                                                            15))  #负责止盈(时间自己判断)
K_Line_three = api.get_kline_serial("SHFE.rb1901",
                                    timeChange(0, 0, 1))  #负责止损(时间自己判断)
signBuy = 0
signSell = 0
cciValue = 0
sarLittleUp = [0]
sarLittleDown = [0]
sarBigUp = [0]
sarBigDown = [0]


#震荡指标(任意震荡指标 CCI默认n = 20)
def CCI(n=20):
    TP = ((K_Line_one[-1]["close"] + K_Line_one[-1]["low"] +