当前位置: 首页>>代码示例>>Python>>正文


Python pyqtgraph.ArrowItem方法代码示例

本文整理汇总了Python中pyqtgraph.ArrowItem方法的典型用法代码示例。如果您正苦于以下问题:Python pyqtgraph.ArrowItem方法的具体用法?Python pyqtgraph.ArrowItem怎么用?Python pyqtgraph.ArrowItem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pyqtgraph的用法示例。


在下文中一共展示了pyqtgraph.ArrowItem方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: plotMark

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotMark(self):
        """显示开平仓信号"""
        # 检查是否有数据
        if len(self.datas)==0:
            return
        for arrow in self.arrows:
            self.pwKL.removeItem(arrow)
        # 画买卖信号
        for i in range(len(self.listSig)):
            # 无信号
            if self.listSig[i] == 0:
                continue
            # 买信号
            elif self.listSig[i] > 0:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']),  angle=90, brush=(255, 0, 0))
            # 卖信号
            elif self.listSig[i] < 0:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']), angle=-90, brush=(0, 255, 0))
            self.pwKL.addItem(arrow)
            self.arrows.append(arrow)

    #---------------------------------------------------------------------- 
开发者ID:moonnejs,项目名称:uiKLine,代码行数:24,代码来源:uiKLine.py

示例2: initplotKline

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def initplotKline(self):
        """Kline"""
        self.pw2 = pg.PlotWidget(name='Plot2')  # K线图
        self.vbl_2.addWidget(self.pw2)
        self.pw2.setDownsampling(mode='peak')
        self.pw2.setClipToView(True)

        self.curve5 = self.pw2.plot()
        self.curve6 = self.pw2.plot()

        self.candle = self.CandlestickItem(self.listBar)
        self.pw2.addItem(self.candle)
        ## Draw an arrowhead next to the text box
        # self.arrow = pg.ArrowItem()
        # self.pw2.addItem(self.arrow)

    #---------------------------------------------------------------------- 
开发者ID:sunshinelover,项目名称:chanlun,代码行数:19,代码来源:demoUi.py

示例3: plotText

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotText(self):
        lenClose = len(self.listClose)

        if lenClose >= 5:                                       # Fractal Signal
            if self.listClose[-1] > self.listClose[-2] and self.listClose[-3] > self.listClose[-2] and self.listClose[-4] > self.listClose[-2] and self.listClose[-5] > self.listClose[-2] and self.listfastEMA[-1] > self.listslowEMA[-1]:
                ## Draw an arrowhead next to the text box
                # self.pw2.removeItem(self.arrow)
                self.arrow = pg.ArrowItem(pos=(lenClose-1, self.listLow[-1]), angle=90, brush=(255, 0, 0))
                self.pw2.addItem(self.arrow)
            elif self.listClose[-1] < self.listClose[-2] and self.listClose[-3] < self.listClose[-2] and self.listClose[-4] < self.listClose[-2] and self.listClose[-5] < self.listClose[-2] and self.listfastEMA[-1] < self.listslowEMA[-1]:
                ## Draw an arrowhead next to the text box
                # self.pw2.removeItem(self.arrow)
                self.arrow = pg.ArrowItem(pos=(lenClose-1, self.listHigh[-1]), angle=-90, brush=(0, 255, 0))
                self.pw2.addItem(self.arrow)

    #---------------------------------------------------------------------- 
开发者ID:sunshinelover,项目名称:chanlun,代码行数:18,代码来源:demoUi.py

