촛불 폐쇄 전략에서 구매/판매

저자:차오장, 날짜: 2024-01-08 11:11:18
태그:

img

전반적인 설명

이 전략은 현재 촛불과 이전 촛불의 폐쇄 가격을 비교하여 구매/판매 신호를 유발합니다.

구체적으로, 현재 촛불이 이전 촛불의 가장 높은 가격 이상으로 닫히면 구매 신호가 발동됩니다. 현재 촛불이 이전 촛불의 가장 낮은 가격 이하로 닫히면 판매 신호가 발동됩니다.

전략 논리

  1. 지정된 시간 프레임 (예: 매일, 시간) 의 역사적 최고 및 최저 가격을 얻으십시오.
  2. 스톱 로스 및 수익 거리를 계산
    • 스톱 로스 거리는 = 이전 촛불 최고 - 이전 촛불 최저
    • 수익 거리는 = 손실 중지 거리는 * 3 (1: 3 위험/이익 비율)
  3. 현재 클로즈와 이전 최고/하위 사이의 관계를 결정
    • 현재 닫는 경우> 이전 촛불 최고, 구매 신호를 트리거
    • 현재 닫기 < 이전 촛불 최저, 시동 판매 신호
  4. 엔트리 후 스톱 로스를 설정하고 이윤을 취합니다.
    • 구매 후, 이전 촛불 최저에서 손해를 중지 설정 - 손해를 중지 거리, 이전 촛불 최고에서 이익을 취 + 이익을 취 거리
    • 판매 후, 이전 촛불 최고에서 손실을 중지 + 손실을 중지 거리 설정, 이전 촛불 최저에서 수익을 가져 - 이익 거리를 가져

이 전략의 기본적인 거래 논리는 위의 것입니다.

이점 분석

  • 간단하고 명확한 전략 아이디어, 이해하기 쉽고 실행하기 쉬운
  • 트렌드 방향을 결정하기 위해 촛불 정보 사용
  • 위험 통제를 위해 스톱 손실 및 수익 메커니즘을 가지고 있습니다.

위험 분석

  • 한 시간 틀에만 근거한 판단은 더 많은 잘못된 신호를 생성 할 수 있습니다.
  • 부피 변화, 변동성 등과 같은 더 많은 요소를 고려하지 않습니다.
  • 손실 중지 및 이익 취득 설정이 적절하지 않을 수 있습니다, 너무 넓거나 너무 좁은 둘 다 위험합니다

최적화 방향

  • 입력 신호를 확인하기 위해 부피, 이동 평균 등 더 많은 요소를 결합합니다.
  • 더 합리적인 스톱 손실과 충분한 수익을 얻기 위해 스톱 손실 및 수익을 취하는 알고리즘을 최적화하십시오.
  • 다른 제품에서 매개 변수 조정이 필요할 수 있습니다.
  • 더 긴 시간 프레임 테스트 할 수 있습니다

요약

전략 아이디어는 단순하고 명확한 전체, 촛불 폐쇄 가격을 사용하여 트렌드 방향을 결정하고 또한 위험을 제어하기 위해 손해를 중지 / 이익을 취하고 있습니다. 주식 및 암호화 거래의 기본 전략으로 사용될 수 있습니다. 그러나 한 시간 프레임에만 기반한 판단으로 더 쉽게 잘못된 신호를 생성하는 경향이 있습니다. 전략 성능을 향상시키기 위해 더 많은 요소와 조정 매개 변수를 통합하여 개선 할 여지가 있습니다.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)

var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na

// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"

// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)

if bar_index > 0
    prevLowest := pastLow[1]
    prevHighest := pastHigh[1]

currentClose = close

if not na(prevLowest) and not na(prevHighest)
    slDistance := prevHighest - prevLowest
    tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio

// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)

// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)

plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")







더 많은