예제 #1
0
def run():
  parser = argparse.ArgumentParser(prog='zabtman',description='Zabbix Template Manager')
  parser.add_argument('--environment', help='section from config file', required=True)
  parser.add_argument('action', help='import|export')
  parser.add_argument('--templates', help='template ids (comma-separated)')
  args = parser.parse_args()
  Config = ConfigParser.ConfigParser()
  # get user's home directory
  homedir = expanduser("~")
  Config.read(homedir+'/.zabbix')
  url = Config.get(args.environment,'url')
  user = Config.get(args.environment,'user')
  password = Config.get(args.environment,'pass')
  zabt = ZabbixTemplateAPI(url, user, password)
  if args.action == 'import':
    r = repo(args.environment)
    print r.list_files('master')
    templates = raw_input("What template do you want to import?: ")
    data = r.get_file(templates)
    ret = zabt.import_json(data)
    try:
      print ret['data']
    except TypeError:
      print 'Import Successful'
  elif args.action == 'export':
    if args.templates is not None:
      r = repo(args.environment)
      ret = zabt.export_json(args.templates.split(','))
      r.run(ret)
    else:
      print 'Error: Must include --template when exporting.'
      sys.exit(1)
  else:
    print 'Action must be import or export.'
예제 #2
0
 def test_mysql_get_amount(self):
     mysqlRepo = repo(False, True, None, "algotrading", "12345678", None)
     startTime = datetime.datetime(2016, 12, 17, 9, 30, 0)
     endTime = datetime.datetime(2016, 12, 14, 14, 0, 0)
     data, time = mysqlRepo.get_amount(600000, startTime.date(),
                                       endTime.date(), startTime.time(),
                                       endTime.time())
     self.assertEqual(len(data), 2)
     self.assertEqual(len(time), 2)
     for dataLine in data:
         self.assertEqual(len(dataLine), 181)
     for dataLine in time:
         self.assertEqual(len(dataLine), 181)
예제 #3
0
 def test_get_market_trading_data_not_realtime(self):
     dataGetter = repo(False, True, None, "algotrading", "12345678", None)
     pool = poolFromSinaApi(dataGetter, False)
     tradingUnitId = 1
     stockId = 600000
     time = datetime.datetime.strptime("2016-12-16 10:00:00",
                                       "%Y-%m-%d %H:%M:%S")
     buysell = tradingUnit.BUY
     isSync = True
     tradingType = tradingUnit.ALL_PRICE_ORDER
     amount = 1000
     testTradingUnit = tradingUnit(tradingUnitId, stockId, time, buysell,
                                   isSync, tradingType, amount)
     marketData = pool.get_market_trading_data(testTradingUnit)
     self.log.info("final market data: " + str(marketData))
     self.assertEqual(marketData.time, time)
예제 #4
0
파일: gui.py 프로젝트: lanecatm/AlgoTrading
 def pushPictureTwo(self):
     print("Picture Two Update")
     pictureString = self.pictureOneOrderEdit.text()
     self.pictureTwoUpdate.setText(u'分时图orderId:' + pictureString)
     self.pictureOneUpdate.setText(u"刷新累积图")
     repoAT = repoForAT('algotrading', '12345678', None, False)
     repoMonitor = tradingRecordSaver('algotrading', '12345678', None,
                                      False)
     repoHistory = repo(False, True, None, "algotrading", '12345678', None,
                        False)
     chart = chartCreater(repoHistory, repoAT, repoMonitor)
     chart.get_bar(int(pictureString))
     self.pictureOneLabel.setPixmap(
         QtGui.QPixmap('../tradePercentage.jpg').scaled(
             self.pictureOneLabel.size()))
     self.layout.addWidget(self.pictureTwoLabel, 11, 6, 20, 3)