示例4: plotText

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotText(self):
        """开平仓信号"""
        lenClose = len(self.listClose)

        if lenClose >= 5:                                       # Fractal Signal
            if self.listClose[-1] > self.listClose[-2] and self.listClose[-3] > self.listClose[-2] and self.listClose[-4] > self.listClose[-2] and self.listClose[-5] > self.listClose[-2] and self.listfastEMA[-1] > self.listslowEMA[-1]:
                ## Draw an arrowhead next to the text box
                # self.pw2.removeItem(self.arrow)
                self.arrow = pg.ArrowItem(pos=(lenClose-1, self.listLow[-1]), angle=90, brush=(255, 0, 0))
                self.pw2.addItem(self.arrow)
            elif self.listClose[-1] < self.listClose[-2] and self.listClose[-3] < self.listClose[-2] and self.listClose[-4] < self.listClose[-2] and self.listClose[-5] < self.listClose[-2] and self.listfastEMA[-1] < self.listslowEMA[-1]:
                ## Draw an arrowhead next to the text box
                # self.pw2.removeItem(self.arrow)
                self.arrow = pg.ArrowItem(pos=(lenClose-1, self.listHigh[-1]), angle=-90, brush=(0, 255, 0))
                self.pw2.addItem(self.arrow)

    #---------------------------------------------------------------------- 
开发者ID:zhengwsh,项目名称:InplusTrader_Linux,代码行数:19,代码来源:uiBasicWidget.py

示例5: plotIndex_LIMIT

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotIndex_LIMIT (self):
        """画指标"""
        # 检查是否有数据
        if len(self.KLINE_SHORT_TERM_LIST_LIMIT)==0 :
            self.refresh()   
            return
        for arrow in self.KLINE_SHORT_TERM_LIST_LIMIT_arrows:
            self.pwKL.removeItem(arrow)      
        for curves in self.KLINE_SHORT_TERM_LIST_LIMIT_curves:
            self.pwKL.removeItem(curves)              
        for i in range(len(self.KLINE_SHORT_TERM_LIST_LIMIT)):
            if  self.KLINE_SHORT_TERM_LIST_LIMIT[i] == 1:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']), size=7,tipAngle=55,tailLen=3,tailWidth=4, angle=90, brush=(34, 139, 34),pen=({'color': "228B22", 'width': 1}))   
                self.pwKL.addItem(arrow)
                self.KLINE_SHORT_TERM_LIST_LIMIT_arrows.append(arrow)    
            if  self.KLINE_SHORT_TERM_LIST_LIMIT[i] == 2:  
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']),size=7,tipAngle=55,tailLen=3,tailWidth=4 ,angle=-90, brush=(34, 139, 34),pen=({'color': "228B22", 'width': 1}))
                self.pwKL.addItem(arrow)
                self.KLINE_SHORT_TERM_LIST_LIMIT_arrows.append(arrow)   
        last_x=-1  #上一个x
        last_y=-1  #上一个y   
        last_v=-1
        for i in range(len(self.KLINE_SHORT_TERM_LIST_LIMIT)):
            if  self.KLINE_SHORT_TERM_LIST_LIMIT[i] != 0 :
                if    last_x!=-1 and last_y!=-1 and  last_v!=self.KLINE_SHORT_TERM_LIST_LIMIT[i] and\
                    ((last_v == 1 and self.KLINE_SHORT_TERM_LIST_LIMIT[i] == 2) and self.KLINE_LOW[last_x]<self.KLINE_HIGH[i]) or\
                    ((last_v == 2 and self.KLINE_SHORT_TERM_LIST_LIMIT[i] == 1) and self.KLINE_HIGH[last_x]>self.KLINE_LOW[i]):
                        curve = pg.PlotCurveItem(x=np.array([last_x,i]),y=np.array([last_y,self.datas[i]['low'] if self.KLINE_SHORT_TERM_LIST_LIMIT[i]==1 else self.datas[i]['high']]),name='duo',pen=({'color': "228B22", 'width': 1}))                 
                        self.pwKL.addItem(curve)          
                        self.KLINE_SHORT_TERM_LIST_LIMIT_curves.append(curve)    
                last_x =i
                if  self.KLINE_SHORT_TERM_LIST_LIMIT[i]  ==1 :  
                    last_y=self.datas[i]['low']     
                elif self.KLINE_SHORT_TERM_LIST_LIMIT[i] ==2 :  
                    last_y=self.datas[i]['high']   
                last_v=self.KLINE_SHORT_TERM_LIST_LIMIT[i]
                
    #---------------------------------------------------------------------- 
