ガウス誤差関数に基づく定量トレーディング戦略
概要
本戦略は、ガウス誤差関数を用いて価格変動を計算するP-Signal指標に基づく定量取引戦略です。P-Signal指標を使用して価格のトレンドと転換点を判断し、エントリーとエグジットのタイミングを決定します。
戦略の原理
本戦略の核となる指標はP-Signalです。P-Signalの計算式は以下の通りです。
fPSignal(ser, int) =>
nStDev = stdev(ser, int)
nSma = sma(ser, int)
fErf(nStDev > 0 ? nSma/nStDev/sqrt(2) : 1.0)
ここでserは価格系列、intはパラメータnPoints(何本のローソク足を見るか)を表します。この式は3つの部分から構成されます。
- nStDevは価格の標準偏差
- nSmaは価格の単純移動平均
- fErfはガウス誤差関数
式全体の意味は、価格の移動平均を標準偏差で割り、さらにsqrt(2)で標準化した後、ガウス誤差関数によって(-1, 1)の区間にマッピングするものです。すなわち、価格変動が平均より大きい場合はP-Signalが1に近づき、平均より小さい場合は-1に近づきます。
戦略では、P-Signalの値とその変化の符号を使用してエントリーとエグジットを決定します。
strategy.entry("long", strategy.long, 1, when = nPSignal < 0 and ndPSignal > 0)
strategy.close("long", when = nPSignal > 0 and ndPSignal < 0)
P-Signalが0未満でかつ変化が正のときに買い建て、P-Signalが0を超えかつ変化が負のときに手仕舞います。
戦略の優位性
本戦略には以下の優位性があります。
- ガウス誤差関数を用いて価格分布をフィッティング。ガウス誤差関数は正規分布をうまく近似でき、多くの金融時系列の分布特性と一致します。
- 価格の標準偏差を利用してパラメータを自動調整。これにより戦略のパラメータ範囲が広がり、市場変化に対するロバスト性が向上します。
- P-Signal指標はトレンドとリバーサル取引の利点を兼ね備えています。価格変動のトレンドを考慮する一方で、価格の転換点にも注目するため、トレンドフォローと逆張り双方の機会を捉えるのに役立ちます。
リスク分析
本戦略には以下のようなリスクも存在します。
- 高頻度取引リスク。典型的な高頻度取引戦略であり、多くの取引を発生させ、取引コストとスリッページリスクが高くなります。
- レンジ相場でのパフォーマンス低下。P-Signal指標は価格に明確なトレンドや規則性がない市場では、多くの偽シグナルを発生させます。
- パラメータ最適化の難しさ。式内の複数のパラメータ間の関係が複雑で、最適化が困難です。
これらのリスクを軽減するためには、フィルター条件を追加して取引頻度を減らす、パラメータの組み合わせと取引コスト設定を最適化する、実戦で調整し適切な銘柄を選択するなどの対策が考えられます。
最適化の方向性
本戦略にはさらなる最適化の余地があり、主な方向性は以下の通りです。
- フィルター条件を追加し、偽シグナルを回避する。例えば他のインジケーターと組み合わせてAND/OR条件を追加し、ノイズを除去します。
- パラメータの組み合わせを最適化する。異なる銘柄や周期でnPointsの値を調整し、戦略の安定性を向上させます。
- 動的パラメータを検討する。nPointsパラメータを市場の変動の度合いに応じて適応的に調整することで、戦略のロバスト性が改善される可能性があります。
- 機械学習手法を導入する。AIアルゴリズムを用いて、パラメータ、フィルター条件、複数銘柄のタイミング最適化を行います。
まとめ
全体として、本戦略は核心的なアイデアが斬新であり、ガウス関数を用いて価格分布をフィッティングし、パラメータの範囲を自動調整します。しかし、高頻度取引戦略であるため、特にリスク管理とパラメータ調整の面でさらなるテストと最適化が必要であり、実戦で安定した収益を上げるには至っていません。
/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// **********************************************************************************************************
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// P-Signal Strategy © Kharevsky
// @version=4- 1

