如何使用 Web3.py 与 Polkadot Hub 进行交互

[Web3] 基础第4篇: 区块链的组织结构 适用于大规模数据过滤(如 区块链、数据库、搜索引擎)低存储需求、高速查询的场景需要注意不能删除数据(标准版本) → 计数布隆过滤器解决存在误判(False Positive) → 适用于 非精确查询布隆过滤器以 高效存储和快速查询 在 区块链、分布式存储和大数据处理 领域有广泛应用。 阅读详情

原文作者:PaperMoon团队

与区块链交互通常需要一个应用与区块链网络之间的接口。Web3.py 正是提供了这样的接口,它通过一组 Python 库,使应用能够通过 HTTP 或 WebSocket 协议与区块链节点进行无缝交互。

本篇指南将演示如何使用 Web3.py 与 Polkadot Hub 进行交互。

项目初始化

开始使用 Web3.py 前,先初始化你的项目:

mkdir web3py-project
cd web3py-project

为项目创建并激活一个虚拟环境:

python -m venv venv
source venv/bin/activate

然后安装 Web3.py:

pip install web3

设置 Web3 Provider

Provider(提供者)是任何 Web3.py 应用的基础,它作为你的应用与区块链之间的桥梁,使你能够查询链上数据并与智能合约交互。

要与 Polkadot Hub 交互,你需要配置一个 Web3.py Provider,用于连接区块链节点。示例如下:

from web3 import Web3

PROVIDER_RPC = "INSERT_RPC_URL"
web3 = Web3(Web3.HTTPProvider(PROVIDER_RPC))

注意

请将 INSERT_RPC_URL 替换为实际的 RPC 地址。例如,连接 Polkadot Hub 测试网 时可以使用:

PROVIDER_RPC = 'https://services.polkadothub-rpc.com/testnet'

完成 Provider 配置后,你就可以开始查询区块链数据了。例如,获取当前链上的最新区块高度。

(示例:获取最新区块)

编译合约

Polkadot Hub 暴露了 Ethereum JSON-RPC 接口,因此你可以使用 py-solc-x 编译器,将 Solidity 合约编译为标准的 EVM 字节码。生成的产物可以直接用于任何 EVM 兼容工具链,并可通过 Web3.py 部署。

首先安装 py-solc-x:

pip install py-solc-x

示例:Storage 智能合约

下面是一个简单的 Solidity 示例合约 Storage.sol,用于存储一个数值,并允许用户更新它。

Storage.sol

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

contract Storage {
    // 公共状态变量,用于存储数值
    uint256 public storedNumber;

    /**
    * 更新存储的数值
    *
    * public 修饰符允许任何人调用该函数
    *
    * @param _newNumber - 要存储的新值
    */
    function setNumber(uint256 _newNumber) public {
        storedNumber = _newNumber;
    }
}

编译智能合约

创建一个名为 compile.py 的 Python 脚本:

compile.py

import json
import solcx
from pathlib import Path

SOLC_VERSION = '0.8.9'
try:
    solcx.install_solc(SOLC_VERSION)
except Exception as e:
    print(f"Solc 版本 {SOLC_VERSION} 已安装或出现错误: {e}")

solcx.set_solc_version(SOLC_VERSION)

contract_path = Path('Storage.sol')
with open(contract_path, 'r') as file:
    contract_source = file.read()

compiled_sol = solcx.compile_source(
    contract_source,
    output_values=['abi', 'bin'],
    solc_version=SOLC_VERSION
)

contract_id, contract_interface = compiled_sol.popitem()

bytecode = contract_interface['bin']
abi = contract_interface['abi']

Path('abis').mkdir(exist_ok=True)
Path('artifacts').mkdir(exist_ok=True)

with open('abis/Storage.json', 'w') as abi_file:
    json.dump(abi, abi_file, indent=2)

with open('artifacts/Storage.bin', 'w') as bin_file:
    bin_file.write(bytecode)

print("✅ 合约编译成功!")
print("📄 ABI 已保存至: abis/Storage.json")
print("📦 字节码已保存至: artifacts/Storage.bin")

说明

上述脚本是为 Storage.sol 合约定制的。如需编译其他合约,可修改文件名或 ABI / 字节码的输出路径。
    •    ABI(应用二进制接口):描述合约的函数、事件及其参数,是 Python 与合约交互的接口规范
    •    Bytecode(字节码):EVM 可执行的底层机器码,用于链上部署