开发者ID:rjj510,项目名称:uiKLine,代码行数:40,代码来源:uiKLine.py

示例6: plotIndex_ALL

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotIndex_ALL (self):
        """画指标"""
        # 检查是否有数据
        if len(self.KLINE_SHORT_TERM_LIST_ALL)==0 :
            self.refresh()            
            return
        for arrow in self.KLINE_SHORT_TERM_LIST_ALL_arrows:
            self.pwKL.removeItem(arrow)     
        for curves in self.KLINE_SHORT_TERM_LIST_ALL_curves:
            self.pwKL.removeItem(curves)              
        for i in range(len(self.KLINE_SHORT_TERM_LIST_ALL)):
            if  self.KLINE_SHORT_TERM_LIST_ALL[i] == 1:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']), size=7,tipAngle=55,tailLen=3,tailWidth=4, angle=90, brush=(225, 0, 225),pen=({'color': "FF00FF", 'width': 1}))   
                self.pwKL.addItem(arrow)
                self.KLINE_SHORT_TERM_LIST_ALL_arrows.append(arrow)    
            if  self.KLINE_SHORT_TERM_LIST_ALL[i] == 2:  
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']),size=7,tipAngle=55,tailLen=3,tailWidth=4 ,angle=-90, brush=(225, 0, 225),pen=({'color': "FF00FF", 'width': 1}))
                self.pwKL.addItem(arrow)
                self.KLINE_SHORT_TERM_LIST_ALL_arrows.append(arrow)   
        last_x=-1  #上一个x
        last_y=-1  #上一个y   
        last_v=-1
        for i in range(len(self.KLINE_SHORT_TERM_LIST_ALL)):
            if  self.KLINE_SHORT_TERM_LIST_ALL[i] != 0 :
                if    last_x!=- 1 and last_y!=-1                              and                                                \
                    ((last_v == 1 and self.KLINE_SHORT_TERM_LIST_ALL[i] == 2) and self.KLINE_LOW[last_x]<self.KLINE_HIGH[i]) or  \
                    ((last_v == 2 and self.KLINE_SHORT_TERM_LIST_ALL[i] == 1) and self.KLINE_HIGH[last_x]>self.KLINE_LOW[i]) or  \
                    ((last_v == 1 and self.KLINE_SHORT_TERM_LIST_ALL[i] == 1))                                                or  \
                    ((last_v == 2 and self.KLINE_SHORT_TERM_LIST_ALL[i] == 2))                                                    :
                        curve = pg.PlotCurveItem(x=np.array([last_x,i]),y=np.array([last_y,self.datas[i]['low'] if self.KLINE_SHORT_TERM_LIST_ALL[i]==1 else self.datas[i]['high']]),name='duo',pen=({'color': "FF00FF", 'width': 1}))                 
                        self.pwKL.addItem(curve)          
                        self.KLINE_SHORT_TERM_LIST_ALL_curves.append(curve)    
                last_x =i
                if  self.KLINE_SHORT_TERM_LIST_ALL[i]  ==1 :  
                    last_y=self.datas[i]['low']     
                elif self.KLINE_SHORT_TERM_LIST_ALL[i] ==2 :  
                    last_y=self.datas[i]['high']   
                last_v=self.KLINE_SHORT_TERM_LIST_ALL[i]                
    #---------------------------------------------------------------------- 
开发者ID:rjj510,项目名称:uiKLine,代码行数:41,代码来源:uiKLine.py

