阐述合约量化/秒合约/永续合约/对冲交易/量化交易机器人系统开发(开发案例源码)

简介: (base) appledeMac-mini-3:Quantification apple$ pip install web3Collecting web3

(base) appledeMac-mini-3:Quantification apple$ pip install web3
Collecting web3
Using cached https://files.pythonhosted.org/packages/cd/e3/46db98888fc36137fe88c09a3066b408108da8e434c7608028981504200b/web3-5.7.0-py3-none-any.whl
Collecting eth-typing<3.0.0,>=2.0.0 (from web3)
Using cached https://files.pythonhosted.org/packages/bc/c4/c9c78597d0400e5bc1c3cdd031fdfa6629333a31591fcc5fa8519a7ea89c/eth_typing-2.2.1-py3-none-any.whl
Collecting eth-account<0.5.0,>=0.4.0 (from web3)
Using cached https://files.pythonhosted.org/packages/08/b2/b000adde76e780ba072d75e534ebfe9d44f0d68f429d3757ae9a85e9bd0b/eth_account-0.4.0-py3-none-any.whl
Requirement already satisfied: requests<3.0.0,>=2.16.0 in /Users/apple/.local/lib/python3.7/site-packages (from web3) (2.22.0)
Collecting hexbytes<1.0.0,>=0.1.0 (from web3)
设置环境变量

web3环境变量

export WEB3_INFURA_PROJECT_ID=获取到的项目ID
1
2
3
使用该web3.auto.infura模块连接到Infura节点。

(base) appledeMac-mini-3:Quantification apple$ python
Python 3.7.3 (default, Mar 27 2019, 16:54:48)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.

from web3.auto.infura import w3
w3.eth.blockNumber
9913260
1
2
3
4
5
6
7
w3,该实例现在将允许您与以太坊区块链进行交互

获取最新块的信息

