一目均衡と暗黙の対立に基づく定量的取引戦略


作成日: 2024-02-20 17:12:35 最終変更日: 2024-02-20 17:12:35
コピー: 0 クリック数: 606
1
フォロー
1617
フォロワー

一目均衡と暗黙の対立に基づく定量的取引戦略

概要

この戦略は,一目平衡線が一目平衡線より高く,閉盤価格が一目平衡線より高く,買入シグナルを生成し,一目平衡線が一目平衡線より低く,閉盤価格が一目平衡線より低く,売出シグナルを生成する.この戦略は,暗号通貨などの高波動資産のショートライン取引に適用されます.

戦略原則

一目均衡指標は前回転線,基準線,遅延線三曲線で構成されている.前回転線は,最近の一定周期の平均価格を表し,基準線は,より長い周期の平均価格を表し,遅延線は,通常,前回転線と基準線の平均値である.短期平均価格が長期平均価格より高いときは,現在の価格上昇傾向にあることを表している.

隠された衝突指標は,先行線Aと先行線Bの2つの曲線で構成されている.それらは,異なる長さの周期における価格変動幅の平均値を代表している.先行線Aが先行線Bよりも高いときは,短期間の変動が増加し,価格の上昇は十分なものであることを代表している.

この策略は,一見均衡線を用い,概ねトレンドの方向を判断し,隠された衝突先行線を用い,価格の動力を判断し,閉盘価格と組み合わせて正確な取引信号を形成する.上昇傾向があり,波動が拡大したときに買い,下降傾向があり,波動が収縮したときに売り,利益を得る.

戦略的優位性

これは比較的単純な量化取引戦略で,以下の利点があります.

  1. 価格の傾向と動力を総合的に判断する指標の組み合わせを使用して,取引の信号はより信頼性が高い.
  2. 指定したブレイクポイントでのみ入場し,無効取引を避けます.
  3. 高波動性資産に適したショートライン取引は,より利益をもたらす.
  4. 戦略の論理はシンプルで,理解し,修正しやすい.
  5. 複数の指標を簡単に拡張して,多要素モデルを作成できます.

リスク分析

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

  1. mistradeリスク. 単一損失を制御するために,ストップを設定する必要があります.
  2. 価格逆転のリスク.指標が信号を発した後に価格が逆転し,損失を引き起こす可能性がある.このリスクを軽減するために,適切なポジションの条件を緩和することができます.
  3. パラメータ最適化リスク 異なるパラメータが結果に影響を及ぼし,複数の組み合わせテストで最適なパラメータを見つける必要がある.
  4. 過度最適化のリスク。 履歴データで良好なパフォーマンスを示しているが,実際の取引では失敗している。 パラメータの組み合わせの数を制御し,過度最適化を避ける必要がある。

戦略の最適化

この戦略は以下の点で最適化できます.

  1. より多くの指標の組み合わせをテストし,より優れているパラメータを探します.よく試されるKDJ,BOLL,MACDなどです.
  2. ストップメカニズムに参加する.移動ストップまたは倍数ストップを設定する.
  3. 入場審査条件の最適化.取引量や変動率の指標なども考慮できる.
  4. ポジション保持ルールの最適化. ストップダウンの時間を短縮したり,ストップ幅を拡大したりすることができます.
  5. 機械学習の要素を追加する. ニューラルネットワークなどのより良いパラメータの組み合わせを見つける.

要約する

この戦略は,全体として非常に単純な量化取引戦略であり,目に見える均衡線と隠された衝突指標を組み合わせて,価格の傾向と動力を判断し,取引信号を形成する.この戦略は,高波動性の資産の短線取引に適しており,良い収益を得ることができます.もちろん,いかなる戦略も完璧であることは不可能であり,この戦略にも一定の最適化余地があり,入場ルール,止損機構,パラメータ選択などの面で改善され,その効果を向上させることができます.

ストラテジーソースコード
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")