ロガリズム式価格予測戦略

作者: リン・ハーンチャオチャン開催日:2023年12月20日 14:40:23
タグ:

img

概要

この戦略は,標準偏差と取引量の平均に基づいて価格変化をモデル化するためにロガリズム関数を使用し,将来の価格を予測するためのロガリズム関数への入力パラメータとしてzスコアを計算します.

戦略の原則

  1. 閉店価格のROC値を計算し,プラス値をvolume_posとマイナス値をvolume_negに積む
  2. volume_pos と volume_neg の違いを,net_volume として計算する.
  3. 標準偏差 netto_std と平均 netto_sma を計算する
  4. Net_sma を net_std で割って z-score を計算する
  5. 閉じる価格,閉じる価格の20日標準偏差,zスコアをロジスティック関数へのパラメータとして使用して次の期間の価格を予測する
  6. 予想価格が現在の実際の価格より高い場合,ロング*1.005,0.995以下の場合,クローズポジション

利点分析

この戦略は,対数関数を使用して取引量と価格予測の統計情報を組み合わせます.

利点は以下の通りです

  1. 市場情勢を計測するために,取引量の長短差を使用します.
  2. ロガリズム関数は予測のために価格変化曲線に適しています
  3. シンプルで直接的な戦略,実行が簡単

リスク分析

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

  1. 取引量の指標は遅滞しており,市場の変化をタイムリーに反映できない.
  2. ロガリズムの予測は必ずしも正確ではなく,誤導的であることもあります
  3. ストップ損失対策の欠如 損失を制御できない

リスクは以下によって軽減できます.

  1. 音量信号の信頼性を判断するために他の指標を組み合わせる
  2. 予測の精度を向上させるために対数関数のパラメータを最適化
  3. 取引ごとに最大損失を制限するためにストップ損失ラインを設定し,全体として

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

この戦略は,次の方法でさらに最適化できます.

  1. ロガリズム関数を動的に最適化するために機械学習を採用する
  2. ポジションのサイズを調整するために波動性指標を組み込む
  3. 無効な信号をフィルタリングするためにベイジアンフィルタリングを追加する
  4. 突破点に入るために突破戦略と組み合わせる
  5. 値差の信号を検出するために関連規則を使用する

複数の方法を組み合わせることで 安定性と収益性がさらに向上します

結論

この戦略は,取引量の統計指標とロガリズム予測をユニークな定量的な取引方法論に統合しています.継続的な最適化により,効率的で安定した自動取引システムになることができます.機械学習とポートフォリオ最適化理論を活用することで,取引パフォーマンスをさらに向上させることができると確信しています.


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

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")


もっと