漸進的な蓄積による脱出取引戦略

作者: リン・ハーンチャオチャン開催日:2023年10月25日17時34分41秒
タグ:

img

概要

段階的な蓄積突破取引戦略は,ワイコフ分析の原則を用いて,潜在的買取・販売機会を探すために,春と上向きのパターンの検出によって補完された市場における潜在的な蓄積および配送段階を特定することを目的としています.

戦略の論理

  1. 累積と配分相を識別するために,異なる長さの移動平均クロスオーバーを使用する. 閉じる価格が長さAccumulationLengthのMAを超えると,累積相を示します. 閉じる価格が長さDistributionLengthのMAを下回ると,配分相を示します.

  2. スプリングとアップスルーストパターンを識別するために,異なる長さの移動平均クロスオーバーを使用する.低価格が長さのスプリング長さのMAを超えると,スプリングを示します.高価格が長さのアップスルースト長さのMAを下回ると,アップスルーストを示します.

  3. 蓄積期間にスプリングが観測された場合,ロング,配送期間にアップスプッシュが観測された場合,ショート.

  4. ストップ・ロスのレベルを設定します.ロング・ストップ・ロスは Close に設定されます * (1 - Stop %).ショート・ストップ・ロスは Close に設定されます * (1 + Stop %).

  5. グラフ上の形状は,視覚的に認識しやすくするために,特定された蓄積,分布,スプリング,上向きのパターンを示します.

利点分析

  1. ワイコフ分析を用いて蓄積と配分段階を特定することで,取引信号の信頼性が向上します.

  2. スプリングと上向きのパターンでシグナルを確認すると,さらなる検証ができます.

  3. ストップロスは単一の取引損失を制御するのに役立ちます.

  4. グラフの注釈は 価格の巻き込みの過程をはっきりと示しています

  5. 調整可能なパラメータにより この戦略は 市場や時間枠に合わせて最適化できます

リスク分析

  1. Whipsaws は,変動する価格の動き中に 偽信号を生成する可能性があります.

  2. スプリングとアッププルーフは 時々失敗する可能性があります.

  3. ストップ・ロスは損失を増やす可能性があります

  4. 異なる市場のパラメータが互換性がない場合,誤った信号が発信される可能性があります.

  5. メカニカルシステムには柔軟な裁量制御がない.

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

  1. 市場や時間枠に合わせて最適なパラメータの組み合わせをテストする.

  2. 信号の確認のために音量を組み込むことを検討します.

  3. 市場変動に基づいて 動的ストップを設定する

  4. 大事なイベントのシグナルを避けるために 基本的な要素を組み込む

  5. 機械学習を適用して パーマータを動的に最適化します

概要

徐々に蓄積されたブレイクアウト取引戦略は,ワイコフ分析,移動平均,パターン認識,および他の技術を統合して,コイリング価格アクションを効果的に特定し,取引信号を生成する.信頼性の高い信号,制御リスク,明確なビジュアル,その他の利点があります.機械システムとして,その裁量性と適応性は改善が必要です.将来の最適化にはパラメータ最適化,ボリューム確認,ストップ損失強化,基本フィルターなどが含まれます.全体として,この戦略は日中取引に効果的な意思決定サポートを提供します.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
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/
// © deperp

//@version=5
strategy("Wyckoff Range Strategy",  overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent)

// Input Variables
AccumulationLength = input(32, "Accumulation")
DistributionLength = input(35, "Distribution")
SpringLength = input(10, "Spring")
UpthrustLength = input(20, "Upthrust")
stopPercentage = input(10, "Stop Percentage")

// Accumulation Phase
isAccumulation = ta.crossover(close, ta.sma(close, AccumulationLength))

// Distribution Phase
isDistribution = ta.crossunder(close, ta.sma(close, DistributionLength))

// Spring and Upthrust
isSpring = ta.crossover(low, ta.sma(low, SpringLength))
isUpthrust = ta.crossunder(high, ta.sma(high, UpthrustLength))

// Strategy Conditions
enterLong = isAccumulation and isSpring
exitLong = isDistribution and isUpthrust

enterShort = isDistribution and isUpthrust
exitShort = isAccumulation and isSpring

// Entry and Exit Conditions
if (enterLong)
    strategy.entry("Long", strategy.long)
    
if (exitLong)
    strategy.close("Long")

if (enterShort)
    strategy.entry("Short", strategy.short)

if (exitShort)
    strategy.close("Short")

// Stop Loss
stopLossLevelLong = close * (1 - stopPercentage / 100)
stopLossLevelShort = close * (1 + stopPercentage / 100)
strategy.exit("Stop Loss Long", "Long", stop=stopLossLevelLong)
strategy.exit("Stop Loss Short", "Short", stop=stopLossLevelShort)

// Plotting Wyckoff Schematics
plotshape(isAccumulation, title="Accumulation Phase", location=location.belowbar, color=color.green, style=shape.labelup, text="Accumulation")
plotshape(isDistribution, title="Distribution Phase", location=location.abovebar, color=color.red, style=shape.labeldown, text="Distribution")
plotshape(isSpring, title="Spring", location=location.belowbar, color=color.blue, style=shape.triangleup)
plotshape(isUpthrust, title="Upthrust", location=location.abovebar, color=color.orange, style=shape.triangledown)

もっと