示例7: plotIndex_FIRST

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotIndex_FIRST (self):
        """画指标"""
        # 检查是否有数据
        if len(self.KLINE_SHORT_TERM_LIST_FIRST)==0 :
            self.refresh()   
            return
        for arrow in self.KLINE_SHORT_TERM_LIST_FIRST_arrows:
            self.pwKL.removeItem(arrow)     
        for curves in self.KLINE_SHORT_TERM_LIST_FIRST_curves:
            self.pwKL.removeItem(curves)              
        for i in range(len(self.KLINE_SHORT_TERM_LIST_FIRST)):
            if  self.KLINE_SHORT_TERM_LIST_FIRST[i] == 1:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']), size=7,tipAngle=55,tailLen=3,tailWidth=4, angle=90, brush=(225, 255, 0),pen=({'color': "FFFF00", 'width': 1}))   
                self.pwKL.addItem(arrow)
                self.KLINE_SHORT_TERM_LIST_FIRST_arrows.append(arrow)    
            if  self.KLINE_SHORT_TERM_LIST_FIRST[i] == 2:  
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']),size=7,tipAngle=55,tailLen=3,tailWidth=4 ,angle=-90, brush=(225, 255, 0),pen=({'color': "FFFF00", 'width': 1}))
                self.pwKL.addItem(arrow)
                self.KLINE_SHORT_TERM_LIST_FIRST_arrows.append(arrow)   
        last_x=-1  #上一个x
        last_y=-1  #上一个y   
        last_v=-1
        for i in range(len(self.KLINE_SHORT_TERM_LIST_FIRST)):
            if  self.KLINE_SHORT_TERM_LIST_FIRST[i] != 0 :
                if    last_x!=-1 and last_y!=-1 and  last_v!=self.KLINE_SHORT_TERM_LIST_FIRST[i] and\
                    ((last_v == 1 and self.KLINE_SHORT_TERM_LIST_FIRST[i] == 2) and self.KLINE_LOW[last_x]<self.KLINE_HIGH[i]) or\
                    ((last_v == 2 and self.KLINE_SHORT_TERM_LIST_FIRST[i] == 1) and self.KLINE_HIGH[last_x]>self.KLINE_LOW[i]):
                        curve = pg.PlotCurveItem(x=np.array([last_x,i]),y=np.array([last_y,self.datas[i]['low'] if self.KLINE_SHORT_TERM_LIST_FIRST[i]==1 else self.datas[i]['high']]),name='duo',pen=({'color': "FFFF00", 'width': 1}))                 
                        self.pwKL.addItem(curve)          
                        self.KLINE_SHORT_TERM_LIST_FIRST_curves.append(curve)    
                last_x =i
                if  self.KLINE_SHORT_TERM_LIST_FIRST[i]  ==1 :  
                    last_y=self.datas[i]['low']     
                elif self.KLINE_SHORT_TERM_LIST_FIRST[i] ==2 :  
                    last_y=self.datas[i]['high']   
                last_v=self.KLINE_SHORT_TERM_LIST_FIRST[i]
    #---------------------------------------------------------------------- 
开发者ID:rjj510,项目名称:uiKLine,代码行数:39,代码来源:uiKLine.py

示例8: plot_WAIBAORI

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plot_WAIBAORI(self):
        """画外包日箭头"""
        # 检查是否有数据
        if len(self.KLINE_WAIBAORI)==0 :
            self.refresh()            
            return
        for arrow in self.KLINE_WAI_BAO_RI_arrows:
            self.pwKL.removeItem(arrow)    
        for i in range(len(self.KLINE_WAIBAORI)):
            if  self.KLINE_WAIBAORI[i] == 1:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']-100), size=7,tipAngle=55,tailLen=3,tailWidth=4, angle=90, brush=(255, 255, 0),pen=({'color': "FF0000", 'width': 1}))   
                self.pwKL.addItem(arrow)
                self.KLINE_WAI_BAO_RI_arrows.append(arrow)     
    #---------------------------------------------------------------------- 
