YT in Pendle
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}")
’’’