変動を追跡するストップ損失戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-20 11:31:12
タグ:

概要

この戦略は,市場の変動を反映するために,真の範囲の移動平均を計算する. 変動と移動平均の関係に基づいてトレンド方向を決定する. 変動が移動平均を超えると短くなり,以下を超えるとストップ損失で長くなります.

戦略の論理

ATR関数は,指定された期間における実際の範囲を計算するために使用される.ATRの単純な移動平均は,その後,変動の移動平均線として計算される.ATRが移動平均を超えると,市場の変動が増加すると考えられ,ショート戦略が採用される.ATRが移動平均を下回ると,市場の変動が減少すると考えられ,ロング戦略が採用される.

ポジションに入ると,遅延ストップ損失の固定パーセントが設定され,価格変動に基づいてストップ損失を動的に調整し,利益を保護し,早期にストップアウトされないようにします.

利点分析

この戦略は,波動性指標を通じて市場の動向を判断し,ノイズ干渉を避ける.波動性が上昇するとショートになり,波動性が低下するとロングになり,ヘッジされたオペレーションを実現する.トライリングストップロスは,リアルタイム価格変動に応じてストップロスのポジションを調整し,利益保護と不要なストップロスをバランスする.

リスク分析

ストップロスは,価格の変動を防ぐのに不可能な,不利な価格動向のみを考慮する.価格が激しく変動した場合,ストップロスは大きな損失を伴う.

ATRと移動平均期間のパラメータ調整が役立つ可能性があり,包括的な判断のための他の指標を組み込むことも可能である.ストップ・ロスの方法は,市場の変動に基づいてストップ・ロスの割合を調整し,ダイナミックストップに切り替える可能性もあります.

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

  1. ATRと移動平均の異なるパラメータ組み合わせをテストして最適なパラメータを見つける.

  2. 判断のための他の指標を組み込み,戦略を統合し,正確性を向上させる.

  3. 市場変動に基づいてストップ損失パーセントを調整する ダイナミックストップ損失戦略を採用する.

  4. 異なる製品に対する位置サイズモデルを最適化する.

  5. 機械学習を応用して 変動の転換点を特定します

  6. より大きなトレンド方向を決定するために,より高いタイムフレームの移動平均値と組み合わせます.

概要

この戦略は,市場動向を単純で直接的に変動によって判断するが,単一の指標には限界がある.複数の指標とパラメータ最適化導入により安定性が向上することができる.全体として,この戦略は変動に基づいた取引アイデアを提供する.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/08/2018
// The Volatility function measures the market volatility by plotting a 
// smoothed average of the True Range. It returns an average of the TrueRange 
// over a specific number of bars, giving higher weight to the TrueRange of 
// the most recent bar.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Volatility Backtest", shorttitle="Volatility")
Length = input(10, minval=1)
LengthMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
xATR = atr(Length)
nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length
xMARes = sma(nRes, LengthMA)
pos = iff(nRes < xMARes, 1,
       iff(nRes > xMARes, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="Volatility")
plot(xMARes, color=red, title="MA")

もっと