종가 차이에 따른 단기 거래 전략


생성 날짜: 2023-09-28 15:08:39 마지막으로 수정됨: 2023-09-28 15:08:39
복사: 2 클릭수: 743
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 2일간의 종식 가격 차이를 분석하여 미래의 가격 운동 방향을 판단하여 단선 거래를 실현한다. 전략은 간단하고 직관적이며, 실행하기 쉽고, 단선 거래자에게 적합하다.

전략 원칙

이 전략의 핵심적인 논리는 오늘의 종결 가격과 어제의 종결 가격을 비교하는 것이다.

  1. 오늘 종료 가격과 어제 종료 가격의 차이를 계산합니다.
  2. 만약 이 차이는 설정된 하락값보다 크다면, 오늘의 가격이 어제의 가격보다 더 높습니다.
  3. 만약 이차가 마이너스보다 작다면, 오늘의 가격은 어제의 가격에 비해 떨어지고, 하락한다.
  4. 아니면 어제의 입장을 유지하세요.

여기서 중요한 것은 합리적인 마이너스를 설정하는 것입니다. 너무 큰 마이너스를 설정하면 더 작은 가격 변동이 놓쳐집니다. 너무 작은 마이너스를 설정하면 정상적인 변동으로 인해 더 많은 비합리적인 거래가 발생합니다. 전략은 조정 가능한 마이너스 디자인을 사용하여 기본값은 0.004이며, 단계 길이는 0.001이며, 역사적 데이터에 따라 테스트를 통해 적절한 마이너스를 선택할 수 있습니다.

전체적으로 이 전략은 2개의 연속적인 거래일 사이의 가격 변화를 포착하고, 적지 않은 값을 필터링하여 정상적인 변동성을 판단하여 미래의 가격 추세 방향을 판단하여 단선 거래를 한다. 전략은 간단하고 직관적이며 이해하기 쉽고 구현된다.

전략적 이점

  • 간단하고 직관적이며, 이해하기 쉽고, 실행하기 쉽습니다.
  • 복잡한 기술 지표가 필요없고, 경험 문턱이 낮습니다.
  • 종착값을 사용하여 빈소음을 효과적으로 필터링하여 신호 안정성을 높인다.
  • 최적의 변수를 찾아내기 위해 최적화할 수 있는 값 설계
  • 트 라인 거래에 적합하며, 가격 변화를 빠르게 포착합니다.
  • 다양한 시장 환경에서 작동할 수 있습니다.

전략적 위험

  • 마감 가격의 빈틈이 존재하고 가격 변화를 놓칠 수 있습니다.
  • 단 하나의 지표에 의존하면 다른 중요한 정보를 놓칠 수 있습니다.
  • 값을 잘못 설정하면 너무 많은 잘못된 거래 신호가 발생합니다.
  • 단선 운용이 빈번하고 거래비용이 높을 수 있다.
  • “이런 일이 벌어진다면, 우리는 이 문제를 해결해야 합니다.

이러한 위험들을 해결하기 위해서는 다음과 같은 것들을 고려해야 합니다.

  1. 거래량과 같은 다른 지표와 함께 신호의 정확성을 강화합니다.
  2. Stop Loss Logic을 추가하여 단편 손실을 제어합니다.
  3. 최적화 매개 변수, 신호 품질 향상
  4. 거래 주기를 적절히 연장하고, 거래 빈도를 낮추는 것
  5. 수익을 높이기 위해 포지션 관리를 강화

전략 최적화 방향

이 전략은 다음과 같은 방향에서 최적화를 고려할 수 있습니다.

  1. 다중 시간 주기의 재측정- 다양한 시간 주기 (태양선, 4시간, 1시간 등) 을 사용하여 역측정 전략 파라미터를 사용하여 최적의 시간 주기 및 파라미터를 선택한다.

  2. 변동률 지표와 함께- ATR와 같은 가격 변동성을 고려하는 지표가 추가되면 동적 마이너스를 더 잘 설정할 수 있습니다.

  3. Stop Loss 로직을 추가합니다.- 단편적 손실을 통제하기 위해 합리적인 스톱포트를 설정하십시오.

  4. 포지션 관리를 최적화- 포지션 크기와 포지션 추가 규칙을 최적화하여 손실을 방지하면서 수익을 높여줍니다.

  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)