동적 평균 가격 추적 전략


생성 날짜: 2024-01-29 15:28:53 마지막으로 수정됨: 2024-01-29 15:28:53
복사: 0 클릭수: 307
1
집중하다
1166
수행원

동적 평균 가격 추적 전략

개요

이 전략의 주요 아이디어는 주식 가격이 일정 비율로 떨어질 때, 점차적으로 포지션을 올릴 수 있으며, 따라서 평균 포지션 비용을 낮추는 목적을 달성할 수 있다. 가격이 반발할 때, 평균 포지션 비용이 더 낮기 때문에 더 높은 수익을 얻을 수 있다.

전략 원칙

주가가 처음 20일 간단한 이동 평균을 통과했을 때 더 많은 입장을 펴십시오. 이후 주가가 떨어지면 설정된 목표 손실 비율, 예를 들어 10%를 달성하면 지정된 비율의 입장을 추가하십시오. 예를 들어 50%의 현재 입장을하십시오. 이렇게하면 평균 입장 비용을 줄일 수 있습니다.

구체적으로, 전략 함수는 최대 4번의 상장 허용과 같은 파라미터를 설정하고, 포지션 계산 방식은 점유 자본의 비율로, 초기 상장 포지션은 10%이다. 20일 간단한 이동 평균을 얻고, 종결 가격에 이 평균을 통과하고 상장 포지션이 없는 상태에서 상장 포지션을 열었다. 다음 상장 포지션의 부동 상금 손실 비율을 계산하고, 목표 상금 손실 비율이 달성되면 목표 상장 비율에 따라 상장 포지션을 계속하고, 주가가 반발 중단할 때까지.

우위 분석

이 전략의 가장 큰 장점은 시장 상황이 좋지 않을 때, 가설을 통해 평균 지분 비용을 낮출 수 있고, 시장 상황이 좋아질 때 더 큰 수익을 얻고, 손실을 줄일 수 있다는 것입니다. 단순한 이동 상쇄와 비교하여 이러한 전략은 상황을 더 잘 파악할 수 있으며, 주가가 계속 떨어지면 강제 상쇄되지 않습니다.

동시에, 이 전략은 여러 차례의 포지션을 허용하고, 시장상황이 역전되는 시차를 최대한 활용하여 포지션을 점진적으로 조정한다. 이것은 한 번에 많은 포지션을 추가하는 것보다 비용이 적게 들고, 대부분의 투자자의 자금력에 더 적합하다.

위험 분석

물론, 시장이 계속 하락한다면, 이러한 전략은 큰 손실의 위험에 직면할 수 있습니다. 특히, 곰 시장에서, 주식 가격 하락은 우리가 상상하는 것보다 훨씬 더 커질 수 있습니다.

동시에, 우리는 모든 투자자가 이러한 전략을 채택한다면, 많은 투자자의 손실이 목표 퍼센트에 도달했을 때, 집단 가설이 발생할 수 있습니다. 이것은 주가를 높여 비합리적인 단기 반향을 형성합니다. 우리가 시기를 검토하지 않으면, 상황을 잘못 판단하여 가설을 계속할 수 있습니다. 결과적으로, 대폭락이 다시 왔을 때, 이지온탈 라인은 더 큰 손실을 입습니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다이내믹하게 부가가치를 조정한다. 대시장 움직임 등에 따라 실시간으로 다음 부가가치를 조정할 수 있다.

  2. 수량 지표와 결합하여. 예를 들어, 반전 신호를 확인하고, 오해를 방지하기 위해 거래량을 명확하게 확대할 수 있습니다.

  3. 추적한 상쇄를 사용한다. 상쇄를 한 후에 점진적으로 상쇄를 취하여 손실을 일정 범위 내에서 통제한다.

요약하다

동적 평가를 추적하는 전략은 포지션을 조정하여 포지션을 보유하여 충분한 자금 지원을 보장하는 전제 하에 평가를 효과적으로 활용하여 주가가 역전되면 초과 수익을 얻을 수 있습니다. 중요한 것은 시점과 비율을 파악하고 다양한 위험을 견딜 수 있는 범위 내에서 제어하는 것입니다. 적절하게 적용되면이 전략은 양적 거래에서 상당히 효과적인 방법이 될 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// ########################################################################## // 
//
// This scipt is intended to demonstrate how pyramiding can be used to average
// down a position.
//
// We will buy when a stock closes above its 20 day MA and Average down if
// the trade does not go in our favor. We will hold until a profit is made. 
// (which could mean we hold forever)
//
// ########################################################################## //

strategy("Average Down", overlay=true )

// 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 = 2010, 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 = true
// Strategy Inputs
target_perc = input(-10, title='Target Loss to Average Down (%)', maxval=0)/100
take_profit = input(10, title='Target Take Profit', minval=0)/100
target_qty  = input(50, title='% Of Current Holdings to Buy', minval=0)/100 
sma_period  = input(20, title='SMA Period') 

// Get our SMA, this will be used for our first entry 
ma = sma(close,sma_period)

// 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
first_long = crossover(close, ma) and strategy.position_size == 0 and window
if (first_long)
    strategy.entry("Long", strategy.long)

// Average Down!
if (pnl <= target_perc)
    qty = floor(strategy.position_size * target_qty)
    strategy.entry("Long", strategy.long, qty=qty)

// Take Profit!
strategy.exit("Take Profit", "Long", limit=take_profit_level)

// Plotting
plot(ma, color=blue, linewidth=2, title='SMA')
plot(strategy.position_avg_price, style=linebr, color=red, title='Average Price')