def test_history_pool():

    # 初始化algotrading的repo
    rat = repoForAT("algotrading", "12345678", None, isOpenLog=False)

    # 初始化pool
    poolDataMarketGetter = marketDataGetter(isOpenLog=False)
    poolDataRepoGetter = repo(isSqlite=False,
                              isMysql=True,
                              file_path="",
                              user="******",
                              password="******",
                              ip=None,
                              isOpenLog=False)
    poolRecordSaver = tradingRecordSaver("algotrading",
                                         "12345678",
                                         None,
                                         isOpenLog=False)
    poolRealTime = poolFromSinaApi(poolDataMarketGetter,
                                   True,
                                   poolRecordSaver,
                                   isOpenLog=False)
    poolHistory = poolFromSinaApi(poolDataRepoGetter,
                                  False,
                                  poolRecordSaver,
                                  isOpenLog=False)

    # 初始化quantAnalysisDict
    repoForQuantAnalysis = repo(isSqlite=False,
                                isMysql=True,
                                file_path="",
                                user="******",
                                password="******",
                                ip=None,
                                isOpenLog=False)
    quantAnalysisDict = {}
    quantAnalysisDict[clientOrder.TWAP] = TWAPQuantAnalysis(isOpenLog=False)
    quantAnalysisDict[clientOrder.VWAP] = VWAPQuantAnalysis(
        repoForQuantAnalysis, isOpenLog=False)
    quantAnalysisDict[clientOrder.LINEARVWAP] = LinearVWAPQuantAnalysis(
        repoForQuantAnalysis, isOpenLog=False)

    findLastDays = 7
    algoTradingEngine = algoTrading(rat,
                                    poolHistory,
                                    quantAnalysisDict,
                                    findLastDays,
                                    isOpenLog=False)

    log.info("init succ")

    order1 = clientOrder()
    stockId = 601377
    startTime = datetime.datetime(2016, 12, 23, 10, 00)
    endTime = datetime.datetime(2016, 12, 23, 14, 00)
    stockAmount = 10000
    buysell = 0
    algChoice = 1
    processId = 1
    tradingType = 1
    order1.create_order(stockId, startTime, endTime, stockAmount, buysell,
                        algChoice, processId, tradingType)
    rat.insert_order(order1)

    order2 = clientOrder()
    buysell = 1
    algChoice = 2
    stockAmount = 1000
    startTime = datetime.datetime(2016, 12, 22, 8, 00)
    endTime = datetime.datetime(2016, 12, 23, 19, 00)
    order2.create_order(stockId, startTime, endTime, stockAmount, buysell,
                        algChoice, processId, tradingType)
    rat.insert_order(order2)

    order3 = clientOrder()
    buysell = 0
    algChoice = 0
    stockAmount = 1000000
    startTime = datetime.datetime(2016, 12, 22, 10, 00)
    endTime = datetime.datetime(2016, 12, 22, 10, 10)
    order3.create_order(stockId, startTime, endTime, stockAmount, buysell,
                        algChoice, processId, tradingType)
    rat.insert_order(order3)

    startTime = datetime.datetime(2016, 12, 22, 8, 00)
    index = 0
    while (startTime < datetime.datetime(2016, 12, 23, 22)):
        algoTradingEngine.set_time(startTime)
        startTime = startTime + datetime.timedelta(minutes=1)
        algoTradingEngine.init_orders()
        algoTradingEngine.refresh()
        algoTradingEngine.trade_request()
        algoTradingEngine.complete_orders()
        index = index + 1
        if index % 60 == 0:
            log.info("now time:" + str(startTime))
예제 #6
0
 def test_sqlite(self):
     sqliteRepo = repo(True, True, "again_2.db", "algotrading", "12345678",
                       None)
     #sqliteRepo.change_data_into_mysql()
     return
