동적 이동 손절매 이중 목표 가격 이동 평균 교차 전략

SMA MA TP SL
생성 날짜: 2024-07-29 14:40:23 마지막으로 수정됨: 2024-07-29 14:40:23
복사: 0 클릭수: 561
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

동적 이동 손절매 이중 목표 가격 이동 평균 교차 전략

개요

이 전략은 이동 평균의 교차를 기반으로 한 거래 시스템으로, 동적 이동 스톱 손실과 쌍 목표 수익 포인트의 위험 관리 방법을 결합한다. 전략은 주로 가격과 200 기간 이동 평균의 교차를 기반으로 입문 시기를 판단하며, 위험을 제어하고 수익을 극대화하기 위해 유연한 스톱 손실과 이득을 설정한다.

전략 원칙

  1. 출입 신호:

    • 다중 입점: 가격이 200주기 이동 평균을 상향으로 넘어가면
    • 공허 입시: 가격이 200주기 이동 평균선을 아래로 통과했을 때
  2. 위험 관리:

    • 초기 스톱: 입시 가격의 500 포인트 이상으로 설정
    • 동적 이동 스톱: 가격이 200 점의 유리한 방향으로 이동하면 스톱은 입시 가격으로 이동합니다.
  3. 수익 목표:

    • 첫 번째 목표: 입시 가격 3000점으로 도달하면 75%의 포지션을 청산합니다.
    • 두번째 목표: 나머지 25%의 지점은 4,000개의 입시 가격에 도달했을 때 매각됩니다.
    • 동적 이동 중지 시, 남은 포지션의 중지 지점은 입시 가격에 설정됩니다.
  4. 포지션 관리:

    • 매 거래당 100개의 고정된 단위

전략적 이점

  1. 트렌드 추적: 이동 평균을 사용하여 시장의 트렌드를 포착하여 큰 트렌드에서 수익을 창출하는 데 도움이됩니다.

  2. 위험 제어: 초기 중지와 동적 이동 중지의 결합 방식을 사용하여 최대 손실을 제한하고 이미 얻은 이익을 보호합니다.

  3. 이윤을 극대화: 두 개의 목표 가격을 설정하여, 부분적인 이윤을 보장하면서도, 큰 추세를 추적할 수 있습니다.

  4. 자동화: 전략이 완전히 자동화되어 인간의 감정적 방해가 줄어들었습니다.

  5. 유연성: 이동 평균 주기, 정지점, 이득 등과 같은 파라미터는 시장 상황에 따라 조정할 수 있다.

전략적 위험

  1. 변동 시장 위험: 변동 시장에서는 종종 가짜 브레이크 신호가 발생하여 연속적인 손실이 발생할 수 있습니다.

  2. 슬라이드 포인트 위험: 급속한 상황에서는 실제 거래 가격이 이상적인 가격과 큰 오차가 있을 수 있다.

  3. 과도한 거래: 자주 교차하는 신호는 과도한 거래를 유발하고 거래 비용을 증가시킬 수 있습니다.

  4. 단일 지표 의존: 이동 평균에만 의존하면 다른 중요한 시장 정보를 무시할 수 있습니다.

  5. 고정 포지션 위험: 매 거래당 고정된 수치는 모든 시장 환경에 적합하지 않을 수 있다.

전략 최적화 방향

  1. 다중 지표 결합: RSI, MACD 등과 같은 다른 기술 지표를 도입하는 것을 고려하여 이동 평균과 결합하여 입시 신호의 신뢰성을 향상시킵니다.

  2. 동적 포지션 관리: 시장의 변동성과 계정 잔액에 따라 거래 수를 동적으로 조정하여 위험을 더 잘 제어합니다.

  3. 시장 환경 필터: 트렌드 강도 또는 변동률 지표를 추가하여 거래에 적합하지 않은 시장 환경에서 입주를 피하십시오.

  4. 파라미터 최적화: 역사 데이터를 사용하여 다양한 파라미터 조합을 재검토하여 최적의 이동 평균 주기, 스톱 스포트 및 이득 설정을 찾습니다.

  5. 시간 필터: 시간 필터를 추가하는 것을 고려하고, 변동성이 높거나 유동성이 낮은 시간대에 거래하는 것을 피하십시오.

  6. 기본 요소를 추가합니다: 중요한 경제 자료 발표나 다른 기본적 사건과 결합하여 전략을 조정할 시점

