MA99 접촉 및 동적 손절매 전략

SMA MA99
생성 날짜: 2024-04-29 16:59:41 마지막으로 수정됨: 2024-04-29 16:59:41
복사: 1 클릭수: 497
1
집중하다
1166
수행원

MA99 접촉 및 동적 손절매 전략

개요

이 전략은 99주기 간단한 이동 평균 ((MA99) 을 기반으로 거래 신호를 판단한다. 가격이 MA99을 만질 때 포지션을 열 수 있으며, 두 개의 K 라인 확인이 필요하지 않다. 그리고 상쇄는 다이내믹 스톱을 사용한다. 즉, 가격이 MA99을 뚫고 다음 K 라인에서 확인되면 평정 포지션 중지이다. 이 전략은 MA99 근처의 가격을 포착하는 것을 목표로 하고, 동시에 다이내믹 스톱을 통해 위험을 제어한다.

전략 원칙

  1. 99주기 간단한 이동 평균 MA99을 계산한다
  2. 현재 가격이 MA99에 도달했는지 판단합니다. 즉, MA99보다 낮은 최저 가격과 MA99보다 높은 최고 가격입니다.
  3. 가격이 MA99에 도달하고 마감 가격이 MA99보다 높으면 더 많이; 가격이 MA99에 도달하고 마감 가격이 MA99보다 낮으면 더 많이; 마감 가격이 MA99보다 낮으면 더 많이.
  4. 다중 상점 포지션의 경우, 마이너스 99을 넘어 마이너스 99을 넘어 마이너스 99을 넘어 마이너스 99을 넘어 마이너스 99을 넘어 마이너스 99을 넘어 마이너스 99을 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K를 넘어 마이너스 K의 다음 마이너스 K의 다음 마이너스 K를 넘어 마이너스 K을 때 마이너스 P를 넘어 마이너스 P를
  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