線形回帰交差をベースにした量子戦略

作者: リン・ハーンチャオチャン開催日:2023年12月29日 11:45:20
タグ:

img

概要

この戦略は,線形回帰点を計算するために線形回帰点技術を使用し,定量的な取引戦略を構築するための取引信号として使用する.この戦略は,株の価格時間系列を分析することによって,線形回帰点のトレンドラインに適合し,線形回帰点を使用し,価格が過大評価されているか過小評価されているか判断し,それによって取引信号を生成する.

戦略原則

線形回帰切断は,時間系列値Xが0であるとき,Yの予測値 (通常価格) を示す.この戦略はパラメータLengthを事前に設定し,閉じる価格をソースシーケンスとして取り,最新のLength日の線形回帰切断 (xLRI) を計算する.閉じる価格がxLRIより高いとき,ロング;閉じる価格がxLRIより低いとき,ショート.

特定の計算式は次のとおりです.

xX = Length *(Length - 1)* 0.5
xDivisor = xX *xX - Length* Length *(Length - 1) *(2 * Length - 1) / 6  
xXY = Σ(i *Closing Price[i]), i from 0 to Length-1
xSlope = (Length *xXY - xX* Σ(Closing Price, Length))/ xDivisor 
xLRI = (Σ(Closing Price, Length) - xSlope * xX) / Length

このような計算を通じて,最も最近の長さの日間の線形回帰切断 xLRI を得ることができます. 戦略は,取引信号を生成するために,価格の高値と低値を判断します.

利点

この戦略には以下の利点があります.

  1. 線形回帰技術を用いて,価格の予測と傾向判断の機能が備わっています.
  2. パラメータが少なく モデルがシンプルで 分かりやすく 実行できます
  3. 戦略の柔軟性を調整するための設定可能なパラメータ Length.

リスク と 解決策

この戦略にはいくつかのリスクもあります:

  1. 線形回帰フィッティングは,過去のデータに基づく統計フィッティングに過ぎず,将来の価格動向を予測する能力は限られている.
  2. 会社の基本面が大きく変化すると,線形回帰フィッティングの結果は無効になる可能性があります.
  3. パラメータ"長さ"の設定が正しくない場合,オーバーフィッティングが発生する可能性があります.

対策:

  1. オーバーフィッティングを防ぐために,パラメータ Length を適切に短縮します.
  2. 会社の基本面の変化に注意し,必要に応じて手動で介入してポジションを閉める.
  3. 適応パラメータ長さを採用し,市場の条件に応じて動的に調整する.

オプティマイゼーションの方向性

この戦略は,次の側面でも最適化できます.

  1. 単一の損失を制御するストップ損失メカニズムを追加します.
  2. 他の指標と組み合わせて,安定性を向上させるための組み合わせ戦略を形成する.
  3. パラメータ自動適応最適化モジュールを追加して,長度パラメータを動的に変更します.
  4. オーバートレードを防ぐために ポジション制御モジュールを追加します

概要

この戦略は,線形回帰交差点に基づいた単純な定量的な取引戦略を構築する. 全体的に,この戦略にはいくつかの経済的価値がありますが,注意すべきいくつかのリスクもあります. 継続的な最適化によって,戦略の安定性と収益性をさらに向上させることが期待されています.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/03/2018
// Linear Regression Intercept is one of the indicators calculated by using the 
// Linear Regression technique. Linear regression indicates the value of the Y 
// (generally the price) when the value of X (the time series) is 0. Linear 
// Regression Intercept is used along with the Linear Regression Slope to create 
// the Linear Regression Line. The Linear Regression Intercept along with the Slope 
// creates the Regression line.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Line Regression Intercept Backtest", overlay = true)
Length = input(14, minval=1)
xSeria = input(title="Source", defval=close)
reverse = input(false, title="Trade reverse")
xX = Length * (Length - 1) * 0.5
xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
xXY = 0
for i = 0 to Length-1
	xXY := xXY + (i * xSeria[i])
xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
pos = iff(close > xLRI, 1,
       iff(close < xLRI, -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(xLRI, color=blue, title="LRI")

もっと