쌍 거래 전략

저자:차오장날짜: 2023-09-10 00:17:24
태그:

img

페어 트레이딩 (pair trading) 은 한 자산을 동시에 구매하고 밀접한 상관관계가 있다고 여겨지는 다른 자산을 단축 판매하는 거래 전략이다. 페어 트레이딩의 목표는 두 자산의 예상 컨버전스 가격에서 이익을 얻는 것이다.

쌍 거래 가 어떻게 작동 합니까?

쌍 거래 전략은 일반적으로 동결 가능성이 높은 자산 쌍을 식별하기 위해 다양한 기술적 지표를 사용합니다. 일반적인 접근법 중 하나는 이동 평균 (MA) 을 사용하여 두 자산 사이의 상대적 가격 관계를 측정하는 것입니다. 한 자산의 가격이 다른 자산의 MA 이상으로 거래되는 경우 과평가된 것으로 간주됩니다. 반대로 한 자산의 가격이 다른 자산의 MA 이하로 거래되는 경우 과평가된 것으로 간주됩니다.

파인 전략에서, 쌍 거래 L/S 전략은 쌍 거래에 간단한 MA 기반 접근 방식을 사용합니다. 전략은 먼저 두 자산의 종료 가격의 간단한 이동 평균 (SMA) 을 계산합니다. 한 자산의 가격이 다른 자산의 SMA 아래로 넘을 때 입구 신호가 생성됩니다. 출구 신호는 한 자산의 가격이 다른 자산의 SMA 위에 넘을 때 생성됩니다.

쌍 거래 전략

사용할 수있는 다양한 쌍 거래 전략이 있습니다. 몇 가지 일반적인 전략은 다음과 같습니다.

  • 단순 이동 평균 (SMA) 기반 전략: 이 전략은 두 자산 사이의 상대적 가격 관계를 측정하기 위해 간단한 이동 평균을 사용합니다.
  • 볼링거 밴드 기반 전략: 이 전략은 볼링거 밴드를 사용하여 두 자산의 과잉 구매 및 과잉 판매 조건을 식별합니다.
  • 상대적 강도 지수 (RSI) 기반 전략: 이 전략은 두 자산의 상대적 강도를 측정하기 위해 RSI를 사용합니다. 쌍 거래 성과

쌍 거래는 백테스팅 연구에서 수익성있는 거래 전략으로 입증되었습니다. 그러나 과거의 성과가 미래의 결과에 대한 보장이 아니라는 점에 유의해야합니다. 쌍 거래는 신중한 위험 관리가 필요한 복잡한 전략입니다.

쌍 거래 위험

쌍 거래와 관련된 주요 위험 중 하나는 두 자산이 동떨어지지 않는 위험입니다. 두 자산이 동떨어지지 않으면 거래자는 손실을 겪을 것입니다. 쌍 거래와 관련된 또 다른 위험은 두 자산이 상관관계가없는 위험입니다. 두 자산이 상관관계가없는 경우 거래자는 상대적 가격 관계에서 이익을 얻을 수있는 능력을 잃게됩니다.

결론

페어 트레이딩은 두 자산의 예상 컨버전스 가격에서 이익을 얻기 위해 사용할 수있는 강력한 거래 전략입니다. 그러나 이 전략을 사용하기 전에 페어 트레이딩과 관련된 위험을 신중하게 고려하는 것이 중요합니다.

쌍 거래에 대한 추가 고려 사항

앞서 언급한 위험 외에도 거래자가 쌍 거래 전략을 사용할 때 고려해야 할 몇 가지 요소가 있습니다.

자산 선택: 거래 쌍을 선택 할 때, 밀접한 상관관계를 가진 자산을 선택하는 것이 중요합니다. 이것은 자산의 융합 가능성을 높이는 데 도움이됩니다. 진입 및 출구 신호: 쌍 거래 전략에서 사용되는 진입 및 출구 신호는 수익을 극대화하고 손실을 최소화하기 위해 신중하게 설계되어야합니다. 리스크 관리: 쌍 거래는 위험한 전략이 될 수 있으므로 적당한 리스크 관리 기술을 사용하여 손실을 제한하는 것이 중요합니다.


/*backtest
start: 2022-09-03 00:00:00
end: 2023-09-09 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/
// © femisapien

//@version=4
strategy("Pair Trade L/S", overlay=true)

source = close
smalength = input(title = "SMA Length", defval = 20, minval=1)
entryzscore = input(title = "Entry ZScore", defval = 2.0, minval=0, maxval = 50)
startYear = input(title="Backtest Start Year", type=input.integer, defval=2016, minval=1980, maxval=2100)

ma = sma(source, smalength)
dev = entryzscore * stdev(source, smalength)

upper = ma + dev
lower = ma - dev

longEntrySignal = cross(source, lower)
shortEntrySignal = cross(source, upper)
exitSignal = cross(source, ma)

afterStartDate = (time >= timestamp(syminfo.timezone, startYear,1,1, 0, 0))

if (longEntrySignal and afterStartDate)
    strategy.entry("le", strategy.long, comment = "Enter Long")

if (shortEntrySignal and afterStartDate)
    strategy.entry("se", strategy.short, comment="Enter Short")

if (exitSignal and afterStartDate)
    strategy.close_all(true)

더 많은