主页 > 苹果下载imtoken教程 > 教你搭建加密货币交易模拟器,不用投资也能玩

教你搭建加密货币交易模拟器,不用投资也能玩

苹果下载imtoken教程 2023-01-17 02:06:40

大数据文摘,编译:王小琪、黄文昌、小宇

虽然我不是交易员,但我对交易加密货币非常感兴趣。 但是,我不会在什么都不知道的情况下盲目投资加密货币,所以我喜欢在投资前测试自己的交易策略。

比特币 币币交易_火币网如何交易比特币_比特币模拟交易

播音员:今天的道琼斯曲线是华盛顿天际线的形状(林肯纪念堂、华盛顿纪念碑、美国国会大厦)……(即股市表现异常)

而我的想法是建立一个加密货币交易模拟器,让新投资者无需投入资金就可以学习和体验加密货币交易。 在这一系列的学习中,我将向您展示如何构建这样一个交易模拟器。

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

在本练习中,我们将在 Python 中构建一个简单的加密货币交易模拟器,用户可以在其中投资加密货币,然后观察他们的加密货币持有量在接下来的 9 天内将如何变化。

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

你也可以在 Github 仓库中看到这个项目。 另外,您需要单独下载数据库并将其放在您的项目目录中。

Github 存储库: ,数据库: 。

伪代码

在编写代码之前,了解我们接下来的每个步骤是至关重​​要的,否则我们在编程时会感到困惑。 为了清楚起见,我们使用伪代码来说明,这不是真正的代码,而是用我们自己的语言编写的思维导图。

第一步:欢迎用户;

第二步:抓取数据库启动时2013年3月7日的加密货币价格;

第三步:让用户选择一种货币进行投资;

第四步:然后,运行模拟器,显示用户未来9天的加密货币价格走势;

第五步:模拟器会给出该加密货币的最佳退出价格比特币模拟交易,并与用户投资时的资产进行对比,显示盈亏情况。

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

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

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

数据库下载。

接下来,创建一个名为“run.py”的新 py 文件

比特币 币币交易_火币网如何交易比特币_比特币模拟交易

欢迎页面

我们将创建一个简单的“欢迎”功能。 这个功能不需要有太多的功能。 它只需要输出一系列的项目介绍,包括程序名称和程序功能介绍。 换句话说,向用户问好。

定义欢迎():

打印(“简单的加密货币交易模拟器”)

打印(“嘿哟,你回到了过去。现在是 2018 年 3 月 7 日,星期三,上​​午 7:39”)

print("这是您可以投资的加密货币。")

print("获取价格...")

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

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

点安装sqlite3

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

导入sqlite3

现在,我们编写代码来获取开始时刻的价格数据并显示出来。

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

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

下面几行代码用于抓取指定时间的价格数据。

connection = sqlite3.connect('./currency_monitor.db')

光标 = 连接。 光标()

query = "SELECT first_leg, ask FROM prices WHERE timestamp='1520408341.52' AND second_leg='USD';" cursor.execute(查询)

coinAskPrices = 游标。 fetchall()

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

硬币 = {}

对于 coinAskPrices 中的 coinAskPrice:

如果 coinAskPrice[0] 在硬币中:

继续

coins[coinAskPrice[0]] = {“价格”:coinAskPrice[1],“货币”:coinAskPrice[0]}

print("{} — ${} ".format(coinAskPrice[0], round(coinAskPrice[1],4)))

返币

看不懂代码也不用着急,直接下载整个程序包,运行,然后修改部分代码再运行,对比看看结果有什么不同,如此循环往复,慢慢你会开始理解代码的意思。

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

比特币 币币交易_火币网如何交易比特币_比特币模拟交易

比特币模拟交易_比特币 币币交易_火币网如何交易比特币

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

def inputBuy():

print("请选择您要购买的加密货币?")

currency = raw_input("").upper()

print("太好了。你想买多少?")

数量 = 浮动(raw_input(“”))

退货币种、数量

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

价格=硬币[货币]['价格']

然后我们需要将返回的参数传递给模拟器。 现在我们可以将上面的代码块组合起来,放到main函数中。

比特币 币币交易_比特币模拟交易_火币网如何交易比特币

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

火币网如何交易比特币_比特币模拟交易_比特币 币币交易

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

导入sqlite3

导入日期时间

然后定义 runSimulation() 函数。

def runSimulation(boughtPrice, quantity, currency):

valueThen = 购买价格 * 数量

bestPrice, timestamp = fetchBestBidPriceFromDB(货币)

bestValue = bestPrice * 数量

价格差异 = (bestValue — valueThen)/float(valueThen) * 100

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

接下来,编写一个 fetchBestBidPriceFromDB() 函数来查找最佳出价。

def fetchBestBidPriceFromDB(货币):

connection = sqlite3.connect('./currency_monitor.db')

光标 = 连接。 光标()

query = "SELECT max(bid), timestamp from prices WHERE first_leg='{}' and second_leg='USD' and timestamp> '1520408341.52'".格式(货币)

光标。 执行(查询)

行 = 游标。 获取电话()

返回行[0],行[1]

在runSimulation()函数中多加几行语句输出搜索结果。

print("{} 的最佳出价是 {} 的 ${} ".format(currency, bestPrice, time))

如果价格差异>0:

print("您的总资产价值为 ${},增加了 {}% ".format(round(bestValue, 4), round(priceDifference,2)))

别的:

print("你的总资产价值是 ${},它减少了 {} ".format(round(bestValue, 4), round(priceDifference,2)))

这里将上述代码块再次整合,结果如下:

比特币 币币交易_火币网如何交易比特币_比特币模拟交易

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

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

导入时间

导入系统

def 戏剧性打字(字符串):

对于字符串中的字符:

sys.stdout.write(字符)

系统.stdout.flush()

时间。 睡眠(0.10)

现在,将此文件导入 run.py 和 simulator.py,并将打印函数替换为 dramaticTyping 函数。

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

火币网如何交易比特币_比特币 币币交易_比特币模拟交易

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