레버리지 트레이딩 시뮬레이션은 어떻게 하나요?

기본 사항

파인 스크립트™ v4 이상으로 작성된 모든 전략 스크립트는 기본적으로 레버리지 거래 시뮬레이션, 즉 브로커로부터 차입하여 적은 자본으로 더 큰 포지션을 개시하는 시뮬레이션을 지원합니다. 

레버리지 거래를 통해 트레이더의 계좌가 대출을 유지하는 데 필요한 증거금을 유지하는 한 계좌 잔고가 허용하는 것보다 더 큰 규모의 주문을 할 수 있습니다. 

참고: 레버리지 거래는 잠재적 수익과 손실을 증폭시킵니다. 트레이더는 실거래에서 레버리지를 사용하기 전에 항상 주의를 기울이고 자신의 위험 성향을 철저히 평가해야 합니다. 

파인 스크립트™ 전략은 스크립트 설정의 "속성" 탭에서 "롱 포지션 마진" 및 "숏 포지션 마진" 입력을 통해 시뮬레이션된 롱 및 숏 거래에 적용되는 레버리지 금액을 결정합니다. 이러한 입력값은 전략이 포지션 개시 및 유지를 시뮬레이션하기 위해 계좌 잔고에서 필요한 포지션 가치의 최소 비율을 정의합니다.

보기로, "매수 포지션 증거금" 값이 20%이면 시뮬레이션에서 매수 포지션의 20%는 전략의 사용 가능한 잔고로 충당하고 나머지 80%는 에뮬레이트된 브로커가 충당해야 한다는 뜻입니다. 모든 매수 포지션은 해당 포지션 가치의 5분의 1만 계좌에 입금하면 되므로 이 전략은 사용 가능한 잔고의 최대 5배까지 매수 포지션을 시뮬레이션할 수 있습니다. 다시 말해, 이 수준의 증거금(1:5)은 전략의 레버리지를 5:1로 증가시킵니다.

이 수준의 증거금을 사용한 거래에서 브로커의 자금이 위험에 처할 정도로 손실이 발생하면 에뮬레이트된 브로커는 마진콜 이벤트를 트리거하고 오픈 포지션의 일부 또는 전부를 청산하여 자본을 확보합니다. 자세한 내용은 아래 섹션을 참조하세요. 

참고: 프로그래머는 `strategy()` 함수의 `margin_long` 및 `margin_short` 매개 변수를 통해 전략 스크립트에서 기본 마진 값을 정의할 수 있습니다. 

세부 정보

트레이더가 구매력을 높이기 위해 브로커로부터 차용할 때 브로커는 계좌에 담보로 사용할 수 있는 최소한의 자본금을 요구하는데, 이를 마진이라고 합니다. 즉, 증거금은 브로커가 나머지를 충당하기 위해 트레이더가 자기 자본으로 충당해야 하는 포지션의 일부입니다.

거래에 할당된 증거금은 포지션의 시장가액과 증거금 비율(즉, 원하는 레버리지 비율의 역수)의 곱입니다.

현재 EURUSD 환율이 1.05이고 브로커에서 자금을 빌리지 않고(즉, 1:1 레버리지 사용) 표준 랏(100,000단위)을 매수하는 시뮬레이션을 한다고 가정해 보겠습니다. 이 경우 "매수 포지션 증거금"을 100%로 설정하여 전략이 사용 가능한 자금만 사용하여 주문하도록 지시합니다. 따라서 거래를 진행하려면 계좌에 최소 105,000달러(1.05 * 100,000)가 있어야 합니다. 

이제 20:1 레버리지로 동일한 거래를 시뮬레이션한다고 가정해 보겠습니다. 이 경우 증거금 비율은 1:20(5%)입니다. "매수 포지션 증거금"을 5%로 설정하면 계좌 잔고가 포지션 가치의 5% 이상이어야 브로커로부터 나머지 95%를 받는 시뮬레이션을 할 수 있습니다. 이 거래를 진행하기 위해 필요한 최소 계좌 잔고(증거금)는 105,000의 5%(5,250 USD)입니다. 