运行编译脚本:

python compile.py

执行后,你将得到:
    •    abis/Storage.json:合约 ABI
    •    artifacts/Storage.bin:合约字节码

接下来即可部署合约到 Polkadot Hub。

合约部署

使用 Web3.py 部署合约与在任何 EVM 兼容链上的流程完全一致。你需要一个账户私钥来签名交易。

请将 INSERT_RPC_URL 与 INSERT_PRIVATE_KEY 替换为实际值。

deploy.py

from web3 import Web3
import json
import time
from pathlib import Path

ARTIFACTS_DIR = Path(__file__).parent
ABI_DIR = ARTIFACTS_DIR / "abis"
BYTECODE_DIR = ARTIFACTS_DIR / "artifacts"

def get_abi(contract_name):
    try:
        with open(ABI_DIR / f"{contract_name}.json", 'r') as file:
            return json.load(file)
    except Exception as error:
        print(f"❌ Could not find ABI for contract {contract_name}: {error}")
        raise error

def get_bytecode(contract_name):
    try:
        with open(BYTECODE_DIR / f"{contract_name}.bin", 'r') as file:
            bytecode = file.read().strip()
            return bytecode if bytecode.startswith('0x') else f"0x{bytecode}"
    except Exception as error:
        print(f"❌ Could not find bytecode for contract {contract_name}: {error}")
        raise error

def deploy_with_retry(config, max_retries=3):
    """Deploy with retry logic for RPC errors"""
    for attempt in range(max_retries):
        try:
            return deploy(config)
        except Exception as error:
            error_str = str(error)
            if "500" in error_str or "Internal Server Error" in error_str or "Connection" in error_str:
                if attempt < max_retries - 1:
                    wait_time = (attempt + 1) * 3
                    print(f"RPC error, retrying in {wait_time} seconds... (attempt {attempt + 1}/{max_retries})")
                    time.sleep(wait_time)
                    continue
            raise error

def deploy(config):
    try:
        # Initialize Web3 with RPC URL and longer timeout
        web3 = Web3(Web3.HTTPProvider(
            config["rpc_url"],
            request_kwargs={'timeout': 120}
        ))

        # Prepare account
        formatted_private_key = config["private_key"] if config["private_key"].startswith('0x') else f"0x{config['private_key']}"
        account = web3.eth.account.from_key(formatted_private_key)
        print(f"Deploying from address: {account.address}")

        # Load ABI and bytecode
        abi = get_abi('Storage')
        bytecode = get_bytecode('Storage')
        print(f"Bytecode length: {len(bytecode)}")

        # Create contract instance
        contract = web3.eth.contract(abi=abi, bytecode=bytecode)

        # Get current nonce (this will test the connection)
        print("Getting nonce...")
        nonce = web3.eth.get_transaction_count(account.address)
        print(f"Nonce: {nonce}")

        # Estimate gas
        print("Estimating gas...")
        gas_estimate = web3.eth.estimate_gas({
            'from': account.address,
            'data': bytecode
        })
        print(f"Estimated gas: {gas_estimate}")

        # Get gas price
        print("Getting gas price...")
        gas_price = web3.eth.gas_price
        print(f"Gas price: {web3.from_wei(gas_price, 'gwei')} gwei")

        # Build deployment transaction
        print("Building transaction...")
        construct_txn = contract.constructor().build_transaction({
            'from': account.address,
            'nonce': nonce,
            'gas': gas_estimate,
            'gasPrice': gas_price,
        })

        # Sign transaction
        print("Signing transaction...")
        signed_txn = web3.eth.account.sign_transaction(construct_txn, private_key=formatted_private_key)

        # Send transaction
        print("Sending transaction...")
        tx_hash = web3.eth.send_raw_transaction(signed_txn.raw_transaction)
        print(f"Transaction hash: {tx_hash.hex()}")

        # Wait for transaction receipt
        print("Waiting for transaction receipt...")
        tx_receipt = web3.eth.wait_for_transaction_receipt(tx_hash, timeout=300)
        contract_address = tx_receipt.contractAddress

        # Log results
        print(f"✅ Contract deployed at: {contract_address}")
        print(f"Gas used: {tx_receipt.gasUsed}")
        print(f"Block number: {tx_receipt.blockNumber}")

        return web3.eth.contract(address=contract_address, abi=abi)

    except Exception as error:
        print(f'❌ Deployment failed: {error}')
        raise error

