答案很简单——特斯拉的 Techno King 有过影响加密市场的历史,每当他发布推文时,几乎可以预料到当他拿起电话并开始表达他对加密市场的看法时,市场会发生变化。推特上的区块链技术。
通过创建一个加密交易机器人,每次特斯拉老板发推特时都会购买比特币,你可以放心,你将在火箭上获得一个 VIP 座位,火箭将弹弓穿过月球并直接前往火星,在那里埃隆由于寒冷的天气和干燥的气候,大部分时间都在夏季度过。
快速回答是“不确定”——因为之前没有人测试过这种策略。 更长的答案可能是——只要我们在谈论比特币。 从统计上讲,无论您何时购买比特币,您都最有可能获利(不包括撰写本文时的近期历史最高点)。
因此,如果不出意外,您至少会在 Elon 的帮助下为您的 BTC HODLing 策略增添趣味。 本文不会详细分析该策略是否真的有效。 这篇文章是关于构建它的乐趣,但它确实有力地提醒了我们有多少资源可供我们使用,并且您可以构建几乎任何您能想到的加密交易机器人。
您还可以查看和使用代码,以便对其进行测试或改进。
本文关注的是比特币交易机器人的实际技术构建,以及如何在安全的测试环境中进行设置,让我们开始吧。
- 一个 MetaTrader5 账户
- XBTFX 的模拟账户,让您可以安全地测试您的策略
- Twitter 开发帐户
- 一个 Tweepy API 帐户
顾名思义,MT5 是一个支持多个经纪商并提供详细技术分析的平台——使用 MT5 开始您的加密机器人构建之旅的主要原因是因为它可以轻松与 Python 集成并且开箱即用地支持演示或虚拟帐户,以便您可以在安全的演示环境中进行测试。
上一篇涵盖了如何安装和配置 MetaTrader5 以及 XBTFX 加密经纪商的详细说明 如何在python中构建一个加密交易机器人,因此我们将在本文中仅简要介绍这些步骤。 如果您需要更多关于如何操作的信息,以及为什么选择这两个平台,请参考上面的链接文章。
首先下载并安装 MetaTrader5 并在他们的平台上创建一个帐户。 接下来你需要的是一个可以进行交易的经纪人——我推荐 西比特外汇 因为他们提供了与 MT5 终端合作的所有经纪商中最多的加密货币对。 注册 XBTFX 并创建一个模拟账户。
您现在可以通过 MT5 连接到您的模拟账户,方法是导航至文件 > 开立账户并搜索 XBTFX。 如果您已使用上面的推荐链接注册,则需要选择“连接到现有帐户”,否则继续创建一个新帐户。
在您可以使用 Twitter 的 API 或 Tweepy Python 模块之前,您需要一个 Twitter 开发人员帐户。 幸运的是,申请过程既快速又简单,只要您描述为什么需要访问 Twitter API,您就可能会被接受。
出生到 推特的开发平台 并单击导航菜单右上角的应用。
在下一页上单击申请开发者帐户,系统将提示您使用您的 twitter 帐户登录。
遵循注册流程并使用 API 说明您的意图
在您完成所有必要的信息后,您可能需要几个小时到几天的时间才能访问该平台。 根据我的经验,只有几个小时。
一旦您的开发帐户准备好导航到项目和应用程序选项卡,打开项目 1,如果这不可用,请继续创建一个。 在您的项目下,转到 Keys and Tokens 并生成以下内容(确保保存它们,否则您将需要重新生成密钥!):
- 每次埃隆在推文中提到比特币时,机器人都会在比特币上开一个买入头寸
- 止盈设置为 10%,止损设置为 5%
- 如果已经有活跃交易,比特币机器人将不会再进行交易(可以调整)
首先,您需要使用 PyPi 导入 MetaTrader5 和 Tweepy 模块。
pip 安装 tweepy
点安装 MetaTrader5
pip install — 升级 MetaTrader5
下一步是将这些模块与其他一些模块一起导入到您的 Python 解释器中。
#Twitter 爬虫模块
进口tweepy
从 tweepy 导入 OAuthHandler #dates 模块
从日期时间导入日期时间,日期
从 itertools 导入计数
进口时间进口重新 #交易终端
将 MetaTrader5 导入为 mt5
我们现在需要存储您使用 Twitter Dev 平台生成的密钥和令牌,以便将它们与 Tweepy 一起使用。
# 存储来自开发帐户的 Twitter 凭据
消费者密钥 = “消费者密钥”
消费者秘密 = “消费者秘密”
访问密钥=“API_KEY”
access_secret = “API_SECRET”# 通过其 OAuthHandler 将 twitter 凭据传递给 tweepy
auth = tweepy.OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(access_key,access_secret)
api = tweepy.API(auth)
在初步设置的最后一部分,您需要连接到 MT5 终端,存储您账户的净值并定义我们将使用的交易工具——在这种情况下是比特币。 我们还将创建一个简短的关键字列表来查询 Elon 的最后一条推文。
# 连接交易账户,无需指定密码和服务器
mt5.初始化()# MT5终端窗口左上角的账号
# 如果设置为记住连接数据,则应用终端数据库密码
帐号 = 555
授权 = mt5.login(account_number)如果获得授权:
打印(f'连接到帐户#{account_number}')
其他:
打印(f'无法在帐户#{account_number} 处连接,错误代码:{mt5.last_error()}')# 存储您账户的净值
账户信息 = mt5.account_info()
如果 account_info 是 None:
raise RuntimeError('无法加载账户净值水平。')
其他:
股权 = 浮动(account_info[10])
现在让我们定义我们将要进行交易的代币以及我们将要搜索的关键字。
#crypto 符号和关键字
加密货币 = 'BTCUSD'
关键字 = ['比特币','比特币','比特币','比特币','比特币']
完成所有初步工作后,是时候专注于这个机器人的酷部分了。 让我们首先使用 Tweepy 获取 Elon 的最后一条推文,如下所示 get_elons_tweet() 功能。
在测试期间,表情符号和其他无效字符会破坏脚本,因此每条推文都被重新格式化为仅包含字母数字字符。
#Get Technoking 的最新推文
def get_elons_tweet():
“”“通过用户 ID 获取 Elon 的最后一条推文——重试直到 tweepy 返回推文”””
推文 = tweepy.Cursor(api.user_timeline,id=”44196397”, 因为=date.today(), tweet_mode='extended').items(1)#删除所有无效字符
elons_last_tweet = [re.sub('[^A-Za-z0–9]+', ' ', tweet.full_text) 用于推文中的推文]#re-try 直到它返回一个值——tweepy API 有时无法返回推文
虽然不是 elons_last_tweet:
推文 = tweepy.Cursor(api.user_timeline,id=”44196397”, 因为=date.today(), tweet_mode='extended').items(1)
elons_last_tweet = [re.sub('[^A-Za-z0–9]+', ' ', tweet.full_text) 用于推文中的推文]
返回 elons_last_tweet[0]
现在我们有了 Elon 的最后一条推文,我们可以开始在函数中准备逻辑和交易请求 贸易(). 有关交易请求格式的更多信息,请查看 MT 5 文档。
麝香说了什么 包含最后一条推文,逻辑将检查我们定义的任何关键字 关键词 上面的变量存在于 Elon 的推文中。 如果这是真的,比特币交易机器人将立即执行比特币购买订单。 如果它是假的,它会简单地将推文返回给我们。
#购买比特币
def贸易():
“”“检查马斯克是否提到了比特币,如果是,则建立买入头寸”””
What_musk_said = get_elons_tweet()# 用于检查仓位是否已经放置
位置 = mt5.positions_get(symbol=CRYPTO)
订单 = mt5.orders_get(symbol=CRYPTO)
symbol_info = mt5.symbol_info(加密货币)
价格 = mt5.symbol_info_tick(CRYPTO).bid# 执行逻辑检查
如果有的话(what_musk_said 中的关键字用于关键字中的关键字):
打印(f'疯子说的 - 买一些!')# 准备交易请求
如果不是 mt5.initialize():
raise RuntimeError(f'MT5 initialize() failed with error code {mt5.last_error()}')# 检查是否有未平仓头寸或订单
如果 len(positions) == 0 并且 len(orders) < 1:
如果 symbol_info 为 None:
打印(f'{CRYPTO} 未找到,无法调用 order_check()')
mt5.关机()# 如果交易品种在 MarketWatch 中不可用,则添加它
如果不是symbol_info.visible:
打印(f'{CRYPTO} 不可见,试图打开')
如果不是 mt5.symbol_select(CRYPTO, True):
打印('symbol_select({}})失败,退出',加密)#this 代表 5% 的股权。 最小订单为 0.01 BTC。 如果 retcode = 10014,则增加股权份额
lot = float(round(((股权/5)/价格), 2))# 定义止损和止盈
sl = 价格 — (价格 * 5) / 100
tp = 价格 +(价格 * 10)/ 100
请求 = {
'动作':mt5.TRADE_ACTION_DEAL,
'符号':加密,
'体积':很多,
'类型':mt5.ORDER_TYPE_BUY,
'价格':价格,
'sl': sl,
'tp': tp,
'魔法':66,
'comment': 'python-buy',
'type_time':mt5.ORDER_TIME_GTC,
'type_filling':mt5.ORDER_FILLING_IOC,
}# 发送交易请求
结果 = mt5.order_send(请求)# 查看执行结果
打印(f'1。order_send():按{CRYPTO} {lot} 手{price}')如果 result.retcode != mt5.TRADE_RETCODE_DONE:
打印(f'2.order_send 失败,retcode={result.retcode}')#print 订单结果——除 retcode=10009 之外的任何其他内容都是交易请求中的错误。
打印(f'2。order_send 完成,{result}')
打印(f'开仓,POSITION_TICKET={result.order}')其他:
打印(f'检测到买入信号,但 {CRYPTO} 有 {len(positions)} 活跃交易')其他:
print(f'他没说,他说:{what_musk_said}')
我们现在需要决定我们应该多久迭代一次下面的代码。 默认情况下,它每 5 秒拉取并分析 Elon 的最后一条推文,但可以在 时间睡觉 下面的功能。
#每5秒执行一次代码
如果 __name__ == '__main__':
print('按 Ctrl-C / Ctrl-Q 停止。')
对于计数()中的我:
贸易()
打印(f'迭代{i}')
time.sleep(5)
这是一个有趣的项目工作,我希望你喜欢这篇文章。 如果你喜欢这篇文章,请关注我。 有关更多加密机器人项目,请查看我的博客了解更多 Python中的加密货币交易机器人
- &
- ACCESS
- 账号管理
- 要积极。
- AI
- 所有类型
- 分析
- API
- 应用领域
- 应用
- 围绕
- 刊文
- 位
- 比特币
- 比特币交易
- blockchain
- blockchain技术
- 博客
- 博特
- 机器人
- 经纪人
- 经纪人
- BTC
- 建立
- 建筑物
- 购买
- 买比特币
- 买房
- 呼叫
- 摔角
- 聊天机器人
- 聊天机器人
- 码
- 情侣
- 创造
- 资历
- 加密
- 加密市场
- 加密交易
- cryptocurrency
- 密码交易
- data
- 数据库
- 开发
- 开发商
- DID
- 环境
- 公平
- EU
- EV
- 执行
- EY
- 专注焦点
- 遵循
- 格式
- 开玩笑
- 功能
- 高
- 历史
- 创新中心
- How To
- HP
- hr
- HTTPS
- ia
- 增加
- 信息
- 积分
- IP
- IT
- 键
- 国王
- Kx
- 最新
- Level
- 友情链接
- 清单
- 加载
- 长
- 市场
- 市场
- 火星
- 中等
- 提到
- 个月
- Moon
- MT
- 旅游导航
- NLP
- 提供
- 打开
- 意见
- 秩序
- 订单
- 其他名称
- 其它
- 密码
- 平台
- 平台
- 当下
- 车资
- 利润
- 项目
- 项目
- 蟒蛇
- RE
- 推荐计划
- 注册
- 报告
- 资源
- REST的
- 回报
- 安全
- 集
- Share
- 短
- 简易
- 睡觉
- So
- 开始
- 商店
- 策略
- 夏季
- SUPPORT
- 支持
- Switch 开关
- 系统
- 说
- 文案
- 技术分析
- 专业技术
- 特斯拉
- test
- 测试
- 项目
- 次
- 令牌
- 最佳
- 贸易
- 行业
- 交易
- 交易机器人
- 产品培训
- 趋势
- 鸣叫
- us
- 折扣值
- 在线会议
- 工作
- 合作
- 写作