예제 #7
0
파일: gui.py 프로젝트: lanecatm/AlgoTrading
def realtime_pool(findLastDays=7, isOpenLog=False):

    # 初始化algotrading的repo
    rat = repoForAT("algotrading", "12345678", None, isOpenLog=isOpenLog)

    # 初始化pool
    poolDataMarketGetter = marketDataGetter(isOpenLog=isOpenLog)
    poolDataRepoGetter = repo(isSqlite=False,
                              isMysql=True,
                              file_path="",
                              user="******",
                              password="******",
                              ip=None,
                              isOpenLog=isOpenLog)
    poolRecordSaver = tradingRecordSaver("algotrading",
                                         "12345678",
                                         None,
                                         isOpenLog=isOpenLog)
    poolRealTime = poolFromSinaApi(poolDataMarketGetter,
                                   True,
                                   poolRecordSaver,
                                   isOpenLog=isOpenLog)
    poolHistory = poolFromSinaApi(poolDataRepoGetter,
                                  False,
                                  poolRecordSaver,
                                  isOpenLog=isOpenLog)

    # 初始化quantAnalysisDict
    repoForQuantAnalysis = repo(isSqlite=False,
                                isMysql=True,
                                file_path="",
                                user="******",
                                password="******",
                                ip=None,
                                isOpenLog=isOpenLog)
    quantAnalysisDict = {}
    quantAnalysisDict[clientOrder.TWAP] = TWAPQuantAnalysis(
        isOpenLog=isOpenLog)
    quantAnalysisDict[clientOrder.VWAP] = VWAPQuantAnalysis(
        repoForQuantAnalysis, isOpenLog=isOpenLog)
    quantAnalysisDict[clientOrder.LINEARVWAP] = LinearVWAPQuantAnalysis(
        repoForQuantAnalysis, isOpenLog=isOpenLog)

    algoTradingEngine = algoTrading(rat,
                                    poolRealTime,
                                    quantAnalysisDict,
                                    findLastDays,
                                    isOpenLog=isOpenLog)

    log.info("init succ")

    index = 0
    while (1):
        algoTradingEngine.set_time(datetime.datetime.now())
        startTime = startTime + datetime.timedelta(minutes=1)
        algoTradingEngine.init_orders()
        algoTradingEngine.refresh()
        algoTradingEngine.trade_request()
        algoTradingEngine.complete_orders()
        index = index + 1
        if index % 60 == 0:
            log.info("now time:" + str(startTime))
