咨詢內(nèi)容:
能否給stop order 觸發(fā)后生成的market order加一個(gè)stoporderid的屬性?
@資深技術(shù)02
主要還是之前咱們說過很多次的問題。我需要用stop order止損,并且根據(jù)觸發(fā)狀態(tài)在on_order()里后續(xù)操作。且我有若干個(gè)不同策略在同一個(gè)合約上跑,所以我需要知道成交的單子是哪個(gè)策略發(fā)出的。
按照你的第一個(gè)建議我可以掛單的時(shí)候用一個(gè)List把orderid存起來,成交的時(shí)候再比對(duì)即可。但是由于我掛的是stop order,最后觸發(fā)的是market order,所以這樣做匹配不上。。
根據(jù)你后來的的建議自己用timer寫stop order,但是我用了一段時(shí)間發(fā)現(xiàn)這樣我不好track我所有的掛單。解決這個(gè)問題我還要再自己建立一個(gè)文檔,把所有沒成交的訂單記錄下來。遠(yuǎn)不如直接用你們的stoporder,我直接在賬戶窗口就一目了然可以看到所有訂單。
所以你們?nèi)绻茉谛掳姹景裮arket order新加一個(gè)stoporderid的property(如果這個(gè)market order是由stoporder 觸發(fā)生成的),這樣我直接用第一種方法就可以完全滿足我的需求,不用再自己寫很多還容易出bug。不知是否可行?
?
?來源: www.tumamayizhan.com
金字塔資深技術(shù):
這個(gè)功能不好做啊,訂單id是報(bào)出去后收到的,對(duì)于沒有報(bào)單情況下怎么能知道id是多少呢??
我們后面想想看如何在沒有報(bào)單情況下獲得這個(gè)訂單id
技術(shù)交流:資深技術(shù)02 發(fā)表于 2022-1-24 14:11
這個(gè)功能不好做啊,訂單id是報(bào)出去后收到的,對(duì)于沒有報(bào)單情況下怎么能知道id是多少呢??
我們后面想想 ...
emm..我是這么想的哈:
我發(fā)出一個(gè)stop order
stoporderid = buy_open(price,volume, "stop")
這個(gè)Stoporderid是你們本地的一個(gè)隊(duì)列的序號(hào)。
然后當(dāng)最新成交價(jià)格超過price的時(shí)候,系統(tǒng)應(yīng)該是立刻發(fā)出一個(gè)market order。那么做這個(gè)操作的時(shí)候就順帶把stoporderid保存到這個(gè)order object里就可以了把。之后這個(gè)market order的狀態(tài)每次改變我都可以把這個(gè)stoporderid讀取出來,就能知道是哪個(gè)策略發(fā)出的了。
這樣理解有沒有什么問題?我之前用vnpy這個(gè)功能就是有的。
?
技術(shù)交流:
也可能我想當(dāng)然了。。
反正現(xiàn)在是用第二種辦法,然后我是創(chuàng)建了一個(gè)json file,每次掛單我就寫入這個(gè)文件,成交了再讀取刪除。之前說的老卡住的bug好像就是這個(gè)功能導(dǎo)致的。。但我現(xiàn)在也沒查出bug在哪。。。所以要是有這個(gè)功我就太方便了