ダイナミックポジション調整定量戦略


作成日: 2024-02-21 14:52:10 最終変更日: 2024-02-21 14:52:10
コピー: 0 クリック数: 964
1
フォロー
1617
フォロワー

ダイナミックポジション調整定量戦略

概要

この戦略の核心思想は,口座権益の動向に応じて,各取引のポジションサイズを調整することである.これは,利益の時にポジションを自動的に増加させ,損失の時にポジションを自動的に減少させ,その結果,回復効果の自動増幅を実現することができる.

戦略原則

この戦略は,以下のいくつかの重要なステップによってポジションの動的調整を実現します.

  1. 制限としてレバレッジ比率,最大ポジションなどのパラメータを設定します.
  2. アカウントの利息をレバレッジで割ると,基準ポジションの大きさが得られます.
  3. 基準ポジションのサイズと最大ポジションの設定を比較し,その間の最小値を実際のポジションとして取ります.
  4. ポジション開設時にポジションのサイズを計算された実際のポジションに調整する
  5. ポジションの大きさは,収益と利益の変動に応じてリアルタイムで調整されます.

上記のステップは,ポジションの大きさの合理性を確保し,過剰なポジションによるリスクを回避し,また,ポジションの大きさが口座の利権と結びついていることを実現し,収益に合わせて自動的に拡大します.

戦略的優位性

この戦略には以下の利点があります.

  1. ポジションサイズを動的に調整し,人工の介入を必要としません.
  2. ポジションの大きさは,口座の利権と結び付けられ,自動的にリターン効果を実現できます.
  3. レバレッジと最大ポジションを制限として設定し,リスクの穴を制御します.
  4. 論理が明快でシンプルで,理解し易く再開発できます.
  5. 戦略に組み込まれやすく,拡張性があります.

戦略リスク

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

  1. ポジションを拡大すると,損失も拡大され,逆転の機会を逃すリスクがあります.
  2. ポジションの大きさは,アカウントの利権とリアルタイムで関連付けられ,特殊な市場状況で頻繁に調整される可能性があります.
  3. 最大ポジションの設定が不適切で,過剰ポジションの危険性
  4. リスクが集中しすぎることもあります.

合理的なパラメータ設定,適切な預金などの方法によって,上記のリスクを軽減することができます.

戦略最適化の方向性

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

  1. スライドポイントの設定が追加され,調整がスムーズにできます.
  2. ポジションサイズを最適化する計算式,他の要素を導入する
  3. 特定の市場条件下での静的なロックポジションの大きさ
  4. ポジション調整の最小単位の変化を設定し,頻繁に調整を避ける
  5. ポジション調整の条件判断ルールを追加し,不必要な調整を防止する

上記のいくつかのポイントを最適化することで,戦略的行動をより安定して制御でき,ポジションサイズ調整が過度に敏感で頻繁になるのを避けることができます.

要約する

この戦略は,口座権益に基づくポジションの動的調整機能を実装し,自動的に利益効果を拡大できます. リスク制御としてレバレッジと最大ポジションを設定し,論理はシンプルで明確で,理解しやすく,二次開発できます. 我々は,戦略の優劣とリスクを分析し,いくつかの最適化提案を提出しました. 全体的に,この戦略は,自動複利取引を実現するための柔軟で使いやすい考え方を提供します.

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

// This source code is subject to the terms of Tendies Heist LLC, 2021
//@version=4
strategy("Tendies Heist Auto Compounding Example", overlay=true)

    
leverage = input(10000)

maxps = input(25, "max position size")
strategy.risk.max_position_size(maxps)

balance = max(1,floor(strategy.equity / leverage))

o        = 1
ps       = true
size     = 0.
balance2 = size[1] < balance
balance3 = size[1] > balance
l        = balance3
w        = balance2

if ps
    size := w ? size[1]+o : l ? size[1]-o : nz(size[1],o)
if size > maxps
    size := maxps

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long,qty=size)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short,qty=size)