예제 #8
0
파일: gui.py 프로젝트: lanecatm/AlgoTrading
    def __init__(self, parent=None):
        super(TestWindow, self).__init__(parent)
        self.repoAT = repoForAT('algotrading', '12345678', None, False)
        self.repoMonitor = tradingRecordSaver('algotrading', '12345678', None,
                                              False)
        self.repoHistory = repo(False, True, None, "algotrading", '12345678',
                                None, False)
        self.setWindowTitle(u'算法交易GUI')
        self.p = None
        """--------------------------全局变量--------------------------"""
        self.startYear = 0
        self.startMonth = 0
        self.startDay = 0
        self.startHour = 0
        self.startMinute = 0
        self.startSecond = 0
        self.startTimeString = str(self.startYear) + '-' + str(
            self.startMonth) + '-' + str(self.startDay) + ' ' + str(
                self.startHour) + ':' + str(self.startMinute) + ':' + str(
                    self.startSecond)

        self.endYear = 0
        self.endMonth = 0
        self.endDay = 0
        self.endHour = 0
        self.endMinute = 0
        self.endSecond = 0
        self.endTimeString = str(self.endYear) + '-' + str(
            self.endMonth) + '-' + str(self.endDay) + ' ' + str(
                self.endHour) + ':' + str(self.endMinute) + ':' + str(
                    self.endSecond)

        self.firstTimeYear = 0
        self.firstTimeMonth = 0
        self.firstTimeDay = 0
        self.firstTimeHour = 0
        self.firstTimeMinute = 0
        self.firstTimeSecond = 0
        self.firstTimeString = str(self.firstTimeYear) + '-' + str(
            self.firstTimeMonth) + '-' + str(self.firstTimeDay) + ' ' + str(
                self.firstTimeHour) + ':' + str(
                    self.firstTimeMinute) + ':' + str(self.firstTimeSecond)

        self.secondTimeYear = 0
        self.secondTimeMonth = 0
        self.secondTimeDay = 0
        self.secondTimeHour = 0
        self.secondTimeMinute = 0
        self.secondTimeSecond = 0
        self.secondTimeString = str(self.secondTimeYear) + '-' + str(
            self.secondTimeMonth) + '-' + str(self.secondTimeDay) + ' ' + str(
                self.secondTimeHour) + ':' + str(
                    self.secondTimeMinute) + ':' + str(self.secondTimeSecond)

        self.orderId = 0
        self.orderIdDisplay = ''
        self.stockId = 0  #int
        self.stockIdDisplay = ''
        self.startTime = 0  #datetime
        self.startTimeDisplay = ''
        self.endTime = 0  #datetime
        self.endTimeDisplay = ''
        self.stockAmount = 0  #int
        self.stockAmountDisplay = ''
        self.buySell = 0  #tradingUnit.BUY 0  .SELL 1
        self.buySellDisplay = ''
        self.algChoice = 0  #clientOrder.TWAP 0 .VWAP 1 .LINEARVWAP 2
        self.algChoiceDisplay = ''
        self.processId = 0  #...
        self.processIdDisplay = ''
        self.tradingType = 0  #...
        self.tradingTypeDisplay = ''
        self.firstTime = 0  #datetime
        self.firstTimeDisplay = ''
        self.secondTime = 0  #datetime
        self.secondTimeDisplay = ''
        """--------------------------布局变量--------------------------"""
        self.layout = QtGui.QGridLayout()
        """--------------------------股票ID设置--------------------------"""
        self.stockId = QtGui.QPushButton(u'股票ID')
        pal = self.stockId.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.stockId.setPalette(pal)
        self.layout.addWidget(self.stockId, 0, 6)

        self.stockIdEdit = QtGui.QComboBox()
        self.stockIdEdit.addItem("600000")
        self.stockIdEdit.addItem("601006")
        self.stockIdEdit.addItem("601377")
        self.layout.addWidget(self.stockIdEdit, 0, 7)
        """--------------------------开始时间定义--------------------------"""
        self.startTimeButton = QtGui.QPushButton(u'开始时间')
        pal = self.startTimeButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.startTimeButton.setPalette(pal)
        self.layout.addWidget(self.startTimeButton, 1, 6)

        self.startTimeEdit = QtGui.QPushButton(u'编辑开始时间')

        self.layout.addWidget(self.startTimeEdit, 1, 7)
        self.startTimeEdit.clicked.connect(self.startTimeEditFun)
        """--------------------------结束时间定义--------------------------"""
        self.endTimeButton = QtGui.QPushButton(u'结束时间')
        pal = self.endTimeButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.endTimeButton.setPalette(pal)
        self.layout.addWidget(self.endTimeButton, 2, 6)

        self.endTimeEdit = QtGui.QPushButton(u'编辑结束时间')
        self.layout.addWidget(self.endTimeEdit, 2, 7)
        self.endTimeEdit.clicked.connect(self.endTimeEditFun)
        """--------------------------股票数量定义--------------------------"""
        self.stockAmountButton = QtGui.QPushButton(u'股票数量')
        pal = self.stockAmountButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.stockAmountButton.setPalette(pal)
        self.layout.addWidget(self.stockAmountButton, 3, 6)

        self.stockAmountEdit = QtGui.QSpinBox()
        self.stockAmountEdit.setRange(0, 1000000000)
        self.layout.addWidget(self.stockAmountEdit, 3, 7)
        """--------------------------操作类型定义--------------------------"""
        self.operateTypeButton = QtGui.QPushButton(u'操作类型')
        pal = self.operateTypeButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.operateTypeButton.setPalette(pal)
        self.layout.addWidget(self.operateTypeButton, 4, 6)

        self.operateTypeEdit = QtGui.QComboBox()
        self.operateTypeEdit.addItem("BUY")
        self.operateTypeEdit.addItem("SELL")
        self.layout.addWidget(self.operateTypeEdit, 4, 7)
        """--------------------------算法选择定义--------------------------"""
        self.algChoiceButton = QtGui.QPushButton(u'算法选择')
        pal = self.algChoiceButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.algChoiceButton.setPalette(pal)
        self.layout.addWidget(self.algChoiceButton, 5, 6)

        self.algChoiceEdit = QtGui.QComboBox()
        self.algChoiceEdit.addItem("TWAP")
        self.algChoiceEdit.addItem("VWAP")
        self.algChoiceEdit.addItem("LINEARVWAP")
        self.layout.addWidget(self.algChoiceEdit, 5, 7)
        """------------------------------------------"""
        self.processIdButton = QtGui.QPushButton(u'进程ID')
        pal = self.processIdButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.processIdButton.setPalette(pal)
        self.layout.addWidget(self.processIdButton, 6, 6)

        self.processIdEdit = QtGui.QComboBox()
        self.processIdEdit.addItem("1")
        self.processIdEdit.addItem("Other")
        self.layout.addWidget(self.processIdEdit, 6, 7)
        """--------------------------交易类型定义--------------------------"""
        self.tradingTypeButton = QtGui.QPushButton(u'交易类型')
        pal = self.tradingTypeButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('blue'))
        self.tradingTypeButton.setPalette(pal)
        self.layout.addWidget(self.tradingTypeButton, 7, 6)

        self.tradingTypeEdit = QtGui.QComboBox()
        self.tradingTypeEdit.addItem("None")
        self.layout.addWidget(self.tradingTypeEdit, 7, 7)
        """--------------------------确定订单按钮--------------------------"""
        self.confirmButton = QtGui.QPushButton(u'确定订单')
        pal = self.confirmButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('red'))
        self.confirmButton.setPalette(pal)
        self.layout.addWidget(self.confirmButton, 8, 6, 1, 2)
        self.confirmButton.clicked.connect(self.confirmOrderFun)
        """--------------------------清空设置按钮暂不用--------------------------"""
        self.emptyButton = QtGui.QPushButton(u'清空所有订单')
        pal = self.emptyButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('red'))
        self.emptyButton.setPalette(pal)
        self.layout.addWidget(self.emptyButton, 9, 6, 1, 2)
        self.emptyButton.clicked.connect(self.emptyOrderFun)
        """--------------------------输入记录表按钮--------------------------"""
        self.inputTableLabel = QtGui.QTableWidget()
        self.inputTableLabel.setColumnCount(7)
        self.inputTableLabel.setRowCount(1000)
        self.inputInfoUpdate = QtGui.QPushButton(u'输入记录表(点击刷新数据)')
        self.inputInfoUpdate.clicked.connect(self.pushInputInfoUpdateFun)
        pal = self.inputInfoUpdate.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('green'))
        self.inputInfoUpdate.setPalette(pal)
        self.layout.addWidget(self.inputInfoUpdate, 10, 0, 1, 6)
        self.layout.addWidget(self.inputTableLabel, 11, 0, 10, 6)
        """set the table item title"""
        self.inputTableLabel.setItem(0, 0, QtGui.QTableWidgetItem(u'订单ID'))
        self.inputTableLabel.setItem(0, 1, QtGui.QTableWidgetItem(u'股票ID'))
        self.inputTableLabel.setItem(0, 2, QtGui.QTableWidgetItem(u'开始时间'))
        self.inputTableLabel.setItem(0, 3, QtGui.QTableWidgetItem(u'结束时间'))
        self.inputTableLabel.setItem(0, 4, QtGui.QTableWidgetItem(u'股票数量'))
        self.inputTableLabel.setItem(0, 5, QtGui.QTableWidgetItem(u'操作类型'))
        self.inputTableLabel.setItem(0, 6, QtGui.QTableWidgetItem(u'算法选择'))
        """--------------------------输出记录表按钮--------------------------"""
        self.outputTableLabel = QtGui.QTableWidget()
        self.outputTableLabel.setColumnCount(6)
        self.outputTableLabel.setRowCount(1000)
        self.outputInfoUpdate = QtGui.QPushButton(u'输出记录表(点击刷新数据)')
        self.outputInfoUpdate.clicked.connect(self.pushOutputInfoUpdateFun)
        pal = self.outputInfoUpdate.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('green'))
        self.outputInfoUpdate.setPalette(pal)
        self.layout.addWidget(self.outputInfoUpdate, 21, 0, 1, 6)
        self.layout.addWidget(self.outputTableLabel, 22, 0, 10, 6)
        """set the table item title"""
        self.outputTableLabel.setItem(0, 0, QtGui.QTableWidgetItem(u'订单ID'))
        self.outputTableLabel.setItem(0, 1, QtGui.QTableWidgetItem(u'股票ID'))
        self.outputTableLabel.setItem(0, 2, QtGui.QTableWidgetItem(u'是否成功'))
        self.outputTableLabel.setItem(0, 3, QtGui.QTableWidgetItem(u'成功数量'))
        self.outputTableLabel.setItem(0, 4, QtGui.QTableWidgetItem(u'交易总价'))
        self.outputTableLabel.setItem(0, 5, QtGui.QTableWidgetItem(u'交易单价'))
        """--------------------------监控池数据表按钮--------------------------"""
        self.monitorPoolTableLabel = QtGui.QTableWidget()
        self.monitorPoolTableLabel.setColumnCount(9)
        self.monitorPoolTableLabel.setRowCount(1000)
        self.monitorPoolUpdate = QtGui.QPushButton(u'监控池数据表(点击刷新数据)')
        self.monitorPoolUpdate.clicked.connect(self.pushMonitorPoolUpdateFun)
        pal = self.monitorPoolUpdate.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('green'))
        self.monitorPoolUpdate.setPalette(pal)
        self.layout.addWidget(self.monitorPoolUpdate, 0, 0, 1, 6)
        self.layout.addWidget(self.monitorPoolTableLabel, 1, 0, 9, 6)
        """set the table item title"""
        self.monitorPoolTableLabel.setItem(0, 0,
                                           QtGui.QTableWidgetItem(u'交易单号'))
        self.monitorPoolTableLabel.setItem(0, 1,
                                           QtGui.QTableWidgetItem(u'交易股票ID'))
        self.monitorPoolTableLabel.setItem(0, 2,
                                           QtGui.QTableWidgetItem(u'交易订单时间'))
        self.monitorPoolTableLabel.setItem(0, 3,
                                           QtGui.QTableWidgetItem(u'交易类型'))
        self.monitorPoolTableLabel.setItem(0, 4,
                                           QtGui.QTableWidgetItem(u'交易方式'))
        self.monitorPoolTableLabel.setItem(0, 5,
                                           QtGui.QTableWidgetItem(u'交易股票数量'))
        self.monitorPoolTableLabel.setItem(0, 6,
                                           QtGui.QTableWidgetItem(u'交易价格'))
        self.monitorPoolTableLabel.setItem(0, 7,
                                           QtGui.QTableWidgetItem(u'交易成功数量'))
        self.monitorPoolTableLabel.setItem(0, 8,
                                           QtGui.QTableWidgetItem(u'交易总金额'))
        """--------------------------图片1信息按钮--------------------------"""
        self.pictureOneLabel = QtGui.QLabel()
        self.pictureOneLabel.setPixmap(QtGui.QPixmap('J:\\GUI\\kline.png'))
        #self.layout.addWidget(self.pictureOneLabel,11,6, 10,3) #4 5

        self.pictureOneUpdate = QtGui.QPushButton(u'交易量累积图')
        self.pictureOneUpdate.clicked.connect(self.pushPictureOne)
        pal = self.pictureOneUpdate.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('black'))
        self.pictureOneUpdate.setPalette(pal)
        self.layout.addWidget(self.pictureOneUpdate, 10, 6)  #1 5

        self.pictureTwoUpdate = QtGui.QPushButton(u'交易量分时图')
        self.pictureTwoUpdate.clicked.connect(self.pushPictureTwo)
        pal = self.pictureTwoUpdate.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('black'))
        self.pictureTwoUpdate.setPalette(pal)
        self.layout.addWidget(self.pictureTwoUpdate, 10, 7)
        """--------------------------图片1信息order选择按钮--------------------------"""
        self.pictureOneOrderEdit = QtGui.QSpinBox()
        self.pictureOneOrderEdit.setRange(0, 10000)
        self.layout.addWidget(self.pictureOneOrderEdit, 10, 8)
        """--------------------------附加参数窗口--------------------------"""
        self.poolType = QtGui.QPushButton(u'pool类型')
        self.layout.addWidget(self.poolType, 0, 8)
        self.poolTypeEdit = QtGui.QComboBox()
        self.poolTypeEdit.addItem("Backtest")
        self.poolTypeEdit.addItem("Realtime")
        self.layout.addWidget(self.poolTypeEdit, 1, 8)

        self.modeChoice = QtGui.QPushButton(u'模式')
        self.layout.addWidget(self.modeChoice, 2, 8)
        self.modeChoiceEdit = QtGui.QComboBox()
        self.modeChoiceEdit.addItem("Debug")
        self.modeChoiceEdit.addItem("Release")
        self.layout.addWidget(self.modeChoiceEdit, 3, 8)

        self.timeParaOne = QtGui.QPushButton(u'pool开始时间')
        self.layout.addWidget(self.timeParaOne, 4, 8)
        self.timeParaOneEdit = QtGui.QPushButton(u'开始时间编辑')
        self.layout.addWidget(self.timeParaOneEdit, 5, 8)
        self.timeParaOneEdit.clicked.connect(self.firstParaTimeEditFun)

        self.timeParaTwo = QtGui.QPushButton(u'pool结束时间')
        self.layout.addWidget(self.timeParaTwo, 6, 8)
        self.timeParaTwoEdit = QtGui.QPushButton(u'结束时间编辑')
        self.layout.addWidget(self.timeParaTwoEdit, 7, 8)
        self.timeParaTwoEdit.clicked.connect(self.secondParaTimeEditFun)
        """--------------------------附加参数确定按钮--------------------------"""
        self.confirmParaButton = QtGui.QPushButton(u'确定参数')
        self.confirmParaButton.clicked.connect(self.pushconfirmParaButtonFun)
        pal = self.confirmParaButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('red'))
        self.confirmParaButton.setPalette(pal)
        self.layout.addWidget(self.confirmParaButton, 8, 8)
        """--------------------------附加参数清空按钮--------------------------"""
        self.emptyParaButton = QtGui.QPushButton(u'清空参数')
        pal = self.emptyParaButton.palette()
        pal.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('red'))
        self.emptyParaButton.setPalette(pal)
        self.layout.addWidget(self.emptyParaButton, 9, 8)

        self.setLayout(self.layout)
        self.show()
