Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统

实现结果

image.png

设计思路

image.png

实现代码


#!/usr/bin/env python

# -*- coding: utf-8 -*-

#利用Python调用数据库历史记录文件,实现BTC等找出最佳出仓价、收益比的加密币模拟交易系统

import sqlite3

from simulator import runSimulation

from drama import dramaticTyping

def fetchCoins():  #调用数据库的db文件实现价格显示的功能

   connection = sqlite3.connect('F:/File_Python/Python_example/CryptoTradingSimulator-master/CryptoSimulator/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 = {}

   for coinAskPrice in coinAskPrices:

       if coinAskPrice[0] in coins:

           continue

       coins[coinAskPrice[0]] = {"price":coinAskPrice[1], "curreny":coinAskPrice[0]}

       dramaticTyping("{} - ${} \n".format(coinAskPrice[0], round(coinAskPrice[1],4)))

   return coins

def welcome():

   print("\n")

   dramaticTyping("Simple Crypto Trading Simulator \n")

   dramaticTyping("Hey Yo, you are back in time. It's Wednesday, March 7, 2018 7:39 AM \n")

   dramaticTyping("Here are the crypto currencies you can invest. \n")

   dramaticTyping("Fetching prices ... \n")

def inputBuy():

   dramaticTyping("Select the crypto curreny you want to buy? \n")

   curreny = input("").upper()

   dramaticTyping("That's great. How much quantity you want to buy? \n")

   quantity = float(input(""))

   return curreny, quantity

def quitMenu():

   dramaticTyping("Do you want to try again? Y/N ")

   answer = input("").upper()

   if answer == 'Y':

       main()

   else:

       exit()

def main():

   welcome()

   coins = fetchCoins()

   currency, quantity = inputBuy()

   try: #处理异常

       price = coins[currency]['price']  

   except Exception as e:

       dramaticTyping("Invalid currency entered, please try again \n")

       inputBuy()

   runSimulation(coins[currency]['price'], quantity, currency)

   quitMenu()

main()


相关文章
|
29天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
11天前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
15 2
|
1月前
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
|
1月前
|
数据采集 自然语言处理 API
Python反爬案例——验证码的识别
Python反爬案例——验证码的识别
|
1月前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
|
1月前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
74 0
|
1月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
26 0
|
1月前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
|
1月前
|
人工智能 API iOS开发
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
|
1月前
|
人工智能 小程序 Python
Python编程小案例——编一个事件提醒弹窗小程序
Python编程小案例——编一个事件提醒弹窗小程序