您現在的位置:程序化交易>> 期貨公式>> 金字塔等>> 金字塔知識>>正文內容

portfolio對象的持倉變化問題 [金字塔]

  • 咨詢內容: def handle_bar(context):?? ? ??print('新的一天開始了')??? ? portfolio = get_portfolio(context.s1,0)#讀取portfolio? ? print('當前空頭持倉為%d'%portfolio.sell_quantity)? ? print('當前多頭持倉為%d'%portfolio.buy_quantity)? ? if close[-1]>sg[-1] and close[-2]<=sg[-2]:? ? ? ? print('符合平空開多')? ? ? ? if portfolio.sell_quantity>0:? ? ? ? ? ? print('有空頭持倉,平空')? ? ? ? ? ? buy_close(context.s1,"market", volume=portfolio.sell_quantity,serial_id = 1)#空頭平倉? ? ? ? ? ? portfolio = get_portfolio(context.s1,0)#平空之后讀portfolio? ? ? ? ? ? print('買平后空頭持倉為%d'%portfolio.sell_quantity)#輸出顯示空頭持倉已經變為0? ? ? ? if portfolio.buy_quantity == 0:? ? print('無多頭持倉,開多')?? ? ? ? ? ? buy_open(context.s1, "market", volume=1,serial_id = 2)#多頭開倉? ? ? ? ? ? portfolio = get_portfolio(context.s1,0)#開多后讀portfolio? ? ? ? ? ? print('多開后多頭持倉為%d'%portfolio.buy_quantity)#輸出顯示多頭持倉依然為零,不應該為1嗎?? ?? ? if close[-1]<xg[-1] and close[-2]>=xg[-2]:? ? ? ? if portfolio.buy_quantity>0:? ? ? ? ? ? print('有多頭持倉,平多')? ? ? ? ? ? sell_close(context.s1,"market", volume=portfolio.buy_quantity,serial_id = 3)? ? ? ? ? ? portfolio = get_portfolio(context.s1,0)? ? ? ? ? ? print('平多后多頭持倉為%d'%portfolio.buy_quantity)? ? ? ? if portfolio.sell_quantity == 0:? ? ? ? ? ? print('無空頭持倉,開空')? ?? ? ? ? ? ? sell_open(context.s1, "market", volume=1,serial_id = 4)? ? ? ? ? ? portfolio = get_portfolio(context.s1,0)? ? ? ? ? ? print('開空后空頭持倉為%d'%portfolio.sell_quantity)? ? print('當天結束了')
    def after_trading(context):? ? portfolio = get_portfolio(context.s1,0)? ? print('收盤空頭%d'%portfolio.sell_quantity)? ? print('收盤多頭%d'%portfolio.buy_quantity)#盤后顯示多頭持倉為1? ? pass
    上文是平倉反手代碼片段,在handle_bar(context)中,平倉指令發出,持倉馬上歸零,但是反手開倉指令發出后,持倉不能正確顯示,依然為零,必須要在after_trading(context)中,才能正確顯示為1.請教這是機制問題,還是我的代碼有問題?

    ?

    ?來源: CXH99.COM

  • 金字塔客服: 你是回測還是實盤運行?回測時候下單后不是立即成交的,如果你handle_bar只執行了一次,那么那一次下單后持倉是不會變化的

    ?

  • 用戶回復: 無論是回測還是實盤都不可能下單后立馬就能在持倉中體現的。 單子總有到交易所撮合交易的過程 [此貼子已經被作者于2020/11/15 19:21:57編輯過]

    ?

  • 網友回復: 我是日線級別回測,handle_bar每天執行一次。我的測試結果,如果是平倉語句,持倉馬上就會發生變化,這個似乎是虛擬持倉變化,跟是否成交沒關系。但是對于開倉語句,在之后handle_bar中任何位置GET_PORTFOLIO,都不會有持倉變化。只有在當日AFTER_TRADING方法中 GET_PORTFOLIO,持倉才會會發生變化。 所以問題一, PORTFOLIO對象中的持倉是虛擬持倉,還是實際持倉,回測和實盤有何區別? 問題二:無論是虛擬持倉還是實際持倉,開倉和平倉語句之后的持倉變化時機是不同的,如上文所述,這個我反復測試過,難以理解。

    ?

  • 網友回復: 你日線執行一次自然會有這個問題,因為你日線程序相當于只執行一次那么在執行下單動作后,馬上輸出持倉這個時候持倉是沒有變化的。這個如果實盤你應該能理解回測的話也一樣,不同于圖表策略那種回測,python這個回測他在下單瞬間是沒有持倉的

    你如果實盤的話,用固定間隔一直去執行程序,那么可能第一次執行下單,等后面幾秒后執行時候持倉就會發生變化了

 

有思路,想編寫各種指標公式,交易模型,選股公式,還原公式的朋友

可聯系技術人員 QQ: 262069696  點擊在線交流或微信號:cxh99cxh99  進行 有償收費 編寫!

怎么收費,代編流程等詳情請點擊閱讀!

(注:由于人數限制,QQ或微信請選擇方便的一個聯系我們就行,加好友時請簡單備注下您的需求,否則無法通過。謝謝您!)


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 欧美日韩亚洲二区在线| 青青草国产免费久久久91| 成人免费无码精品国产电影| 亚洲人成77777在线播放网站不卡| 精品国产三级在线观看| 国产性夜夜夜春夜夜爽| 97超级碰碰碰碰久久久久| 成年人在线播放| 五月婷婷在线播放| 永久在线免费观看| 又粗又黄又猛又爽大片免费| 91成人免费版| 国产精品香蕉在线观看| www国产亚洲精品久久久日本 | 欧美MV日韩MV国产网站| 人妻久久久一区二区三区| 美女视频黄频大全免费| 国产小呦泬泬99精品| 2022天天躁夜夜躁西| 天天狠天天透天干天天怕∴| 中文字幕日韩一区二区三区不卡 | 亚洲国产日韩在线一区| 皇上啊轻点灬大ji巴太粗太h| 国产一区二区三精品久久久无广告 | 萝li交小说合集| 国产第一页在线播放| 亚洲第一区在线| 老子影院午夜精品欧美视频| 国产日韩在线观看视频| 91精品国产乱码在线观看| 女人是男人未来1分50秒| 中文字幕日韩哦哦哦| 日韩欧美三级视频| 亚洲天堂一区二区三区四区| 神宫寺奈绪jul055在线播放| 国产一区二区三区露脸| 久久国产真实乱对白| 国产精品视频永久免费播放 | 欧美视频日韩视频| 免费午夜扒丝袜www在线看| 美女极度色诱视频国产|