量化交易,相較于傳統(tǒng)人為主觀投資,本質(zhì)并沒有區(qū)別。簡(jiǎn)單來說,通過程序選出合適的股票(或其他),在合適的時(shí)機(jī),發(fā)起買入或賣出的交易,從中追求盈利。

量化沒有創(chuàng)造出新的投資邏輯,也不改變市場(chǎng)的運(yùn)行和結(jié)構(gòu),但它用新的科學(xué)技術(shù)、對(duì)實(shí)現(xiàn)方法和工具進(jìn)行了創(chuàng)新——利用了數(shù)學(xué)統(tǒng)計(jì)/人工智能等方法取代人工決策。一般情況,市場(chǎng)研究、基本面分析、選股、擇時(shí)、下單等都可以由計(jì)算機(jī)自動(dòng)完成,在市場(chǎng)進(jìn)行投資。

而量化投資的核心優(yōu)勢(shì)在于:通過計(jì)算機(jī)分析挖掘因子的能力更強(qiáng),可以從低信噪比的大數(shù)據(jù)中獲取有價(jià)值的信息,可以更好量化風(fēng)險(xiǎn)及收益,決策也更為及時(shí)及客觀可靠,可以克服情緒及人為操作的局限性。

2、量化交易的市場(chǎng)

量化投資廣泛地出現(xiàn)在各種交易市場(chǎng),如股市、期貨、基金、期權(quán)、外匯、債券、比特幣、NFT等等,有資源交換需求的地方就可以量化交易。這里主要展開介紹下股票和期貨市場(chǎng)。

2.1 股市

股票市場(chǎng):是股票發(fā)行和交易的場(chǎng)所,是已經(jīng)發(fā)行的股票轉(zhuǎn)讓、買賣和流通的場(chǎng)所。股份公司通過面向社會(huì)發(fā)行股票,迅速集中大量資金,實(shí)現(xiàn)生產(chǎn)的規(guī)模經(jīng)營(yíng)。而社會(huì)資金也可以購買股份公司的股票,謀求財(cái)富的增值。

國(guó)內(nèi)股票市場(chǎng)(簡(jiǎn)稱A股)更多的是融資市場(chǎng)的角色,而不是投資市場(chǎng)。主要是為融資服務(wù),賣力IPO,穩(wěn)定地助力實(shí)體經(jīng)濟(jì)。(也難怪大A投資層面比較拉胯,畢竟市場(chǎng)的態(tài)度就在這。。)

再者,國(guó)內(nèi)市場(chǎng)上各種面的分析,諸如基本面分析、技術(shù)面、市場(chǎng)面、政策面,各種面都很好,但在我們A股都不夠(流淚吃面是大A韭菜的必備休養(yǎng)?。?。各種理論也是層出不窮,比如纏論、莊家理論、以及美股推崇的長(zhǎng)期價(jià)值理論,盡管都很有道理,但經(jīng)不住現(xiàn)實(shí)A股的打擊。

歸根結(jié)底在于,「市場(chǎng)的核心還是基于信息差,真正重要的信息你獲取不到的,可能很多還是制造烏煙瘴氣的煙霧彈。只能寄望更好的經(jīng)濟(jì)預(yù)期,以及信息披露及制度完善,打造一個(gè)更公平的市場(chǎng)吧!

那股票量化能不能賺錢?個(gè)人感覺量化會(huì)比散戶有優(yōu)勢(shì)(并不是絕對(duì)優(yōu)勢(shì))。畢竟股票量化的盈利來源和其他市場(chǎng)上的參與者,并無本質(zhì)區(qū)別,主要可以歸因成幾個(gè)部分:

一是,源于企業(yè)自身的價(jià)值和成長(zhǎng)。

能夠?qū)崿F(xiàn)這個(gè)收益可能只是A股的理想,因?yàn)楝F(xiàn)實(shí)中還是很受各種打擊的。畢竟辛苦成長(zhǎng)了那么多年,還在3000點(diǎn)徘徊。再遙望下美麗國(guó)、阿三的股市,真的格外尷尬。

二是,源于股票價(jià)格的非理性波動(dòng),并提供更準(zhǔn)確的定價(jià)。

量化的盈利基于市場(chǎng)的失效的前提下,用較低的價(jià)格買入被市場(chǎng)低估的“商品”,推動(dòng)市場(chǎng)價(jià)格達(dá)到更好的平衡在熱衷跟風(fēng)炒作的A股上面,這點(diǎn)還是有不錯(cuò)的空間的,量化可以通過大數(shù)據(jù)中挖掘更多有價(jià)值的信息,形成更為理性合理的決策。只要跑贏散戶的非理性就有一定的收益。

