Example #1
0
def testBuy() :
    from Queue          import Queue
    from cxCybosPlus    import gCybosPlusClassDic
    import win32gui
    import time
    from common         import getResultStringPortrait
    from cxFile         import cxFile

    reportQueue = Queue()
    conclusionQueue = Queue()

    cpTdUtil = gCybosPlusClassDic['cxCpTdUtil']
    result = cpTdUtil.TradeInit()

    if result != 0 :
        print 'cpTdUtil.init failed'
        return
    accountList = cpTdUtil.AccountNumber()
    goodsList = cpTdUtil.GoodsList(accountList[0], 3)

    cpConclusion = gCybosPlusClassDic['cxCpConclusion']
    cpConclusion.open()
    cpConclusion.set_result_queue(conclusionQueue)
    cpConclusion.Subscribe()

    cpTd0311 = gCybosPlusClassDic['cxCpTd0311']
    cpTd0311.open()
    cpTd0311.set_result_queue(reportQueue)

    cpTd0311.SetInputValue(0, 2)        # 1 : sell, 2 : buy
    cpTd0311.SetInputValue(1, accountList[0])
    cpTd0311.SetInputValue(2, goodsList[0])

    stockCode = u'A005180'      #빙그레
    amount = 1
    unitPrice = 1
    tradeCondition = 0
    tradeType = '03'

    cpTd0311.SetInputValue(3, stockCode)
    cpTd0311.SetInputValue(4, amount)
    cpTd0311.SetInputValue(5, unitPrice)
    cpTd0311.SetInputValue(7, tradeCondition)
    cpTd0311.SetInputValue(8, tradeType)

#    result = cpTd0311.BlockRequest()
    result = cpTd0311.Request()
    print 'result', result
    print 'GetDibStatus',cpTd0311.GetDibStatus()
    print 'GetDibMsg1', cpTd0311.GetDibMsg1()
    print 'Continue', cpTd0311.Continue()
    #print cpTd0311.get_header_value_list()

    cntConclusion = 0
    resultFile = cxFile()

    while True :
        if reportQueue.qsize() != 0 :
            print reportQueue.qsize()
            resultList = reportQueue.get()
            resultString = getResultStringPortrait(resultList, 1, 1, 1, 1 )
            print resultString
            resultFile.write(resultString)
            print resultList[0]
            print resultList[4]
            if ( resultList[0] == -1 ) and ( resultList[4] == u'cxCpTd0311' ) :
                del resultList
                del resultString
                break
            del resultList
            del resultString

        if conclusionQueue.qsize() != 0 :
            resultList = conclusionQueue.get()
            resultString = getResultStringPortrait(resultList, 1, 1, 1, 1)
            print resultString
            resultFile.write(resultString)
            print resultList[0]
            print resultList[4]

            cntConclusion += 1
            
            if cntConclusion >= 2 :
                break

        win32gui.PumpWaitingMessages()
        time.sleep(0.5)

    resultFile.close()
    cpConclusion.Unsubscribe()
    cpConclusion.close()
Example #2
0
def RapidSnowBall() :
    reportQueue = Queue()
    conclusionQueue = Queue()
    resultFile = cxFile()

    cpTdUtil = gCybosPlusClassDic['cxCpTdUtil']
    result = cpTdUtil.TradeInit()

    if result != 0 :
        resultString = u'cpTdUtil.init failed'
        resultFile.write(resultString)
        return

    accountList = cpTdUtil.AccountNumber()
    goodsList = cpTdUtil.GoodsList(accountList[0],3)

    cpConclusion = gCybosPlusClassDic['cxCpConclusion']
    cpConclusion.open()
    cpConclusion.set_result_queue(conclusionQueue)
    cpConclusion.Subscribe()

    cpTd0311 = gCybosPlusClassDic['cxCpTd0311']
    cpTd0311.open()
    cpTd0311.set_result_queue(reportQueue)

    # TODO :initial subscribe
    subscribeStockList = loadSubscribeStockList()

    #if len(subscribeStockList) :
        

    while True :
        #if reportQueue.qsize() != 0 :
            #resultList = reportQueue.get()
            #resultString = getResultStringPortrait(resultList, 1, 1, 1, 1)
            #resultFile.write(resultString)

        # TODO : if it gets some value changes, 
        #           determines whether buy or sell.
        #           determines stockCode, amount, unitPrice, tradeCondition,
        #           tradType also.
        # TODO : if it determines to buy, buy it.
        # TODO : if it determines to sell, sell it.
            
            #cpTd0311.SetInputValue(0, 1 or 2 ) # 1 : sell, 2 : buy
            #cpTd0311.SetInputValue(1, accountList[0])
            #cpTd0311.SetInputValue(2, goodsList[0])
            #cpTd0311.SetInputValue(3, stockCode)       # stockCode
            #cpTd0311.SetInputValue(4, amount)          # amount
            #cpTd0311.SetInputValue(5, unitPrice)       # unitPrice
            #cpTd0311.SetInputValue(7, tradeCondition)  # tradeCondition
            #cpTd0311.SetInputValue(8, tradeType)       # tradeType

            #result = cpTd0311.Request()
            #print 'result', result
            #print 'GetDibStatus', cpTd0311.GetDibStatus()
            #print 'GetDibMsg1', cpTd0311.GetDibMsg1()
            #bContinue = cpTd0311.Continue()
            #print 'Continue', bContinue 
            #if bContinue == 1 :
            #   cpTd0311.Request()

        if conclusionQueue.qsize() != 0 :
            resultList = conclusionQueue.get()
            resultString = getResultStringPortrait(resultList, 1, 1, 1, 1)
            print resultString
            resultFile.write(resultString)
        
        # TODO : check the loop-end conditions.
        #           keystroke or some other conditions.

        win32gui.PumpWaitingMessages()
        #time.sleep(1) 
        time.sleep(0.01) #0.01  for 10 msec.

    resultFile.close()
    cpTd0311.close()

    cpConclusion.Unsubscribe()
    cpConclusion.close()