假日没有行情,所以只能平日来做取得行情资料的工作,所以今天的文章是根据期货行情,模拟价格修改的委托策略。这边先不实作送单的作业。
参考网站:Futures
本日程序码使用:d20_change_price_by_tick.py
在trader
中新增两个function,其中一个是quote_callback(topic, quote)
,另一个是change_price(price, diff, points)
。
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.
"""
print(
f"{topic}-Price:[{quote['Close']}]rate:[{quote['DiffRate']}]volumn:[{quote['Volume']}]"
)
self.change_price(
quote["Close"], True if quote["DiffRate"][0] > 0 else False, 10
)
def change_price(self, price, diff, points):
"""Simulate to change the price of the order."""
print(
f"current price:{price[0]}-new price:{price[0]-points if diff else price[0]+points}"
)
在quote_callback
是参考文件,使用传统的做法,在主程序中使用set_quote_callback()
(下面会说明),把收到的行情资料,丢到这个function进行处理。而我们这边处理的方式是经由change_price()
进行修改价格,但这个价格是模拟修改动作,并不是真的把价格修改掉。
set_quote_callback()
:在其中用quote["DiffRate"][0]
进行判断,看变动率是正数还是负数,当为负数时,就表示False
,正数为True
,作为後续改价的依据。change_price()
:这个功能中有收到目前的价格,变动的正负号,以及点数要修改多少这三个变数,而修改价格的逻辑是,当变动为正数,表示上涨。以期货来说,有买进和卖出两个方向,假设我们的策略是:上涨时,我们买进期货,下跌时,我们卖出期货。所以当diff
为正数时,我们要用比较低的价格购买(低买高卖才会赚钱),所以就是「用现在的价格减去要变动的点数」,假设目前是16000所以就会是16000-10
,也就是15990
;反之,负数表示下跌,我们要高卖低买,所以就是16000+10
的价格去卖这期货。主要执行的程序也是有个sleeper()
,进行给30秒的时间取回报。
def sleeper():
"""进行执行绪睡觉功能,用来等待并且处理价格"""
print("-start sleep...")
time.sleep(30)
print("-Wake up!!!!")
timer = threading.Thread(target=sleeper) # 建立执行绪
t = trader()
t.login()
t.subscribe(t.api.Contracts.Futures.TXF["TXF202110"]) # 订阅台指期-2021/10
t.api.quote.set_quote_callback(t.quote_callback) # 设定处理回报的功能
timer.start() # 执行thread
timer.join() # 等待结束thread
t.unsubscribe(t.api.Contracts.Futures.TXF["TXF202110"]) # 取消订阅台指期-2021/10
其中,呼叫api.quote.set_quote_callback(function名)
的功能,把处理行情资料的功能回呼到我们的quote_callback()
中,让程序可以取得资料,并且处理。当然最後要取消订阅罗~
先做简单的修改价格,後续再继续玩更复杂的东西。
<<: Day19 PHP的常用函数-4:文件处理函数、Json
前言 JavaScript 运算子大概可以分为几大类:算数运算子、逻辑运算子、赋值运算子、比较运算子...
本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...
前言: 经过这几天的测试 我一直想让 val_accuracy 提升 但前面的方法几乎都不太管用 所...
30天的挑战就这样结束了,现在的心情怎麽有些空虚呢?? 哈哈哈,为什麽会这样呢??我想跟题目有关吧,...
为何我要写这篇 嗨,大家好(其实没人) 大部分的人应该都有追求的经验(2D,3D我都很理解),那在追...