if __name__ == "__main__":
    deployment_config = {
        "rpc_url": "https://services.polkadothub-rpc.com/testnet",
        "private_key": "INSERT_PRIVATE_KEY"
    }

    deploy_with_retry(deployment_config)

该脚本包括:

    •    RPC 连接与重试机制
    •    Gas 估算
    •    交易签名与发送
    •    等待交易回执并输出合约地址

运行部署脚本:

python deploy.py

部署成功后,终端将输出合约地址,你可以用它进行后续交互。

⚠️ 安全警告

切勿提交或分享你的私钥。一旦泄露,关联资产可能被立即盗取。

与合约交互

部署完成后,你可以使用 Web3.py 调用合约方法。以下示例演示如何更新并读取存储的数值。

update_storage.py

from web3 import Web3
import json


def get_abi(contract_name):
    try:
        with open(f"{contract_name}.json", "r") as file:
            return json.load(file)
    except Exception as error:
        print(f"❌ Could not find ABI for contract {contract_name}: {error}")
        raise error


async def update_storage(config):
    try:
        # Initialize Web3 with RPC URL
        web3 = Web3(Web3.HTTPProvider(config["rpc_url"]))

        # Prepare account
        account = web3.eth.account.from_key(config["private_key"])

        # Load ABI
        abi = get_abi("Storage")

        # Create contract instance
        contract = web3.eth.contract(address=config["contract_address"], abi=abi)

        # Get initial value
        initial_value = contract.functions.storedNumber().call()
        print("Current stored value:", initial_value)

        # Get current nonce
        nonce = web3.eth.get_transaction_count(account.address)

        # Prepare transaction
        transaction = contract.functions.setNumber(1).build_transaction(
            {"from": account.address, "nonce": nonce}
        )

        # Sign transaction
        signed_txn = web3.eth.account.sign_transaction(
            transaction, private_key=config["private_key"]
        )

        # Send transaction
        tx_hash = web3.eth.send_raw_transaction(signed_txn.raw_transaction)
        print(f"Transaction hash: {tx_hash.hex()}")

        # Wait for receipt
        receipt = web3.eth.wait_for_transaction_receipt(tx_hash)

        # Get updated value
        new_value = contract.functions.storedNumber().call()
        print("New stored value:", new_value)

        return receipt

    except Exception as error:
        print("Update failed:", error)
        raise error


if __name__ == "__main__":
    # Example usage
    import asyncio

    config = {
        "rpc_url": "INSERT_RPC_URL",
        "private_key": "INSERT_PRIVATE_KEY",
        "contract_address": "INSERT_CONTRACT_ADDRESS",
    }

    asyncio.run(update_storage(config))

运行脚本前,请替换:
    •    INSERT_RPC_URL
    •    INSERT_PRIVATE_KEY
    •    INSERT_CONTRACT_ADDRESS

执行:

python update_storage.py

以上你就完成了基本的web3.py的探索。

原文链接:https://docs.polkadot.com/smart-contracts/libraries/web3-py/

[Web3] 基础第7篇: 说透比特币的基本框架与原理 08 年的金融危机,中心金融,美元崩塌会导致全球经济崩溃,全球的国家为美国的经济买单;比特币全球流通性,资产去中心化发行,强调去中心化性和全球性,不会因为局部经济崩塌而崩溃,比特币崩溃全球经济才会崩溃;数字来取代传统金融,提高资产主权和全球性经济问题。比特币是第一个区块项目,也是目前为止去中心化程度最高,市值,受欢迎程度最高公链和数字货币,甚至已经成为全球各国央行的储备货币。Bitcoin 具备银行功能:产币的方式传统银行是中心化的,比特币产币是去中心化的,人人都可以参与的。 阅读详情

相关推荐

告别繁琐同步:Zotero与Obsidian双向联动新方案(基于Better BibTeX与MarkDBConnect)

本文详细介绍了一套基于Better BibTeX、Bibnotes Formatter和MarkDBConnect插件的Zotero与Obsidian双向联动方案。该方案通过建立智能数据通道,实现文献信息的自动同步与笔记的增量更新,解决了手动同步的繁琐问题,并支持在两大工具间无缝跳转,极大提升了科研和知识管理的工作效率。

weixin_29213827的博客 644

使用Web3.py与Polkadot Hub交互的智能合约开发指南

