정기 고정 금액 누적 평균 가격 전략


생성 날짜: 2023-09-15 16:52:06 마지막으로 수정됨: 2023-09-15 16:52:06
복사: 0 클릭수: 645
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이 전략은 정기적 인 금액을 매입하여 목표 포지션 위치에 도달하여 자산의 장기 보유를 실현하는 전략입니다.

전략의 작동 원리:

  1. 고정된 구매 금액과 구매 횟수를 설정하세요.
  2. 고정된 주기 동안, 설정된 금액에 따라 정기적으로 자산을 구매하십시오.
  3. 누적 포지션이 하락한 후에 포지션을 매각한다.
  4. 상술한 단계를 반복하여 주기적으로 포지션을 쌓아나갑니다.

구체적인 운영 과정:

  1. 일정한 기간에 매달로 매출을 하고, 일정한 금액의 자산을 매입합니다.
  2. 누적 지분량이 설정된 임계값 (예: 200개) 을 초과할 때, 전체 지분 평점.
  3. 그리고는 정기적 인 구매 과정을 다시 시작하고, 계속 보유를 쌓습니다.

이 전략의 장점:

  1. 장기적으로 보유비용이 낮아지고, 평균 가격으로 수익을 창출한다.
  2. 철수 위험은 낮고, 타겟팅된 추격의 높은 매수점이 없습니다.
  3. 시장에 집중할 필요 없이 지속적으로 실행할 수 있습니다.

이 전략의 위험은:

  1. 장기 보유가 필요하고, 단기 가격 변동에 대처할 수 없습니다.
  2. 가격 하락이 지속되면 손실이 발생할 수 있습니다.
  3. 판매 시점을 잘못 선택해서 최적의 배송 지점을 놓칠 수도 있습니다.

요약하자면, 주기적 정액 전략은 포지션을 세분화하여 자산을 축적하는 방식으로 긴 라인 투자자에게는 더 친화적입니다. 그러나 거래자는 여전히 큰 시장의 위험을 주의해야하며, 시장의 고점에서 매출 전략을 최적화하여 매출을 최대화해야 합니다.

전략 소스 코드
/*backtest
start: 2022-09-08 00:00:00
end: 2023-09-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tanoshimooo

//@version=5
strategy ("DCA", initial_capital=44700, overlay=true)

// To start script at a given date
tz = 0 //timezone
timeadj = time + tz * 60 * 60 * 1000 //adjust the time (unix)
t1 = timeadj >= timestamp(2003, 03, 01, 0, 0) ? 1 : 0 //get the starting time

// Variables
var float lastRef = na
if barstate.isfirst
    lastRef := close
var float cash = 50000 // available money
var float sell_contracts = na
var bool first_trade_done = false

// Parameters
var float sell_min = 200 //200 sell more than sell_min or sell all
var float buy_dollars = 200

var int bi = 90

// LONGS
// if bar_index < bi
strategy.order("Long", strategy.long, int(buy_dollars/close))
cash := cash - int(buy_dollars/close)*close
// label.new(bar_index, na, na, xloc.bar_index, yloc.abovebar, color.blue, label.style_triangleup, color.blue, size.tiny)

//plot(cash)

// SHORTS
// if longExit  
//     if (strategy.position_size*sf*close > sell_min) and (strategy.position_size*sf >= 1)
//         strategy.order ("Long", strategy.short, strategy.position_size*sf)
//         cash := cash + strategy.position_size*sf*close
//     else 
//         strategy.order ("Long", strategy.short, strategy.position_size)
//         cash := cash + strategy.position_size*close
//     lastRef := close
//     label.new(bar_index, na, na, xloc.bar_index, yloc.belowbar, color.red, label.style_triangledown, color.red, size.tiny)

if bar_index == last_bar_index - 2 // bi
    strategy.order ("Long", strategy.short, strategy.position_size)