python股票自动买卖视频教程_十分钟学会用Python交易股票
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
本文通過(guò)講述 [單股票均線策略] 在 Ricequant 量化平臺(tái)的實(shí)現(xiàn),熟悉平臺(tái)并快速入門(mén)、創(chuàng)建自己的量化策略代碼 。難易度:入門(mén)級(jí).從一下幾點(diǎn)說(shuō)起;
1 確定框架:
[單股票均線策略] 的主要策略框架: 5 日均線高于 30 天均線,則全倉(cāng)買(mǎi)入股票 5 日均線低于 30 天均線,則賣(mài)出所持股票
從我們?nèi)粘=灰椎慕嵌?#xff0c;一般交易者的行為可以拆分以下兩部分:
1 選擇標(biāo)的(初始化):
在交易之前,我們通常會(huì)先選定要交易的股票池或者單個(gè)股票
2 交易(每天盯盤(pán))
我們會(huì)觀察該股票的五日均線和 30 日均線,并進(jìn)行比較如果該股票的五日均線在 30 天均線以上,則全倉(cāng)買(mǎi)入股票如果該股票的五日均線在 30 天均線以下,則全倉(cāng)賣(mài)出(空倉(cāng))
那么程序中,我們是怎么做的呢?
先看看 Ricequant 平臺(tái)中對(duì)應(yīng)的代碼框架會(huì)是怎么樣的吧:
def init(context):#程序的初始化,預(yù)設(shè)股票池、設(shè)置參數(shù)和變量。 只運(yùn)行一次def handle(context, bar_dict):#從回測(cè)的開(kāi)始日期至結(jié)束日期,根據(jù)選擇的頻率(日、分鐘)循環(huán)運(yùn)行
對(duì)照策略思路 及 Ricequant 代碼框架,你會(huì)發(fā)現(xiàn)我們可以很輕松地把 兩者結(jié)合起來(lái)
以上框架也是 Ricequant 平臺(tái)的最基本也最主要的框架,也就是
初始化
循環(huán) - 根據(jù)選擇的頻率(日、分鐘)循環(huán)運(yùn)行
2 初始化:
選擇標(biāo)的:本策略的交易股票設(shè)定為 300059 ”東方財(cái)富“。
def init(context): context.stock = "300059.XSHE" # 存入目標(biāo)股票 [東方財(cái)富 ]
延伸閱讀:
1 在 init 中實(shí)現(xiàn)程序的初始化,例如存入目標(biāo)股票池,設(shè)置滑點(diǎn)、基準(zhǔn)等參數(shù)以及設(shè)置其它變量。 context 是一個(gè)全局的容器,你可以通過(guò)它設(shè)置任何全局變量并初始化:如 context.stock 將會(huì)在后面代碼所被調(diào)用到。
2 代碼中 # 代表注釋,作為代碼說(shuō)明,執(zhí)行時(shí)會(huì)被跳過(guò)而不為程序所運(yùn)行。
3 如何填寫(xiě)股票代碼:你會(huì)發(fā)現(xiàn)策略代碼中 股票代碼后帶有后綴,那么它們分別代表什么呢?
后綴為
XSHE 代表在深交所上市交易的股票
XSHG 在上交所上市交易的股票
3 獲取均價(jià):
我們分別獲取該股票 5 日和 30 日的均價(jià)
# 用法:變量 = bar_dict[股票代碼].mavg(天數(shù), frequency='day')# 獲取近五日股票收盤(pán)價(jià)均價(jià),命名為 fast fast = bar_dict[context.stock].mavg(5, frequency='day')# 同上,獲取近二十日的收盤(pán)價(jià)均價(jià),命名為 slow : slow = bar_dict[context.stock].mavg(30, frequency='day')4 判斷買(mǎi)賣(mài)條件:
獲得均價(jià)數(shù)據(jù)之后,我們就可以進(jìn)行一個(gè)判斷決定是否買(mǎi)賣(mài)了:
if fast>slow: # 若快線在慢線之上則用所有現(xiàn)金買(mǎi)入該股票 #買(mǎi)入操作 elif fast
在判斷之前,我們還漏了一步,那是什么呢?就是要知道我們有多少現(xiàn)金,那么在程序中是如何獲得現(xiàn)金的呢?我們使用以下代碼
# 用法:變量 = context.portfolio.cashcash = context.portfolio.cash #取得當(dāng)前的現(xiàn)金量,命名為 cash
延伸閱讀: portfolio 中 包含所有的投資組合的信息,請(qǐng)參考文檔 - Portfolio 對(duì)象
5 買(mǎi)入 /賣(mài)出:
在判定買(mǎi)賣(mài)的條件成立之后,我們會(huì)對(duì)股票進(jìn)行買(mǎi)入或者賣(mài)出的操作:
#用法 order_value(股票代碼,買(mǎi)賣(mài)金額) 金額為正則為買(mǎi)入,負(fù)數(shù)則為賣(mài)出#將所有現(xiàn)金買(mǎi)入 300059 東方財(cái)富order_value(context.stock, cash) #用法: order_target_value(股票代碼,目標(biāo)持倉(cāng)比例) 比例在 1 與 0 之間#此處將持倉(cāng)比例調(diào)整為 0 ,則等同于全部賣(mài)出order_target_percent(context.stock, 0)
6 策略回測(cè)
以上,我們用幾行代碼就把策略的框架完整地搭建起來(lái)了,最終的完整代碼為:
def init(context): #初始化 context.stock = "300059.XSHE" #存入要交易的股票代碼def handle_bar(context, bar_dict): #每日循環(huán)運(yùn)行 #獲取 30 日均線 slow = bar_dict[context.stock].mavg(30, frequency='day') #獲取 5 日均線 fast = bar_dict[context.stock].mavg(5, frequency='day') cash = context.portfolio.cash #獲取持有現(xiàn)金金額 if fast>slow: #判定買(mǎi)入條件 order_value(context.stock, cash) #買(mǎi)入目標(biāo)股票 elif fast
寫(xiě)完了策略,那么我們接下去做什么呢? 先對(duì)我們的策略進(jìn)行一次歷史回測(cè),看看它的歷史表現(xiàn)是如何吧。
在策略編輯頁(yè)面右上方,選擇從 2015 年 1 月 4 日至 2016 年 10 月 4 日,用資金 100 萬(wàn)元進(jìn)行日回測(cè)吧,請(qǐng)點(diǎn)擊 運(yùn)行回測(cè)。
python簡(jiǎn)單易學(xué),使用python研究股票更是得心應(yīng)手。
總結(jié)
以上是生活随笔為你收集整理的python股票自动买卖视频教程_十分钟学会用Python交易股票的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: photoshop怎么设计网页(ps网页
- 下一篇: linux开机脚本自启动(linux开机