2.2 期貨市場(chǎng)

期貨合約(Futures contract),簡(jiǎn)稱期貨(Futures),是一種跨越時(shí)間的交易方式。買賣雙方透過簽訂合約,同意按指定的時(shí)間、價(jià)格與其他交易條件,交收指定數(shù)量的現(xiàn)貨。通常期貨集中在期貨交易所,以標(biāo)準(zhǔn)化合約進(jìn)行買賣,但亦有部分期貨合約可透過柜臺(tái)交易進(jìn)行買賣,稱為場(chǎng)外交易合約。交易的資產(chǎn)通常是商品或金融工具。期貨的品種有:

一樣的,期貨市場(chǎng)在于買賣期貨賺取差價(jià)。但與股市不同,期貨市場(chǎng)的投資操作空間更多(可以做多、做空;支持T+0交易等等),同時(shí)杠桿也更大,回撤大,風(fēng)險(xiǎn)高,風(fēng)險(xiǎn)收益可能也高。

個(gè)人的感覺,期貨是一個(gè)負(fù)和博弈市場(chǎng),贏得收益主要來自市場(chǎng)中對(duì)手的失誤,贏的只有少數(shù)信息優(yōu)勢(shì)的人??赡芷谪浉m合行業(yè)人員,需要敏銳地捕捉行業(yè)的機(jī)遇。再者通過期現(xiàn)套利對(duì)沖實(shí)業(yè)經(jīng)營(yíng)的風(fēng)險(xiǎn)也是很不錯(cuò)的手段。

3、量化交易常見策略

量化策略的方法有五花八門的,搞簡(jiǎn)單點(diǎn)可以通過基本面、技術(shù)面分析獲得一些因子進(jìn)行交易(比如股票猛漲并且近期有所收緩,利用相關(guān)指標(biāo)簡(jiǎn)單設(shè)定一個(gè) RSI大于80就拋出股票),復(fù)雜點(diǎn)還可以利用各種各樣數(shù)據(jù),結(jié)合人工智能分析預(yù)測(cè)、高頻交易什么的。

這里我按照個(gè)人不深刻的理解,如下歸類大概量化策略:

A. 多因子選股模型:用“因子”來識(shí)別股票和市場(chǎng)的特征,在因子的幫助下評(píng)估價(jià)格,買入價(jià)格偏低的,賣出價(jià)格偏高的股票。比如根據(jù)RSI設(shè)計(jì)一個(gè)反轉(zhuǎn)因子,RSI非常高,過度高漲,后面可能就容易跌。再根據(jù)過去時(shí)間T內(nèi)的加權(quán)平均漲幅設(shè)計(jì)動(dòng)量因子,通過結(jié)合多個(gè)因子做打分/回歸建模預(yù)測(cè)未來收益。

?

常見的因子有:

  1. 價(jià)值因子:市盈率、市凈率、現(xiàn)金流等財(cái)務(wù)指標(biāo)(估值低的票容易漲)
  2. 成長(zhǎng)因子:過去三年期間的凈利潤(rùn)和營(yíng)收的復(fù)合增長(zhǎng)率(高增長(zhǎng)的票容易漲)
  3. 動(dòng)量因子:過去時(shí)間T內(nèi)的加權(quán)平均漲幅(趨勢(shì)是否確立)
  4. 波動(dòng)率因子:如果股票的波動(dòng)率偏低,它后續(xù)往往會(huì)漲(市場(chǎng)風(fēng)險(xiǎn)偏好)
  5. 流動(dòng)性因子:如果股票的換手率偏低,它后續(xù)往往會(huì)漲(縮量筑底)
  6. 情緒因子:如果統(tǒng)計(jì)分析顯示,市場(chǎng)參與者普遍偏樂觀,一般會(huì)漲
  7. 資金流因子:如果大盤、板塊、個(gè)股持續(xù)有資金流入,往往會(huì)漲
  8. 板塊因子:如果一個(gè)板的熱點(diǎn)股票漲了,往往整個(gè)板塊的股票都會(huì)漲。
  9. 盤口因子:在十檔盤口上,如果買掛單比賣掛單強(qiáng)勢(shì),短期往往會(huì)漲
  10. 反轉(zhuǎn)因子,通俗地說,就是漲多了的股票可能要跌,跌多了的股票可能要漲。(來源:幻方量化18問)