브로커 자금에 의존하지 않는 예시와 달리 실제 환경에서 20:1 레버리지로 포지션을 개시하면 계좌 보유자와 브로커 모두 손실 위험이 있습니다. 개설된 포지션에서 계좌 잔고가 감당할 수 있는 손실보다 더 큰 손실이 발생하면 브로커는 트레이더에게 추가 자금을 요청하거나 손실을 충당하기 위해 개설된 포지션의 일부 또는 전부를 강제로 청산합니다. 전략 테스터는 강제청산 시나리오를 "마진콜" 이벤트로 표시합니다.

브로커 에뮬레이터는 시뮬레이션에서 손실을 충당하는 데 필요한 금액의 4배를 청산하여 전략 결과에서 이러한 시나리오를 처리하여 후속 차트 막대에서 지속적인 마진콜 이벤트를 방지합니다.

참고: 공매도 거래는 일반적으로 브로커로부터 주식, 유닛 등을 빌려서 나중에 다른 가격에 매도하는 것입니다. 포지션의 가치는 주식, 유닛 등을 반환하기 위해 동등한 수의 주식, 유닛 등을 매수하는 데 드는 비용을 나타냅니다. 따라서 숏 포지션은 가격이 상승하면 손실이 발생합니다. 롱 포지션과 달리 숏 포지션의 잠재적 손실은 상품의 가격이 얼마나 상승할 수 있는지에 대한 명확한 제한이 없기 때문에 상한이 없습니다. 따라서 증거금이 100%인 경우에도 숏 포지션은 강제청산 위험에 직면하게 됩니다. 

전략은 비정상적인 증거금 요건을 시뮬레이션할 수도 있습니다. 예를 들어 "매수 포지션에 대한 증거금" 값을 200%로 설정하면 시뮬레이션 계좌에 포지션 가치의 최소 두 배 이상의 증거금이 있어야 거래를 진행하고 포지션을 유지할 수 있습니다. 이 설정은 최대 포지션 크기를 전략 편일예탁잔고의 50%로 효과적으로 제한합니다.

전략 스크립트의 증거금 설정을 통해 포지션 크기를 검증할 수 있다는 점에 유의해야 합니다. 증거금 요건을 0%로 설정하여 비활성화하면 스크립트는 시뮬레이션에서 사용 가능한 실제 자본과 관계없이 모든 규모의 포지션을 시뮬레이션할 수 있으므로 잘못된 결과가 나올 수 있습니다. 따라서 "롱 포지션 증거금" 또는 "숏 포지션 증거금" 값을 0%로 설정하지 않는 것이 좋습니다.

자금 부족

레버리지 트레이딩의 가장 큰 주의점은 자금 부족 위험이 증가한다는 것입니다. 브로커가 강제로 청산한 포지션은 트레이더가 손실을 회복할 수 있는 능력을 크게 떨어뜨리고 계좌 잔고 소진을 가속화할 수 있습니다. 전략 테스터는 강제 청산된 포지션을 "마진콜" 이벤트로 표시합니다. 

마진콜 이벤트 발생 시 적용되는 공식은 다음과 같습니다:

현재잔고 <= 마진필요금액

현재 편일예탁잔고 값은 특정 시점에 시뮬레이션 전략이 보유한 자본금(오픈 포지션의 손익 포함)입니다. 거래계약가능 잔여금은 계좌가 포지션을 유지하는 데 필요한 자본금입니다. 편일예탁잔고가 오픈 포지션에 자금을 조달하기에 충분하지 않으면 마진콜 이벤트가 발생합니다.