区块链开发中,跨链交互和多链兼容性是关键技术挑战。Web3.py作为Python生态中最成熟的以太坊交互库,通过标准JSON-RPC接口实现了与Polkadot Hub等异构区块链的互操作。这种技术组合不仅保留了以太坊智能合约的开发范式,还能利用Polkadot的跨链能力。从原理上看,Polkadot Hub通过提供EVM兼容执行环境,使开发者可以使用熟悉的Web3.py工具链进行合约部署和调用。在实际工程中,这种方案特别适用于DApp迁移、多链数据聚合等场景。通过合理配置RPC连接、优化gas策略和实现健

weixin_29161785的博客 2

打通Creo与Matlab的桥梁:Simscape Multibody Link插件安装与配置全攻略

本文详细介绍了Simscape Multibody Link插件的安装与配置全流程,旨在帮助机械工程师和开发者打通Creo与Matlab/Simulink之间的桥梁,实现CAD模型到多体动力学仿真的高效转换。文章重点解析了版本兼容性、管理员权限、注册文件配置等关键步骤与常见故障排查方法,助力用户快速建立设计与仿真一体化工作流。

rrr55的博客 634

Python查询Polkadot链上余额:Substrate-Interface实战DOT与USDT

区块链数据查询是开发者与链上交互的基础能力,通常通过JSON-RPC接口与节点通信。在Polkadot生态中,Substrate框架提供了标准化的状态存储与查询机制,而Substrate-Interface库则让Python开发者能够便捷地访问这些接口。本文从通用RPC调用概念出发,解析Substrate存储结构原理,进而演示如何利用该库连接Polkadot主网与Asset Hub系统平行链,分别读取DOT原生余额和USDT资产余额。内容涵盖SS58地址转换、System/Assets存储项的调用、精度换算

weixin_30368981的博客 215

人工智能(AI)简史:推动新时代的科技力量

人工智能(AI,Artificial Intelligence)是计算机科学的一个分支,旨在研究和开发可以模拟、扩展或增强人类智能的系统。它涉及多种技术和方法,包括机器学习、深度学习、自然语言处理(NLP)、计算机视觉、专家系统等。

qq_17153885的博客 1万+

【SLG游戏服务器开发手册】(ROK Like)沙盘地图篇一,菱形瓦片与笛卡尔坐标系的转换(附调试工具)

轴向坐标:以菱形网格对角方向为基准轴,记作(q, r)菱形瓦片宽度 w=2a,高度 h=a(宽高比2:1)

代码时光 980

高可用分布式存储架构设计及其应用

节点间维持秒级心跳,同时引入Phi accrual failure detector:当某节点心跳间隔的分布偏离历史基线超过阈值时,判定为“疑似故障”,提前触发副本状态检查,而非被动等待固定超时。同城双AZ部署,指令通道的Raft副本组跨AZ分布,AZ间RTT控制在1.5 ms以内,确保多数派写入的延迟增量可接受。这一取舍的直接后果是:同城单AZ故障时,指令通道经历约2—5 s的写入暂停,遥测通道保持可用但可能出现秒级的数据空洞,由车端缓冲补齐。,使异地副本常态化接近同步状态,压缩故障切换时的数据差距。

jcgu的专栏 157

MTK Sensor驱动调试实战:从AP到SCP的完整流程解析

本文详细解析了MTK平台Sensor驱动从AP侧到SCP侧的完整调试流程。内容涵盖AP侧驱动集成、DTS配置、内核编译与验证,以及SCP侧Tinysys框架下的代码集成、Overlay配置与I2C设置等核心步骤,并分享了中断唤醒、功耗优化及传感器数据校准等实战经验与常见问题排查方法,为硬件驱动工程师提供了一份全面的实战指南。

weixin_29175469的博客 354

期货保证金占用变多,怎样找出哪张合约增得最多?

盘中看了两次期货账户,第二次发现保证金占用多了。眼下占用最大的合约很显眼,但它不一定是这段时间增得最多的。如果复盘想知道“先查哪张”,要按前后差额排,不是按第二次的金额排。

weixin_49134609的博客 212

LED灯闪烁实验:实验介绍

