리소스 로딩... 로딩...

MA99 터치 및 동적 스톱 로스 전략

저자:차오장, 날짜: 2024-04-29 16:59:41
태그:SMAMA99

img

전반적인 설명

이 전략은 거래 신호를 결정하기 위해 99주기 간단한 이동 평균 (MA99) 을 기반으로 합니다. 가격이 MA99에 닿을 때 두 개의 촛불에서 확인을 필요로 하지 않고 포지션을 열 수 있습니다. 스톱-러스는 동적 접근 방식을 사용합니다. 즉 가격이 MA99를 뚫고 다음 촛불에서 확인되면 포지션은 스톱-러스로 폐쇄됩니다. 이 전략은 동적 스톱-러스를 통해 위험을 제어하면서 MA99 주변의 가격 변동을 포착하는 것을 목표로합니다.

전략 원칙

  1. 99주기 간단한 이동 평균 MA99를 계산합니다.
  2. 현재 가격이 MA99에 닿는지, 즉 가장 낮은 가격이 MA99보다 작거나 같고 가장 높은 가격이 MA99보다 크거나 같는지 결정합니다.
  3. 만약 가격이 MA99에 닿고 닫기 가격이 MA99보다 높다면, 장거리; 만약 가격이 MA99에 닿고 닫기 가격이 MA99보다 낮다면, 단거리.
  4. 긴 포지션의 경우 닫기 가격이 MA99 이하로 떨어지고 다음 촛불에서 다시 확인되면 포지션을 닫습니다. 짧은 포지션의 경우 닫기 가격이 MA99 이상으로 떨어지고 다음 촛불에서 다시 확인되면 포지션을 닫습니다.
  5. 포지션이 열릴 때마다 현재 MA99를 스톱 로스 가격으로 설정하고, 포지션이 닫힌 후 스톱 로스 가격을 다시 설정합니다.

전략적 장점

  1. 간단하고 사용하기 쉬운: 이 전략은 명확하고 직설적인 규칙과 함께 이해 및 구현하기 쉬운 단일 지표, MA99에 기반합니다.
  2. 동적 스톱 로스: 고정 스톱 로스와 비교하면 동적 스톱 로스는 시장 변화에 더 잘 적응하고 적시에 위험을 제어할 수 있습니다.
  3. 트렌드 추적: MA99는 중장기 트렌드를 나타냅니다. 가격이 MA99에 닿을 때 포지션을 열면 주요 트렌드 방향으로 거래 할 수 있습니다.
  4. 소음 감축: 짧은 기간 이동 평균을 사용하는 것과 비교하면 99 기간 이동 평균은 단기 변동 소음을 효과적으로 필터링 할 수 있습니다.

전략 위험

  1. 매개 변수 최적화: 이 전략은 최적의 매개 변수가 아닐 수 있는 99의 매개 변수를만 사용합니다. 최적의 매개 변수를 결정하기 위해 백테스팅과 최적화가 필요합니다.
  2. 불안한 시장: 불안한 시장에서 가격은 MA99 주위에서 자주 변동할 수 있으며, 이로 인해 빈번한 거래와 손실이 발생할 수 있습니다.
  3. 트렌드 역전: 트렌드가 역전되고 가격이 MA99을 넘어서면 이 전략은 잘못된 방향으로 포지션을 계속 유지하여 손실을 초래할 수 있습니다.
  4. 슬리퍼 비용: 빈번한 거래로 인해 더 높은 슬리퍼 및 거래 비용이 발생하여 전략 수익성에 영향을 줄 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터를 도입하십시오: 입시 신호를 결정 할 때 MACD, ADX 등과 같은 다른 트렌드 지표가 통합되어 트렌드 강도와 방향을 확인하여 입시 품질을 향상시킬 수 있습니다.
  2. 매개 변수 최적화: 최선 매개 변수 조합을 찾고 전략 안정성을 향상시키기 위해 MA 기간 및 스톱 로스 조건과 같은 매개 변수를 최적화합니다.
  3. 포지션 크기를 포함합니다: 마이너런 리스크를 제어하기 위해 시장 트렌드 강도 및 변동성 등의 요소를 기반으로 포지션 크기를 동적으로 조정합니다.
  4. 거래 비용을 고려하십시오: 백테스팅 및 라이브 거래를 할 때 전략의 실제 성과를 평가하기 위해 거래 미끄러짐 및 수수료와 같은 비용 요소를 고려하십시오.

요약

MA99 터치 및 동적 스톱 로스 전략은 가격과 MA99 사이의 관계를 기반으로 포지션을 열고 위험을 제어하기 위해 동적 스톱 로스를 사용합니다. 이 전략은 간단하고 사용하기 쉽습니다. 중장기 트렌드를 따라가지만 불안정한 시장에서 빈번하게 거래하는 문제를 직면 할 수 있습니다. 필터링, 매개 변수 최적화, 포지션 관리 및 비용을 고려하기 위해 다른 지표를 도입함으로써이 전략의 성능과 견고성을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/


//@version=5
strategy("MA99 Temas ve Dinamik Stop-Loss Stratejisi", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// MA99 hesaplayalım
ma99 = ta.sma(close, 99)
plot(ma99, color=color.blue, title="MA99")

// Fiyatın MA99'a temas edip etmediğini kontrol edelim
priceTouchedMA99 = (low <= ma99 and high >= ma99)

// Long ve short koşullarını tanımlayalım
longCondition = priceTouchedMA99 and close > ma99
shortCondition = priceTouchedMA99 and close < ma99

var float longStopLoss = na
var float shortStopLoss = na

var int longStopTriggered = 0
var int shortStopTriggered = 0

// Alım veya satım sinyallerine göre işlemleri başlatalım ve stop-loss ayarlayalım
if (longCondition)
    strategy.entry("Long Entry", strategy.long)
    longStopLoss := ma99
    longStopTriggered := 0

if (shortCondition)
    strategy.entry("Short Entry", strategy.short)
    shortStopLoss := ma99
    shortStopTriggered := 0

// Stop-loss koşullarını ve iki mum kuralını kontrol edelim
if (not na(longStopLoss))
    if (close < longStopLoss)
        longStopTriggered := 1
    else
        longStopTriggered := 0

    if (longStopTriggered[1] == 1 and close < longStopLoss)  // Bir önceki mumda tetiklendi ve hala altında
        strategy.close("Long Entry", comment="Stop Loss Long")
        longStopLoss := na
        longStopTriggered := 0

if (not na(shortStopLoss))
    if (close > shortStopLoss)
        shortStopTriggered := 1
    else
        shortStopTriggered := 0

    if (shortStopTriggered[1] == 1 and close > shortStopLoss)  // Bir önceki mumda tetiklendi ve hala üstünde
        strategy.close("Short Entry", comment="Stop Loss Short")
        shortStopLoss := na
        shortStopTriggered := 0

관련

더 많은