Exemplo n.º 1
0
    def __init__(self):
        QDialog.__init__(self)

        # set up ui
        self.__ui = Ui_Preferences()
        self.__ui.setupUi(self)

        # improve ui on mac
        if utilities.platform_is_mac():
            self.__adjust_for_mac()

        # connect ui signals to logic
        self.__ui.lineEditKey.textChanged.connect(
            self.__slot_validate_credentials)
        self.__ui.lineEditSecret.textChanged.connect(
            self.__slot_validate_credentials)

        # initialize config parser
        self.configparser = RawConfigParser()

        # __load or (if non-existent) create config file
        if path.isfile(self.__FILENAME):
            self.__load()
        else:
            self.__init_with_defaults()
            self.__save()

        self.set_fiat_currencies([])
Exemplo n.º 2
0
    def __init__(self, preferences, market):

        QMainWindow.__init__(self)

        self.preferences = preferences
        self.market = market

        # set up main window
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # improve ui on mac
        if utilities.platform_is_mac():
            self.adjust_for_mac()

        # connect market signals to our logic
        self.market.signal_log.connect(self.slot_log)
        self.market.signal_wallet.connect(self.display_wallet)
        self.market.signal_orderlag.connect(self.display_orderlag)
        self.market.signal_userorder.connect(self.display_userorder)

        # connect ui signals to our logic
        self.ui.pushButtonGo.released.connect(self.execute_trade)
        self.ui.tableAsk.clicked.connect(self.slot_update_price_from_asks)
        self.ui.tableBid.clicked.connect(self.slot_update_price_from_bids)
        self.ui.pushButtonCancel.released.connect(self.cancel_order)
        self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected)
        self.ui.pushButtonWalletA.released.connect(self.set_trade_size_from_wallet)
        self.ui.pushButtonWalletB.released.connect(self.set_trade_total_from_wallet)
        self.ui.pushButtonSize.released.connect(self.recalculate_size)
        self.ui.pushButtonPrice.released.connect(self.update_price_best)
        self.ui.pushButtonTotal.released.connect(self.recalculate_total)
        self.ui.actionPreferences_2.triggered.connect(self.show_preferences)

        # initialize and connect bid / ask table models
        self.modelAsk = ModelAsk(self, self.market, preferences)
        self.ui.tableAsk.setModel(self.modelAsk)
        self.modelBid = ModelBid(self, self.market, preferences)
        self.ui.tableBid.setModel(self.modelBid)

        # associate log channels with their check boxes
        self.logchannels = [
            [self.ui.checkBoxLogTicker, "tick"],
            [self.ui.checkBoxLogTrade, "TRADE"],
            [self.ui.checkBoxLogDepth, "depth"],
        ]

        # resets dynamic ui elements
        self.reset()

        # activate market
        self.market.start()

        # show main window
        self.adjustSize()
        self.show()
        self.raise_()
Exemplo n.º 3
0
    def __init__(self):
        QDialog.__init__(self)

        # set up ui
        self.__ui = Ui_Preferences()
        self.__ui.setupUi(self)

        # improve ui on mac
        if utilities.platform_is_mac():
            self.__adjust_for_mac()

        # connect ui signals to logic
        self.__ui.lineEditKey.textChanged.connect(
            self.__slot_validate_credentials)
        self.__ui.lineEditSecret.textChanged.connect(
            self.__slot_validate_credentials)

        # initialize config parser
        self.__configparser = RawConfigParser({
            'grouping': '0.0',
            'currency_{}'.format(Preferences.CURRENCY_INDEX_BASE): 'BTC',
            'currency_{}'.format(Preferences.CURRENCY_INDEX_QUOTE): 'USD',
            'orders_column_{}'.format(Preferences.ORDERS_COLUMN_PRICE): 'True',
            'orders_column_{}'.format(Preferences.ORDERS_COLUMN_SIZE): 'True',
            'orders_column_{}'.format(Preferences.ORDERS_COLUMN_QUOTE): 'False', # @IgnorePep8
            'orders_column_{}'.format(Preferences.ORDERS_COLUMN_TOTAL_SIZE): 'True',
            'orders_column_{}'.format(Preferences.ORDERS_COLUMN_TOTAL_QUOTE): 'False', # @IgnorePep8
            'key': '',
            'secret': '',
            'proposed_pips': '0'
        })

        # load config file (if exists)
        if path.isfile(self.__FILENAME):
            self.__load()
        else:
            self.__configparser.add_section(self.__SECTION_GLOBAL)
            self.__save()

        self.set_fiat_currencies([])
Exemplo n.º 4
0
    def __init__(self):
        QDialog.__init__(self)

        # set up ui
        self.__ui = Ui_Preferences()
        self.__ui.setupUi(self)
      
        # improve ui on mac
        if utilities.platform_is_mac():
            self.__adjust_for_mac()

        # connect ui signals to logic
        self.__ui.lineEditPassword.textChanged.connect(
            self.__slot_password_changed)
        self.__ui.lineEditKey.textChanged.connect(
            self.__slot_validate_key)
        self.__ui.lineEditSecret.textChanged.connect(
            self.__slot_validate_secret)
        self.__ui.buttonBox.button(QDialogButtonBox.Apply).released.connect(
            self.__slot_validate_credentials)
        
        self.do_configfile()
