量化炒币机器人开发、量化交易平台系统开发软件设计:
自动交易机器人主要有三种类型:
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