멀티 레인지 MA100 가격 되돌림 스마트 그리드 거래 전략

SMA MA ATR
생성 날짜: 2025-02-19 11:12:51 마지막으로 수정됨: 2025-02-19 11:12:51
복사: 0 클릭수: 693
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

멀티 레인지 MA100 가격 되돌림 스마트 그리드 거래 전략

개요

이 전략은 MA100 이동 평균을 기반으로 한 다중 영역 격자 거래 시스템이다. 그것은 서로 다른 가격 회수 영역을 설정하여 순차적으로 포지션을 구축하고, 시장에서 큰 하락이 발생했을 때 점진적으로 구매하고, 가격이 3%의 반발을 할 때 수익을 얻습니다. 전략은 스마트 격자 방식을 채택하여 각 영역의 최대 포지션 수와 거래 간격을 제한하여 위험을 통제합니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같습니다.

  1. 100주기 간단한 이동 평균 ((SMA) 을 전략으로 사용하는 기준 가격
  2. 3개의 구매 범위를 설정합니다.
    • 2단계: 8% 하락, 최대 2건의 거래 허용
    • 범주 3: 가격 인하 15% 최대 3 거래 허용
    • 범위 4: 20%의 가격 회수, 최대 4 거래 허용
  3. 통일된 평점 조건: 가격이 MA100의 3%를 넘어서면
  4. 각 영역은 50 K 라인 사이클의 최소 거래 간격을 설정하여 너무 자주 거래되는 것을 방지합니다.

전략적 이점

  1. 다중 구역 분단 창고 건설이 창고 건설 비용을 절감했다.
  2. 격자 거래의 아이디어는 격렬한 변동 속에서 기회를 잡을 수 있습니다.
  3. 최대 포지션 제한과 거래 간격이 설정되어 위험을 효과적으로 제어합니다.
  4. 전략 논리는 간단하고, 이해하기 쉽고, 유지하기 쉽습니다.
  5. 높은 변동률의 시장 환경에 적합합니다.
  6. 자동으로 실행할 수 있고, 사람의 개입이 필요하지 않습니다.

전략적 위험

  1. 계속되는 하락 추세에서 더 큰 회전이 발생할 수 있습니다.
  2. 다단계 창고 건설을 지원하기 위해 더 큰 규모의 자금이 필요합니다.
  3. 평지 조건은 비교적 간단하여 더 큰 상승 공간을 놓칠 수 있습니다.
  4. 시장의 전체적인 추세를 고려하지 않고, 추세적인 상황 속에서 부진할 수 있다.
  5. 고정된 비율 변수는 모든 시장 환경에 적합하지 않을 수 있습니다.

전략 최적화 방향

  1. 트렌드 판단 지표를 도입하고, 강한 트렌드에 전략 변수를 조정합니다.
  2. 순환 메커니즘을 최적화하여 시장의 변동에 따라 수익 목표를 동적으로 조정할 수 있습니다.
  3. 리스크 제어 모듈을 추가하고, 총 포지션 제한 및 중지 조건을 설정
  4. 변동률 지표 (ATR와 같은) 를 도입하고, 포지션 구간을 동적으로 조정합니다.
  5. 시장 상황에 따라 동적으로 조정할 수 있는 거래 간격 메커니즘을 최적화

요약하다

이 전략은 여러 구역의 격자 거래 방식을 통해 시장이 급격히 회수될 때 분량하여 포지션을 구축하고, 더 나은 위험 저항력을 갖는다. 약간의 잠재적인 위험이 존재하지만, 합리적인 매개 변수 설정과 위험 제어 조치를 통해 안정적인 거래 효과를 달성할 수 있다. 추가 최적화 공간은 주로 더 많은 시장 적응성 지표와 위험 제어 장치를 개선하는 데 있다.

전략 소스 코드
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-17 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// BTC SOL ETH BNB XMR RNDR AKT OM ONDO IO

strategy("MA100 crash buy 3 Zone // 15 min", overlay=true, calc_on_every_tick=true)

// Définition des MA
maH1 = ta.sma(close, 100)
maB2 = ta.sma(close, 100)
maB3 = ta.sma(close, 100)
maB4 = ta.sma(close, 100)

// Définition du niveau d'achat et de vente
sellLevel1 = maH1 * 1.03 //+3%
buyLevel2 = maB2 * 0.92 //-8%
buyLevel3 = maB2 * 0.85 //-15%
buyLevel4 = maB2 * 0.80 //-20%



// Nombre max de trades simultanés
maxTrades2 = 2
maxTrades3 = 3
maxTrades4 = 4

// Délais entre deux ordres (en bougies)
tradeDelay = 50
var float lastTradeTime = na
var float lastSellTime = na
tradeDelay2 = 50
var float lastTradeTime2 = na
tradeDelay3 = 50
var float lastTradeTime3 = na
tradeDelay4 = 50
var float lastTradeTime4 = na

// Condition d'achat et de vente
buyCondition2 = low <= buyLevel2 and strategy.opentrades < maxTrades2 and (na(lastTradeTime2) or bar_index - lastTradeTime2 > tradeDelay2)
buyCondition3 = low <= buyLevel3 and strategy.opentrades < maxTrades3 and (na(lastTradeTime3) or bar_index - lastTradeTime3 > tradeDelay3)
buyCondition4 = low <= buyLevel4 and strategy.opentrades < maxTrades4 and (na(lastTradeTime4) or bar_index - lastTradeTime4 > tradeDelay4)
sellCondition = strategy.position_size > 0 and high >= sellLevel1 and (na(lastSellTime) or bar_index - lastSellTime > tradeDelay)

if buyCondition2
    strategy.entry("Buy", strategy.long)
    lastTradeTime2 := bar_index  // Enregistre le moment du trade

if buyCondition3
    strategy.entry("Buy", strategy.long)
    lastTradeTime3 := bar_index  // Enregistre le moment du trade

if buyCondition4
    strategy.entry("Buy", strategy.long)
    lastTradeTime4 := bar_index  // Enregistre le moment du trade

if sellCondition
    strategy.close("Buy")  // Ferme 50% de toutes les positions ouvertes // , qty_percent=30
    lastSellTime := bar_index  // Enregistre le moment du trade


// Affichage des niveaux
plot(sellLevel1, color=#fa930d, title="Sell Level")
plot(buyLevel2, color=#15bbfd, title="Buy Level")
plot(buyLevel3, color=#1229aa, title="Buy Level")
plot(buyLevel4, color=#9812aa, title="Buy Level")