動的リスク調整レバレッジ取引システム
概要
この取引システムは「動的リスク調整レバレッジ取引システム」と名付けられており、現在の市場ボラティリティを過去平均と比較して取引を管理することを目的としています。本システムはATR(平均真実範囲)指標に基づいて目標建玉数量を計算し、それに応じてレバレッジを調整します。システムはピラミッディング方式で建玉を行い、複数のポジションを同時に保有することができます。
戦略の仕組み
システムの具体的な手順は以下の通りです。
-
14日間のATR期間におけるATR値を計算し、現在の終値で除して標準化します。
-
標準化ATRの100日単純移動平均(SMA)を計算します。
-
標準化ATRとその100日SMAとの比率を計算します。
-
比率の逆数(2 / 比率)に基づいて目標レバレッジを決定します。
-
目標レバレッジに5を乗じて目標建玉数量を計算します。
-
チャート上に目標建玉数量と現在の建玉数量を描画します。
-
買い機会(現在の建玉数量が目標数量より少ない場合)または決済機会(現在の建玉数量が目標数量+1より大きい場合)があるかどうかを確認します。
-
買い機会があれば、買い建てを行い、その取引をopenTrades配列に追加します。
-
決済機会があり、openTrades配列に取引が存在する場合、最新の取引を決済し、配列から削除します。
本システムは、ボラティリティの変化に応じて建玉数量とレバレッジを動的に調整することで市場トレンドを捉え、配列を用いて建玉状況を追跡することで、個々の取引の建てと決済をより適切に管理することを目的としています。
優位性分析
この戦略には以下の利点があります。
-
レバレッジとポジションサイズを動的に調整することで、市場のボラティリティ変動に応じてリスクエクスポージャーを調整できます。ボラティリティが低い場合はレバレッジとポジションサイズを増やし、高い場合は減らすことでリスクを効果的にコントロールします。
-
目標ポジションサイズの計算にATR指標を使用しており、市場の変動性を反映する合理的な指標選択です。
-
ピラミッディング方式で複数のポジションを同時に保有することで、トレンドから利益を得ることができます。
-
配列を用いて各建玉取引を記録することで、個々の取引の建てと決済を明確に管理し、不要な逆方向操作を回避できます。
-
パラメータが少なく、実装と運用が容易です。
-
戦略の考え方が明確で、コード構造も合理的であり、最適化や反復改良が容易です。
リスク分析
本戦略には以下のリスクも存在します。
-
ATR指標は過去の一定期間のボラティリティのみを反映しており、将来のボラティリティ変化を予測できないため、レバレッジ調整が不適切になる可能性があります。
-
ピラミッディング方式では、トレンド反転時に損失が累積する可能性があります。
-
配列による建玉記録は単純な建て・決済操作にのみ適しており、建玉ロジックが複雑な場合はより複雑なデータ構造が必要になります。
-
目標レバレッジとポジションサイズの設定は商品特性に応じて調整する必要があり、固定パラメータに限定すべきではありません。
-
単一の指標では誤った判断を招く可能性があるため、他のボラティリティ指標や機械学習アルゴリズムを組み合わせてロバスト性を高めることが考えられます。
最適化の方向性
本戦略は以下の点から最適化が可能です。
-
ストップロス戦略を追加し、損失がストップロス水準に達したら積極的に損切りする。
-
指標パラメータを最適化し、異なるATR期間パラメータの効果をテストする。
-
固定数量建てなど、異なる建玉戦略を試して効果を検証する。
-
ボリンジャーバンドの幅、KD、RSIなど他のボラティリティ指標を追加し、組み合わせて使用する。
-
機械学習手法を用いてボラティリティを予測し、単純な平滑化手法に代える。
-
建玉数量の計算方法を最適化する。ATR倍数やボラティリティ関数などを使用する。
-
建玉価格や時間など、より多くの建玉詳細を記録し、戦略分析・最適化に活用する。
-
パラメータ最適化機能を追加し、最適なパラメータ組み合わせを自動的に見つける。
まとめ
本戦略はATRに基づいてレバレッジと建玉数量を動的に調整し、トレンド内でリスクエクスポージャーを調整するもので、一定の優位性を持っています。しかし、パラメータ設定の難しさや指標の最適化余地など、さらなる改善が望まれる点もあります。全体的に、この戦略は考え方が明確で、運用・最適化が容易であり、さらに研究・応用する価値があります。
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("I11L - Risk Adjusted Leveraging", overlay=false, pyramiding=25, default_qty_value=20, initial_capital=20000, default_qty_type=strategy.percent_of_equity,process_orders_on_close=false, calc_on_every_tick=false)
atr = ta.atr(14) / close- 1

