量化交易系统开发(源码制作)丨量化炒币机器人系统开发网站设计

量化炒币机器人开发、量化交易平台系统开发软件设计:

自动交易机器人主要有三种类型:

1、行情监控:最简单的工作是收集和分析信息,而无需人员盯盘,从海量即时数据中挖掘商机。

2、交易决策:这种类型的程序被认为更复杂,通过给出可能交易的声音信号来收集要处理的信息。不需要人工主观判断判断,为交易提供决策支持,以前这只有专业交易者才能做的到。

3、自动交易:该机器人的功能类似于简单的EA功能,但是您有权处理。根据决策信号自动执行交易

做量化交易的好处是什么?

1能够避免主观臆断

通过使用程序实现自己的想法成为可量化的战略,通过只用计算机计算战略并进行买卖,将自己从决策的最前沿引出。

2能够验证交易策略是否合理

透过将交易思想量化,使用计算机程序实现出来,我们可以十分便于的进行历史回测,所以一切均有统计数字,绝不会由于主观的偏爱因而漏掉任何样本。这让我们能够越来越明确的认识到,自己策略是否合理。

3能够确保交易的执行

我们经常遇到这样的情况,行情超出了我们的心理期望,按照战略,应该操作,但是我们决不出手。

无论是止损仍然趁势加仓,均是要逆人性的,很多时候我们一犹豫,机会便错失了。因而量化交易绝不存在这个情况,机器自计算到执行,几十毫秒便能完成,机器亦绝不会有任何心理负担。

4能够让我们收获权利

量化交易,特别是中低频量化交易,是绝不需要监督的,也就是说,你有权利时间,但是这个权利的代价非常低,必须自主地控制自己的欲望。每天均必需要投入大量精力进行研究,所以绝不分工作日与周末。

  def process_trade(bot, update, user_data):
        query = update.callback_query

        if query.data == CONFIRM:
            trade = TelegramBot.build_trade(user_data)
            self._execute_trade(trade)
            update.callback_query.message.reply_text(f'Scheduled: {trade}')
        else:
            show_help(bot, update)

        return END_CONVERSATION

    def handle_error(bot, update, error):
        logging.warning('Update "%s" caused error "%s"', update, error)
        update.message.reply_text(f'Unexpected error:\n{error}')

    # configure our handlers
    def build_conversation_handler():
        entry_handler = CommandHandler('trade', filters=self.private_filter, callback=show_options)
        conversation_handler = ConversationHandler(
            entry_points=[entry_handler],
            fallbacks=[entry_handler],
            states={
                TRADE_SELECT: [CallbackQueryHandler(process_trade_selection, pass_user_data=True)],
                CANCEL_ORD: [CallbackQueryHandler(cancel_order)],
                PROCESS_ORD_CANCEL: [MessageHandler(filters=Filters.text, callback=process_order_cancel, pass_user_data=True)],
                COIN_NAME: [MessageHandler(filters=Filters.text, callback=process_coin_name, pass_user_data=True)],
                AMOUNT: [MessageHandler(Filters.text, callback=process_amount, pass_user_data=True)],
                PERCENT_CHANGE: [MessageHandler(Filters.text, callback=process_percent, pass_user_data=True)],
                PRICE: [MessageHandler(Filters.text, callback=process_price, pass_user_data=True)],
                PROCESS_TRADE: [CallbackQueryHandler(process_trade, pass_user_data=True)],
            },
        )
        return conversation_handler

    self.dispatcher.add_handler(CommandHandler('start', filters=self.private_filter, callback=show_help))
    self.dispatcher.add_handler(build_conversation_handler())
    self.dispatcher.add_error_handler(handle_error)

def start_bot(self):
self.updater.start_polling()

@run_async
def _execute_trade(self, trade):
    loop = asyncio.new_event_loop()
    task = loop.create_task(self.trade_executor.execute_trade(trade))
    loop.run_until_complete(task)

@staticmethod
def build_trade(user_data):
    current_trade = user_data[TRADE_SELECT]
    price = user_data[PRICE]
    coin_name = user_data[COIN_NAME]
    amount = user_data[AMOUNT]
    percent_change = user_data[PERCENT_CHANGE]

    if current_trade == LONG_TRADE:
        return LongTrade(price, coin_name, amount, percent_change)
    elif current_trade == SHORT_TRADE:
        return ShortTrade(price, coin_name, amount, percent_change)
    else:
        raise NotImplementedError

猜你喜欢

转载自blog.csdn.net/yy625019/article/details/113729559