예제 #9
0
        #self.log.info("request ans: " + res)
        #print res
        infoStr = res[res.find('"') + 1:-1]
        infoArr = infoStr.split(',')
        infoArr[0] = '"' + infoArr[0] + '"'
        infoArr[-3] = '"' + infoArr[-3] + '"'
        infoArr[-2] = '"' + infoArr[-2] + '"'

        infoArr[0] = stockId
        self.log.info("get data from sina api:\n" + str(infoArr[:-1]))
        return infoArr[:-1]


if __name__ == '__main__':

    # sys.argv 命令行参数
    if len(sys.argv) < 3:
        print "param error, marketDataGetter [db name] [stock id 1] ..."
        exit()
    dbName = sys.argv[1]
    stockIdArr = sys.argv[2:]

    getter = marketDataGetter()
    database = repo.repo("./" + dbName)

    for stockId in stockIdArr:
        infoArr = getter.get_data(stockId)
        infoArr[0] = stockId
        database.insert_data(infoArr)
    exit()
예제 #10
0
# -*- encoding:utf-8 -*-

# ==============================================================================
# Filename: changeDataFromSqliteToMysql.py
# Author: Xiaofu Huang
# E-mail: [email protected]
# Last modified: 2016-12-20 13:34
# Description: change data from sqlite to mysql
# ==============================================================================

