文章
问答
讲堂
百科图谱
线下集训
更多
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
讲堂
线下集训
专栏
活动
工作
文档
集市
搜索
登录/注册
50
univ3 如何计算卖出或者买入一定数量币后的价格会变成多少
回答问题即可获得
5
贡献值,回答被采纳后即可获得
50
学分。
univ3 如何计算卖出或者买入一定数量币后的 价格会变成多少?
univ3 如何计算卖出或者买入一定数量币后的 价格会变成多少?
0 条评论
分类:
Uniswap
请先
登录
后评论
默认排序
时间排序
1 个回答
Charm
- 学生
2023-04-30 17:01
按照uni3公式写的代码,你试试 ``import math q96 = 2**96 icp = 10**8 def price_to_tick(p): return math.floor(math.log(p, 1.0001)) def price_to_sqrtp(p): return int(math.sqrt(p) * q96) def sqrtp_to_price(sqrtp): return (sqrtp / q96) ** 2 def tick_to_sqrtp(t): return int((1.0001 ** (t / 2)) * q96) def liquidity0(amount, pa, pb): if pa > pb: pa, pb = pb, pa return (amount * (pa * pb) / q96) / (pb - pa) def liquidity1(amount, pa, pb): if pa > pb: pa, pb = pb, pa return amount * q96 / (pb - pa) def calc_amount0(liq, pa, pb): if pa > pb: pa, pb = pb, pa return int(liq * q96 * (pb - pa) / pb / pa) def calc_amount1(liq, pa, pb): if pa > pb: pa, pb = pb, pa return int(liq * (pb - pa) / q96) liq=115619824967 sqrtp_cur=12401388481691991086552029889 amount_in = 1 * icp price_diff = (amount_in * q96) // liq price_next = sqrtp_cur + price_diff print("Now price:", (sqrtp_cur / q96) ** 2) print("Now tick:", price_to_tick((sqrtp_cur / q96) ** 2)) print("New price:", (price_next / q96) ** 2) print("New sqrtP:", price_next) print("New tick:", price_to_tick((price_next / q96) ** 2)) amount_in = calc_amount1(liq, price_next, sqrtp_cur) amount_out = calc_amount0(liq, price_next, sqrtp_cur) print("sns1 in:", amount_in / icp) print("icp out:", (amount_out / icp))`
请先
登录
后评论
您需要登录后才可以回答问题,
登录
关注
1
关注
收藏
0
收藏,
1470
浏览
提出于 2023-04-30 13:41
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: