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