货币交易下载(货币交易所下载网址)

货币交易下载(货币交易所下载网址)

大数据文摘作品

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

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

货币交易下载(货币交易所下载网址)

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

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

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

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

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

Github库链接:

https://github.com/jamesfebin/CryptoTradingSimulator

数据库链接:

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

伪代码

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

步骤1: 欢迎用户
步骤2: 在数据库启动时,抓取2013年3月7日的加密货币价格
步骤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 = connection.cursor()
query = “SELECT first_leg, ask FROM prices WHERE timestamp=’1520408341.52' AND second_leg=’USD’;” cursor.execute(query)
coinAskPrices = cursor.fetchall()

首先,我们遍历卖出价格列表,删除重复样本,将其添加到名为coins{}的字典中,然后输出。

coins = {}
for coinAskPrice in coinAskPrices:
 if coinAskPrice[0] in coins:
 continue
 coins[coinAskPrice[0]] = {“price”:coinAskPrice[1], “curreny”:coinAskPrice[0]}
 print(“{} — ${} \n”.format(coinAskPrice[0], round(coinAskPrice[1],4)))
return coins

如果你看不懂代码,也别担心,只需要将整个程序包下载下来,运行,然后修改部分代码再运行,对比看看结果有什么不同,循环往复,慢慢你就开始理解代码的含义了。

现在,我们将上面的几部分代码合并成一个独立的函数fetchCoins(),结果如下:

货币交易下载(货币交易所下载网址)

货币交易下载(货币交易所下载网址)

现在,价格显示的功能已经搞定,接下来我们就需要用户来选择他们的交易币种和交易量,这就需要创建一个inputBuy()函数来实现。

def inputBuy():
 print(“Select the crypto curreny you want to buy? \n”)
 curreny = raw_input(“”).upper()
 print(“That’s great. How much quantity you want to buy? \n”)
 quantity = float(raw_input(“”))
 return curreny, quantity

接着,我们需要找出用户感兴趣的货币的价格,这个功能通过查询coins{}字典就可以实现。

price = coins[currency][‘price’]

然后我们需要把返回的参数传给模拟器。现在我们可以将上述代码块进行整合并放进主函数中。

货币交易下载(货币交易所下载网址)

目前为止我们还没有创建runSimulation()函数,接下来的任务就是创建一个名为“simulator.py”的py文件。

货币交易下载(货币交易所下载网址)

在创建runSimulation()函数前,先导入以下这些库函数。

import sqlite3
import datetime

然后定义runSimulation()函数。

def runSimulation(boughtPrice, quantity, currency):
 valueThen = boughtPrice * quantity
 bestPrice, timestamp = fetchBestBidPriceFromDB(currency)
 bestValue = bestPrice * quantity
 priceDifference = (bestValue — valueThen)/float(valueThen) * 100

在这个函数中我们首先要计算出买入时总资产的价格,然后找出3月7日到3月16日之间的最佳出仓价,接着计算两者之间的差价并显示盈亏状况。

下面编写一个 fetchBestBidPriceFromDB()函数来找出最佳出仓价。

def fetchBestBidPriceFromDB(currency):
 connection = sqlite3.connect(‘./currency_monitor.db’)
 cursor = connection.cursor()
 query = “SELECT max(bid),timestamp from prices WHERE first_leg=’{}’ and second_leg=’USD’ and timestamp> ‘1520408341.52’”.format(currency)
 cursor.execute(query)
 rows = cursor.fetchone()
 return rows[0], rows[1]

在runSimulation()函数中再添加几行语句,以便输出查找结果。

print(“The best bid price for {} was ${} at {} \n”.format(currency, bestPrice, time))
if priceDifference>0:
 print(“Your total asset value is ${}, it has increase by {}% \n”.format(round(bestValue, 4), round(priceDifference,2)))
else:
 print(“Your total asset value is ${}, it has decreased by {} \n”.format(round(bestValue, 4), round(priceDifference,2)))

这里,再一次对上述代码块进行整合,结果如下:

