Python告訴你,這樣買的股票才有靈魂

什么是日內(nèi)交易
策略邏輯
策略編寫
import?time#?策略主函數(shù)
def?onTick():
????pass
?
#?程序入口
def?main():
????while?True:??#?進入無限循環(huán)模式
????????onTick()??#?執(zhí)行策略主函數(shù)
????????Sleep(1000)#?休眠1秒mp?=?on_line?=?under_line?=?0def?can_time(hour,?minute):
????hour?=?str(hour)
????minute?=?str(minute)
????if?len(minute)?==?1:
????????minute?=?"0"?+?minute
????return?int(hour?+?minute)
?
_C(exchange.SetContractType,?"MA888")??#?訂閱期貨品種
bar_arr?=?_C(exchange.GetRecords)??#?獲取K線列表
if?len(bar_arr)?10:
????return
time_new?=?bar_arr[-1]['Time']??#?獲取當根K線的時間戳
time_local_new?=?time.localtime(time_new?/?1000)??#?處理時間戳
hour_new?=?int(time.strftime("%H",?time_local_new))??#?獲取小時
minute_new?=?int(time.strftime("%M",?time_local_new))#?獲取分鐘
day_new?=?int(time.strftime("%d",?time_local_new))#?當前K線日期
time_previous?=?bar_arr[-2]['Time']??#?獲取上根K線的時間戳
previous?=?time.localtime(time_previous?/?1000)??#?處理時間戳
day_previous?=?int(time.strftime("%d",?previous))??#?上根K線日期global?mp,?on_line,?under_line??#?引入全局變量
high?=?bar_arr[-2]['High']??#?獲取上根K線的最高價
low?=?bar_arr[-2]['Low']??#?獲取上根K線的最低價
if?day_new?!=?day_previous:??#?如果是最新一根K線
????on_line?=?high?*?up?#?重置上軌
????under_line?=?low?*?down??#?重置下軌
can_trade?=?can_time(hour_new,?minute_new)
if?can_trade?930:??#?如果不是在規(guī)定交易的時間內(nèi)
????if?high?>?on_line:??#?如果上根K線最高價大于上軌
????????on_line?=?high?*?up??#?重置上軌
????if?low?#?如果上根K線最低價小于下軌
????????under_line?=?low?*?down??#?重置上軌
if?on_line?-?under_line?10:??#?如果上軌與下軌的差小于10
????returnclose_new?=?bar_arr[-1]['Close']??#?獲取最新價格(賣價),用于開平倉
#?如果持多單,并且價格小于下軌或者非規(guī)定的交易時間
if?mp?>?0?and?(close_new?or?can_trade?>?1450):
????exchange.SetDirection("closebuy")??#?設(shè)置交易方向和類型
????exchange.Sell(close_new?-?1,?1)??#?平多單
????mp?=?0??#?設(shè)置虛擬持倉的值,即空倉
#?如果持空單,并且價格大于上軌或者非規(guī)定的交易時間
if?mp?0?and?(close_new?>?on_line?or?can_trade?>?1450):
????exchange.SetDirection("closesell")??#?設(shè)置交易方向和類型
????exchange.Buy(close_new,?1)??#?平空單
????mp?=?0??#?設(shè)置虛擬持倉的值,即空倉
if?mp?==?0?and?930?1450:?#?如果當前無持倉且在交易時間內(nèi)
????if?close_new?>?on_line:??#?如果價格大于上軌
????????exchange.SetDirection("buy")??#?設(shè)置交易方向和類型
????????exchange.Buy(close_new,?1)??#?開多單
????????mp?=?1??#?設(shè)置虛擬持倉的值,即有多單
????elif?close_new?#?如果價格小于下軌
????????exchange.SetDirection("sell")??#?設(shè)置交易方向和類型
????????exchange.Sell(close_new?-?1,?1)??#?開空單
???????mp?=?-1??#?設(shè)置虛擬持倉的值,即有空單6.?完整策略代碼
#?導(dǎo)入庫
import?time
?
#?定義全局變量:虛擬持倉、上軌、下軌
mp?=?on_line?=?under_line?=?0
?
#?處理時間函數(shù)
def?can_time(hour,?minute):
????hour?=?str(hour)
????minute?=?str(minute)
????if?len(minute)?==?1:
????????minute?=?"0"?+?minute
????return?int(hour?+?minute)
?
def?onTick():
????_C(exchange.SetContractType,?"MA888")??#?訂閱期貨品種
????bar_arr?=?_C(exchange.GetRecords)??#?獲取K線列表
????if?len(bar_arr)?10:
????????return
????time_new?=?bar_arr[-1]['Time']??#?獲取當根K線的時間戳
????time_local_new?=?time.localtime(time_new?/?1000)??#?處理時間戳
????hour_new?=?int(time.strftime("%H",?time_local_new))??#?獲取小時
????minute_new?=?int(time.strftime("%M",?time_local_new))#?獲取分鐘
????day_new?=?int(time.strftime("%d",?time_local_new))#?當前K線日期
????time_previous?=?bar_arr[-2]['Time']??#?獲取上根K線的時間戳
????previous?=?time.localtime(time_previous?/?1000)??#?處理時間戳
????day_previous?=?int(time.strftime("%d",?previous))??#?上根K線日期
????global?mp,?on_line,?under_line??#?引入全局變量
????high?=?bar_arr[-2]['High']??#?獲取上根K線的最高價
????low?=?bar_arr[-2]['Low']??#?獲取上根K線的最低價
????if?day_new?!=?day_previous:??#?如果是最新一根K線
????????on_line?=?high?*?up?#?重置上軌
????????under_line?=?low?*?down??#?重置下軌
????can_trade?=?can_time(hour_new,?minute_new)
????if?can_trade?930:??#?如果不是在規(guī)定交易的時間內(nèi)
????????if?high?>?on_line:??#?如果上根K線最高價大于上軌
????????????on_line?=?high?*?up??#?重置上軌
????????if?low?#?如果上根K線最低價小于下軌
????????????under_line?=?low?*?down??#?重置上軌
????if?on_line?-?under_line?10:??#?如果上軌與下軌的差小于10
????????return
?close_new?=?bar_arr[-1]['Close']??#?獲取最新價格(賣價),用于開平倉
????#?如果持多單,并且價格小于下軌或者非規(guī)定的交易時間
????if?mp?>?0?and?(close_new?or?can_trade?>?1450):
????????exchange.SetDirection("closebuy")??#?設(shè)置交易方向和類型
????????exchange.Sell(close_new?-?1,?1)??#?平多單
????????mp?=?0??#?設(shè)置虛擬持倉的值,即空倉
????#?如果持空單,并且價格大于上軌或者非規(guī)定的交易時間
????if?mp?0?and?(close_new?>?on_line?or?can_trade?>?1450):
????????exchange.SetDirection("closesell")??#?設(shè)置交易方向和類型
????????exchange.Buy(close_new,?1)??#?平空單
????????mp?=?0??#?設(shè)置虛擬持倉的值,即空倉
????if?mp?==?0?and?930?1450:?#?如果當前無持倉且在交易時間內(nèi)
????????if?close_new?>?on_line:??#?如果價格大于上軌
????????????exchange.SetDirection("buy")??#?設(shè)置交易方向和類型
????????????exchange.Buy(close_new,?1)??#?開多單
????????????mp?=?1??#?設(shè)置虛擬持倉的值,即有多單
????????elif?close_new?#?如果價格小于下軌
????????????exchange.SetDirection("sell")??#?設(shè)置交易方向和類型
????????????exchange.Sell(close_new?-?1,?1)??#?開空單
????????????mp?=?-1??#?設(shè)置虛擬持倉的值,即有空單
??????????????
def?main():
????while?True:
????????onTick()
????????Sleep(1000)
文末贈書
推薦《商品期貨量化交易實戰(zhàn)》,送5本,
由電子工業(yè)出版社贊助。
送書規(guī)則
規(guī)則很簡單:我們每個月都會給大家送書(累計送出379多本),常來留言混臉熟的都會有機會!這次送出的是書籍,非常值得一讀。只要你堅持每日來留言打卡進精選,就會回報!名單會月底公布!
推薦閱讀:
入門:?最全的零基礎(chǔ)學(xué)Python的問題? |?零基礎(chǔ)學(xué)了8個月的Python??|?實戰(zhàn)項目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評,電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個海量小姐姐素描圖?|碟中諜這么火,我用機器學(xué)習(xí)做個迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會做詩的機器人?|?給圖片上色?|?預(yù)測收入?|?碟中諜這么火,我用機器學(xué)習(xí)做個迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水??!?|?一鍵把html網(wǎng)頁保存為pdf!|??再見PDF提取收費!?|?用90行代碼打造最強PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r機票提示器!?|60行代碼做了一個語音壁紙切換器天天看小姐姐!|
評論
圖片
表情