每个章节都会单独进行验证工作,例如Simulink开发的应用层软件,会在Simulink-TestHarness中进行仿真,通过Scope示波器模块输出0-1交替的结果。CubeIDE集成双方的代码后,会烧写到开发板中验证是否按照定义的时间进行闪烁。ST-LINK V2是STM32开发生态系统中常用的硬件调试接口,能够连接微控制器与开发环境,实现程序的下载、调试和分析。STM32F103C8T6最小系统板是基于STM32F103C8T6微控制器的开发板,本实验会涉及使用板载的连接PC13引脚的LED灯。

u013288925的博客 457

SAP_MM&FI模块-质保金标准解决方案详解

主要讲述了SAP系统质保金的标准实现方案,包含业务背景、后台配置、前台业务操作记录,以及关键点的AI解释;

风沙的博客 685

深入理解 Leaf-Spine:从网络拓扑到 AI 数据中心 Fabric

传统数据中心网络以树形三层架构为主,但随着东西向流量激增,其层级多、路径长、扩展难等问题凸显。为此,Leaf-Spine叶脊架构应运而生,通过全互联的扁平化设计,实现多路径转发、高带宽、低时延与灵活横向扩展。结合ECMP负载分担、Underlay/Overlay分离架构及VXLAN/EVPN技术,该架构有效支撑云计算、AI训练等高密度内部通信需求。其核心价值在于:网络设计需匹配业务流量模型,强调可预测性、可靠性与可扩展性。未来,叶脊架构将持续演进,成为高性能数据中心的基石。

一名热爱技术、专注实践的工程师,拥有一项实用新型专利及一项软件著作权。曾获国家级奖项7项、省级奖项30余项。专注网络技术与 AI Infra 领域,持续探索技术创新与工程实践,记录学习成长,分享技术经验,在探索中突破,在实践中精进。 286

嵌入式数字信号处理器(DSP)高频面试题及参考答案

数字信号处理器(DSP)是一种专门设计用于执行数字信号处理任务的微处理器。它具有高度优化的架构,能够高效地执行复杂的数学运算,如快速傅里叶变换(FFT)、卷积、滤波和其他信号处理算法。DSP通常具有高速的中央处理器、专用的硬件乘法器、累加器、硬件循环支持和高速的内存访问能力,以满足实时信号处理的需求。通信:用于调制解调、语音编码、数据压缩、加密和解密。音频处理:如音乐合成、音效增强、语音识别和语音合成。视频和图像处理:包括图像压缩、视频编码、图像增强和模式识别。生物医学工程。

大模型大数据攻城狮的专栏 5268

空圈容错・优快云 站点技术架构信任链诊断

本文为基于公开故障现象的黑箱架构推演报告,聚焦“监控健康但用户访问异常”共性问题。提出C/M/V/P四层可达性分析框架,强调V层需满足数据源、方法、环境三异才具仲裁能力。通过R1–R10探针识别架构风险,揭示同源校验、配置共担、降级粗放等隐患。诊断指出:进程存活≠链路通畅,200状态码≠内容正确。配套8问自测清单与∅_safe分级降级方案,推动从“全好/全崩”到“半坏可控”的可观测跃迁。所有推断假说需依赖图谱与压测验证,不构成线上定论。

Liaiyang66的博客 382

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

期货合约还有历史K线,就表示现在还能交易吗?

打开以前保存的期货研究资料,某个合约的K线仍能正常显示,过去的价格、成交量也都在。看着熟悉的图,容易顺势觉得:既然还能看,这个合约应该仍可作为当前交易对象。但图里保存的是过去发生过什么,当前合约状态回答的是它现在处于什么生命周期。历史K线仍在,与合约已经下市可以同时成立。对研究者来说,更有用的处理不是在“继续盯它”和“删掉旧图”之间二选一,而是把历史档案与当前关注对象分开。TqSdk提供的合约下市标志,可以帮助把这层区别标明白。

weixin_49134609的博客 183

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

FPGA 与加密行业:从算法加速到可信硬件的完整技术图谱

本文系统探讨FPGA与密码学的深度交叉,揭示其在加密加速、区块链基础设施、零知识证明及后量子密码中的关键作用。从底层硬件特性到工程实践,分析对称加密、公钥算法、零知识证明等负载的FPGA加速优势,强调其高能效、低延迟与灵活可重构的特性。结合当前密码学复杂度上升与硬件竞争加剧的趋势,指出FPGA是算法验证与高性能实现的理想载体,为安全计算提供高效硬件支撑。

weixin_49780322的博客 247

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

