11 数字货币交易系统python实践 代少飞数字货币交易系统 Python实践 代少飞 目录 CONTENTS 常见问题 数据库锁问题 任务调度框架 监控 单击此处添加标题 1 常见问题 队列数据丢失 队列挂掉 负数资产 冲钱一次,转两倍资产 用户资产 用户发现自己资产为负数 负数资产 充一次转双倍 队列数据丢失 队列挂掉 RabbitMQ 撮合或者清算队列数据丢失 订单摆上去,能交易 • 处理完后才确认消息 RabbitMQ挂掉 • 流程设计不合理,导致队列之间高频互传, 最后RabbitMQ挂掉 • 使用Redis统计短时间相同订单传递次数 或者在消息体里面添加计数字段,再做相应限制处理 资产为负 资产为负 充一次转双倍 • 如果充值申请状态为“start”,充值完成状态为“done”,页面同 时点两次,请求进入Rabbitmq队列就会处理两次 • 应该加入“pending” 可动态调整(添加,修改,删除)任务 • 远程调用支持RPyC(一个用作远程过程调用,同时也可以用作分 布式计算的Python模块),少量代码,轻松远程调用 APscheduler+twisted 4 监控 交易系统一行代码写错,可能损失好几百万 监控 • 首先每一笔资金变动都得有变动前后的值和原因 • 挂单精度是否正确 • 一个账户,一个币种,不算手续费,初略盘点 • 利用订单客观数据(挂单价格,数量,手续费),复现交易,与交0 码力 | 21 页 | 1.77 MB | 1 年前3
Hello 算法 1.0.0b4 Python版36 3.2. 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.3. 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4. 字符编码 * 常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 31 元。他会很自然地完成以下思考: 1. 可选项是比 31 元面值更小的货币,包括 1 , 5 , 10 , 20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 = 11 完成找零,方案为 20 + 10 + 1 = 31 元。 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是「贪心算法」。 1. 初识算法 hello‑algo.com 9 Figure 1‑3. 货币找零过程 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用0 码力 | 329 页 | 27.34 MB | 1 年前3
Hello 算法 1.1.0 Python版50 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程0 码力 | 364 页 | 18.42 MB | 1 年前3
Hello 算法 1.0.0 Python版50 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程0 码力 | 362 页 | 17.54 MB | 1 年前3
Hello 算法 1.0.0b5 Python版48 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 hello‑algo.com 12 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将0 码力 | 361 页 | 30.64 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Python 版50 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 www.hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程0 码力 | 364 页 | 18.43 MB | 10 月前3
Python 标准库参考指南 2.7.18 repr() implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9 数字和数学模块 213 9.1 numbers —数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9 Reference, 发布 2.7.18 2 Contents CHAPTER1 概述 “Python 库”中包含了几种不同的组件。 它包含通常被视为语言“核心”中的一部分的数据类型,例如数字和列表。对于这些类型,Python 语言核心 定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心确实定 义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常—不需要 parameters; bytearray() then converts the unicode to bytes using unicode.encode(). • 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。 • 如果是一个符合 buffer 接口的对象,该对象的只读 buffer 会用来初始化字节数组。 • 如果是一个 iterable 可迭代对象,它的元素的范围必须是0 码力 | 1552 页 | 7.42 MB | 9 月前3
Python 标准库参考指南 2.7.18 repr() implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9 数字和数学模块 213 9.1 numbers —数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9 Reference, 发布 2.7.18 2 Contents CHAPTER1 概述 “Python 库”中包含了几种不同的组件。 它包含通常被视为语言“核心”中的一部分的数据类型,例如数字和列表。对于这些类型,Python 语言核心 定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心确实定 义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常—不需要 parameters; bytearray() then converts the unicode to bytes using unicode.encode(). • 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。 • 如果是一个符合 buffer 接口的对象,该对象的只读 buffer 会用来初始化字节数组。 • 如果是一个 iterable 可迭代对象,它的元素的范围必须是0 码力 | 1552 页 | 7.42 MB | 9 月前3
Python 标准库参考指南 2.7.18 repr() implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9 数字和数学模块 213 9.1 numbers —数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9 Reference, 发布 2.7.18 2 Contents CHAPTER1 概述 “Python 库”中包含了几种不同的组件。 它包含通常被视为语言“核心”中的一部分的数据类型,例如数字和列表。对于这些类型,Python 语言核心 定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心确实定 义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常—不需要 parameters; bytearray() then converts the unicode to bytes using unicode.encode(). • 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。 • 如果是一个符合 buffer 接口的对象,该对象的只读 buffer 会用来初始化字节数组。 • 如果是一个 iterable 可迭代对象,它的元素的范围必须是0 码力 | 1552 页 | 7.42 MB | 9 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.4 数字类型 --- int, float, complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 9 数字和数学模块 263 9.1 numbers --- 数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 15.3 secrets --- 生成安全随机数字用于管理密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 16 通用操作系统服务 513 16.1 os --- 操作系统接口模块0 码力 | 1961 页 | 9.14 MB | 9 月前3
共 108 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11