Exemplo n.º 5
0
    def __init__(self, preferences, market):

        QMainWindow.__init__(self)

        self.preferences = preferences
        self.market = market

        # set up main window
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # improve ui on mac
        if utilities.platform_is_mac():
            self.adjust_for_mac()

        # connect market signals to our logic
        self.market.signal_log.connect(self.slot_log)
        self.market.signal_wallet.connect(self.display_wallet)
        self.market.signal_orderlag.connect(self.display_orderlag)
        self.market.signal_userorder.connect(self.display_userorder)
        self.market.signal_ticker.connect(self.update_titlebar)

        # connect ui signals to our logic
        self.ui.pushButtonGo.released.connect(self.execute_trade)
        self.ui.tableAsk.clicked.connect(self.update_edit_from_ask_book)
        self.ui.tableBid.clicked.connect(self.update_edit_from_bid_book)
        self.ui.pushButtonCancel.released.connect(self.cancel_order)
        #enable clicking of OrderID links in the Trading textBrowser
        self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected)
        self.ui.pushButtonWalletA.released.connect(
            self.set_trade_size_from_wallet)
        self.ui.pushButtonWalletB.released.connect(
            self.set_trade_total_from_wallet)
        self.ui.pushButtonSize.released.connect(self.recalculate_size)
        self.ui.pushButtonPrice.released.connect(self.update_edit_on_button)
        self.ui.pushButtonTotal.released.connect(self.recalculate_total)
        self.ui.actionPreferences_2.triggered.connect(self.show_preferences)

        # associate log channels with their check boxes
        self.logchannels = [
            [self.ui.checkBoxLogTicker, 'tick'],
            [self.ui.checkBoxLogTrade, 'trade'],
            [self.ui.checkBoxLogDepth, 'depth'],
        ]
        #connect the channel checkboxes to the handler that persists the
        #settings to the config file
        for x in self.logchannels:
            x[0].clicked.connect(self.set_ignorechan)
        #read the config file and re-apply previous settings
        self.get_ignorechan()

        # activate market
        self.market.start()

        # initialize and connect bid / ask table models
        self.modelAsk = ModelAsk(self, self.market, preferences)
        self.ui.tableAsk.setModel(self.modelAsk)
        self.modelBid = ModelBid(self, self.market, preferences)
        self.ui.tableBid.setModel(self.modelBid)

        #User Orders TAB
        self.modelOwns = ModelOwns(self, self.market, preferences)
        self.ui.tableUserOrders.setModel(self.modelOwns)
        self.ui.tableUserOrders.resizeColumnsToContents()
        self.ui.tableUserOrders.clicked.connect(self.userorder_selected)

        #create the stop orders TAB.
        self.modelStops = ModelStops(self, self.market)
        self.ui.tableStopOrders.setModel(self.modelStops)
        self.ui.tableStopOrders.resizeColumnsToContents()

        #add stop orders into the stop database
        self.ui.pushButton1StopAdd.released.connect(self.add_stopOrder)
        #on click, put Stop Order ID into the cancel button box.
        self.ui.tableStopOrders.clicked.connect(self.stopOrder_selected)
        #remove a stop order
        self.ui.pushButtonStopRemove.released.connect(self.remove_stopOrder)
        #activate the stop loss bot with the checkbox.
        self.ui.checkBoxActivateStopLossBot.clicked.connect(
            self.stopbot_act_deact)

        #for stuff in the Ticker TAB
        self.ui.pushButtonRefreshTicker.released.connect(
            self.refresh_and_display_ticker)
        self.ui.checkBoxAutoRefreshTicker.clicked.connect(
            self.autorefresh_ticker_selected)

        #populate the ticker tab fields.
        self.display_ticker()

        # show main window
        self.adjustSize()
        self.show()
        self.raise_()
