币宽量化机器人系统开发详细内容:
什么是策略?
策略,可以实现目标的方案集合;在证券交易中,策略是指当预先设定的事件或信号发生时,就采取相应的交易动作。
什么是量化策略?
量化策略是指使用计算机作为工具,通过一套固定的逻辑来分析、判断和决策。
量化策略既可以自动执行,也可以人工执行。
一个完整的量化策略包含哪些内容?
一个完整的策略需要包含输入、策略处理逻辑、输出;策略处理逻辑需要考虑选股、择时、仓位管理和止盈止损等因素。
async def _wait_order_complete(self,order_id):
status=‘open’
order=None
while status is’open’:
await asyncio.sleep(self.check_timeout)
order=self.exchange.fetch_order(order_id)
status=order[‘status’]
logging.info(f’Finished order{order_id}with{status}status’)
#do not proceed further if we canceled order
if status==‘canceled’:
raise ExchangeError(‘Trade has been canceled’)
return order
接下来将创建Telegram机器人,这是最有难度的部分,我们将使其拥有以下指令:
1、列出/取消有效订单
2、显示可用余额
3、建立做多或做空交易
我们还需要对机器人做一些安全限制,使其仅对你的消息做出响应,而其他人则无法使用你的帐户进行交易。
主要是进行做多和做空交易的部分:
1、选择做空或者做多
2、输入数字货币品种
3、输入交易数量
4、所占百分比
5、每个价格
6、显示确认信息
7、显示最终交易信息
我们来创建telegrambot.py并添加以下常量:
SELECTION=“selection”
SHORT_TRADE=“short_trade”
LONG_TRADE=“long_trade”
OPEN_ORDERS=“open_orders”
FREE_BALANCE=“free_balance”
CANCEL_ORD=“cancel_order”
PROCESS_ORD_CANCEL=“process_ord_cancel”
COIN_NAME=“coin_select”
PERCENT_CHANGE=“percent_select”
AMOUNT=“amount”
PRICE=“price”
PROCESS_TRADE=“process_trade”
CONFIRM=“confirm”
CANCEL=“cancel”
END_CONVERSATION=ConversationHandler.END
我们可以通过扩展BaseFilter来实现对user_id的限制。这样机器人必须接受被允许用户的token、id才能执行操作。
class TelegramBot:
class PrivateUserFiler(BaseFilter):
def init(self,user_id):
self.user_id=int(user_id)
def filter(self,message):
return message.from_user.id==self.user_id
def init(self,token:str,allowed_user_id,trade_executor:TradeExecutor):
self.updater=Updater(token=token)
self.dispatcher=self.updater.dispatcher
self.trade_executor=trade_executor
self.exchange=self.trade_executor.exchange
self.private_filter=self.PrivateUserFiler(allowed_user_id)
self._prepare()