开发者ID:rjj510,项目名称:uiKLine,代码行数:16,代码来源:uiKLine.py

示例9: plot_GJR_SELL

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plot_GJR_SELL(self):
        """画攻击日卖出箭头"""
        # 检查是否有数据
        if len(self.KLINE_GJR_SELL)==0 :
            self.refresh()            
            return
        for arrow in self.KLINE_GJR_SELL_arrows:
            self.pwKL.removeItem(arrow)    
        for i in range(len(self.KLINE_GJR_SELL)):
            if  self.KLINE_GJR_SELL[i] == 1:
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']+50), size=7,tipAngle=55,tailLen=3,tailWidth=4, angle=-90, brush=("C0FF3E"),pen=({'color': "C0FF3E", 'width': 1}))   
                self.pwKL.addItem(arrow)
                self.KLINE_GJR_SELL_arrows.append(arrow)    
    #---------------------------------------------------------------------- 
开发者ID:rjj510,项目名称:uiKLine,代码行数:16,代码来源:uiKLine.py

示例10: __init__

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def __init__(self, model):
        pg.GraphicsWidget.__init__(self)
        pg.GraphicsWidgetAnchor.__init__(self)

        self.model = model

        self.arrow = pg.ArrowItem(
            parent=self,
            angle=0.,
            brush=(0, 0, 0, 180),
            pen=(255, 255, 255),
            pxMode=True)

        self.label = pg.LabelItem(
            'Towards Sat.',
            justify='right', size='8pt',
            parent=self)
        self.label.anchor(
            itemPos=(1., -1.),
            parentPos=(1., 0.))
        # self.label.setBrush(pg.mkBrush(255, 255, 255, 180))
        # self.label.setFont(QtGui.QFont(
        #     "Helvetica", weight=QtGui.QFont.DemiBold))

        self.orientArrow()
        self.model.sigSceneChanged.connect(self.orientArrow)
        self.setFlag(self.ItemIgnoresTransformations) 
开发者ID:pyrocko,项目名称:kite,代码行数:29,代码来源:base.py

示例11: initplotKline

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def initplotKline(self):
        """Kline"""
        s = self.data.index  #横坐标值
        print "numbers of KLine: ", len(s)
        xdict = dict(enumerate(s))
        self.__axisTime = MyStringAxis(xdict, orientation='bottom')
        self.pw2 = pg.PlotWidget(axisItems={'bottom': self.__axisTime})  # K线图
        pw2x = self.pw2.getAxis('bottom')
        pw2x.setGrid(150)  # 设置默认x轴网格
        pw2y = self.pw2.getAxis('left')
        pw2y.setGrid(150)  # 设置默认y轴网格
        self.vbl_1.addWidget(self.pw2)
        self.pw2.setMinimumWidth(1500)
        self.pw2.setMaximumWidth(1800)
        self.pw2.setDownsampling(mode='peak')
        self.pw2.setClipToView(True)

        self.curve5 = self.pw2.plot()
        self.curve6 = self.pw2.plot()

        self.candle = self.CandlestickItem(self.listBar)
        self.pw2.addItem(self.candle)
        ## Draw an arrowhead next to the text box
        # self.arrow = pg.ArrowItem()
        # self.pw2.addItem(self.arrow)


    # 从数据库读取一分钟数据画分钟线 
开发者ID:sunshinelover,项目名称:chanlun,代码行数:30,代码来源:uiChanlunWidget.py