?

市場(chǎng)常見的多因子模型有:

多因子模型有:

B. 價(jià)值投資策略:通過基本面分析,如市盈率、市凈率、現(xiàn)金流、凈利潤(rùn)和營(yíng)收的復(fù)合增長(zhǎng)率等財(cái)務(wù)指標(biāo),分析公司的盈利模式是否可靠,預(yù)估未來價(jià)值,在價(jià)格較低的時(shí)候考慮買入。

C. 事件驅(qū)動(dòng)策略:及時(shí)根據(jù)政策變化(貨幣政策、外匯、行業(yè)政策)、自然因素變化制定對(duì)應(yīng)策略,這個(gè)應(yīng)該是炒股、期貨必知策略。比如:當(dāng)有加息計(jì)劃,大家就會(huì)考慮把股票的錢存銀行,獲得更多無風(fēng)險(xiǎn)利益,可能要適當(dāng)減持些股票;當(dāng)有自然災(zāi)害,可能農(nóng)作物期貨價(jià)值就會(huì)上升,可以做多。

D. 對(duì)沖策略:通過投資組合的多樣化來降低市場(chǎng)風(fēng)險(xiǎn)的策略。對(duì)沖策略的核心思想是利用不同資產(chǎn)之間的價(jià)格波動(dòng)來抵消彼此的風(fēng)險(xiǎn),從而降低整體投資組合的風(fēng)險(xiǎn)。對(duì)沖策略的具體操作方式有很多種,包括配對(duì)交易、套利交易、期權(quán)交易、alpha對(duì)沖等。比如經(jīng)典的配對(duì)交易對(duì)沖策略,當(dāng)兩個(gè)合約有很強(qiáng)的相關(guān)性時(shí),可能存在相似的變動(dòng)關(guān)系,兩種合約之間的價(jià)差會(huì)維持在一定的水平上。當(dāng)市場(chǎng)出現(xiàn)變化時(shí),兩種合約之間的價(jià)差會(huì)偏離均衡水平。此時(shí),可以買入其中一份合約同時(shí)賣出其中一份合約,當(dāng)價(jià)差恢復(fù)到正常水平時(shí)平倉,獲取收益。

E. 高頻交易策略:其核心思想是利用市場(chǎng)價(jià)格的短期波動(dòng)來獲取利潤(rùn)。通過高頻數(shù)據(jù)分析和預(yù)測(cè),投資者可以快速地買入和賣出股票、期貨和其他金融產(chǎn)品,以捕捉微小的價(jià)格差異和波動(dòng)。這種策略通常依賴于高速交易系統(tǒng)和算法,以在毫秒或更短的時(shí)間內(nèi)執(zhí)行交易決策,具有較高的交易頻率和風(fēng)險(xiǎn),但同時(shí)也具有較高的潛在收益。

F. 量化擇時(shí)策略:通過分析歷史數(shù)據(jù)、市場(chǎng)趨勢(shì)、投資者情緒等因素,預(yù)測(cè)未來的市場(chǎng)走勢(shì),做為投資決策。常用的有趨勢(shì)擇時(shí)、市場(chǎng)情緒擇時(shí)、牛熊線、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、統(tǒng)計(jì)套利等方法。比如經(jīng)典的雙均線趨勢(shì)跟蹤策略,當(dāng)近短期上升趨勢(shì)比之前有所突破就可以考慮入手,反之可以考慮拋出。如下附上經(jīng)典的雙均線策略示例:

#encoding:gbk
import pandas as pd
import numpy as np
import datetime

"""
示例說明:
當(dāng)短期均線由上向下穿越長(zhǎng)期均線時(shí)做空
當(dāng)短期均線由下向上穿越長(zhǎng)期均線時(shí)做多
策略講解:https://www.myquant.cn/docs/python_strategyies/153
"""

class a():
pass
A = a() #創(chuàng)建空的類的實(shí)例 用來保存委托狀態(tài)
#ContextInfo對(duì)象在盤中每次handlebar調(diào)用前都會(huì)被深拷貝, 如果調(diào)用handlebar的分筆不是k線最后分筆 ContextInfo會(huì)被回退到深拷貝的內(nèi)容 所以ContextInfo不能用來記錄快速交易的信號(hào)

