거래 전략에 따른 이동 평균 트렌드

저자:차오장, 날짜: 2023-12-11 15:05:31
태그:

img

전반적인 설명

이 전략은 이동 평균과 가격 변화율을 계산하여 현재 상태가 특정 기간 동안 K 라인과 결합된 상승 추세 또는 하락 추세인지 결정하고 따라서 길거나 짧습니다.

전략 원칙

이 전략은 먼저 길이 l의 간단한 이동 평균 a와 길이 l의 가격 변화율 r을 계산합니다. 그 다음 현재 K-라인 가격과 이동 평균 사이의 차이 k를 계산합니다. 마지막으로 지난 s K-라인에서 k의 합 합을 계산합니다.

sum>0이면 현재 상승 추세를 나타내고 전략은 길게 갈 것입니다. sum<0이면 현재 하락 추세를 나타내고 전략은 짧게 갈 것입니다.

긴 또는 짧은 지점으로 이동한 후, 트렌드가 역전될 때까지 포지션은 유지됩니다 (총액은 긍정적에서 부정적 또는 반대로 변경됩니다), 그 다음 포지션은 종료됩니다.

이점 분석

이 전략의 가장 큰 장점은 트렌드를 잡을 수 있고 트렌드 트레이딩에 적합하다는 것입니다. 구체적으로 다음과 같은 장점이 있습니다.

  1. 전체 트렌드 방향을 결정하기 위해 이동 평균을 사용하면 시장 소음을 효과적으로 필터하고 주요 트렌드를 차단 할 수 있습니다.

  2. 가격 변화율 지표를 적용하여 추진력 강도를 측정하면 강한 추진력을 놓치지 않습니다.

  3. 한 기간 동안 여러 K 라인을 고려하면 추세를 더 정확하게 파악할 수 있으며 개별 Ausreißer에 의해 오해되는 것을 피할 수 있습니다.

  4. 트렌드가 변하지 않는 한, 트렌드 시장에서 이익을 극대화하기 위해 위치를 계속 유지하십시오.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 트렌드 종료 시기를 정확하게 결정하지 못하면 손실을 조기에 중단하거나 수익을 놓칠 수 있습니다.

  2. 단일 손실의 크기를 효과적으로 통제할 수 없기 때문에 극단적인 시장 조건에서는 손실이 커질 수 있습니다.

  3. 잘못된 전략 매개 변수는 너무 자주 거래하거나 일부 거래 기회를 놓칠 수 있습니다.

  4. 장기 지분들은 오버나이트 금리 및 마진 리스크가 발생할 수 있습니다.

위험을 통제하기 위해, 우리는 손해를 멈추는 지점을 설정하고, 유동성 높은 상품만을 거래하고, 매개 변수를 최적화하고, 합리적으로 레버리지를 사용할 수 있습니다.

최적화 방향

이 전략을 최적화하는 주요 측면은 다음과 같습니다.

  1. 가장 좋은 매개 변수 조합을 찾기 위해 서로 다른 길이의 이동 평균과 가격 변화율을 테스트합니다.

  2. 트렌드를 더 잘 파악하고 정확도를 더욱 향상시키기 위해 MACD와 같은 다른 지표를 시도하십시오.

  3. 한 번의 손실을 통제하기 위해 수익을 얻은 후에 수익을 얻는 것과 같은 포지션 관리 메커니즘을 추가하십시오.

  4. 극심한 시장 조건에서 위험을 줄이기 위해 동적 스톱을 설정하기 위해 변동성 지표를 포함합니다.

  5. 가짜 브레이크오웃을 필터링하고 거래 효율성을 향상시키기 위해 입출동 논리를 최적화합니다.

결론

이 전략의 전반적인 논리는 명확하고 구현하기 쉽습니다. 장기 보유 거래의 추세를 추적함으로써 인출 통제는 상대적으로 합리적입니다. 안정적인 수익을 추구하는 투자자에게 적합합니다. 중지 손실 및 위치 관리를 더 이상 최적화하면 좋은 장기 안정적인 수익을 기대할 수 있습니다.


/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")
if sum<0
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0

//shortCondition = sum<0
//exitshort = sum>0

//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

더 많은