Exemplo n.º 6
0
    def __init__(self, preferences, market):

        QMainWindow.__init__(self)

        self.preferences = preferences
        self.market = market

        # set up main window
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # improve ui on mac
        if utilities.platform_is_mac():
            self.adjust_for_mac()

        # connect market signals to our logic
        self.market.signal_log.connect(self.slot_log)
        self.market.signal_wallet.connect(self.display_wallet)
        self.market.signal_orderlag.connect(self.display_orderlag)
        self.market.signal_userorder.connect(self.display_userorder)
        self.market.signal_ticker.connect(self.update_titlebar)

        # connect ui signals to our logic
        self.ui.pushButtonGo.released.connect(self.execute_trade)
        self.ui.tableAsk.clicked.connect(self.update_edit_from_ask_book)
        self.ui.tableBid.clicked.connect(self.update_edit_from_bid_book)
        self.ui.pushButtonCancel.released.connect(self.cancel_order)       
        #enable clicking of OrderID links in the Trading textBrowser
        self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected)
        self.ui.pushButtonWalletA.released.connect(self.set_trade_size_from_wallet)
        self.ui.pushButtonWalletB.released.connect(self.set_trade_total_from_wallet)
        self.ui.pushButtonSize.released.connect(self.recalculate_size)
        self.ui.pushButtonPrice.released.connect(self.update_edit_on_button)
        self.ui.pushButtonTotal.released.connect(self.recalculate_total)
        self.ui.actionPreferences_2.triggered.connect(self.show_preferences)

        # associate log channels with their check boxes
        self.logchannels = [
            [self.ui.checkBoxLogTicker, 'tick'],
            [self.ui.checkBoxLogTrade, 'trade'],
            [self.ui.checkBoxLogDepth, 'depth'],
        ]
        #connect the channel checkboxes to the handler that persists the
        #settings to the config file
        for x in self.logchannels:
            x[0].clicked.connect(self.set_ignorechan)
        #read the config file and re-apply previous settings
        self.get_ignorechan()
        
        # activate market
        self.market.start()
        
        # initialize and connect bid / ask table models
        self.modelAsk = ModelAsk(self, self.market, preferences)
        self.ui.tableAsk.setModel(self.modelAsk)
        self.modelBid = ModelBid(self, self.market, preferences)
        self.ui.tableBid.setModel(self.modelBid)

        #User Orders TAB
        self.modelOwns = ModelOwns(self, self.market, preferences)
        self.ui.tableUserOrders.setModel(self.modelOwns)
        self.ui.tableUserOrders.resizeColumnsToContents()
        self.ui.tableUserOrders.clicked.connect(self.userorder_selected)

        #create the stop orders TAB.
        self.modelStops = ModelStops(self, self.market)
        self.ui.tableStopOrders.setModel(self.modelStops)
        self.ui.tableStopOrders.resizeColumnsToContents()

        #add stop orders into the stop database
        self.ui.pushButton1StopAdd.released.connect(self.add_stopOrder)
        #on click, put Stop Order ID into the cancel button box.
        self.ui.tableStopOrders.clicked.connect(self.stopOrder_selected)
        #remove a stop order
        self.ui.pushButtonStopRemove.released.connect(self.remove_stopOrder)
        #activate the stop loss bot with the checkbox.
        self.ui.checkBoxActivateStopLossBot.clicked.connect(self.stopbot_act_deact)
        
        #for stuff in the Ticker TAB
        self.ui.pushButtonRefreshTicker.released.connect(self.refresh_and_display_ticker)
        self.ui.checkBoxAutoRefreshTicker.clicked.connect(self.autorefresh_ticker_selected)

        #populate the ticker tab fields.
        self.display_ticker()
        
        # show main window
        self.adjustSize()
        self.show()
        self.raise_()
Exemplo n.º 7
0
    def __init__(self, preferences, market):

        QMainWindow.__init__(self)

        self.preferences = preferences
        self.market = market

        # set up main window
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # improve ui on mac
        if utilities.platform_is_mac():
            self.adjust_for_mac()

        # connect market signals to our logic
        self.market.signal_log.connect(self.slot_log)
        self.market.signal_wallet.connect(self.display_wallet)
        self.market.signal_orderlag.connect(self.display_orderlag)
        self.market.signal_userorder.connect(self.display_userorder)
        self.market.signal_ticker.connect(self.update_ticker)

        # connect ui signals to our logic
        self.ui.pushButtonGo.released.connect(self.execute_trade)
        self.ui.tableAsk.clicked.connect(self.slot_update_price_from_asks)
        self.ui.tableBid.clicked.connect(self.slot_update_price_from_bids)
        self.ui.pushButtonCancel.released.connect(self.cancel_order)
        self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected)
        self.ui.pushButtonSize.released.connect(self.recalculate_size)
        self.ui.pushButtonPrice.released.connect(self.update_price_best)
        self.ui.pushButtonTotal.released.connect(self.recalculate_total)
        self.ui.actionPreferences_2.triggered.connect(self.show_preferences)

        # associate log channels with their check boxes
        self.logchannels = [
            [self.ui.checkBoxLogTicker, "tick"],
            [self.ui.checkBoxLogTrade, "TRADE"],
            [self.ui.checkBoxLogDepth, "depth"],
        ]

        # set correct resizing for the bid and ask tables
        self.ui.tableAsk.horizontalHeader().setResizeMode(QHeaderView.Stretch)
        self.ui.tableBid.horizontalHeader().setResizeMode(QHeaderView.Stretch)

        # set up info table
        self.info = Info(self, self.preferences, self.ui.tableInfo.clicked)
        self.ui.tableInfo.setModel(self.info)
        self.ui.tableInfo.horizontalHeader().setResizeMode(QHeaderView.Stretch)

        # connect to signals from info table
        self.info.signal_base_balance_clicked.connect(self.set_trade_size_from_wallet)
        self.info.signal_quote_balance_clicked.connect(self.set_trade_total_from_wallet)

        # initializes dynamic ui elements
        self.init()

        # activate market
        self.market.start()

        # show main window
        self.adjustSize()
        self.show()
        self.raise_()