Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - alt

#1
中文 (Chinese) / Re: 关于BTS的应用推广
September 14, 2026, 04:21:40 AM
说的是BTS的推广,BTSBots 只是把BTS的数据从难以使用的区块链数据库中,包装了一层易用的 websocket 接口。
让用户更容易更方便获得即时的区块链数据,以及安全的签发数据。

相对 websocket 服务,python 和 btsbots-service 也是客户端,是有私钥的客户端,是用户的银行管理系统。

btsbots-market和 btsbots-wallet,通过app或者web访问,也是客户端,是没有私钥的客户端,是用户的操盘终端或者信用卡。

oauth只是对私钥签名数据的转发和应用。

btsbots在中间的作用只是提供数据的流转。

任何人想做BTS推广或者应用,拿到这些数据,包装成自己的app就可以了。

互联网最关键的基础,身份认证和支付,BTS都是解决的最完美的。不拿来作应用就可惜了。

做买卖的,无论线上还是线下,可以接入BTS支付。做网站的,可以接入BTS身份认证。
有应用了,可以生成邀请码给朋友注册账号。有支付空间了,可以熟人互助解决法币充提的问题。
虚拟币网关或者邀请注册自带盈利属性,差的只是开头第一步。
以前的人气其实就够启动的了,可惜快凉透了。
#2
中文 (Chinese) / 关于BTS的应用推广
September 12, 2026, 02:24:14 AM
BTS这么多年不好推广的原因之一是没有一个好的前端,使用不太方便。
BTSBots通过数据的整合重构,实现了一套高效的基于 websocket 接口的架构。
既保留了区块链的高安全性,又提供了很高的易用性。

有兴趣推广BTS的朋友可以试用一下,利用BTSBots来推广BTS的使用。
BTSBots在其中所有环节没占有任何私利,比如推荐码注册,所有分红是100%属于推广人的。