w3.eth.getBlock('latest')
AttributeDict({'difficulty': 2261993248924870, 'extraData': HexBytes('0x505059452d65746865726d696e652d6575312d35'), 'gasLimit': 9966590, 'gasUsed': 9954427, 'hash': HexBytes('0x64a043f893abcd0a8e424c64b4104660033eba1f018371ca4d3bec72bf23cc46'), 'logsBloom': HexBytes('0x08c24c5800c2201e0000a221708670036280c5012ca8409c18340ff1536800a4800c07e13210ac07060081740f5a0bc963820400099425c1282ac87120a10e2c18008d84b02080010405e66d808f6424e4132f86c1464200024302049cc430d14802a8160a2061c0d200507001a1482a8841f2011c0c1e22300405b424a6402025802b4c14642806b321a6ab8b020407200108436aa280828008088020313964a6c41062000281049c080ad64a8811918d042845c04e00a0086a8488988008d10620244693880d28840210115ee041420b04f00184080801f80000a217402306e85139035090188407600630c18122380c81185385b105e6ed2d120f389058c0'), 'miner': '0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8', 'mixHash': HexBytes('0xbe86772ffde4f025efae9dc14063d3a906f2f1ac675c8ce8e6a35725218e1d8a'), 'nonce': HexBytes('0xb18c36a40281d83a'), 'number': 9913288, 'parentHash': HexBytes('0xaa772d2645331b7d7e44286f398de7e0d3225afadd2fd54684e9d46ef71ac576'), 'receiptsRoot': HexBytes('0x7f0fa855dd4c7a9576d4ece8847dd87e82a77c25c9b733084e6f44f1940dbe4b'), 'sha3Uncles': HexBytes('0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'), 'size': 34719, 'stateRoot': HexBytes('0xbfc8504b7f8ad32e0763c18efced31c0ce9976944ea1f80322108f020621a1a2'), 'timestamp': 1587438028
1
2
将要执行的许多典型操作都在w3.ethAPI中,web3对象通常通过连接到JSON-RPC服务器来提供与以太坊区块链进行交互的API。

1.web3连接到区块链的方式

from web3 import Web3,HTTPProvider,IPCProvider,WebsocketProvider
"""
HTTPProvider:用于连接基于http和https的JSON-RPC服务器:通过完整的URI找到服务器
w3=Web3(HTTPProvider('http://loaclhost:8545'))
Web3.IPCProvider 用于连接到基于ipc套接字的JSON-RPC服务器:通过文件系统路径找到IPC套接字
w3 = Web3(IPCProvider(参数))
Web3.WebsocketProvider 用于连接到基于ws和wss websocket的JSON-RPC服务器:通过完整的URI找到服务器
w3 = Web3(WebsocketProvider('ws://127.0.0.1:8546'))
"""

w3=Web3(HTTPProvider('http://loaclhost:8545'))
print(w3) # <web3.main.Web3 object at 0x105d42510

2.类型转化

Web3.toHex(primary = None,hexstr = None,text = None )

接受各种输入并以其十六进制表示形式返回。它遵循JSON-RPC规范

def to_hex(

primitive: Primitives = None, hexstr: HexStr = None, text: str = None

) -> HexStr:

print(Web3.toHex(10)) # 0xa

print(Web3.toHex(hexstr='0x00')) # 0x00

print(Web3.toHex(text='asimov')) # 0x6173696d6f76

Web3.toText(primary = None,hexstr = None,text = None )

接受各种输入并返回其等效字符串。文本被解码为UTF-8。

print(Web3.toText('0x1254')) #T
print(Web3.toText('0x6173696d6f76')) # asimov
print(Web3.toText(b'asim\x6f\x76')) # asimov
print(Web3.toText('6173696d6f76')) # asimov

Web3.toBytes(primary = None,hexstr = None,text = None )

接受各种输入并返回等效的字节数。文本被编码为UTF-8。

print(Web3.toBytes(0)) # b'\x00'
print(Web3.toBytes(b'sasas')) # b'sasas'
print(Web3.toBytes(hexstr='000F')) # b'\x00\x0f'
print(Web3.toBytes(hexstr='0x000F')) # b'\x00\x0f'
print(Web3.toBytes(text='asimov')) # b'asimov'

Web3.toInt(primary = None,hexstr = None,text = None )

接受各种输入并返回其等效的整数

print(Web3.toInt(0)) # 0
print(Web3.toInt(0x00f)) # 15
print(Web3.toInt(b'\x00\x0F')) # 15
print(Web3.toInt(hexstr='0x00F')) # 15

ValueError: invalid literal for int() with base 10: 'sa'

text: interpret as string of digits, like '12' => 12

print(Web3.toInt(text='10')) # 10

Web3.toJSON(obj) obj: Dict[Any, Any]

接受各种输入并返回等效的JSON。

print(Web3.toJSON({'asimov':'da'})) # {"asimov": "da"}

相关文章
|
2月前
|
机器学习/深度学习 数据采集 监控
量化交易机器人开发风控模型对比分析与落地要点
本文系统对比规则止损、统计模型、机器学习及组合式风控方案,从成本、鲁棒性、可解释性等维度评估其在合约量化场景的适用性,结合落地实操建议,为不同阶段的交易系统提供选型参考。
|
6月前
|
机器人 API 数据安全/隐私保护
微博评论脚本, 新浪微博自动评论机器人,autojs工具开发
该机器人包含登录验证、内容识别、智能回复和频率控制功能,使用AutoJS的控件操作API实现自动化。
|
4月前
|
传感器 人工智能 机器人
具身智能9大开源工具全景解析:人形机器人开发必备指南
本文旨在对具身智能、人形机器人、协作机器人、AI机器人、端到端AI系统、AI Agent、AI Agentic、空间智能或世界模型等前沿领域中具有重要影响力的开源软件产品或工具进行深入分析,重点聚焦于支持这些先进AI能力实现的工具、平台和框架。
1557 8
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
TsingtaoAI具身智能机器人开发套件及实训方案
该产品套件创新性地融合了先进大模型技术、深度相机与多轴协作机械臂技术,构建了一个功能强大、灵活易用的人机协作解决方案。其核心在于将智能决策、精准感知与高效执行完美结合,为高校实训领域的发展注入新动力。
752 10
|
10月前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
5646 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
3月前
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
243 1
|
9月前
|
人工智能 自然语言处理 机器人
9.9K star!大模型原生即时通信机器人平台,这个开源项目让AI对话更智能!
"😎高稳定、🧩支持插件、🦄多模态 - 大模型原生即时通信机器人平台"
313 0
|
7月前
|
弹性计算 自然语言处理 Ubuntu
从0开始在阿里云上搭建基于通义千问的钉钉智能问答机器人
本文描述在阿里云上从0开始构建一个LLM智能问答钉钉机器人。LLM直接调用了阿里云百炼平台提供的调用服务。
从0开始在阿里云上搭建基于通义千问的钉钉智能问答机器人
|
6月前
|
机器人
陌陌自动回复消息脚本,陌陌自动打招呼回复机器人插件,自动聊天智能版
这是一款为陌陌用户设计的自动回复软件,旨在解决用户无法及时回复消息的问题,提高成交率和有效粉丝数。软件通过自动化操作实现消息检测与回复功能
|
11月前
|
人工智能 机器人 API
AppFlow:无代码部署Dify作为钉钉智能机器人
本文介绍如何通过计算巢AppFlow完成Dify的无代码部署,并将其配置到钉钉中作为智能机器人使用。首先,在钉钉开放平台创建应用,获取Client ID和Client Secret。接着,创建消息卡片模板并授予应用发送权限。然后,使用AppFlow模板创建连接流,配置Dify鉴权凭证及钉钉连接凭证,完成连接流的发布。最后,在钉钉应用中配置机器人,发布应用版本,实现与Dify应用的对话功能。
2266 7
AppFlow:无代码部署Dify作为钉钉智能机器人

热门文章

最新文章