import sys, os
import sqlite3
from repo import repo

sys.path.append("../tool")
from Log import Log

sqliteRepo = repo(True, True, "again_2_half.db", "algotrading", "12345678",
                  None)
sqliteRepo.change_data_into_mysql()
예제 #11
0
            print str(predictTimeList)
            print str(timeArray)

        figHelper.save()
        figHelper.finish()
        return

    def get_history_TWAP(self, stockId, startTime, endTime):
        quantAnalysisGetter = VWAPQuantAnalysis(self.historyRepo)
        dataArray, timeArray = quantAnalysisGetter.get_history_data(
            stockId, startTime, endTime + datetime.timedelta(minutes=1), 7)
        amountArray = dataArray / np.sum(dataArray[0], dtype=np.float)
        percentageArray = amountArray[0]
        priceArray, timeArray = quantAnalysisGetter.get_price_data(
            stockId, startTime, endTime + datetime.timedelta(minutes=1), 7)
        priceArray = priceArray[0]
        VWAPvalue = percentageArray * priceArray
        TWAPvalue = np.sum(priceArray) / priceArray.shape[0]

        return np.sum(VWAPvalue), TWAPvalue


if __name__ == "__main__":
    historyRepo = repo(False, True, None, "algotrading", "12345678", None,
                       False)
    clientOrderRepo = repoForAT("algotrading", "12345678", None, False)
    tradingRepo = tradingRecordSaver("algotrading", "12345678", None, False)
    chart = chartCreater(historyRepo, clientOrderRepo, tradingRepo)
    chart.get_chart(20)
    chart.get_bar(20)
