パターンとローソク足に基づく定量取引戦略


作成日: 2024-02-19 14:32:45 最終変更日: 2024-02-19 14:32:45
コピー: 0 クリック数: 747
1
フォロー
1617
フォロワー

パターンとローソク足に基づく定量取引戦略

概要

この記事では,形状分析と線形状を組み合わせた量化取引戦略について説明します.この戦略は,価格グラフの重要なターニングポイントと,強力な逆転を表す形状を検出することによって,低リスクで高効率の自動取引を実現します.

戦略原則

この戦略は,形状分析と線分析を組み合わせた,価格動向の詳細な分析に基づいており,明確な入場論理と止損論理を設定し,トレンドを効果的に追跡できるようにします.

具体的には,その入場条件は,価格が上から最初の2つのKラインを突破して,突破期前高点形状または多頭吞没形状または頭形状の1つである.この組み合わせの条件は,看板の機会を有効に確認できる.同時に,そのストップ・ロッド条件は,価格が下から最初の2つのKラインを突破して,最低価格である.このようなストップ・ロジックは,時効性のあるストップ・ロスを保証する.

判定形状に関しては,この戦略は,重要な転換点を識別する分類線と,トレンドの逆転を判定する3つの典型的な形状を組み合わせている.その中で重要な転換点の分類は,比較的に広範な分類理論を使用し,多頭,空頭吞食,などの形態は比較的に成熟したアルゴリズムを使用している.

具体的実装では,この戦略はpineスクリプトを使用して記述されている.その検出型の実装ロジックは,現在のK線の最高値が前3本のK線の最高値に等しいとき,つまり頂部型である.底部型の判断原理は類似している.検出吸収型形態は,開盘価格,閉盘価格の大きさの関係に基づく厳格な判断である.

戦略的優位性

この戦略の主な利点は

  1. の形状と分型を組み合わせて,正確で信頼性の高い判断を行うこと.
  2. 侵入・破壊の論理は明快でシンプルで,実行しやすい.
  3. 既知の理論と指標を用いて,過度に適合する問題を回避する.
  4. PineのスクリプトはTradingViewなどの主流のプラットフォームに適用されます.

戦略リスク

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

  1. 集団と形態の判断は主観的であり続ける.
  2. 短期間に連続した誤信号が生じる可能性;
  3. 高周波取引では,ストップロスの幅を調整する必要があります.

上記のリスクは,ストップ・ローズ戦略の最適化,トレンドフィルターの導入,戦略パラメータを検証する量化ツールの使用などの方法によって制御できます.

戦略の最適化

この戦略の改善の方向は以下の通りです.

  1. 形のパラメータを調整し,判断の正確性を確保する.
  2. 短期的な波動によって誤った信号を回避するために,トレンドの判断を高めること.
  3. マシン・ラーニングなどの方法を取り入れ,パラメータの自動最適化を実現する.

戦略の安定性や収益性をさらに高めることができる.

要約する

この記事では,分型線と形状に基づいた定量取引戦略について詳しく説明します. この戦略は,判断が正確で,実行が簡単で,価格の傾向を効果的に捉え,自動取引を実現します. 継続的な最適化と検証により,そのパフォーマンスはさらに向上し,投資家またはトレーダーによる深入な研究と適用に値します.

ストラテジーソースコード
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Fractal & Pattern Entry/Exit Strategy", overlay=true)

// Fractal calculation
fractalHigh = high == highest(3)
fractalLow = low == lowest(3)

// Pattern detection
bullishEngulfing = open < close[1] and close > open[1] and close > open + (open[1] - close[1]) * 2 and low < min(open, close) and high > max(open, close) and open[1] > close[1]
bearishEngulfing = open > close[1] and close < open[1] and open > close + (close[1] - open[1]) * 2 and high > max(open, close) and low < min(open, close) and open[1] < close[1]
hammer = open < close and close > (high + low + open * 2) / 4 and close - open > (high - low) * 0.6 and high - close < (high - low) * 0.1 and open - low < (high - low) * 0.1
hangingMan = open > close and open < (high + low + close * 2) / 4 and open - close > (high - low) * 0.6 and high - open < (high - low) * 0.1 and close - low < (high - low) * 0.1

// Entry condition
longCondition = crossover(close, highest(2)[1]) and (fractalHigh or bullishEngulfing or hammer)
shortCondition = crossunder(close, lowest(2)[1]) and (fractalLow or bearishEngulfing or hangingMan)

// Exit condition
exitLongCondition = crossunder(close, lowest(2)[1])
exitShortCondition = crossover(close, highest(2)[1])

// Entry and exit orders
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)
if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")

// Plot fractals
plotshape(fractalHigh, title="Fractal High", style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small)
plotshape(fractalLow, title="Fractal Low", style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)

// Plot patterns
plotshape(bullishEngulfing, title="Bullish Engulfing", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(bearishEngulfing, title="Bearish Engulfing", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)
plotshape(hammer, title="Hammer", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(hangingMan, title="Hanging Man", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)