def init(C):
# 回測(cè)代碼
A.acct = '88'
A.acct_type= "STOCK"
A.stock= C.stockcode + '.' + C.market #品種為模型交易界面選擇品種
#A.acct= account #賬號(hào)為模型交易界面選擇賬號(hào)
#A.acct_type= accountType #賬號(hào)類型為模型交易界面選擇賬號(hào)
A.amount = 10000 #單筆買入金額 觸發(fā)買入信號(hào)后買入指定金額
A.line1=5 #快線周期
A.line2=20 #慢線周期
A.waiting_list = [] #未查到委托列表 存在未查到委托情況暫停后續(xù)報(bào)單 防止超單
A.buy_code = 23 if A.acct_type == 'STOCK' else 33 #買賣代碼 區(qū)分股票 與 兩融賬號(hào)
A.sell_code = 24 if A.acct_type == 'STOCK' else 34
#設(shè)置股票池 訂閱品種行情
C.set_universe([A.stock])
print(f'設(shè)置雙均線{A.line1},{A.line2}實(shí)盤示例{A.stock} {A.acct} {A.acct_type} 單筆買入金額{A.amount}')
def handlebar(C):
#跳過歷史k線
if not C.is_last_bar() : #回測(cè)
print('is last null')
return
now = datetime.datetime.now()
now_time = now.strftime('%H%M%S')

#跳過非交易時(shí)間
if now_time < '093000' or now_time > "150000":
print('非交易時(shí)間')
return
# 獲取賬戶信息
#print(get_trade_detail_data(A.acct, A.acct_type, "account"))
#print(get_trade_detail_data(A.acct, A.acct_type, "ACCOUNT"))
account = get_trade_detail_data(A.acct, A.acct_type, "account")
if len(account)==0:
print(f'賬號(hào){A.acct} 未登錄 請(qǐng)檢查')
return
account = account[0]
available_cash = int(account.m_dAvailable)
#如果有未查到委托 查詢委托
if A.waiting_list:
found_list = []
orders = get_trade_detail_data(A.acct, A.acct_type, 'order')
print('wait-orders',A.waiting_list,orders)
for order in orders:
if order.m_strRemark in A.waiting_list:
found_list.append(order.m_strRemark)
A.waiting_list = [i for i in A.waiting_list if i not in found_list]
A.waiting_list = [] #回測(cè)修改為0
if A.waiting_list:
print(f"當(dāng)前有未查到委托 {A.waiting_list} 暫停后續(xù)報(bào)單")
return
holdings = get_trade_detail_data(A.acct, A.acct_type, 'position')
#print('holdings',holdings)
holdings = {i.m_strInstrumentID + '.' + i.m_strExchangeID : i.m_nCanUseVolume for i in holdings}
#print('holdings',holdings)
####核心邏輯代碼
# 獲取行情數(shù)據(jù) 1d
data = C.get_history_data(max(A.line1, A.line2)+1, '1d', 'close',dividend_type='front_ratio')
close_list = data[A.stock]
if len(close_list) < max(A.line1, A.line2)+1:
print('行情長(zhǎng)度不足(新上市或最近有停牌) 跳過運(yùn)行')
return
pre_line1 = np.mean(close_list[-A.line1-1: -1])
pre_line2 = np.mean(close_list[-A.line2-1: -1])
current_line1 = np.mean(close_list[-A.line1:])
current_line2 = np.mean(close_list[-A.line2:])
## # 舊短大于舊長(zhǎng) 新短小于新長(zhǎng) 死叉拋;舊短小于舊長(zhǎng) 新短大于新長(zhǎng) 自下而上穿均線金叉入
#如果快線穿過慢線,則買入委托 當(dāng)前無持倉 買入
vol = int(A.amount / close_list[-1] / 100) * 100 #買入數(shù)量 向下取整到100的整數(shù)倍
if A.amount < available_cash and vol >= 100 and A.stock not in holdings and pre_line1 < pre_line2 and current_line1 > current_line2:
#下單開倉 ,參數(shù)說明可搜索PY交易函數(shù) passorder
msg = f"雙均線實(shí)盤 {A.stock} 上穿均線 買入 {vol}股"
passorder(A.buy_code, 1101, A.acct, A.stock, 14, -1, vol, '雙均線實(shí)盤', 1 , msg, C)
print(msg)
A.waiting_list.append(msg)
#如果快線下穿慢線,則賣出委托
if A.stock in holdings and holdings[A.stock] > 0 and pre_line1 > pre_line2 and current_line1 < current_line2:
msg = f"雙均線實(shí)盤 {A.stock} 下穿均線 賣出 {holdings[A.stock]}股"
passorder(A.sell_code, 1101, A.acct, A.stock, 14, -1, holdings[A.stock], '雙均線實(shí)盤', 1 , msg, C)
print(msg)
A.waiting_list.append(msg)

