ダイナミックポジションサイジング量子戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-21 14:52:10
タグ:

img

概要

この戦略の主なアイデアは,口座の資本に基づいて各取引のポジションサイズを動的に調整することです.利益を得るときはポジションサイズを自動的に増加させ,損失した場合のポジションサイズを自動的に減少させ,それによって複合の自動レバレッジ効果を達成できます.

戦略の論理

この戦略は,次の重要なステップを通じて動的ポジションサイズ化を実現する.

  1. 制限としてレバレッジ比,最大ポジションサイズのようなパラメータを設定
  2. ベーイングレージ比率による口座自己資本を分割してベンチマークポジションの大きさを計算する
  3. 最大サイズ設定とベンチマークのサイズを比較し,実際のサイズとして小さいものを取る
  4. ポジションを開くとき,ポジションサイズを計算された実際のサイズに調整する
  5. ポジションサイズは,PnLの変化や口座資本の変動によってリアルタイムで変化する.

上記のステップは,合理的なポジションサイズを保証し,過剰なレバレッジリスクを回避し,利益の増加に伴い自動複合を達成するために,サイズと株式をリンクします.

利点

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

  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)

もっと