固定割引取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-22 16:51:25
タグ:

概要

この戦略の主な考え方は,ポートフォリオ内の資産の投資パーセントを固定しておくことである.資産価値が上昇すると,投資家はパーセントを維持するために一部を販売する.減少すると,投資家はパーセントを補充するためにより多くのものを購入する.この戦略は比較的安定した資産に適している.

戦略の論理

戦略は,まず投資パーセントパラメータの%_invested,すなわちポートフォリオの資産の割合を設定し,次に次の基準に基づいてポジションを調整します.

  1. ポジションが0であるとき,%_investedと初期資本に基づいて購入する契約を計算します.

  2. 保有するときは,投資金額のパーセントを株式%_investedと比較します. 低すぎると,より多くの契約を購入します. 高すぎると,契約を売ります.

  3. ステップ2を繰り返して 投資パーセントを固定します

利点

  • 安定した資産を長期にわたって保有し,頻繁な取引を行わない.

  • 資産変動による定期的な再バランス利益

  • 関連性のない資産の投資の多様化により ポートフォリオリスクが減少します

  • バブルが破れる前に 投資を全額しないことで 完全な損失を防ぐことができます

リスク分析

  • 変動性のある資産の損失リスクが高くなる.

  • 頻繁に取引するということは,より多くの手数料を意味します.

  • リバランス化が遅れて 最適なエントリー/出口ポイントが欠落する可能性があります

  • 誤った割合設定が過剰取引を引き起こす可能性があります

リスクは以下によって軽減できます.

  1. 高波動性を避けるために資産を慎重に選択する.

  2. 貿易頻度を減らすために再バランスロジックの最適化

  3. 最低の位置変更単位を設定し,過剰取引を防ぐ.

  4. 過剰な濃度を防ぐためにパーセント設定を最適化します

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

戦略は以下によって改善できます.

  1. ストップ・ロスの論理を追加して 損失を一定値で削減します

  2. トレンドではないスポットを避けるため,再バランスする前に信号の検証を追加します.

  3. パーソナライズした割合 ストップ損失比率

  4. パラメータ最適化モジュールを追加します

  5. ダイナミックアロケーションのための他の資産への再投資のために,ポジションの閉鎖を支援する.

概要

固定パーセント戦略は多様化とリスク管理を提供する.しかし,リバランス遅延や不安定な資産損失などのリスクがある.ストップ損失論理と信号検証のさらなる改善は安定性を高める.


/*backtest
start: 2022-09-21 00:00:00
end: 2022-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// strategy("Fixed Fractioning", overlay=true, initial_capital=100000.0)

percent_invested=input(50.0,title="Percent Invested",maxval=100.0,minval=0.0)
fraction_invested=percent_invested/100

from_day=input(1,title="From Day",maxval=31,minval=1)
from_month=input(1,title="From Month",maxval=12,minval=1)
from_year=input(2017,title="From Year",maxval=2018,minval=1900)

to_day=input(1,title="To Day",maxval=31,minval=1)
to_month=input(1,title="To Month",maxval=12,minval=1)
to_year=input(2018,title="To Year",maxval=2018,minval=1900)

// === FUNCTION EXAMPLE === from: https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/
start     = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish    = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"
strategy.initial_capital = 50000
if strategy.position_size==0 and window()
    contracts_to_buy=(fraction_invested*strategy.initial_capital)/close
    strategy.entry("long",long=true,qty=contracts_to_buy,limit=close,when=contracts_to_buy>1)

invested=(strategy.position_size*close)/strategy.equity
if invested<fraction_invested and window()
    contracts_to_buy=((fraction_invested-invested)*strategy.equity)/close
    strategy.order("long",long=true,qty=contracts_to_buy,limit=close,when=contracts_to_buy>1)

else 
    if invested>fraction_invested and window()
        contracts_to_sell=((invested-fraction_invested)*strategy.equity)/close
        strategy.order("sell",long=false,qty=contracts_to_sell,limit=close,when=contracts_to_sell>1)




もっと