想调用证券公司 API 做股票数据分析,Python 应该如何接入行情?

想通过证券公司 API 做股票数据分析,首先需要区分交易接口和行情接口:交易接口负责委托、撤单和账户查询,行情接口负责提供股票价格、成交量等市场数据。对于历史行情研究,真正影响结果可靠性的,不只是能否拿到收盘价,还包括复权方式、交易日期排序、字段类型以及数据完整性。如果只需要历史行情、技术指标和基础选股研究,可以先使用合适的行情数据 API。A:取决于分析目的。A:可以作为研究程序的基础,但还需要补充数据时效性检查、交易日历管理、指标有效性验证、策略回测和风险控制,不能仅凭一个均线条件直接进行实盘决策。

2601_96694965的博客 181

期货成交额变大,为什么成交手数反而少了?

比较同一期货合约两个交易日的成交情况,可能看到:成交额比前一天高,成交手数却少了。若把成交额大直接理解成“交易得更多”,这两项看起来就会互相打架。其实,金额和手数不是同一把尺子。手数描述成交数量,金额还包含成交价格及相应计量口径的影响。两者反向变化并不构成逻辑矛盾。用TqSdk整理这类观察,关键不是挑一个看起来更大的数,而是把原始量、额及各自口径留下来,回答不同的问题。

shinnyringo的博客 146

期货分钟线中间少了一段,怎么查是不是休市?

复盘一份已经保存的期货分钟线,10:14 后直接跳到 10:30,另一处却是 10:42 后跳到 10:44。屏幕上两处都没连起来,处理起来并不一样:如果当天确实在第一段休息,不用补;如果 10:43 落在交易时段里,则要回查原始记录和样本覆盖。

lisiccwss的博客 141

国内哪些平台提供比较全的金融数据接口?Python 量化开发如何选型?

国内金融数据接口众多,选型需结合量化需求,避免仅凭名气选择。以QuantDash为例,通过SDK获取前复权日K线后,必须严格校验日期排序、价格有效性及字段完整性,再进行动量计算。关键在于:数据质量决定分析可靠性,接口能力≠实际可用性,需建立数据验证流程,确保研究结果可信。

quantdash_cc的博客 251

从 NEAR Intents 事件看 NEAR 智能合约安全

2026年9月29日至10月1日,攻击者利用NEAR Intents存款退款处理中的校验缺陷,通过填充代币和恶意receiver合约触发超额退款请求,使回调失败后内部余额未被撤销,造成缺乏资产支持的可花费余额。攻击者据此从BNB Chain上的HOT Bridge金库七笔提现共转出3,865,021 USDT。项目方于10月2日部署修复、10月7日移除存款通知功能,并于同日宣布资金全额归还,后续事后报告确认受影响用户已获补偿。

BlockSec的博客 271

去哪里下载股票历史 K 线数据?Python 获取日线行情与本地保存实践

通过QuantDash SDK获取600519.SH历史日K线数据,结合pandas完成字段验证、价格逻辑检查与异常处理,确保数据完整性与一致性后,将清洗后的行情数据保存为CSV文件,并附带元信息(如复权方式、下载时间等),实现可复现、可追溯的量化数据管理。

2601_96694965的博客 233

期货委托对账,该看程序里的委托号还是交易所单号?

程序留存的期货委托号是SDK-A17,回单上却写着000542。两串号码不一样,未必是两笔委托。反过来,两张回单上都有000542,也不能只凭这个就合成一笔。对账前先分清:是要在程序里找回原单,还是要证明外部回单指向这张单?

shinnyringo的博客 153

期货期权想对照看涨和看跌,怎样挑出能配成一对的合约?

想把看涨和看跌放在一起观察,同一个行权价往往能搜出好几条。最容易认错的是标的和行权价都对,只差了到期批次的一条。两边简称看着很像,放进同一行以后,价格差却混进了不同到期条件,已经不是原来想看的那一对。

zhangnihi的博客 72

期货期权复盘,标的那张K线该怎么找?

复盘一张以前观察过的期货期权,自选里可能同时有同品种的近月、远月和主连。哪张走势最热闹,并不决定它是不是这张期权的标的。要解释那段期权记录,先找到它对应的具体期货合约,再找那张合约的图。

zhangnihi的博客 138
上一篇: Ethers.js
下一篇: Polkadot支持的双虚拟机执行栈是什么
devmoon
博客等级 码龄1年 9粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值