量化策略設(shè)計(jì)開發(fā)中,Python編程的入門并不難,前期編程只要入門夠用就行了,只有交易的思路才是始終的核心!我們除了積累交易經(jīng)驗(yàn)、學(xué)習(xí)經(jīng)典策略,還可以研究各大公司的研報(bào),學(xué)習(xí)前沿的策略設(shè)計(jì),才比較有可能跟得上市場(chǎng)。(有時(shí)找ChatGPT聊聊策略,激發(fā)些思路也是不錯(cuò)~)

特別地,對(duì)于新手而言,個(gè)人覺得先學(xué)習(xí)寫一個(gè)止盈止損策略是門必修課,先學(xué)會(huì)如何控制好風(fēng)險(xiǎn)是首要的,其次才是折騰怎么盈利。

4、完整量化交易的流程

可能很多文章講到量化策略就戛然而止,對(duì)于新手很不友好。梳理下量化主要的流程:開通證券賬號(hào)→搭建量化交易系統(tǒng)及開通實(shí)盤交易→設(shè)計(jì)量化策略→數(shù)據(jù)獲取及處理→開發(fā)策略→策略回測(cè)→調(diào)試優(yōu)化→實(shí)盤交易

入門量化其實(shí)較大的門檻是*搭建并開通好量化交易環(huán)境,然后才是開發(fā)策略代碼。*

量化交易系統(tǒng)環(huán)境的準(zhǔn)備,個(gè)人不建議在沒有較多量化經(jīng)驗(yàn)的基礎(chǔ)就從頭折騰交易系統(tǒng),諸如 編寫交易的框架(還有個(gè)折中方案,可以折騰下開源的框架)、回測(cè)框架、穿透測(cè)試、對(duì)接實(shí)盤接口及調(diào)試bugs等等的會(huì)很耗費(fèi)精力。(當(dāng)然技術(shù)過硬的有興趣折騰的人還是可以試試。)

前期,我們可以直接使用現(xiàn)成量化交易框架,現(xiàn)成的軟件可以方便 數(shù)據(jù)獲取,回測(cè)驗(yàn)證效果,交易,可以專攻量化策略的實(shí)現(xiàn)及優(yōu)化。先達(dá)成效果,再過度優(yōu)化,也會(huì)有比較有效率。

比較常用的量化交易系統(tǒng)有:云核、iquant、迅投QMT、GTrade、極智量化、文華、TB開拓者、聚寬等,這些平臺(tái)也大都支持股票、ETF、期貨、期權(quán)交易。(筆者用的是iquant,目前感覺夠用。)

實(shí)盤過程主要還是注意控制風(fēng)險(xiǎn),設(shè)定好止損及合理的倉位,開發(fā)好的策略需要梳理好邏輯以及充足的回測(cè),調(diào)試好再上實(shí)盤交易會(huì)比較穩(wěn)妥,根據(jù)實(shí)盤表現(xiàn),定期復(fù)盤,改進(jìn)交易策略,嘗試新的交易思路和方法,不斷精進(jìn)交易策略。另外的,最好將前期的資金投入控制少一點(diǎn),即使已經(jīng)過充足的回測(cè)可以盈利,但回測(cè)結(jié)果也可能是過擬合,所以實(shí)盤前期投入點(diǎn)先試試水也是很有必要的!

我個(gè)人是直接先入個(gè)幾百塊做股票量化:實(shí)盤買些便宜且穩(wěn)定的ETF股票(買一手也就100來塊),既可以手動(dòng)交易下熟悉下股票交易流程,也可以掛機(jī)跑些簡(jiǎn)單策略,晚上下班在分析下策略運(yùn)行結(jié)果,做一些調(diào)整優(yōu)化。小資金實(shí)盤交易試水,過段時(shí)間看下策略效果及市場(chǎng)行情穩(wěn)定后,再投入較大資金。個(gè)人實(shí)踐表明這樣的量化入門效率是比較高的。

文章轉(zhuǎn)自微信公眾號(hào)@算法進(jìn)階

上一篇:

圖神經(jīng)網(wǎng)絡(luò)加速綜述: 算法、系統(tǒng)和硬件

下一篇:

TimeGPT:第一個(gè)時(shí)間序列的大模型
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)