货币交易下载(货币交易所下载网址)

现在整个程序已经基本完成了,但是我还想加个特效——就像在电影里,字幕中的字母会一个一个的蹦出来。

创建一个名为“drama.py”的文件,然后输入以下代码:

import time
import sys
def dramaticTyping(string):
 for char in string:
 sys.stdout.write(char)
 sys.stdout.flush()
 time.sleep(0.10)

现在,把这个文件导入run.py和simulator.py中,用dramaticTyping函数代替print函数。

搞定!现在我们已经编写了一个简易版的加密货币交易模拟器。

货币交易下载(货币交易所下载网址)

此处应该有掌声,谢谢!好戏刚刚开始,接下来,我们还有一系列的工作需要完成,比如将加密货币交易模拟器与加密货币的实时交易整合为API,编写交易策略的代码并进行测试,甚至考虑创建一个UI界面等等,敬请期待~

原文链接:

https://hackernoon.com/how-to-build-a-simple-crypto-trading-simulator-part-1-4ccdddcd6b76

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/qukuai/216476.html

(0)
句子百科句子百科
上一篇 2023年 2月 14日
下一篇 2023年 2月 14日

相关推荐

  • 以色列要求稳定币储备超100% 发行方须取得银行监管执照

    国家推出的稳定币法案,当前是执法机关与加密货币行业尤其关注的领域。当前,美国的稳定币法案恐需等到下一届国会通过、欧盟方面也鲜有进展。不过在昨(22)日晚间,以色列央行正式发布稳定币监管原则,开创政府机关在稳定币监管领域的先河。 据以色列央行的公告,该行成立了一个由副行长Andrew Abir领导的委员会,该委员会正致力制定一份规范以色列稳定币活动的监管文件。…

    2023年 3月 29日
  • grin上线币安(币安创始人亚洲首富)

    关于grin上线币安(币安创始人亚洲首富)这个问题很多人都不太了解,下面由句子百科Sws100.com小编caly为大家详细讲解一下,大家来看下。 1.其中包括已经上线和没有上线的项目,我们都会为大家一一拆解分析。 2.摘要: Gate.io Startup将于8月20日12:00上线Harmony(ONE);Binance DEX将于。 3.投资者2021…

    2023年 3月 15日
  • BCEX交易平台如何实名认证? 详细图文教程分享

    BCEX交易平台如何实名认证?实名认证是采取人工认证的方式(推荐),流程如下: 1.首先登陆bcex.top 2.点击右上角实名认证,如下图: 3.选择人工认证,这个快捷方便,如下图: 4.点击立即验证,如下图: 5.按照流程规格上传照片,等待审核通过即可。 以上就是BCEX交易平台如何实名认证? 详细图文教程分享的详细内容,更多关于BCEX交易平台的资料请…

    2022年 12月 13日
  • 欧亿交易平台软件下载(v6.1.53)_欧易上面交易安全不

    欧亿交易平台软件下载(v6.1.53)_欧易上面交易安全不 欧亿交易平台是一款为用户提供在线交易、数据查询、交易管理等多种服务的交易平台,是投资人士进行金融交易的首选。该平台的最新版本是v6.1.53,那么,欧亿交易平台软件下载安全吗? 欧亿交易平台下载安全性分析 首先,欧亿交易平台是由欧亿网络科技有限公司设计和运营的金融交易平台,有着稳定和安全的交易环境。…

    区块链 2023年 4月 28日
  • 哪些平台可以交易BTC呢 BTC交易平台推荐下载

    欧易对您的资产持有 1:1 的储备金,定期发布储备金证明 欧易12月最新活动入口:https://zc.oke4.cn/AA333 哪些平台可以交易BTC呢?根据区块链相关数据显示,在全球范围内,能够进行BTC交易的BTC交易所已经超过400家,那么该如何选择呢?句子百科小编带来BTC交易平台推荐下载! 下载客户端领取盲盒,最高开出6w元数字货币 No.1:…

    2022年 12月 18日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信