示例12: plotMark

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def plotMark(self):
        """显示开平仓信号"""
        # 检查是否有数据
        if len(self.datas)==0:
            return
        for arrow in self.arrows:
            self.pwKL.removeItem(arrow)
        for curve in self.curves:
            self.pwKL.removeItem(curve)
        # 画买卖信号
        lastbk_x=-1  #上一个买开的x
        lastbk_y=-1  #上一个买开的y
        lastsk_x=-1  #上一个卖开的x
        lastsk_y=-1  #上一个卖开的y        
        for i in range(len(self.listSig_deal_DIRECTION)):
            # 无信号
            if   cmp(self.listSig_deal_DIRECTION[i] , '-')== 0 or cmp(self.listSig_deal_OFFSET[i] , '-') == 0:
                continue
            # 买开信号
            elif cmp(self.listSig_deal_DIRECTION[i] , '多')==0 and cmp(self.listSig_deal_OFFSET[i] , '开仓')==0 :
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']), size=7,tipAngle=55,tailLen=3,tailWidth=4, angle=90, brush=(255, 0, 0),pen=({'color': "r", 'width': 1}))
                lastbk_x = i
                lastbk_y = self.datas[i]['close']
            # 卖平信号
            elif cmp(self.listSig_deal_DIRECTION[i] , '空')==0  and cmp(self.listSig_deal_OFFSET[i] , '平仓')==0 :
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']),size=7,tipAngle=55,tailLen=3,tailWidth=4 ,angle=-90, brush=(0, 0, 0),pen=({'color': "g", 'width': 1}))
                if lastbk_x !=-1:
                    curve = pg.PlotCurveItem(x=np.array([lastbk_x,i]),y=np.array([lastbk_y,self.datas[i][self.SP_signal]]),name='duo',pen=({'color': "r", 'width': 3})) 
                    self.pwKL.addItem(curve)          
                    self.curves.append(curve)  
                    lastbk_x = -1
            # 卖开信号
            elif cmp(self.listSig_deal_DIRECTION[i] , '空')==0  and cmp(self.listSig_deal_OFFSET[i] , '开仓')==0 :
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['high']),size=7,tipAngle=55,tailLen=3,tailWidth=4,angle=-90, brush=(0, 255, 0),pen=({'color': "g", 'width': 1}))
                lastsk_x = i
                lastsk_y = self.datas[i]['close']                
            # 买平信号
            elif cmp(self.listSig_deal_DIRECTION[i] , '多')==0  and cmp(self.listSig_deal_OFFSET[i] , '平仓')==0 :
                arrow = pg.ArrowItem(pos=(i, self.datas[i]['low']),size=7,tipAngle=55,tailLen=3,tailWidth=4 ,angle=90, brush=(0, 0, 0),pen=({'color': "r", 'width': 1}))
                if lastsk_x !=-1:
                    curve = pg.PlotCurveItem(x=np.array([lastsk_x,i]),y=np.array([lastsk_y,self.datas[i][self.BP_signal]]),pen=({'color': "g", 'width': 3})) 
                    self.pwKL.addItem(curve)          
                    self.curves.append(curve)  
                    lastsk_x = -1
            self.pwKL.addItem(arrow)
            self.arrows.append(arrow)                
    #---------------------------------------------------------------------- 
开发者ID:rjj510,项目名称:uiKLine,代码行数:49,代码来源:uiKLine.py

