【D28】熟练一下厨具-bid and ask #3:制作台指选择权价差单

前言

现在有资料可以制定选择权的价差单,甚至可以用tick提供最即时的价格,进行组合,制作出我们的即时价差单。

本日程序码使用:d28_spread.py


取得预设值:snapshot

首先先取得预设值,这样每更新一次tick,就可以组成当下的价差单,因此新增:set_init_spread_price()

def set_init_spread_price(self, left_leg, right_leg):
    """Get the two legs' price which is the call option spread."""

    option1 = self.api.snapshots(left_leg)
    option2 = self.api.snapshots(right_leg)

    self.lef_leg_price = option1[0]["sell_price"]
    self.right_leg_price = option2[0]["buy_price"]

其中lef_leg_price是指卖方的那只脚,相反的买方那只就是right_leg_price,这样就可以用snapshot取得当下的预设值,也就可以拿去下单罗。

根据tick,组成即时价差单

当然我们可以即时取得商品行情,并且随着行情计算出当下的获利情况,这时使用quote_callback并改写:

def quote_callback(self, topic: str, quote: dict):
    """Get the quote info and change the oder price.
    The quote's format is v0: quote is a dict and the value is a list.
    """

    if topic.find("16300") > 0:
        self.lef_leg_price = quote["AskPrice"][0]  # 取得ask的第一个值
    elif topic.find("16350") > 0:
        self.right_leg_price = quote["BidPrice"][0]  # 取得bid的第一个值

    print(
         f"价差组合:16300-sell={self.lef_leg_price}_16350-buy={self.right_leg_price}_diff={self.lef_leg_price-self.right_leg_price}"
    )

这印出的资料就表示我们组成的价差单,以及他的获利情况:

价差组合:16300-sell=202.0_16350-buy=158.0_diff=44.0
价差组合:16300-sell=202.0_16350-buy=158.0_diff=44.0
价差组合:16300-sell=202.0_16350-buy=158.0_diff=44.0

这便可以看到我们卖方收取的点数为202,而买方付出的点数为158,中间的最大获利就是会44点。当然亏损就是2500元(还要加上手续费和税金)


<<:  Day27 NodeJS实作 I

>>:  Day30 - 总结

Day 1 — GAS 能闻吗?

引言 大家好,我是 CXPhoenix ,你可以叫我 Phoenix ,或是凤黄酥,平时都是在学校服...

R语言-视觉化- 世界地图( map in r.studio )

废话不多说,直接附上code 影片含有程序码详细解说,若有误再烦请告知,谢谢 资料下载处 libra...

Day 6 - 颜色设定

和其它 CSS 框架一样,Tailwind 也内建颜色,但它不像 Bootstrap 就给那几组,...

Angular视觉化套件(Day19)

当我们初步了解Angular的框架後,接着我要介绍一套视觉化套件-ZingChart ZingCha...

Day19-Vue Router 路由设定(part2)

巢状路由 在原先的router-view中再放一个router-view。 接续前一个案例,User...