另外BTSBots承诺在社区成熟后,会开源所有后端代码。
目前开放的3部分前端代码,任何人可以完全重构包装成自己的APP。
#3
Announcements / Re: DFS主网开放公告
September 12, 2026, 02:05:50 AM
我去,都跌成屎了还在搞内耗。
没看出来这个fork有任何价值。
BTS的区块链已经很成熟很完美了,仍然领先同行几十年。
需要的是业务是应用,是网关是流水。
一起做应用推广是王道,搞分裂是死路一条。
#4
中文 (Chinese) / BTSBots增加AI交易agent
September 10, 2026, 04:10:27 AM
https://github.com/pch957/btsbots/blob/main/TradeBots.md
BTSBots增加AI交易agent
demo.btsbots在 XBTSX.USDT/BTS 市场测试,使用的 gemini-3.5-flash-lite 模型

  • 正在连接 Meteor 节点: wss://ws.btsbots.com/websocket
    🔌[DDP 协议] 连接已激活。
    🔑[等待登陆] 未登陆,等待认证...
    ✓ [BotsKey] 从 pass 成功载入账号 [demo.btsbots] 及其关联的 2 把 Key。
    ✓ [BotsClient] 登录成功!
    🔄 [配置更新] 成功载入策略 [ai_agent]: 基于 Google AI Studio (Gemini 2.0) / OpenAI 的全自主量化交易 Agent (支持吃单与做
    市)

    🚀 [TradeBots] 机器人引擎就绪!策略: [ai_agent] | 监听账户: [demo.btsbots]

    ======================================================================
    📊 [BTSBots AI Agent] 负责市场历史成交统计与盈亏看板 (PnL Dashboard)
    ======================================================================
    • 负责市场范围: [('BTS', 'XBTSX.USDT'), ('XBTSX.USDT', 'BTS')]
    • 撮合成交总笔数: 16 笔
    • 累计成交换手额: 449.86 CNY
    • 累计法币净盈亏: 🔴 -5.47 CNY
    • 各代币累计净流动明细:
        └─ BTS       : -34678.5170 (公允折合: -349.65 CNY)
        └─ XBTSX.USDT: +51.8450 (公允折合: +344.17 CNY)
    ======================================================================

    💓 [Pulse] 区块 #114230048 | 2026-09-10 13:52:48
    🧠 [AI Agent 思考分析] [区块 #114230049]
       └─ 补齐BTS市场做市挂单
       🛡️ [风控拦截] 严重警告: 报价 0.00157960 偏离公允价 0.00151879 超过 2.0% 红线 -> 自动修正到安全区间

    📡 [触发 AI 决策] [区块 #114230049] 原因: 检测到有充足余额的市场缺失挂单 ['BTS/XBTSX.USDT'],强制唤醒 AI 建立流动
    性


    # 🤖 BTSBots TradeBots 开发者与量化策略指南

    `TradeBots` 是专为 BitShares(比特股)DEX 量化交易与做市设计的 Python 自动化交易框架。它深度集成了 Meteor DDP 实时数据流、BitShares 原生高效订单修改操作(OP 77,无需撤单即可直改价格与数量)以及零信任密钥管理。

    ---

    ## 🚀 快速上手

    ### 启动量化与 AI Agent 策略机器人

    ```bash
    # 1. 启动 AI 自主交易 Agent 机器人 (支持 Google AI Studio / OpenAI / DeepSeek / Ollama)
    GEMINI_API_KEY="AIzaSy..." uv run trade_bots_ai.py --pass btsbots/my_account --strategy ai_agent

    # 2. 启动简单法定做市策略 (SimpleMaker)
    uv run trade_bots.py --pass btsbots/my_account --strategy simple

    # 3. 启动动态自适应多档网格策略 (DynamicGrid - 震荡收割机)
    uv run trade_bots_grid.py --pass btsbots/my_account --strategy grid

    # 4. 启动通用 N 环路原子无损套利策略 (UniversalArbitrage - 负对数图算法)
    uv run trade_bots_arbitrage.py --pass btsbots/my_account --strategy arbitrage

    # 5. 启动布林带均值回归做市策略 (BollingerMeanReversion)
    uv run trade_bots_bollinger.py --pass btsbots/my_account --strategy bollinger
    ```

    ---

    ## 🧠 AI 自主交易 Agent (`trade_bots_ai.py`)

    `AITradingAgent` 将大语言模型(LLM)与去中心化区块链高频交易引擎深度结合,为 AI 提供 360° 结构化全景市场决策上下文,并由底层的零信任硬风控护栏(Guardrails)确保每一笔链上操作的安全合规。

    ### 1. 核心架构与决策流

    ```text
           ┌────────────────────────────────────────────────────────┐
           │               Meteor DDP 实时行情与成交流               │
           └───────────────────────────┬────────────────────────────┘
                                       │
           ┌───────────────────────────▼────────────────────────────┐
           │            360° 全景市场上下文构建器 (Context)           │
           │  • 负责市场资产画像、余额与持仓上限 (Max Holding CNY)  │
           │  • Top 5 盘口深度、微观流动性与单价物理单位 (Price Unit)│
           │  • 历史成交记录与法定 CNY 实时盈亏看板 (PnL Tracker)   │
           │  • 市场双向缺口与在单残缺度诊断 (Coverage & Health)    │
           │  • 动态库存倾斜加价指导 (Dynamic Inventory Skew)       │
           └───────────────────────────┬────────────────────────────┘
                                       │ JSON 提示词
           ┌───────────────────────────▼────────────────────────────┐
           │               主流 LLM 决策推理引擎                    │
           │     (Gemini 2.0 / GPT-4o / DeepSeek / Ollama)          │
           └───────────────────────────┬────────────────────────────┘
                                       │ 输出 JSON 意向 (Intents)
           ┌───────────────────────────▼────────────────────────────┐
           │             🛡️ 零信任硬风控护栏 (Guardrails)            │
           │  • 市场范围锁 (Market Scoping Guard: 彻底隔离无关市场) │
           │  • 法币下单额度硬截断熔断 (target_order_cny Cap)        │
           │  • 最大持仓上限拦截 (max_holding_cny)                  │
           │  • 双向价差保底锁 (Anti Self-Match: 严禁平价自成交)    │
           │  • 冗余重复挂单自动清理撤单                            │
           └───────────────────────────┬────────────────────────────┘
                                       │ 原子打包提交
           ┌───────────────────────────▼────────────────────────────┐
           │         BitShares 区块链原生广播 (OP 77 / OP 1)        │
           └────────────────────────────────────────────────────────┘
    ```

    ### 2. AI Agent 五大核心技术优势
    - **免费 Google AI Studio 原生支持**:使用 `gemini-2.0-flash` 模型,高吞吐低延迟,免去高昂 API 费用。
    - **智能自主门控与静默心跳(Gating & Pulse Heartbeat)**:仅在发生缺单、在单被吃超 50%、价格变动等实质信号时才唤醒 AI;平稳时终端保持单行脉冲心跳,绝不刷屏。
    - **动态库存倾斜(Dynamic Inventory Skew)**:越接近设定的资产持仓上限,买入挂单价格向下偏离折价越多;未设上限则视为无上限。
    - **多资产法定盈亏看板(PnL Dashboard)**:启动即自动汇总结算负责市场的撮合成交笔数、累计换手额与净盈亏。
    - **单价物理单位防混淆**:明确区分 `A/B` 市场单价单位为 `B per 1 A`,彻底避免买卖单数值颠倒错单。

    ---

    ## 📊 经典交易策略与数学原理

    ### 1. 简单法定做市 (`SimpleMaker` / `trade_bots.py`)
    - **场景**:日常做市、提供双向流动性。
    - **原理**:基于资产的法定公允价格(或自定义锚定比率)计算理论中间价,向上加价 `maker_spread%` 挂单,同时设置严格的 Maker 防吃单保护。

    ### 2. 动态多档网格策略 (`DynamicGrid` / `trade_bots_grid.py`)
    - **场景**:宽幅震荡行情。
    - **原理**:自适应盘口中间价 $P_{\text{mid}} = \frac{P_{\text{ask1}} + P_{\text{bid1}}}{2}$ 作为中轴,按等比步长铺设 $N$ 档网格,买卖双向严格受 Maker 边界保护(买单不高过卖一,卖单不低过买一),利用 **OP 77 动态平移网格档位**。

    ### 3. 通用 $N$ 环路原子无损套利 (`UniversalArbitrage` / `trade_bots_arbitrage.py`)
    - **场景**:跨币种环路价差套利(自动发现 2 环、3 环、4 环机会)。
    - **负对数图算法优化**:
      $$\prod_{i=1}^k P_i > 1 \iff \sum_{i=1}^k -\ln(P_i) < 0$$
      将各市场的最优兑换汇率转换为有向图边权重 $-\ln(P)$,通过**负权环路探测算法**在毫秒级内自动寻优。
    - **原子事务**:将整个闭环的 $N$ 笔操作打包在同一个区块链 Transaction 内原子提交,零滑点零单边风险。

    ### 4. 布林带均值回归做市 (`BollingerMeanReversion` / `trade_bots_bollinger.py`)
    - **场景**:波动率扩张与均值回归行情。
    - **原理**:实时统计滑动采样均线(MA)与标准差 $\sigma$,在上轨超买区与下轨超卖区挂单做市,赚取波动率收缩利润。

    ---

    ## ⚙️ 配置文件说明 (`trade_rules.json` / `trade_rules-example.json`)

    ```json
    {
      "strategies": {
        "ai_agent": {
          "strategy_name": "AITradingAgent",
          "description": "基于 Google AI Studio / OpenAI 的全自主量化交易 Agent",
          "block_delay": 1.0,
          "keep_bts_fees": 30.0,
          "max_holding_cny": {
            "XBTSX.USDT": 2000.0,
            "CNY": 5000.0,
            "BTS": 10000.0
          },
          "ai_agent": {
            "provider": "gemini",
            "model": "gemini-2.0-flash",
            "api_base": "https://generativelanguage.googleapis.com/v1beta/openai/",
            "api_key": "YOUR_GEMINI_API_KEY",
            "max_price_deviation_pct": 15.0,
            "min_maker_spread_pct": 1.5
          },
          "custom_price": { "CNY": [13.597625854, "BTS"] },
          "default": { "target_order_cny": 50.0 },
          "markets": [["BTS", "CNY"], ["BTS", "XBTSX.USDT"]]
        },
        "simple": {
          "strategy_name": "SimpleMaker",
          "description": "基于公允法定价值 (CNY) 的简单做市策略",
          "block_delay": 1.0,
          "keep_bts_fees": 20.0,
          "custom_price": { "CNY": [16.0, "BTS"] },
          "default": { "freq": 2, "maker_spread": 1.5, "target_order_cny": 50.0 },
          "markets": [["BTS", "CNY"], ["BTS", "USD"]]
        },
        "grid": {
          "strategy_name": "DynamicGrid",
          "description": "多档动态等比网格策略",
          "block_delay": 1.0,
          "keep_bts_fees": 20.0,
          "custom_price": { "CNY": [16.0, "BTS"], "USD": [7.0, "CNY"] },
          "default": {
            "freq": 2,
            "grid_levels": 3,
            "grid_step_pct": 1.2,
            "target_order_cny_per_grid": 30.0
          },
          "markets": [["BTS", "CNY"], ["BTS", "USD"]]
        },
        "arbitrage": {
          "strategy_name": "UniversalArbitrage",
          "description": "通用 N 环路原子无损套利策略",
          "block_delay": 0.5,
          "keep_bts_fees": 30.0,
          "min_profit_pct": 0.5,
          "trade_amount_cny": 100.0,
          "max_cycle_length": 4,
          "markets": [["BTS", "CNY"], ["BTS", "USD"], ["CNY", "USD"]]
        },
        "bollinger": {
          "strategy_name": "BollingerMeanReversion",
          "description": "布林带均值回归做市策略",
          "block_delay": 1.0,
          "keep_bts_fees": 20.0,
          "custom_price": { "CNY": [16.0, "BTS"] },
          "default": { "freq": 2, "window_size": 20, "k_std": 2.0, "target_order_cny": 50.0 },
          "markets": [["BTS", "CNY"], ["BTS", "USD"]]
        }
      }
    }
    ```

    ---

    ## 🛠️ 二次开发指南

    ### 1. 核心数据查询 API

    | 接口名称 | 参数 | 返回值 | 说明 |
    | :--- | :--- | :--- | :--- |
    | `self.get_price(asset)` | `asset: str` | `float` | 获取资产公允定价(支持 `custom_price` 链式锚定换算) |
    | `self.get_free_balance(asset)` | `asset: str` | `float` | 获取资产可用余额(若为 BTS 已自动扣除保留的手续费) |
    | `self.get_total_balance(asset)` | `asset: str` | `float` | 获取资产总持仓(空闲余额 + 在单资产) |
    | `self.get_my_orders(sell, recv)`| `sell, recv: Optional[str]` | `List[dict]` | 获取当前账号在指定方向上的有效挂单(已清洗 order_id) |
    | `self.get_market_orders(sell, recv)` | `sell, recv: str` | `List[dict]` | 获取市场上除自身以外的盘口深度订单列表(按单价升序) |
    | `self.calculate_market_pnl(markets)` | `markets: Optional
      ` | `dict` | 统计指定市场的成交笔数、换手额及法定净盈亏 |
      | `self.get_order_by_id(order_id)` | `order_id: str` | `Optional[dict]` | 根据订单 ID 检索订单完整详情 |
      | `self.is_chain_synced()` | 无 | `Tuple[bool, delay, ts]`| 检查区块链时钟是否正常同步(30 秒容差) |

      ---

      ### 2. 极简订单意向提交接口 (`apply_order_intents`)

      #### ① 取消订单 (`cancel`)
      ```python
      {"action": "cancel", "order_id": "1.7.573627825", "reason": "清理冗余订单"}
      ```

      #### ② 修改订单 (`update` - 原生 OP 77,极简入参)
      ```python
      # 仅需传入 order_id 与期望的目标新值,底层自动计算 Delta 与在单基数
      {"action": "update", "order_id": "1.7.573174054", "price": 0.0754, "amount": 1000.0}

      # 或仅改价格:
      {"action": "update", "order_id": "1.7.573174054", "price": 0.0754}

      # 或仅改数量:
      {"action": "update", "order_id": "1.7.573174054", "amount": 1000.0}
      ```

      #### ③ 新建挂单 (`create`)
      ```python
      {
          "action": "create",
          "sell_asset": "BTS",
          "receive_asset": "CNY",
          "amount": 500.0,
          "price": 0.0754,
          "reason": "初始流动性挂单"
      }
      ```

      ---

      ### 3. 自定义策略完整编写范例

      ```python
      import asyncio
      from typing import List, Dict, Any, Optional
      from btsbots.tradebots import TradeBots

      class MyCustomBot(TradeBots):
          async def calculate_strategy(self, block_num: int) -> Optional
    [List[Dict[str, Any]]]:
            intents = []
           
            for (a_s, a_b), m_cfg in self.markets_config.items():
                freq = int(m_cfg.get("freq", 1))
                if (block_num % freq) != 0:
                    continue

                p_s = self.get_price(a_s)
                p_b = self.get_price(a_b)
                if p_s <= 0 or p_b <= 0:
                    continue

                fair_price = p_s / p_b
                spread_pct = float(m_cfg.get("maker_spread", 1.5)) / 100.0
                target_price = fair_price * (1.0 + spread_pct)

                target_cny = float(m_cfg.get("target_order_cny", 50.0))
                target_amount = target_cny / p_s

                my_orders = self.get_my_orders(a_s, a_b)
                if my_orders:
                    primary = my_orders[0]
                    curr_p = float(primary.get("p", 0.0))
                   
                    # 偏离超过 0.5% 则极简更新订单
                    if abs(curr_p - target_price) / target_price > 0.005:
                        intents.append({
                            "action": "update",
                            "order_id": primary["order_id"],
                            "price": target_price,
                            "amount": target_amount,
                            "reason": "跟随行情调价"
                        })
                else:
                    free_b = self.get_free_balance(a_s)
                    if free_b >= (target_amount * 0.1):
                        intents.append({
                            "action": "create",
                            "sell_asset": a_s,
                            "receive_asset": a_b,
                            "amount": min(free_b, target_amount),
                            "price": target_price,
                            "reason": "初始做市挂单"
                        })

            return intents if intents else None

    async def main():
        bot = MyCustomBot(config_path="trade_rules.json", strategy_name="simple")
        try:
            await bot.run()
            while True:
                await asyncio.sleep(1)
        finally:
            await bot.close()

    if __name__ == "__main__":
        asyncio.run(main())
    ```
#5
https://github.com/pch957/btsbots/blob/main/TradeBots.md

🤖 BTSBots TradeBots 开发者与量化策略指南

TradeBots 是专为 BitShares(比特股)DEX 量化交易与做市设计的 Python 自动化交易框架。它深度集成了 Meteor DDP 实时数据流、BitShares 原生高效订单修改操作(OP 77,无需撤单即可直改价格与数量)以及零信任密钥管理。
🚀 快速上手
启动内置量化策略机器人

# 1. 简单法定做市策略 (SimpleMaker)
uv run trade_bots.py --pass btsbots/my_account --strategy simple

# 2. 动态自适应多档网格策略 (DynamicGrid - 震荡收割机)
uv run trade_bots_grid.py --pass btsbots/my_account --strategy grid

# 3. 通用 N 环路原子无损套利策略 (UniversalArbitrage - 负对数图算法)
uv run trade_bots_arbitrage.py --pass btsbots/my_account --strategy arbitrage

# 4. 布林带均值回归做市策略 (BollingerMeanReversion)
uv run trade_bots_bollinger.py --pass btsbots/my_account --strategy bollinger

📊 经典交易策略与数学原理
1. 简单法定做市 (SimpleMaker / trade_bots.py)

    场景:日常做市、提供双向流动性。
    原理:基于资产的法定公允价格(或自定义锚定比率)计算理论中间价,向上加价 maker_spread% 挂单,同时设置严格的 Maker 防吃单保护。

2. 动态多档网格策略 (DynamicGrid / trade_bots_grid.py)

    场景:宽幅震荡行情。
    原理:自适应盘口中间价 P mid = P ask1 + P bid1 2 作为中轴,按等比步长铺设 N 档网格,买卖双向严格受 Maker 边界保护(买单不高过卖一,卖单不低过买一),利用 OP 77 动态平移网格档位。

3. 通用 N 环路原子无损套利 (UniversalArbitrage / trade_bots_arbitrage.py)

    场景:跨币种环路价差套利(自动发现 2 环、3 环、4 环机会)。
    负对数图算法优化: ∏ i = 1 k P i > 1 ⟺ ∑ i = 1 k − ln ⁡ ( P i ) < 0 将各市场的最优兑换汇率转换为有向图边权重 − ln ⁡ ( P ) ,通过负权环路探测算法在毫秒级内自动寻优。
    原子事务:将整个闭环的 N 笔操作打包在同一个区块链 Transaction 内原子提交,零滑点零单边风险。

4. 布林带均值回归做市 (BollingerMeanReversion / trade_bots_bollinger.py)

    场景:波动率扩张与均值回归行情。
    原理:实时统计滑动采样均线(MA)与标准差 σ ,在上轨超买区与下轨超卖区挂单做市,赚取波动率收缩利润。

⚙️ 配置文件说明 (trade_rules.json)

{
  "strategies": {
    "simple": {
      "strategy_name": "SimpleMaker",
      "description": "基于公允法定价值 (CNY) 的简单做市策略",
      "block_delay": 1.0,
      "keep_bts_fees": 20.0,
      "custom_price": { "CNY": [16.0, "BTS"] },
      "default": { "freq": 2, "maker_spread": 1.5, "target_order_cny": 50.0 },
      "markets": [["BTS", "CNY"], ["BTS", "USD"]]
    },
    "grid": {
      "strategy_name": "DynamicGrid",
      "description": "多档动态等比网格策略",
      "block_delay": 1.0,
      "keep_bts_fees": 20.0,
      "custom_price": { "CNY": [16.0, "BTS"], "USD": [7.0, "CNY"] },
      "default": {
        "freq": 2,
        "grid_levels": 3,
        "grid_step_pct": 1.2,
        "target_order_cny_per_grid": 30.0
      },
      "markets": [["BTS", "CNY"], ["BTS", "USD"]]
    },
    "arbitrage": {
      "strategy_name": "UniversalArbitrage",
      "description": "通用 N 环路原子无损套利策略",
      "block_delay": 0.5,
      "keep_bts_fees": 30.0,
      "min_profit_pct": 0.5,
      "trade_amount_cny": 100.0,
      "max_cycle_length": 4,
      "markets": [["BTS", "CNY"], ["BTS", "USD"], ["CNY", "USD"]]
    },
    "bollinger": {
      "strategy_name": "BollingerMeanReversion",
      "description": "布林带均值回归做市策略",
      "block_delay": 1.0,
      "keep_bts_fees": 20.0,
      "custom_price": { "CNY": [16.0, "BTS"] },
      "default": { "freq": 2, "window_size": 20, "k_std": 2.0, "target_order_cny": 50.0 },
      "markets": [["BTS", "CNY"], ["BTS", "USD"]]
    }
  }
}

🛠️ 二次开发指南
1. 核心数据查询 API
接口名称    参数    返回值    说明
self.get_price(asset)    asset: str    float    获取资产公允定价(支持 custom_price 链式锚定换算)
self.get_free_balance(asset)    asset: str    float    获取资产可用余额(若为 BTS 已自动扣除保留的手续费)
self.get_total_balance(asset)    asset: str    float    获取资产总持仓(空闲余额 + 在单资产)
self.get_my_orders(sell, recv)    sell, recv: Optional[str]    List[dict]    获取当前账号在指定方向上的有效挂单(已清洗 order_id)
self.get_market_orders(sell, recv)    sell, recv: str    List[dict]    获取市场上除自身以外的盘口深度订单列表(按单价升序)
self.get_order_by_id(order_id)    order_id: str    Optional[dict]    根据订单 ID 检索订单完整详情
self.is_chain_synced()    无    Tuple[bool, delay, ts]    检查区块链时钟是否正常同步(30 秒容差)
2. 极简订单意向提交接口 (apply_order_intents)
① 取消订单 (cancel)

{"action": "cancel", "order_id": "1.7.573627825", "reason": "清理冗余订单"}

② 修改订单 (update - 原生 OP 77,极简入参)

# 仅需传入 order_id 与期望的目标新值,底层自动计算 Delta 与在单基数
{"action": "update", "order_id": "1.7.573174054", "price": 0.0754, "amount": 1000.0}

# 或仅改价格:
{"action": "update", "order_id": "1.7.573174054", "price": 0.0754}

# 或仅改数量:
{"action": "update", "order_id": "1.7.573174054", "amount": 1000.0}

③ 新建挂单 (create)

{
    "action": "create",
    "sell_asset": "BTS",
    "receive_asset": "CNY",
    "amount": 500.0,
    "price": 0.0754,
    "reason": "初始流动性挂单"
}

3. 自定义策略完整编写范例

import asyncio
from typing import List, Dict, Any, Optional
from btsbots.tradebots import TradeBots

class MyCustomBot(TradeBots):
    async def calculate_strategy(self, block_num: int) -> Optional[List[Dict[str, Any]]]:
        intents = []
       
        for (a_s, a_b), m_cfg in self.markets_config.items():
            freq = int(m_cfg.get("freq", 1))
            if (block_num % freq) != 0:
                continue

            p_s = self.get_price(a_s)
            p_b = self.get_price(a_b)
            if p_s <= 0 or p_b <= 0:
                continue

            fair_price = p_s / p_b
            spread_pct = float(m_cfg.get("maker_spread", 1.5)) / 100.0
            target_price = fair_price * (1.0 + spread_pct)

            target_cny = float(m_cfg.get("target_order_cny", 50.0))
            target_amount = target_cny / p_s

            my_orders = self.get_my_orders(a_s, a_b)
            if my_orders:
                primary = my_orders[0]
                curr_p = float(primary.get("p", 0.0))
               
                # 偏离超过 0.5% 则极简更新订单
                if abs(curr_p - target_price) / target_price > 0.005:
                    intents.append({
                        "action": "update",
                        "order_id": primary["order_id"],
                        "price": target_price,
                        "amount": target_amount,
                        "reason": "跟随行情调价"
                    })
            else:
                free_b = self.get_free_balance(a_s)
                if free_b >= (target_amount * 0.1):
                    intents.append({
                        "action": "create",
                        "sell_asset": a_s,
                        "receive_asset": a_b,
                        "amount": min(free_b, target_amount),
                        "price": target_price,
                        "reason": "初始做市挂单"
                    })

        return intents if intents else None

async def main():
    bot = MyCustomBot(config_path="trade_rules.json", strategy_name="simple")
    try:
        await bot.run()
        while True:
            await asyncio.sleep(1)
    finally:
        await bot.close()

if __name__ == "__main__":
    asyncio.run(main())
#6
Btsbots发布windows版本app和签名网关
不会装 python 的可以用这个代替,也是冷钱包的安全性,密钥不上网。

https://github.com/pch957/btsbots-service/releases/tag/v0.0.1
https://github.com/pch957/btsbots-frontend/releases
#8
接下来很快会实现网页钱包的邀请码管理功能,以及领取分红功能。

认同Bitshares,不离不弃的朋友们,可以动起来了。
全套服务都打通了,你们还在等什么?
邀请码注册后,所有的推荐费100%属于你自己。
BTSBots除了做信息中转站,不会贪图任何利益。
客观上也断绝了任何可能侵犯客户利益的权力。
你的签名服务就是你全权掌控的中央银行。
每个人可以轻松拥有自己专属的Bitshares银行、身份认证、交易平台。

从支付、到登录认证,至今仍是信息社会每个人躲不开的障碍,
Bitshares完全有能力解决这些问题,也必然会解决。
这是Bitshares实实在在的价值,你们看到了吗?
#9
btsbots python端新增推荐码和小额支付功能
详细内容参考 github 说明文档
https://github.com/pch957/btsbots

章节二:sign_bots 网关风控策略与"联名信用卡"银行模式

为了让您的主私钥永远不暴露在网页端,同时满足多样化的日常转账与交易需求,btsbots 的签名网关 (sign_bots.py) 提供了一套企业级的零信任风控策略引擎。

您可以将这套系统类比为**"自己当中央银行,给家人、小孩或不同设备发放联名信用卡"**:主私钥锁在您最安全的保险箱(主服务器或本地 PC)里,而给不同的手机、平板或分身设备赋予不同的"额度与权限"。
🛡️ 风控策略能实现哪些功能?

    设备权限隔离(Device Aliasing):不同的设备拥有截然不同的操作特权(如交易平板只能挂单撤单,核心钱包才能大额转账)。
    大额白名单转账(Unlimited Payments):只有授权的高级设备,才能向官方或受信的白名单收款账户(如交易所、固定的商业伙伴)发起大额转账。
    小额微支付与"联名信用卡"银行模式(Micro Payments & PIN):您可以给家人或小孩的手机设置小额联名卡权限,限制单笔、天累计、周累计上限。当小额支付触发安全阈值时,网关会要求在 App 弹窗输入 PIN 码 验证,输入正确即刻安全放行!
    防对倒刷单与价格偏离保护(Volatility Protection):自动比对历史滑动窗口的成交价格,防止手抖或网页被劫持产生恶意低卖高买。

3. 社区裂变与邀请码注册功能(含 BitShares 激励机制)
💡 BitShares 推荐人与分红激励机制介绍

比特股(BitShares)底层区块链拥有非常独特的原生裂变与推荐激励机制:

    当您作为**推荐人(Registrar / Referrer)**在链上为新用户注册账号时,新用户后续在比特股 DEX 进行交易所产生的所有交易手续费(Trading Fees),系统都会按照设定的比例(如 100%)自动返还给推荐人账号!
    此外,通过 btsbots 的邀请码系统,不仅能帮朋友享受最低费率的极速注册,还能让您建立属于自己的 Web3 社区推广飞轮,躺赚长期的链上生态红利。

🛠️ 如何操作:

    步骤 1:生成邀请码 运行邀请码管理工具为自己生成一个专属邀请码:

    uv run invitation_tool.py --action generate --pass btsbots/my_account

    查看名下所有邀请码的使用状态:

    uv run invitation_tool.py --action list --pass btsbots/my_account

    步骤 2:朋友使用邀请码注册账号 您的朋友拿到邀请码后,只需在本地运行注册引导工具:

    uv run registre_account.py --invite BTS-XXXX

        程序会引导朋友输入符合 BitShares 规范的最低费率用户名。
        自动在本地安全生成私钥对并提交至您的 sign_bots 网关。
        您的守护进程自动审核并代为在链上广播注册,同时将您设为推荐人和注册人。
        注册成功后,朋友的电脑上会生成专属凭证文件,引导其直接启动守护并登录 App!

#10
中文 (Chinese) / Re: 发布 BTSBots 客户端
September 01, 2026, 09:25:52 AM
Quote from: finn-bts on September 01, 2026, 09:20:59 AM
没有注册入口啊?怎么登陆?
https://btsbots.com/docs/user_manual.html
不用注册。先下载 python 客户端,用私钥登陆,自动生成 otp,用 otp 在 web 或者 app 登陆。
#11
中文 (Chinese) / Re: 发布 BTSBots 客户端
September 01, 2026, 08:59:15 AM
Quote from: finn-bts on September 01, 2026, 07:42:02 AM
看起来很不错 但是与之前的应用有什么本质的差别吗?
之前的就是个玩具。
这个安全性超过华尔街资本的冷钱包,交易体验超过币安,支付体验超过微信,加上OAuth授权的体验超过谷歌。
#12
中文 (Chinese) / 发布 BTSBots 客户端
September 01, 2026, 04:18:35 AM
https://github.com/pch957/btsbots-frontend

BTSBots 客户端发布 v0.1 版本。

包含 linux 桌面和安卓手机客户端。
一个钱包,一个交易平台。

使用文档和开发文档,参考文章中心:
https://btsbots.com/docs/index.html
#13
https://link.coolguy.vip
本站使用著名的网址收藏开源项目 linkding 搭建。
认证系统基于标准的 nginx auth_request 模块。
使用 BTSBots 的OAuth 代理 biz_proxy 接入。
所有BTS账号免注册,免密码,一键登入。

biz_proxy 位于 btsbots 的 python 客户端,除了 nginx,所有网站都能通过它轻松接入 BTS 账号系统。
#14
欢迎来到 https://coolguy.vip 选购你喜欢的域名和邮箱!
现在3折出售中,一个域名只要300BTS!
免注册,使用BTSBots OAuth 扫码登陆,使用 BTSBots 支付网关快捷支付!
支付完成,域名和邮箱实时生效,投入使用!

关于 BTSBots的OAuth和支付网关接入的文档,正在整理中。
#15
论坛的朋友们,我已经找到了BTS的崛起之路。
有兴趣的朋友请密切关注BTSBots项目
接下去我会一步步给出答案
请大家拭目以待
这次的终点绝不是什么虚拟币泡沫,而是彻底发掘出BTS真实的价值,让所有人都知道什么是BTS。