手把手:用Python搭建一个加密货币交易模拟器,不用投钱就能玩

大数据文摘作品

编译:汪小七、黄文畅、小鱼


我虽然不是交易员,但对加密货币的交易非常感兴趣。然而,我不会在自己什么都不清楚的时候就盲目投资加密货币,所以在进行投资之前,我想先来测试一下自己的交易策略。


播音员:今天的道琼斯指数曲线是华盛顿天际线(林肯纪念堂、华盛顿纪念碑、美国国会大厦)的形状…(i.e.股市表现奇怪)


而我的想法就是搭建一个加密货币交易的模拟器,这样投资新手不用投钱就可以学习和体验加密货币的交易。在这一系列学习中,我将给大家展示如何去建这样一个交易模拟器。


首先我们需要将2018年3月7日至2018年3月16日的加密货币的交易价格导入到数据库中。


在这个练习中,我们将用Python搭建一个简单的加密货币交易模拟器,用户可以在这里进行加密货币的投资,然后观察他的加密货币资产在接下来的9天将如何变化。


目前,模拟器会给出用户资产的最佳出仓价,并与其原始投资价格进行比较,然后告诉用户最终的盈亏状况。接下来,我将介绍如何添加对流通货币的价格监控,如何编写和测试交易策略,还有如何构建用户界面等等。


下面这个视频就是我们今天讲到的交易模拟器,同时你也可以在Github 库中看到这个项目。另外,你需要分开下载数据库,并把它放到你的项目目录下。


Github库链接:

https://github.com/jamesfebin/CryptoTradingSimulator


数据库链接:

https://drive.google.com/file/d/1OHhtrvOe-EWcX_8tipWo6tWYqkkYDkPw/view?usp=sharing


class="video_iframe" allowfullscreen="" scrolling="no" src="https://v.qq.com/iframe/player.html?vid=l1336jz6nt1&width=652&height=366.75&auto=0&encryptVer=6.0&platform=61001&cKey=UUF3KHpi5xF2zEzPIlnGEnRXQUVF+UOzhS6kM0X/ly3xWyXl475WmbIhpiqKFi0f" width="652" height="366.75">

伪代码


在编写代码之前,明确我们接下来的每个步骤至关重要,否则编程时会陷入困惑。为了清楚起见,我们使用伪代码进行说明,伪代码并不是真实的代码,而是我们用自己的语言写的思维图。


步骤1: 欢迎用户
步骤2: 在数据库启动时,抓取201337日的加密货币价格
步骤3: 让用户选择一种货币并进行投资
步骤4: 接着,运行模拟器并显示未来9天里用户的加密货币价格走势
步骤5: 模拟器会给出该加密货币的最佳出仓价,并与用户投资时的资产进行对比,显示盈亏情况


我们无需按以上步骤依次进行代码编写,可以依据自己的能力从最简单的步骤开始编写,随着模拟器功能的不断完善,我们编程的能力和信心也逐渐提高,从而才可能完成整个项目。


本文中的代码开发环境为Python2.7。


首先,我们建一个空的项目文件夹,如:“CryptoSimulator”,然后下载加密货币价格的数据库,放到这个项目文件夹中。


数据库下载链接:

https://drive.google.com/file/d/1OHhtrvOe-EWcX_8tipWo6tWYqkkYDkPw/view?usp=sharing


接着,再新建一个命名为“run.py”的py文件



欢迎页面


我们将创建一个简单的“welcome”函数,这个函数并不需要有太多的功能,只要输出一系列的项目介绍即可,包括程序名称,程序功能介绍。换句话说,就是向用户问个好。


def welcome():
  print(“Simple Crypto Trading Simulator”)
  print(“Hey Yo, you are back in time. It’s Wednesday, March 7, 2018 7:39 AM”)
  print(“Here are the crypto currencies you can invest.”)
  print(“Fetching prices … ”)


现在我们需要抓取2018年3月7日早上7:39的加密货币价格。


因为我们的数据库是基于sqlite3进行操作,所以在此之前我们还需要下载sqlite3库并安装,可以用以下命令实现。


pip install sqlite3


在run.py文件开头,需要导入sqlite3库,命令如下。


import sqlite3


现在,我们编写代码来抓取起始时刻的价格数据并进行显示。


数据库中有以下几列:时间戳(timestamp)、基准货币(first_leg)、计价货币(second_leg)、卖出价(ask)、买入价(bid)和交易名称(the exchange name)。


假如我们当前的货币对是“比特币和美元”(BTC/USD),那么基准货币就是比特币(BTC),计价货币就是美元(USD)。


以下几行代码就是用来抓取指定时间的价格数据。


connection = sqlite3.connect(‘./currency_monitor.db’)
cursor =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值