요약하다

동적 이동식 스톱로스 쌍목표 가격 평행선 교차 전략은 기술 분석과 위험 관리를 결합한 양적 거래 시스템이다. 이동식 평균을 통해 시장 추세를 포착하면서 동적 스톱로스 및 다중 수익 목표를 사용하여 위험과 수익을 균형을 맞추는 전략이다. 이 전략의 주요 장점은 자동화의 수준이 높고, 위험 관리가 유연하며, 강한 추세 시장에서 눈에 띄는 수익을 얻을 수 있는 잠재력이 있다. 그러나 사용자는 불안한 시장의 위험에 주의를 기울이고, 적응성과 안정성을 높이기 위해 추가 최적화 전략을 고려해야합니다.

전략 소스 코드
/*backtest
start: 2023-07-29 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SOL/USDT Trading Strategy", overlay=true)

// Параметры стратегии
input_quantity = input(2, title="Trade Size (SOL)")
stop_loss_points = input(500, title="Stop Loss Points")
take_profit_points_1 = input(3000, title="First Take Profit Points")
take_profit_points_2 = input(4000, title="Second Take Profit Points")
move_stop_to_entry_points = input(200, title="Move Stop to Entry Points")
ma_period = input(180, title="MA Period")

// Расчет скользящей средней
ma = ta.sma(close, ma_period)

// Условия входа в сделку
long_condition = ta.crossover(close, ma)
short_condition = ta.crossunder(close, ma)

// Текущая цена
var float entry_price = na

// Логика открытия и закрытия сделок
if (long_condition)
    entry_price := close
    strategy.entry("Long", strategy.long, qty=input_quantity)
if (short_condition)
    entry_price := close
    strategy.entry("Short", strategy.short, qty=input_quantity)

// Логика выхода из сделок
if (strategy.position_size > 0)
    if (close >= entry_price + take_profit_points_1 * syminfo.mintick)
        strategy.exit("Partial Take Profit", "Long", qty=0.75 * input_quantity, limit=close)
        strategy.exit("Remaining Take Profit", "Long", qty=0.25 * input_quantity, limit=entry_price + take_profit_points_2 * syminfo.mintick, stop=entry_price)

    if (close >= entry_price + move_stop_to_entry_points * syminfo.mintick)
        strategy.exit("Stop Loss at Entry", "Long", qty=strategy.position_size, stop=entry_price)
    else
        strategy.exit("Take Profit/Stop Loss", "Long", stop=entry_price - stop_loss_points * syminfo.mintick, limit=entry_price + take_profit_points_1 * syminfo.mintick)

if (strategy.position_size < 0)
    if (close <= entry_price - take_profit_points_1 * syminfo.mintick)
        strategy.exit("Partial Take Profit", "Short", qty=0.75 * input_quantity, limit=close)
        strategy.exit("Remaining Take Profit", "Short", qty=0.25 * input_quantity, limit=entry_price - take_profit_points_2 * syminfo.mintick, stop=entry_price)

    if (close <= entry_price - move_stop_to_entry_points * syminfo.mintick)
        strategy.exit("Stop Loss at Entry", "Short", qty=strategy.position_size, stop=entry_price)
    else
        strategy.exit("Take Profit/Stop Loss", "Short", stop=entry_price + stop_loss_points * syminfo.mintick, limit=entry_price - take_profit_points_1 * syminfo.mintick)

// Отображение скользящей средней
plot(ma, title="200 MA", color=color.blue)