
この戦略は,指数移動平均と取引量加重に基づく多要素定量化戦略である.指数移動平均と取引量加重の2つの要因を組み合わせて,主に定量化取引を実現する.この戦略は,価格傾向,取引量情報と最新の価格情報を総合的に考慮し,市場機会を効果的に捕捉することができる.
この戦略の核心指標はnResで,指数移動平均xMAVolPrice,取引量指数移動平均xMAVol,最新の閉店価格を組み合わせ,次の式で計算する.
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
このうち,xMAVolPriceは,収束価格と取引量に掛けられた指数移動平均であり,価格と取引量に関する総合的な情報を反映している.xMAVolは,取引量のみの指数移動平均であり,nResは,調整された価格情報を反映した2つの指数移動平均の比値である.
この戦略は,nResと最新の閉盘価格の大きさの関係を判断して,多空方向を決定する.
if (nRes < close[1])
做多
if (nRes > close[1])
做空
nResが最新の閉店価格より小さい場合,取引量調整後の価格が最新の価格より低いことを示す,買入シグナル;nResが最新の閉店価格より大きい場合,取引量調整後の価格が最新の価格より高いことを示す,売出シグナルである.
総じて,この戦略は,取引量調整後の価格指標nResと最新の閉盘価格を比較して,多空方向を決定し,典型的な量的な取引戦略に属します.
この戦略の利点は以下の通りです.
多因子情報との結合.この戦略は,価格情報だけでなく,取引量情報も考慮し,株式の多因子特性を充分利用し,市場動向をより正確に判断することができる.
偽信号を減らす.取引量加重によって,取引量不足による偽突破をフィルターすることができる.これは,不要な取引を効果的に減らすことができ,被套を避ける.
リアルタイムに強い.単純移動平均などの指標と比較して,この戦略の指数移動平均は最新のデータに敏感であり,近年の市場変化をより早く捉えることができます.
実行しやすい. 戦略はシンプルで明快で,理解しやすく,実行しやすい. 量化取引の要求に適しています.
この戦略には利点があるものの,リスクもあります.
取引量情報は信頼できない.取引量指標は操作に容易で,安定性がないため,誤解を招く可能性がある.
多空判断の機会は稀である。 単純にトレンドに従う戦略に比べて,その戦略の判断の機会は比較的少なく,取引不足を引き起こす可能性が高い。
パラメータ選択の難しさ 移動平均日数lengthなどのパラメータの選択は,戦略のパフォーマンスに大きく影響し,間違った選択は,収益を大幅に低下させる可能性があります.
状況が急激に変化するリスク. 急速な状況では,指標計算は最新の価格に反応しなくなる可能性があり,最高の取引時間を逃すリスクが生じます.
対応方法:パラメータの設定を最適化し,ポジションの規模を厳格に制御し,ストップ・ストップを設定し,他の要因指標と組み合わせて検証し,ポジション保持頻度を適切に調整する.
この戦略は以下の方向から最適化できます.
より柔軟な開設論理.nResとクロージング価値の差が特定の値より大きいときに開設することができ,単に二分類判断ではなく,より多くの機会を掴むことができます.
ポジション管理メカニズムの追加.市場の変動程度に応じて,動的に取引毎のポジションサイズを調整し,リスクを効果的に制御する.
他の要因と組み合わせて. 感情面指標,基本面要因など,より多くの要因を加えることができ,戦略判断をより全面的にすることができる.
パラメータの自己適応最適化。アルゴリズムの自動最適化lengthなどのパラメータを確立して,異なる周期の状況特性に応じて自己適応調整を行うことができる。
機械学習モデルを使用する.RNNなどの深度学習モデルを使用して多次元特性をモデル化して,エンド・トゥ・エンドの非線形策を実現することができる.
この戦略は,価格,取引量などの複数の要因を総合的に考慮し,取引量指数移動平均を調整して,最新の閉盘価格と比較して取引方向を判断する.単一の指標と比較して,情報量が豊富で,偽信号が少なくなるなどの利点があります.しかし,取引量が操作され,判断タイミングが少なくなるなどのリスクにも直面しています.将来,ポジション開設ロジック,ポジション管理,より多くの要因を加えるなどの最適化によって改善され,戦略の効果が向上します.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
iff(nRes > close[1], -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue)