시간 및 ATR 지표를 기반으로 한 손절매 및 이익 실현 전략


생성 날짜: 2024-01-29 16:13:57 마지막으로 수정됨: 2024-01-29 16:13:57
복사: 0 클릭수: 748
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

시간 및 ATR 지표를 기반으로 한 손절매 및 이익 실현 전략

개요

이 전략의 주요 아이디어는 시간과 ATR 지표를 결합하여 자동화된 스톱 로스를 구현하는 것이다. 전략은 고정된 시간에 포지션을 열고, ATR 지표와 결합하여 합리적인 스톱 로스 가격을 계산한다. 이렇게 하면 효율적인 자동화된 거래를 구현할 수 있고, 수작업의 빈도를 줄일 수 있으며, 동시에 ATR 지표를 통해 위험을 효과적으로 제어할 수 있다.

전략 원칙

이 전략은 hour와 minute 변수와 결합된 if 조건 판단을 사용하여 전략 파라미터 tradeTime에서 지정된 시점에 포지션 개시 동작을 촉발한다. 예를 들어, 0700로 설정하면 베이징 시간 오전 7시에 포지션 개시를 촉발한다.

포지션이 열린 후, 전략은 ta.atr () 함수를 사용하여 last 5 min 내의 ATR 지표 값을 계산하고, 이를 손실 차단의 기초로 사용합니다. 예를 들어, 구매 후, 중지 가격 = 구매 가격 + ATR 값; 판매 후, 중지 가격 = 판매 가격 - ATR 값 ᅳ.

이것은 시점 기반의 자동 상장, 그리고 ATR 지표 기반의 스톱 스톱을 구현한다. 이것은 수동 조작의 빈도를 줄이고 동시에 위험을 효과적으로 통제한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 자동화도 높다. 정해진 시간에 무인 경비로 자동으로 주문을 할 수 있으며, 수동 조작의 빈도를 크게 줄일 수 있다.

  2. ATR 지표에 기반한 스톱로스 은 단일 손실을 효과적으로 제어할 수 있다. ATR 지표는 동적으로 시장의 변동 정도를 포착하여 합리적인 스톱로스 거리를 설정할 수 있다.

  3. 확장성이 강하다. 의사결정을 보조하기 위해 더 많은 지표 또는 기계 학습 알고리즘을 쉽게 통합할 수 있다. 예를 들어, 평형 지표 판단 경향을 결합한다.

  4. 여러 품종 중매를 쉽게 수행할 수 있다. 다양한 품종에 대해 동일한 거래 시간을 설정하는 것만으로도 계약을 열 수 있는 중매 전략을 쉽게 수행할 수 있다.

  5. 자동화 거래 시스템에 쉽게 통합할 수 있다. 시간적 임무 관리와 결합하여 24시간 무인정비로 전략 프로그램을 실행할 수 있으며, 완전한 자동화 거래를 실현한다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 시장 갑작스러운 사건의 위험. 주요 블랙 스윙 사건은 극단적인 가격 변동으로 인해 큰 손실을 초래할 수 있습니다.

  2. 상표의 유동성 위험. 일부 품종은 유동성이 떨어지며, 제한 가격 정지점에서 완전히 거래할 수 없으며, 정지점을 평정할 수 없다.

  3. ATR 변수 최적화 위험. ATR 변수는 반복적으로 테스트 최적화를 필요로 하며, 너무 크거나 너무 작게 설정하면 전략 효과에 영향을 미칠 수 있다.

  4. 시간점 최적화 위험. 고정된 개시 시점은 시장 기회를 놓칠 수 있으며, 더 많은 지표 조정 시간점과 결합해야 한다.

전략 최적화

이 전략은 다음의 차원에서 더욱 최적화될 수 있습니다.

  1. 시장 상황을 판단하는 더 많은 지표와 결합하여 불리한 시장 환경에서 입장을 피하십시오. 예를 들어 MACD, RSI 등.

  2. 기계 학습 알고리즘을 사용하여 최적의 개장 시점을 예측할 수 있다. 더 많은 역사적 데이터를 수집할 수 있으며, LSTM 등을 사용하여 모델 훈련을 할 수 있다.

  3. Heartbeat와 같은 플랫폼을 활용하여 다양한 종류의 경매를 확장하십시오.

  4. ATR 파라미터를 최적화하고, 스티프 스톱 손실의 설정을 한다. 더 많은 반복적인 피드백을 통해 최적의 파라미터를 찾을 수 있다.

  5. 전략이 서버에서 실행되고, 시간적 작업이 통합되고, 7x24 시간 동안 완전히 자동화되어 운영됩니다. 무인 보호는 지속적인 수익을 창출합니다.

요약하다

이 전략은 시점과 ATR 지표를 통합하여 효율적인 자동화 스톱로스 스톱트레이딩을 구현한다. 파라미터 최적화를 통해 안정적인 알파를 얻을 수 있다. 또한 매우 강력한 확장성과 통합 능력을 가지고 있어, 추천할 만한 양적 전략 중 하나이다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true)

// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na



// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")

// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))

// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders


// if (buyCondition)
//     strategy.entry("Buy", strategy.long)
//     buyprice := close
//     takeProfitLevel := buyprice + atrValue
// strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel) 
    

  

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    sellprice := close
    takeProfitLevelForSell := sellprice -atrValue
strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)


// Plot horizontal lines for take profit levels


plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")