예제 #12
0
import sys
sys.path.append("../fetch_data/")
from repo import repo
from marketDataGetter import marketDataGetter

if __name__ == '__main__':
    market = marketDataGetter()
    originArr = market.get_data(600000)
    marketData = MarketData(originArr)
    print marketData.sellPrice
    print marketData.sellAmount
    print marketData.buyPrice
    print marketData.buyAmount
    print marketData.time

    repoEngine = repo(isSqlite=False,
                      isMysql=True,
                      file_path="",
                      user="******",
                      password="******",
                      ip=None,
                      isOpenLog=False)
    originArr = repoEngine.get_data(600000,
                                    datetime.datetime(2016, 12, 23, 10))
    marketData = MarketData(originArr)
    print marketData.sellPrice
    print marketData.sellAmount
    print marketData.buyPrice
    print marketData.buyAmount
    print marketData.time
예제 #13
0
# Author: Xiaofu Huang
# E-mail: [email protected]
# Last modified: 2016-11-08 21:38
# Description: quantAnalysis 集成测试
# ==============================================================================
import sys
sys.path.append("../fetch_data")
import datetime
import numpy as np
from repo import repo
from VWAPQuantAnalysis import VWAPQuantAnalysis
from LinearVWAPQuantAnalysis import LinearVWAPQuantAnalysis


