戰(zhàn)ATR指標(biāo):從原理到量化交易應(yīng)用)
1. 項(xiàng)目概述為什么ATR是交易者的“安全帶”在股票、期貨、外匯等市場(chǎng)的技術(shù)分析工具箱里指標(biāo)多如牛毛但真正能幫你“保命”的可能一只手就數(shù)得過來。平均真實(shí)波幅也就是我們常說的ATR絕對(duì)是其中之一。它不像MACD、KDJ那樣直接告訴你買賣點(diǎn)而是像一個(gè)冷靜的儀表盤實(shí)時(shí)告訴你當(dāng)前市場(chǎng)的“顛簸”程度。想象一下你開車在一條陌生的山路上ATR就是那個(gè)告訴你前方彎道有多急、路面有多滑的導(dǎo)航預(yù)警。沒有它你可能會(huì)因?yàn)橐粋€(gè)急轉(zhuǎn)彎價(jià)格劇烈波動(dòng)而失控翻車巨額虧損。這個(gè)項(xiàng)目我們就用Python親手打造這個(gè)“安全帶”。很多新手交易者沉迷于尋找“圣杯”指標(biāo)卻忽略了風(fēng)險(xiǎn)管理這個(gè)基石。ATR的核心價(jià)值恰恰在于量化風(fēng)險(xiǎn)。它能幫你動(dòng)態(tài)設(shè)置止損位、計(jì)算合理的倉位大小甚至在趨勢(shì)跟蹤系統(tǒng)中作為出場(chǎng)信號(hào)。網(wǎng)上能找到的ATR計(jì)算代碼不少但很多只是機(jī)械地套用公式?jīng)]有講清楚數(shù)據(jù)處理的坑、參數(shù)設(shè)置的邏輯以及如何將冷冰冰的數(shù)值轉(zhuǎn)化為實(shí)際的交易決策。這篇文章我會(huì)從一個(gè)有實(shí)盤經(jīng)驗(yàn)的開發(fā)者角度帶你從零實(shí)現(xiàn)ATR并深入探討如何把它用“活”。無論你是剛接觸量化分析的Python新手還是想優(yōu)化自己交易系統(tǒng)的老手都能從這里獲得可直接上手的代碼和經(jīng)過市場(chǎng)驗(yàn)證的思路。2. ATR指標(biāo)的核心原理與設(shè)計(jì)思路在動(dòng)手寫代碼之前我們必須吃透ATR到底在算什么以及為什么這么算。這決定了我們代碼的結(jié)構(gòu)和數(shù)據(jù)處理方式。2.1 真實(shí)波幅的三種情形ATR的全稱是Average True Range關(guān)鍵在于“True Range”。它衡量的是單個(gè)周期內(nèi)比如一天價(jià)格波動(dòng)的“真實(shí)”范圍。這個(gè)“真實(shí)”體現(xiàn)在它同時(shí)考慮了三種可能的情況取最大值當(dāng)日最高價(jià)與最低價(jià)之差這是最直觀的波動(dòng)范圍。當(dāng)日最高價(jià)與昨日收盤價(jià)之差的絕對(duì)值這反映了如果價(jià)格向上跳空高開波動(dòng)是從昨日收盤價(jià)開始的。當(dāng)日最低價(jià)與昨日收盤價(jià)之差的絕對(duì)值這反映了如果價(jià)格向下跳空低開波動(dòng)也是從昨日收盤價(jià)開始的。用公式表示就是True_Range max(High - Low, abs(High - Previous_Close), abs(Low - Previous_Close))為什么要取最大值為了捕捉所有的價(jià)格波動(dòng)。普通的(High - Low)會(huì)忽略跳空缺口。比如一只股票昨日收盤100元今天開盤直接漲停110元全天在110-112元之間波動(dòng)收盤111元。如果只看(112-110)2元你會(huì)覺得今天風(fēng)平浪靜。但實(shí)際上算上跳空缺口真實(shí)波動(dòng)幅度是max(2, abs(112-100), abs(110-100)) max(2, 12, 10) 12元這個(gè)10元的跳空缺口帶來的風(fēng)險(xiǎn)被完美捕捉了。這就是“真實(shí)”二字的含義。2.2 從TR到ATR平滑處理的藝術(shù)計(jì)算出每一天的True Range后我們得到的是一個(gè)波動(dòng)劇烈的序列。直接用它來判斷噪音太大。因此我們需要對(duì)它進(jìn)行平滑計(jì)算其平均值這就是Average True Range。最常用的方法是Wilder平滑法也就是指數(shù)移動(dòng)平均的一種特殊形式。它由技術(shù)分析大師威爾斯·懷爾德在其著作《New Concepts in Technical Trading Systems》中提出也是ATR指標(biāo)的發(fā)明者。其計(jì)算公式為Current_ATR [(Previous_ATR * (n-1)) Current_TR] / n其中n是平均周期常用14。這個(gè)公式等價(jià)于一個(gè)平滑因子為1/n的指數(shù)移動(dòng)平均。它的特點(diǎn)是給予歷史數(shù)據(jù)持續(xù)的權(quán)重而不是像簡(jiǎn)單移動(dòng)平均那樣舊數(shù)據(jù)在窗口外就被徹底拋棄。這使得ATR對(duì)市場(chǎng)波動(dòng)性的變化反應(yīng)既不過于敏感也不過于遲鈍。為什么常用14周期這源于懷爾德的原始設(shè)定他通過對(duì)商品市場(chǎng)的研究認(rèn)為這個(gè)周期能較好地平衡敏感性和穩(wěn)定性。在實(shí)際應(yīng)用中你可以根據(jù)交易品種和策略周期進(jìn)行調(diào)整。短線交易者可能用7或5長(zhǎng)線投資者可能用20或22。但14是一個(gè)經(jīng)過時(shí)間檢驗(yàn)的基準(zhǔn)值建議從這里開始。我們的代碼設(shè)計(jì)思路就此清晰首先我們需要能夠獲取或輸入包含OpenHigh,Low,Close列的股價(jià)數(shù)據(jù)。然后按行計(jì)算每個(gè)周期的True Range。最后對(duì)TR序列應(yīng)用Wilder平滑或其它移動(dòng)平均得到ATR。我們將構(gòu)建一個(gè)靈活的函數(shù)允許用戶自定義周期和平均方法。3. 數(shù)據(jù)準(zhǔn)備與核心計(jì)算函數(shù)實(shí)現(xiàn)理論清晰后我們進(jìn)入實(shí)戰(zhàn)環(huán)節(jié)。我將使用pandas和numpy這兩個(gè)數(shù)據(jù)分析的核心庫來完成所有計(jì)算。假設(shè)你已經(jīng)有了一個(gè)Pandas DataFrame格式的股價(jià)數(shù)據(jù)列名分別為[‘open’ ‘high’ ‘low’ ‘close’]。3.1 計(jì)算真實(shí)波幅第一步是計(jì)算True Range。這里有一個(gè)關(guān)鍵的細(xì)節(jié)處理如何計(jì)算第一個(gè)周期的Previous_Close通常我們會(huì)將第一天的TR簡(jiǎn)單地定義為High - Low因?yàn)椴淮嬖谇耙惶斓氖毡P價(jià)。在后續(xù)計(jì)算中我們?cè)偈褂谜5淖畲笾倒健mport pandas as pd import numpy as np def calculate_true_range(high, low, close): 計(jì)算真實(shí)波幅序列。 參數(shù): high: 最高價(jià)序列 low: 最低價(jià)序列 close: 收盤價(jià)序列 返回: tr: 真實(shí)波幅序列 # 將序列轉(zhuǎn)換為pandas Series以確保shift操作 high pd.Series(high) low pd.Series(low) close pd.Series(close) # 計(jì)算昨日收盤價(jià) prev_close close.shift(1) # 計(jì)算三種情況 tr1 high - low tr2 (high - prev_close).abs() tr3 (low - prev_close).abs() # 取三者最大值作為真實(shí)波幅 true_range pd.concat([tr1, tr2, tr3], axis1).max(axis1) # 處理第一個(gè)數(shù)據(jù)點(diǎn)當(dāng)prev_close為NaN時(shí)tr2和tr3也是NaNmax結(jié)果會(huì)是NaN。 # 因此將第一個(gè)點(diǎn)的TR顯式設(shè)置為當(dāng)日的(high - low) if true_range.isna().any(): true_range.iloc[0] tr1.iloc[0] return true_range注意這里使用了pd.concat和max(axis1)來一次性計(jì)算每行的最大值比用循環(huán)逐行計(jì)算效率高得多這是處理金融時(shí)間序列的常用技巧。對(duì)于第一個(gè)數(shù)據(jù)點(diǎn)的處理是必須的否則ATR序列的起點(diǎn)將是NaN導(dǎo)致后續(xù)計(jì)算全部出錯(cuò)。3.2 實(shí)現(xiàn)ATR計(jì)算Wilder平滑法接下來我們實(shí)現(xiàn)核心的ATR計(jì)算函數(shù)。我將提供兩種主流方法經(jīng)典的Wilder平滑法和更通用的指數(shù)移動(dòng)平均法并解釋其中的差異。def calculate_atr(high, low, close, period14, method‘wilder’): 計(jì)算平均真實(shí)波幅。 參數(shù): high, low, close: 價(jià)格序列 period: 平均周期默認(rèn)14 method: 平滑方法‘wilder’ 或 ‘ema’ 返回: atr: ATR值序列 # 1. 計(jì)算真實(shí)波幅 tr calculate_true_range(high, low, close) # 2. 根據(jù)選擇的方法計(jì)算ATR if method ‘wilder’: # Wilder平滑等價(jià)于 alpha 1/period 的EMA但初始值設(shè)定不同。 # 常用方法是第一個(gè)ATR值為前period個(gè)TR的簡(jiǎn)單平均值 atr tr.rolling(windowperiod, min_periodsperiod).mean() # 對(duì)于滾動(dòng)窗口之后的數(shù)據(jù)使用遞推公式: ATR (前一日ATR * (period-1) 當(dāng)日TR) / period for i in range(period, len(tr)): atr.iloc[i] (atr.iloc[i-1] * (period - 1) tr.iloc[i]) / period elif method ‘ema’: # 標(biāo)準(zhǔn)指數(shù)移動(dòng)平均平滑因子alpha2/(period1) # 同樣需要先有一個(gè)初始值通常為前period個(gè)TR的簡(jiǎn)單平均 atr tr.ewm(spanperiod, adjustFalse).mean() # 為了與Wilder法初始值一致我們可以手動(dòng)設(shè)置前period-1個(gè)值為NaN第period個(gè)值為SMA sma_initial tr.rolling(windowperiod).mean().iloc[period-1] atr.iloc[:period-1] np.nan if not pd.isna(sma_initial): atr.iloc[period-1] sma_initial else: raise ValueError(“Method must be ‘wilder’ or ‘ema’“) return atr實(shí)操心得pandas的ewm函數(shù)非常強(qiáng)大但它的默認(rèn)行為可能和交易軟件里的ATR有細(xì)微差別。大多數(shù)主流交易平臺(tái)如TradingView MetaTrader默認(rèn)采用Wilder平滑法。如果你需要確保計(jì)算結(jié)果與某個(gè)特定平臺(tái)完全一致務(wù)必使用method‘wilder’并仔細(xì)核對(duì)前period個(gè)值的計(jì)算方式。我遇到過因?yàn)槌跏贾涤?jì)算方法不同導(dǎo)致策略信號(hào)偏移一兩天的情況在回測(cè)中這是致命的。3.3 功能增強(qiáng)返回完整的DataFrame一個(gè)更工程化的做法是讓函數(shù)直接處理DataFrame并新增一列ATR方便后續(xù)分析。def add_atr_column(df, period14, method‘wilder’, high_col‘high’, low_col‘low’, close_col‘close’): 在輸入的DataFrame中增加ATR列。 參數(shù): df: 包含OHLC數(shù)據(jù)的DataFrame period, method: 同calculate_atr函數(shù) high_col, low_col, close_col: 對(duì)應(yīng)列名的字符串 返回: 增加了‘a(chǎn)tr’列的DataFrame df df.copy() # 避免修改原數(shù)據(jù) df[‘a(chǎn)tr’] calculate_atr(df[high_col], df[low_col], df[close_col], period, method) return df現(xiàn)在你只需要這樣調(diào)用df_with_atr add_atr_column(your_price_df, period14)你的數(shù)據(jù)框就會(huì)多出一列atr包含了計(jì)算好的ATR值。4. ATR在實(shí)戰(zhàn)中的應(yīng)用場(chǎng)景解析算出了ATR它只是一串?dāng)?shù)字。如何讓它產(chǎn)生價(jià)值這才是關(guān)鍵。下面分享幾個(gè)我最常用的實(shí)戰(zhàn)場(chǎng)景。4.1 動(dòng)態(tài)止損位的設(shè)置這是ATR最經(jīng)典的應(yīng)用。固定點(diǎn)數(shù)或固定百分比的止損在市場(chǎng)波動(dòng)率變化時(shí)非常被動(dòng)。ATR止損是動(dòng)態(tài)的能適應(yīng)市場(chǎng)環(huán)境。多頭倉位止損止損價(jià) 入場(chǎng)價(jià) - N * ATR空頭倉位止損止損價(jià) 入場(chǎng)價(jià) N * ATR這里的N是一個(gè)乘數(shù)通常介于1.5到3之間。比如你在股價(jià)100元時(shí)做多當(dāng)前14周期ATR是2.5元你選擇N2那么你的初始止損位就設(shè)在100 - 2 * 2.5 95元。這意味著你允許價(jià)格向你不利的方向波動(dòng)大約2個(gè)“平均波幅”單位。當(dāng)市場(chǎng)波動(dòng)加劇ATR變大你的止損空間會(huì)自動(dòng)放寬避免被正常的市場(chǎng)噪音震出局當(dāng)市場(chǎng)波動(dòng)收窄止損會(huì)收緊保護(hù)利潤(rùn)。進(jìn)階技巧移動(dòng)止損。當(dāng)股價(jià)上漲你可以用最新的最高價(jià)減去N*ATR來動(dòng)態(tài)上移止損位鎖定利潤(rùn)。這比固定的跟蹤百分比止損更科學(xué)。4.2 倉位大小管理凱利公式的搭檔倉位管理是長(zhǎng)期盈利的核心。ATR可以幫助你根據(jù)當(dāng)前市場(chǎng)的風(fēng)險(xiǎn)波動(dòng)性來調(diào)整頭寸規(guī)模。一個(gè)簡(jiǎn)單的模型是頭寸規(guī)模 賬戶總風(fēng)險(xiǎn) / N * ATR。 例如你有一個(gè)10萬元的賬戶規(guī)定單筆交易最多虧損總資金的1%即1000元。當(dāng)前股票ATR為1元你使用N2的止損。那么你每股承擔(dān)的風(fēng)險(xiǎn)是2 * 1 2元。你可以買入的股數(shù)就是1000 / 2 500股。這樣即使股價(jià)觸及止損你的損失也嚴(yán)格控制在1000元。這種方法確保了你在波動(dòng)大的市場(chǎng)ATR大中自動(dòng)減少倉位在波動(dòng)小的市場(chǎng)ATR小中增加倉位使每筆交易的風(fēng)險(xiǎn)敞口保持相對(duì)恒定。4.3 作為趨勢(shì)強(qiáng)度與市場(chǎng)情緒的過濾器ATR的絕對(duì)值大小和其方向變化本身也蘊(yùn)含信息。ATR值飆升往往伴隨著重要新聞發(fā)布、財(cái)報(bào)、或趨勢(shì)的加速階段市場(chǎng)情緒激動(dòng)。此時(shí)趨勢(shì)策略可能表現(xiàn)良好但反轉(zhuǎn)策略和均值回歸策略應(yīng)格外小心。ATR值持續(xù)走低市場(chǎng)處于低波動(dòng)盤整期多空力量均衡。此時(shí)趨勢(shì)策略容易反復(fù)挨打而區(qū)間交易、期權(quán)賣方策略可能更合適。ATR與價(jià)格背離在上漲趨勢(shì)中如果價(jià)格不斷創(chuàng)出新高但ATR卻開始下降這可能意味著推動(dòng)價(jià)格上漲的動(dòng)力在減弱趨勢(shì)可能接近尾聲。反之亦然。你可以將ATR作為一個(gè)過濾器加入到你的策略中。例如只在ATR高于其過去50日均線時(shí)表明市場(chǎng)有波動(dòng)性才執(zhí)行趨勢(shì)跟蹤信號(hào)以此過濾掉盤整行情中的假信號(hào)。5. 完整項(xiàng)目示例構(gòu)建一個(gè)ATR通道策略讓我們把上面的知識(shí)整合起來用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的“ATR通道突破”策略并進(jìn)行可視化。這個(gè)策略邏輯是當(dāng)價(jià)格上穿“過去N日的最高價(jià) M * ATR”時(shí)視為波動(dòng)性突破做多下穿“過去N日的最低價(jià) - M * ATR”時(shí)做空。import yfinance as yf # 用于獲取數(shù)據(jù)需安裝: pip install yfinance import matplotlib.pyplot as plt # 1. 獲取數(shù)據(jù) ticker ‘AAPL’ data yf.download(ticker, start‘2023-01-01’, end‘2024-01-01’) data data[[‘Open’ ‘High’ ‘Low’ ‘Close’ ‘Volume’]] # 選取OHLCV # 2. 計(jì)算ATR (使用我們之前寫的函數(shù)) data add_atr_column(data, period14, high_col‘High’ low_col‘Low’ close_col‘Close’) # 3. 計(jì)算上下通道 lookback 20 # 觀察過去20天的最高最低 multiplier 1.5 # ATR乘數(shù) data[‘upper_band’] data[‘High’].rolling(windowlookback).max() multiplier * data[‘a(chǎn)tr’] data[‘lower_band’] data[‘Low’].rolling(windowlookback).min() - multiplier * data[‘a(chǎn)tr’] # 4. 生成交易信號(hào) data[‘signal’] 0 # 當(dāng)收盤價(jià)上穿上軌產(chǎn)生買入信號(hào)(1) data.loc[data[‘Close’] data[‘upper_band’].shift(1) ‘signal’] 1 # 當(dāng)收盤價(jià)下穿下軌產(chǎn)生賣出信號(hào)(-1) data.loc[data[‘Close’] data[‘lower_band’].shift(1) ‘signal’] -1 # 為了簡(jiǎn)化我們假設(shè)信號(hào)發(fā)出后次日開盤價(jià)入場(chǎng) data[‘position’] data[‘signal’].shift(1) # 5. 計(jì)算策略收益 (簡(jiǎn)單起見不考慮手續(xù)費(fèi)和滑點(diǎn)) data[‘returns’] data[‘Close’].pct_change() data[‘strategy_returns’] data[‘position’] * data[‘returns’] # 6. 可視化 fig (ax1, ax2) plt.subplots(2, 1, figsize(14, 10) sharexTrue, gridspec_kw{‘height_ratios’: [3, 1]}) # 子圖1: 價(jià)格和通道 ax1.plot(data.index, data[‘Close’] label‘Close Price’ linewidth1) ax1.plot(data.index, data[‘upper_band’] label‘Upper Band (High 1.5*ATR)’ linestyle‘--’ color‘red’ alpha0.7) ax1.plot(data.index, data[‘lower_band’] label‘Lower Band (Low - 1.5*ATR)’ linestyle‘--’ color‘green’ alpha0.7) ax1.fill_between(data.index, data[‘upper_band’] data[‘lower_band’] color‘gray’ alpha0.1) # 標(biāo)記買賣點(diǎn) buy_signals data[data[‘signal’] 1] sell_signals data[data[‘signal’] -1] ax1.scatter(buy_signals.index, buy_signals[‘Close’] marker‘^’ color‘g’ s100, label‘Buy Signal’ zorder5) ax1.scatter(sell_signals.index, sell_signals[‘Close’] marker‘v’ color‘r’ s100, label‘Sell Signal’ zorder5) ax1.set_ylabel(‘Price’) ax1.set_title(f‘{ticker} - ATR Channel Breakout Strategy’) ax1.legend() ax1.grid(True, alpha0.3) # 子圖2: ATR值 ax2.plot(data.index, data[‘a(chǎn)tr’] label‘ATR (14)’ color‘purple’ linewidth1) ax2.set_ylabel(‘ATR’) ax2.set_xlabel(‘Date’) ax2.legend() ax2.grid(True, alpha0.3) plt.tight_layout() plt.show() # 7. 打印簡(jiǎn)要績(jī)效 cumulative_returns (1 data[‘strategy_returns’]).dropna().cumprod() final_return cumulative_returns.iloc[-1] - 1 print(f“策略累計(jì)收益率 {final_return:.2%}”)這個(gè)示例展示了從數(shù)據(jù)獲取、指標(biāo)計(jì)算、策略邏輯到可視化的完整流程。你可以調(diào)整lookback和multiplier參數(shù)來優(yōu)化策略或者加入更多的過濾條件比如結(jié)合趨勢(shì)指標(biāo)。6. 常見問題、坑點(diǎn)與優(yōu)化技巧在實(shí)際使用中你肯定會(huì)遇到一些問題。以下是我踩過坑后總結(jié)的經(jīng)驗(yàn)。6.1 數(shù)據(jù)質(zhì)量與預(yù)處理問題計(jì)算出的ATR出現(xiàn)異常值或NaN。排查首先檢查源數(shù)據(jù)是否有缺失值、停牌日數(shù)據(jù)價(jià)格不變或異常價(jià)格如為0或負(fù)數(shù)。使用data.isnull().sum()和data.describe()快速查看。解決對(duì)于缺失值可以用前向填充ffill()或直接刪除dropna()但需理解其對(duì)連續(xù)計(jì)算指標(biāo)的影響。對(duì)于停牌日最好保留但ATR值會(huì)很低這是合理的。問題我的ATR值和財(cái)經(jīng)網(wǎng)站/交易軟件對(duì)不上。排查這是最常見的問題。99%的原因出在兩點(diǎn)1)初始值計(jì)算方法2)平均方法。解決初始值確認(rèn)對(duì)方是用前period個(gè)TR的簡(jiǎn)單平均SMA作為第一個(gè)ATR值還是用第一個(gè)TR值我們代碼采用的是SMA這是最普遍的做法。平均方法確認(rèn)對(duì)方用的是Wilder平滑還是EMA。用我們的代碼分別計(jì)算兩種方法進(jìn)行對(duì)比??梢哉乙欢我阎Y(jié)果的數(shù)據(jù)比如軟件導(dǎo)出的ATR值進(jìn)行單元測(cè)試精確調(diào)試你的函數(shù)。6.2 參數(shù)選擇與過擬合問題period和止損乘數(shù)N到底設(shè)多少心得沒有“最好”的參數(shù)只有“最適合”當(dāng)前市場(chǎng)和策略的參數(shù)。避免過度優(yōu)化。建議period從14開始。如果想更敏感試試7或5想更平滑試試20或22??梢栽诓煌贩N如大盤股、小盤股、期貨、外匯上測(cè)試其穩(wěn)定性。止損乘數(shù)N1.5到3是常見范圍。一個(gè)實(shí)用的方法是回測(cè)統(tǒng)計(jì)歷史上你的策略觸發(fā)止損后價(jià)格又回到原方向的比例。如果比例過高說明止損太緊應(yīng)增大N如果比例過低說明止損太松應(yīng)減小N。目標(biāo)是找到一個(gè)平衡點(diǎn)。6.3 性能優(yōu)化當(dāng)處理大量股票或高頻數(shù)據(jù)時(shí)循環(huán)計(jì)算可能成為瓶頸。技巧盡量使用pandas和numpy的向量化操作避免Python層面的for循環(huán)。我們上面計(jì)算TR和ATRWilder法除外的代碼已經(jīng)是向量化的。對(duì)于Wilder法的遞推部分如果數(shù)據(jù)量極大可以考慮用numba進(jìn)行加速或者尋找向量化近似方法盡管不完全精確。示例可以使用pandas的apply結(jié)合自定義函數(shù)但要注意其效率通常低于內(nèi)置的向量化方法。6.4 在量化框架中的集成如果你使用backtraderzipline或qstrader等量化回測(cè)框架通常都有內(nèi)置的ATR指標(biāo)。但理解其源碼和我們的手動(dòng)實(shí)現(xiàn)是相通的。在框架中調(diào)用時(shí)同樣要注意參數(shù)特別是method的設(shè)定是否與你的策略邏輯匹配。我個(gè)人習(xí)慣是對(duì)于核心指標(biāo)即使框架有提供我也會(huì)自己實(shí)現(xiàn)一個(gè)版本用于驗(yàn)證和理解。這能讓你在策略出現(xiàn)問題時(shí)更快地定位是指標(biāo)計(jì)算錯(cuò)誤還是策略邏輯錯(cuò)誤。最后記住ATR是一個(gè)描述“波動(dòng)性”的工具而非直接的“方向性”指標(biāo)。它最好的用法是作為你現(xiàn)有交易系統(tǒng)的風(fēng)險(xiǎn)管理和倉位管理模塊為你的決策提供一個(gè)客觀的、量化的風(fēng)險(xiǎn)尺度。把它和你的趨勢(shì)判斷、進(jìn)出場(chǎng)信號(hào)結(jié)合起來你的交易系統(tǒng)才會(huì)更加穩(wěn)健。