示例13: add_signal

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def add_signal(self, t_value, direction, offset, price, volume):
        """
        增加信号
        :param t_value:
        :param direction:
        :param offset:
        :param price:
        :param volume:
        :return:
        """
        # 找到信号时间最贴近的bar x轴
        x = self.axisTime.get_x_by_time(t_value)
        need_plot_arrow = False

        # 修正一下 信号时间,改为bar的时间
        if x not in self.x_t_trade_map:
            bar_time = self.axisTime.xdict.get(x, t_value)
        else:
            # 如果存在映射,就更新
            bar_time = self.x_t_trade_map[x]

        trade_node = self.t_trade_dict.get(bar_time, None)
        if trade_node is None:
            # 当前时间无交易信号
            self.t_trade_dict[bar_time] = {'x': x, 'signals': [{'direction': direction, 'offset':offset,'price': price,'volume': volume}]}
            self.x_t_trade_map[x] = bar_time
            need_plot_arrow = True
        else:
            #match_signals = [t for t in trade_node['signals'] if t['direction'] == direction and t['offset'] == offset]
            #if len(match_signals) == 0:
            need_plot_arrow = True
            trade_node['signals'].append({'direction': direction, 'offset':offset, 'price': price, 'volume': volume})
            self.x_t_trade_map[x] = bar_time

        # 需要显示图标
        if need_plot_arrow:
            arrow = None
            # 多信号
            if direction == DIRECTION_LONG:
                if offset == OFFSET_OPEN:
                    # buy
                    arrow = pg.ArrowItem(pos=(x, price), angle=135, brush=None, pen={'color':'r','width':1}, tipAngle=30, baseAngle=20, tailLen=10, tailWidth=2)
                else:
                    # cover
                    arrow = pg.ArrowItem(pos=(x, price), angle=0, brush=(255, 0, 0),pen=None, headLen=20, headWidth=20, tailLen=10, tailWidth=2)
            # 空信号
            elif direction == DIRECTION_SHORT:
                if offset == OFFSET_CLOSE:
                    # sell
                    arrow = pg.ArrowItem(pos=(x, price), angle=0, brush=(0, 255, 0),pen=None ,headLen=20, headWidth=20, tailLen=10, tailWidth=2)
                else:
                    # short
                    arrow = pg.ArrowItem(pos=(x, price), angle=-135, brush=None, pen={'color':'g','width':1},tipAngle=30, baseAngle=20, tailLen=10, tailWidth=2)
            if arrow:
                self.pi_main.addItem(arrow)
                self.list_trade_arrow.append(arrow) 
开发者ID:birforce,项目名称:vnpy_crypto,代码行数:58,代码来源:uiKLine.py

示例14: add_signals

# 需要导入模块: import pyqtgraph [as 别名]
# 或者: from pyqtgraph import ArrowItem [as 别名]
def add_signals(self):
        self.signals_group_text = QtGui.QGraphicsItemGroup()
        self.signals_group_arrow = QtGui.QGraphicsItemGroup()
        self.signals_text_items = np.empty(len(Quotes), dtype=object)

        for p in Portfolio.positions:
            x, price = p.id_bar_open, p.open_price
            if p.type == Order.BUY:
                y = Quotes[x].low * 0.99
                pg.ArrowItem(
                    parent=self.signals_group_arrow,
                    pos=(x, y),
                    pen=self.long_pen,
                    brush=self.long_brush,
                    angle=90,
                    headLen=12,
                    tipAngle=50,
                )
                text_sig = CenteredTextItem(
                    parent=self.signals_group_text,
                    pos=(x, y),
                    pen=self.long_pen,
                    brush=self.long_brush,
                    text=('Buy at {:.%df}' % self.digits).format(price),
                    valign=QtCore.Qt.AlignBottom,
                )
                text_sig.hide()
            else:
                y = Quotes[x].high * 1.01
                pg.ArrowItem(
                    parent=self.signals_group_arrow,
                    pos=(x, y),
                    pen=self.short_pen,
                    brush=self.short_brush,
                    angle=-90,
                    headLen=12,
                    tipAngle=50,
                )
                text_sig = CenteredTextItem(
                    parent=self.signals_group_text,
                    pos=(x, y),
                    pen=self.short_pen,
                    brush=self.short_brush,
                    text=('Sell at {:.%df}' % self.digits).format(price),
                    valign=QtCore.Qt.AlignTop,
                )
                text_sig.hide()

            self.signals_text_items[x] = text_sig

        self.chart.addItem(self.signals_group_arrow)
        self.chart.addItem(self.signals_group_text)
        self.signals_visible = True 
开发者ID:constverum,项目名称:Quantdom,代码行数:55,代码来源:charts.py


注:本文中的pyqtgraph.ArrowItem方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。