if __name__ == '__main__':
    repoEngine = repo(False, True , None, "algotrading", "12345678", None)

    VWAPAnalysis = VWAPQuantAnalysis(repoEngine)
    LinearVWAPAnalysis = LinearVWAPQuantAnalysis(repoEngine)
    startDate=datetime.datetime.strptime("2016-12-15 13:00:00" , "%Y-%m-%d %H:%M:%S")
    endDate = datetime.datetime.strptime("2016-12-16 14:06:00", "%Y-%m-%d %H:%M:%S")

    ansDict = VWAPAnalysis.get_recommend_order_weight(600000, startDate, endDate, 2)
    ansDict = sorted(ansDict.iteritems(), key=lambda keyValue: datetime.datetime.strptime(keyValue[0], "%Y-%m-%d %H:%M:%S"), reverse = True)
    print ansDict
    ansDict = LinearVWAPAnalysis.get_recommend_order_weight(600000, startDate, endDate, 2)
    ansDict = sorted(ansDict.iteritems(), key=lambda keyValue: datetime.datetime.strptime(keyValue[0], "%Y-%m-%d %H:%M:%S"), reverse = True)
    print ansDict
    
    #VWAPAnalysis.getRecommendOrderWeight(startDate, startDate + datetime.timedelta(hours = 10), 1)