PendleAsset 类

模拟 Pendle 中的资产,如 stETH。

  • initial_price 是资产当前的市场价格,比如 stETH 的价格是 $1000。
  • annual_yield 是资产的年化收益率,比如 stETH 的质押收益是 5%。
  • calculate_future_yield 方法计算未来一年的收益($1000 × 5% = $50)。

PendleTransaction 类

  • 模拟用户对 YT 的操作:选择 持有 YT 或 卖出 YT。
  • yt_market_price 是当前市场上 YT 的价格,比如 $45。
  • hold_yt 模拟持有 YT 到期后获取的收益($50)。
  • sell_yt 模拟立即卖出 YT,获取当前市场价格的现金流($45)。 运行逻辑

如果你选择持有 YT,到期后获得 $50。 如果你选择卖出 YT,现在获得 $45。

运行结果

假设 stETH 当前价格为 $1000,年化收益率为 5%,YT 市场价格为 $45:

  • 持有 YT 到期后,你将获得未来收益:$50
  • 立即卖出 YT,你可以获得即时收益:$45

总结

  • 持有 YT 更适合想要等待收益到期的用户(收益更高)。
  • 卖出 YT 适合需要立即现金流的用户(收益更快)。

‘‘‘python

class PendleAsset:
    def __init__(self, initial_price, annual_yield):
        """
        初始化 Pendle 资产
        :param initial_price: 资产当前的市场价格
        :param annual_yield: 资产的年化收益率 (如5% = 0.05)
        """
        self.initial_price = initial_price
        self.annual_yield = annual_yield
        self.future_yield = self.calculate_future_yield()

    def calculate_future_yield(self, years=1):
        """
        计算未来的收益
        :param years: 时间跨度(默认1年)
        :return: 未来收益的总金额
        """
        return self.initial_price * self.annual_yield * years

class PendleTransaction:
    def __init__(self, asset, yt_market_price):
        """
        初始化交易
        :param asset: PendleAsset 对象
        :param yt_market_price: 当前 YT 的市场价格
        """
        self.asset = asset
        self.yt_market_price = yt_market_price

    def hold_yt(self):
        """
        持有 YT 直至到期
        :return: 最终收益金额
        """
        return self.asset.future_yield

    def sell_yt(self):
        """
        卖出 YT
        :return: 即时收益金额
        """
        return self.yt_market_price

# 示例使用
# 初始化一个 Pendle 资产(假设 1 stETH,价格 $1000,年化收益率 5%)
steth = PendleAsset(initial_price=1000, annual_yield=0.05)

# 当前 YT 的市场价格为 $45
yt_market_price = 45

# 初始化交易
transaction = PendleTransaction(asset=steth, yt_market_price=yt_market_price)

# 持有 YT 的收益
hold_yt_earnings = transaction.hold_yt()
print(f"持有 YT 到期后,你将获得未来收益:${hold_yt_earnings}")

# 卖出 YT 的收益
sell_yt_earnings = transaction.sell_yt()
print(f"立即卖出 YT,你可以获得即时收益:${sell_yt_earnings}")

’’’