CurrentEquity의 공식은 가격 변동 * 방향 * 포인트 밸류 * AbsPositionSize + 초기 자본 + 순이익입니다:

  • PriceChange는 현재 가격과 개설된 포지션의 진입 가격의 차이입니다.
  • 방향은 포지션이 롱이면 1, 숏이면 -1입니다.
  • 포인트값은 가격 변동이 정수로 표시되는 금액입니다. 대부분의 기호에서 이 값은 1이지만, 선물의 경우 100에서 101로 변경되면 값이 1달러가 아닌 50달러가 변경될 수 있으며, 이 경우 PointValue는 50이 됩니다. 
  • AbsPositionSize는 현재 포지션의 크기입니다. 전략 스크립트는 차트에서 음수로 숏 트레이딩을 나타내지만 이 값은 항상 양수입니다.
  • InitialCapital + NetProfit은 현재 포지션을 개시하기 전 전략의 총 평가잔액입니다. 

MarginRequired의 공식은 LastPrice * PointValue * AbsPositionSize * (MarginPercent / 100)이며, 여기서 LastPrice는 계산을 위한 차트 가격이고 (Margin Percent / 100)는 계좌 보유자의 오픈 포지션에 필요한 부분을 얻기 위해 곱하는 계수입니다. 

이러한 계산을 설명하기 위해 "개시 증거금"을 1,000달러로 하고 "매수 포지션 증거금" 값을 20%(5:1 레버리지)로 하여 100달러에 NASDAQ:GOOG 주식 40주를 매수하는 전략을 시뮬레이션한다고 가정해 보겠습니다.

주가가 95달러로 떨어졌다면 현재 평가잔고 PriceChange * 방향 * 포인트 가치 * AbsPositionSize + 초기 자본 + 순이익 = (95 - 100) * 1 * 1 * 40 + 1000 + 0 = 800이고, 증거금률최종 가격 * 포인트 가치 * AbsPositionSize * (마진 퍼센트 / 100) = 95 * 1 * 40 * 0.2 = 760이 됩니다. 이 전략은 이 가격에서 오픈 포지션을 유지할 수 있으므로 마진콜 이벤트가 발생하지 않습니다.

그런 다음 가격이 90달러까지 더 하락했다고 가정합니다. 새로운 CurrentEquity 값은 (90 - 100) * 1 * 1 * 40 + 1000 + 0 = 600이고, MarginRequired는 이제 90 * 1 * 40 * 0.2 = 720입니다. 현재 평가잔고가 더 이상 MarginRequired를 충당하기에 충분하지 않으므로 전략은 마진콜 이벤트를 생성하고 포지션의 일부를 강제로 청산합니다.

마진 가격 시각화하기

마진콜 이벤트가 발생할 수 있는 가격을 시각화하는 가장 쉬운 방법은 전략의 Pine Script™ 소스 코드에 있는 `strategy.margin_liquidation_price` 내장 변수를 사용하는 것입니다. 이 코드 줄을 Pine Script™ v5 전략에 추가하면 청산 가격이 차트에 파란색 선으로 표시됩니다:


plot(strategy.margin_liquidation_price)
Generic

가격을 수동으로 계산해야 하는 경우 이전 섹션의 방정식을 다음 공식으로 변환할 수 있습니다:

MarginLiquidationPriceRaw = ((InitialCapital + NetPofit) / (포인트값 * AbsPositionSize) - 방향 * 진입가격) / (마진퍼센트 / 100 - 방향)

그런 다음 결과 MarginLiquidationPriceRaw 값을 심볼의 최소 틱 값으로 나눌 수 있는 가장 가까운 가격으로 반올림(숏 포지션의 경우) 또는 반내림(롱 포지션의 경우)합니다. 

전체 표현식이 (MarginPercent / 100 - 방향)으로 나뉘는 방식에 주목하세요. 방향이 매수이고 MarginLong%가 100이면 제수는 0이 되며, 0으로 나누기 때문에 결과값인 MarginLiquidationPriceRaw는 얻을 수 없습니다. 이러한 동작은 브로커가 증거금이 100%인 매수 포지션을 강제로 청산할 수 없다는 개념과 일치합니다.

이전 섹션에서 설명한 가상 전략으로 계산하면 ((1000 + 0) / (1 * 40) - 100) / (20 / 100 - 1) = 93.75가 되며, 이는 마진콜이 가능한 첫 번째 가격입니다. 93.75는 GOOG의 틱 크기인 0.01로 나눌 수 있으므로 이 시나리오에서는 최소 틱을 기준으로 반올림해도 아무런 효과가 없습니다.

