리소스 로딩... 로딩...

마감 가격 차이에 기반한 단기 거래 전략

저자:차오장, 날짜: 2023-09-28 15:08:39
태그:

전반적인 설명

이 전략은 단기 거래를 구현하는 것을 목표로, 2 일 연속 폐쇄 가격의 차이를 분석하여 미래의 가격 움직임을 판단합니다. 이 전략은 간단하고 직관적이며 실행이 쉽고 단기 거래자에게 적합합니다.

전략 논리

이 전략의 핵심 논리는 오늘의 종료 가격을 어제 종료 가격과 비교하는 것입니다. 구체적으로:

  1. 오늘의 종료 가격과 어제의 종료 가격의 차이를 계산합니다.
  2. 만약 그 차이는 설정된 임계값보다 크다면, 오늘의 가격이 어제와 비교해서 상승한 것입니다.
  3. 만약 그 차이는 세트된 마이너스 임계치보다 작다면, 오늘의 가격이 어제와 비교해서 떨어졌다는 뜻입니다.
  4. 그렇지 않으면 어제의 입장을 유지하십시오.

여기서 핵심은 합리적인 문턱을 설정하는 것입니다. 문턱이 너무 크면 더 작은 가격 변동을 놓칠 것입니다. 문턱이 너무 작다면 정상적인 변동으로 인해 과도한 비합리적인 거래를 유발할 것입니다. 전략은 기본 값 0.004과 단계 0.001의 조정 가능한 문턱 디자인을 채택합니다. 적절한 문턱은 역사적 데이터에 기반한 백테스팅을 통해 선택할 수 있습니다.

요약하자면, 이 전략은 두 개의 연속 거래일 사이의 가격 변화를 포착하고, 임계치를 통해 정상적인 변동을 필터링하여 미래의 가격 추세를 판단하여 단기 거래를 수행합니다. 전략 아이디어는 간단하고 직관적이며 이해하기 쉽고 구현하기 쉽습니다.

전략 의 장점

  • 간단하고 직관적인 아이디어, 이해하기 쉽고 실행하기 쉽습니다
  • 복잡한 기술 지표가 없고 경험 한계도 낮다
  • 종료 가격을 사용, 효과적으로 소음을 필터, 신호 안정성을 높여
  • 조정 가능한 임계 설계로 최적의 매개 변수를 찾을 수 있습니다.
  • 단기 거래에 적합, 빠르게 가격 변화를 포착
  • 다양한 시장 환경에서 실행할 수 있습니다.

전략 의 위험

  • 종료 가격의 가격 격차의 확률, 가격 변화를 놓칠 수 있습니다.
  • 하나의 지표에 의존하고 다른 중요한 정보를 놓칠 수 있습니다.
  • 부적절한 문턱 설정은 과도한 잘못된 거래 신호를 생성합니다.
  • 빈번한 단기 거래, 거래 비용은 더 높을 수 있습니다.
  • 세심한 모니터링과 파라미터의 적절한 조정이 필요합니다.

이 위험 을 해결 하기 위해 다음 과 같은 것 들 을 고려 해 보십시오.

  1. 신호 정확성을 높이기 위해 거래량과 같은 다른 지표를 결합하십시오.
  2. 단일 손실을 제어하기 위해 스톱 손실 논리를 추가
  3. 신호 품질을 향상시키기 위해 매개 변수를 최적화
  4. 거래 주기를 적절하게 연장하여 운영 빈도를 줄이십시오.
  5. 수익성 향상을 위해 포지션 관리를 강화합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 멀티 타임프레임 백테스팅- 다양한 시간 프레임 (일일, 4 시간, 1 시간, 등) 을 사용하여 역 테스트 매개 변수를 선택하고 최적의 시간 프레임과 매개 변수를 선택하십시오.

  2. 변동성 지표를 결합합니다.- 더 나은 동적 문턱을 설정하기 위해 ATR과 같은 가격 변동성을 고려하는 지표를 추가하십시오.

  3. 스톱 손실 논리를 추가합니다.- 한 번의 손실을 통제하기 위해 합리적인 스톱 손실 지점을 설정하십시오.

  4. 위치 관리 최적화- 초기 포지션의 크기를 최적화하고 Stop Loss를 보장하면서 수익성을 높이기 위해 추가 규칙을 적용하십시오.

  5. 거래 비용을 고려- 리크테스팅에서 수수료와 미끄러짐과 같은 거래 비용을 추가하여 라이브 거래에 더 가깝습니다.

  6. 기계 학습을 도입- 기계 학습 알고리즘을 적용하여 더 많은 기능을 추출하고 더 강력한 거래 신호를 만듭니다.

결론

이 전략은 단기 거래 전략을 설계하기 위해 간단하고 직관적인 접근 방식을 사용하여 폐쇄 가격 차이에 기초하여 미래의 가격 추세를 판단합니다. 전략은 실행이 쉽고 단기 거래에 적합하지만 약간의 손실 위험을 초래할 수 있습니다. 다양한 최적화 방법은 전략의 안정성과 수익성을 향상시킬 수 있습니다. 기본 전략으로서 추가 연구를위한 아이디어와 참조를 제공할 수 있습니다.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt) repainting results", shorttitle="CA_-_Daily_Close_Strat", overlay=false)

// ChartArt's Daily Close Comparison Strategy
//
// Version 1.0
// Idea by ChartArt on February 28, 2016.
//
// This strategy is equal to the very
// popular "ANN Strategy" coded by sirolf2009,
// but without the Artificial Neural Network (ANN).
//
// Main difference besides stripping out the ANN
// is that I use close prices instead of OHLC4 prices.
// And the default threshold is set to 0 instead of 0.0014
// with a step of 0.001 instead of 0.0001.
//
// This strategy goes long if the close of the current day
// is larger than the close price of the last day.
// If the inverse logic is true, the strategy
// goes short (last close larger current close).
//
// This simple strategy does not have any
// stop loss or take profit money management logic.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 

threshold = input(title="Price Difference Threshold repainting results", type=float, defval=0.004, step=0.001)

getDiff() =>
    yesterday=security(syminfo.tickerid, 'D', close[1])
    today=security(syminfo.tickerid, 'D', close)
    delta=today-yesterday
    percentage=delta/yesterday
    
closeDiff = getDiff()
 
buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1]

hline(0, title="zero line")

bgcolor(buying ? green : red, transp=25)
plot(closeDiff, color=silver, style=area, transp=75)
plot(closeDiff, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
    strategy.entry("Short", strategy.short)

더 많은