
動的加仓戦略は,損失時に加仓する方法で,コスト平均価格を下げることを実現し,その結果,損失を補う目的を達成する.価格が加仓条件を触発すると,この戦略は,一定の数量と間隔で連続的に加仓し,同時に最大加仓回数を設定し,無限加仓のリスクを回避する.
この戦略の核心的な論理は:
ポジション購入:0のポジションを保有している場合,指定価格で注文してポジションを開きます.
加仓条件:現在の加仓回数が最大加仓回数より少なめで,価格が前のポジションの価格の1つの預定下落値より低い場合,加仓をトリガーする.
積立方法:積立の数が前数に1つの縮小係数で増加し,積立間隔は前間隔に1つの縮小係数で減少する.
ストップ条件: 持仓平均価格の1つの預期収益幅が誘発された場合,全ポジションをストップする.
このように,市場が不利なときに,この戦略は,ポジションの維持コストを減らし,損失を止めて引き戻すと同時に,追加の利益を得ることができます. 市場が上向きに転じるとき,ストップ条件が誘発され,すべてのポジションは利益で終了します.
この戦略の最大の利点は,貯蓄方法によってコスト平均価格を下げ,一定損失を許容する前提でより大きな利益を得ることだ.これは牛市では特に顕著である.具体的には,主に以下の利点がある.
ポジション維持コストを大幅に削減し,損失を抑える能力を強化する.価格が逆転したときに,戦略はポジションを上げ,それにより,以前により高い価格で購入した単一を稀化して,総コストを削減する.
利潤の余地を増やす 費用を削減した後,価格が反発する限り,利潤の余地が拡大され,これはの道を与えるまで なります
柔軟な設定加仓論理,カスタマイズ可能です. 策略は加仓幅度,数量,間隔などのパラメータを設定することを許可し,ユーザーは自分の好みに応じて調整することができます.
リスクは制御可能で,加仓の上限を設定する.最大加仓回数制限は,戦略が無限加仓をしないようにし,リスクを制御できる.
この戦略は,利潤の拡大を促すため,利害を拡大する一方で,注意すべきリスクも伴います.
損失リスク。戦略は,一定損失を承担する前提で高額化される。市場情勢が継続的に不利であれば,損失は拡大するかもしれない。
暴落のリスク. 極端な状況では,戦略の耐えられる範囲を超えて価格が暴落する可能性があります. これは,合理的な設定の加仓パラメータと止損点を必要とします.
価格の反発は必ずしもストップを誘発するものではなく,ストップを時間内に止められないのは戦略のショートボードである.
パラメータ設定のリスク.加仓係数,幅止まりなど,パラメータを正しく設定しないことは,戦略の失敗につながる可能性があります.
これらのリスクは以下の方法で軽減できます.
貯蓄量を適切に削減し,単発損失を制御する.
貯蓄の間隔を縮め,コストを削減する.
合理的にストップ・ロスを設定する. ストップ・ロスを設定しすぎると,損失が拡大する.
この戦略は,より大きな利益を得るために加仓方法を使用する性質を考慮して,その最適化の方向は,主にリスクをよりよく管理し,利益を得ることに焦点を当てています.具体的には,以下のいくつかの主要な最適化の方向があります.
ポジションの論理アルゴリズムを改良し,ポジションをより賢く行情に合わせて調整する.変動率,価格飛躍などの指標に基づいてポジションをトリガーすることを考えることができる.
停止方法を最適化して,より効率的な停止を実現する.移動停止,分批停止などの方法と組み合わせて,反発が停止できない状況を減らすことができる.
機械学習アルゴリズムを導入し,パラメータの自適化最適化を実現する. キーパラメータを静的ではなく,リアルタイムの状況とフィードバックの動向に合わせて調整する.
止損メカニズムを増やし,最大損失を制御する.止損方法としては,移動止損,吊り止損等を考慮して,極端な状況による損失拡大を避ける.
動的加仓戦略は,加仓することでコスト平均値下落を実現し,適切なリスク管理の前提でより大きな利益を得ます.一定損失を承担する前提のこの戦略は,損失を許容する能力が強い投資家の間で特に人気があります.将来の最適化の方向は,よりスマートな加仓方法,より効率的な止まり装置などの周りに行われます.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("DCA Bot Emulator", overlay=true, pyramiding=99, default_qty_type=strategy.cash, commission_value = 0.02)
// Date Ranges
from_month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
from_day = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
from_year = input(defval = 2021, title = "From Year")
to_month = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
to_day = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
to_year = input(defval = 9999, title = "To Year")
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 = time >= start and time <= finish ? true : false // create function "within window of time"
// Strategy Inputs
price_deviation = input(2, title='Price deviation to open safety orders', maxval=0)/100
take_profit = input(1.5, title='Target Take Profit', minval=0)/100
// base order
base_order = input(100000, title='base order')
safe_order = input(200, title='safe order')
safe_order_volume_scale = input(2, title='Safety order volume scale')
safe_order_step_scale = input(1, title='Safety order step scale')
max_safe_order = input(10, title='max safe order')
var current_so = 1
var initial_order = 0.0
// Calculate our key levels
pnl = (close - strategy.position_avg_price) / strategy.position_avg_price
take_profit_level = strategy.position_avg_price * (1 + take_profit)
// First Position
if(strategy.position_size == 0 and window)
strategy.entry("Long", strategy.long, qty = base_order/close)
initial_order := close
current_so := 1
// Average Down!
if current_so > 0 and close < initial_order * (1 - price_deviation * current_so * safe_order_step_scale) and current_so <= max_safe_order
so_name = "SO " + tostring(current_so)
strategy.entry(so_name, long=strategy.long , qty = safe_order * safe_order_volume_scale /close)
current_so := current_so + 1
// Take Profit!
strategy.close_all(when=take_profit_level <= close and strategy.position_size > 0)