시뮬레이션 중 이 계산된 가격에서 마진콜 이벤트가 반드시 발동된다는 보장은 없습니다.

청산 규모 계산하기

마진콜 이벤트에 의해 청산되는 포지션의 정확한 금액은 이벤트가 발생한 가격에 따라 달라집니다. 위에서 언급했듯이 브로커 에뮬레이터는 손실 보전에 필요한 금액의 4배를 청산하여 이러한 이벤트가 연속해서 발생하지 않도록 완충 장치를 제공합니다. 다음 알고리즘을 사용하여 청산 금액을 계산합니다:

1. 포지션을 개시하는 데 사용한 자본, 즉 지출 금액을 계산합니다.

포지션 규모 * 진입가

2. 유가증권의 시장가치(MVS)를 계산합니다.

포지션 크기 * 현재 가격

3. 미결제약정을 계산합니다. 거래 방향이 숏이고 미결제약정 수익이 양수인 경우 결과는 여전히 음수가 되어야 하므로 계산의 절대값에 -1을 곱합니다.

ABS(MVS - 지출한 돈) * -1

4. 자기자본, 즉 시뮬레이션에서 사용할 수 있는 자본을 계산합니다.

초기 자본 + 순이익 + 미결 이익

5. 마진 퍼센트를 마진 비율로 변환합니다.

마진 퍼센트 / 100

6. 거래계약 잔여금, 즉 트레이더가 오픈 포지션에서 차지하는 부분을 충당하기 위해 계좌에 필요한 금액을 계산합니다.

MVS * 증거금률

7. 사용 가능한 자금, 즉 트레이더가 현재 편일예탁잔고로 감당할 수 없는 손실 금액을 계산합니다.

편일예탁잔고 - 마진

8. 트레이더가 잃은 총 금액을 계산합니다.

사용 가능한 자금 / 증거금 비율.

9. 손실을 충당하기 위해 전략이 청산해야 하는 주식, 단위 등의 수를 계산합니다. 현재 심볼의 최소 계약 크기와 동일한 소수점 이하로 값을 자릅니다.

TRUNCATE(8단계/현재 가격)

10. 브로커가 손실을 충당하기 위해 얼마나 많은 주식, 단위 등을 청산할지 계산합니다. 에뮬레이트된 브로커는 손실이 계속될 경우 마진콜 이벤트가 계속 발동되지 않도록 필요한 금액의 4배를 매도합니다. 이 값은 브로커가 매도하는 대신 손실을 충당하기 위해 단위를 매수하기 때문에 숏 거래에 긍정적일 것입니다.

9단계 * 4

이 계산을 자세히 살펴보기 위해 기본 제공되는 슈퍼트렌드 전략을 "1일" 차트에 추가하고 "주문 크기"를 편일예탁잔고의 300%로, "매수 포지션 마진"을 25%로 설정해 보겠습니다:

첫 진입은 2010년 9월 16일 시초가에 이루어졌습니다. 이 전략은 4.43달러(진입가)에 682,438주(포지션 규모)를 매수했습니다. 이후 2010년 9월 23일 주가가 3.9(현재가)로 하락하자 에뮬레이터는 마진콜 이벤트를 통해 111,052주를 강제로 청산했습니다.

1. 지출 금액: 682438 * 4.43 = 3023200.34

2. 거래량: 682438 * 3.9 = 2661508.2

3. 미결 이익: -361692.14

4. 자기자본: 1000000 + 0 - 361692.14 = 638307.86

마진 비율: 25 / 100 = 0.25

증거금: 2661508.2 * 0.25 = 665377.05

7. 사용 가능한 자금: 638307.86 - 665377.05 = -27069.19

8. 손실 금액: -27069.19 / 0.25 = -108276.76

9. 손실을 보전하기 위한 주식: TRUNCATE(-108276.76 / 3.9) = TRUNCATE(-27763.27) = -27763

10. 마진콜 사이즈: -27763 * 4 = - 111052