ATR 취득을 위한 시간 기반 전략

저자:차오장, 날짜: 2024-01-29 16:13:57
태그:

img

전반적인 설명

이 전략의 주요 아이디어는 자동 스톱 로스 및 수익을 달성하기 위해 시간과 ATR 지표를 결합하는 것입니다. 전략은 구매 또는 판매를 위해 일정한 시간 지점에 포지션을 열고 합리적인 스톱 로스 및 수익을 취하기 가격을 계산하기 위해 ATR 지표를 사용합니다. 이것은 효율적인 자동 거래를 가능하게하며 수동 작업의 빈도를 줄이고 ATR 지표를 통해 위험을 효과적으로 제어합니다.

전략 원칙

이 전략은 시간 및 분 변수와 if 조건이 결합되어 트레이드 타임 전략 매개 변수에서 지정된 시간 지점에서 포지션을 열기 위해 사용합니다. 예를 들어 0700로 설정하면 베이징 시간으로 7시에 포지션을 열기 시작합니다.

포지션을 열면, 전략은 ta.atr() 함수를 사용하여 지난 5 분 동안 ATR 지표 값을 계산하고 이를 중지 손실 및 수익을 취하기 위한 기초로 사용합니다. 예를 들어, 구매 후, 수익 가격을 = 구매 가격 + ATR 값; 판매 후, 수익 가격을 = 판매 가격 - ATR 값.

이것은 시간 포인트에 기반한 자동 개방을 달성하고 ATR 지표에 기반한 스톱 손실 및 수익을 취합니다. 따라서 수동 작업의 빈도를 줄이고 동시에 위험을 효과적으로 제어합니다.

이점 분석

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

  1. 높은 수준의 자동화. 지정된 시간에 감시 없이 포지션을 열 수 있어 수동 작업의 빈도를 크게 줄일 수 있습니다.

  2. ATR 지표에 기반한 스톱 로스 및 스톱 로프는 단일 손실을 효과적으로 제어 할 수 있습니다. ATR 지표는 합리적인 스톱 로스 거리를 설정하기 위해 시장 변동성을 동적으로 캡처 할 수 있습니다.

  3. 강력한 확장성. 결정을 돕기 위해 더 많은 지표 또는 기계 학습 알고리즘을 쉽게 결합 할 수 있습니다. 예를 들어, 추세를 결정하기 위해 이동 평균을 결합하십시오.

  4. 간 상품 중재를 쉽게 구현합니다. 단순히 스프레드 거래 전략을 쉽게 구현하기 위해 다른 제품에 동일한 거래 시간을 설정합니다.

  5. 자동화 된 거래 시스템에 쉽게 통합됩니다. 계획된 작업 관리와 결합하여 전략 프로그램은 완전한 자동화를 달성하기 위해 24 시간 동안 감시받지 않고 실행 할 수 있습니다.

위험 분석

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

  1. 시장 이벤트 위험: 주요 블랙 스완 이벤트는 극심한 가격 변동을 유발하여 정지 및 더 큰 손실을 유발할 수 있습니다.

  2. 유동성 위험: 일부 상품은 유동성이 낮고 수익점 한계에 완전히 닫을 수 없습니다.

  3. ATR 매개 변수 최적화 위험. ATR 매개 변수 반복 테스트 및 최적화 필요, 부적절한 설정은 전략 성능에 영향을 미칠 것입니다.

  4. 시간점 최적화 위험. 고정 오픈 시간은 시장 기회를 놓칠 수 있습니다. 더 많은 지표에 기반한 조정이 필요합니다.

전략 최적화

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

  1. 더 많은 지표를 결합하여 시장 상황을 판단하고 MACD, RSI 등과 같은 불리한 환경에서 오픈을 피하십시오.

  2. 기계 학습 알고리즘을 사용하여 최적의 시기를 예측합니다. 더 많은 역사적 데이터를 수집하고 LSTM 모델을 사용하십시오.

  3. 하트비트 같은 플랫폼을 사용하여 상품 간 중재로 확장합니다. 산업 상관관계에 기반한 기회를 찾습니다.

  4. ATR 매개 변수를 최적화하고 더 많은 백테스팅을 통해 Stop Loss/Take Profit 설정을 합니다.

  5. 서버에서 전략을 실행하고, 시간제 작업을 통합하고, 24시간 7시간 자동화 거래를 달성합니다.

결론

이 전략은 효율적인 자동 스톱 로스 및 수익 트레이딩을 달성하기 위해 타이밍 및 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)")


더 많은