% 변경 바 차트 백테스트 전략

저자:차오장, 날짜: 2023-11-15 15:41:20
태그:

img

전반적인 설명

이 전략은 N 바 전의 종료 가격에 비해 현재 바의 종료 가격의 비율 변화를 계산하고 트렌드를 결정하기 위해 다른 색상의 히스토그램 바를 표시합니다. 입출구를 결정하기 위해 트렌드 라인을 사용합니다.

전략 논리

  1. 입력으로 전략 매개 변수를 설정, 바 너비, 표시 가격 변화 또는 비율 변화, 뷰백 기간, 구매/판매 기준 등.

  2. 현재 바의 종료 가격과 N 바 전의 종료 가격 사이의 가격 차이 또는 비율 차이를 계산합니다.

  3. 구매 및 판매 임계선을 설정합니다.

  4. 비율 변화에 따라 다른 색으로 히스토그램 바를 표시합니다.

  5. % 변동이 매수 기준보다 크면 '장'으로 설정하고, 매수 기준보다 낮으면 '단'으로 설정합니다.

  6. 위치 방향에 따라 색상 히스토그램 바.

  7. 위치 방향에 따라 입구와 출구

장점

  1. 결정 결정에 필요한 가격 변화 추세를 직관적으로 표시합니다.

  2. 트렌드 지표와 결합한 명확한 입출구 신호.

  3. 매개 변수는 다양한 제품과 시간 프레임에 최적화 될 수 있습니다.

  4. 단순하고 명확한 논리, 이해하기 쉽고 수정하기 쉽습니다.

  5. 빠른 트렌드 판단을 위해 좋은 시각화.

위험성

  1. 잘못된 신호에 노출되어 있고, 잘못된 입구 선택으로 인해 손실이 발생할 수 있습니다.

  2. 매개 변수는 높은 변동성 제품으로 조정되어야합니다. 그렇지 않으면 손실 확률이 증가합니다.

  3. 급격한 사건이나 하향적인 소식 등은 전혀 알려지지 않았습니다.

  4. 짧은 백테스트 기간은 매개 변수의 안정성을 결정하지 못할 수 있습니다.

  5. 정지시간 없이 역행할 기회를 놓치고

위험은 매개 변수 최적화, 다른 지표와 신호 필터링, 스톱 로스, 백테스트 기간 확장 등을 통해 제어 할 수 있습니다.

최적화 방향

  1. 신호를 확인하기 위해 트렌드 및 변동성 지표와 같은 다른 지표와 결합하는 것을 고려하십시오.

  2. 매개 변수 설정을 최적화하기 위해 기계 학습 알고리즘을 도입합니다.

  3. 동적 스톱 손실을 설정하여 단일 손실 금액을 제어합니다.

  4. 갑작스러운 사건의 영향을 피하기 위해 감정 지표와 뉴스를 포함하십시오.

  5. 거래 시간 또는 세션 필터를 추가합니다.

  6. 더 긴 시간 프레임으로 백테스트 기간을 최적화하십시오.

요약

이 전략은 히스토그램 바와 함께 실시간으로 가격 변화 비율을 표시하고 명확한 거래 신호를 형성하는 의사 결정에 트렌드 라인을 사용합니다. 논리는 간편한 조작을 위해 간단합니다. 그러나 리스크가 존재하며 최적화, 필터링, 스톱 로스 등을 통해 제어해야합니다. 지속적인 최적화로 전략에 따른 트렌드를 쉽게 파악하고 실용화 할 수 있습니다.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v3.0 27/07/2018
//
//  This histogram displays price or % change from previous bar. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent change bar chart Backtest", precision = 2)
input_barwidth = input(4, title="Bar Width")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xPrice = close
xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
colorg = iff(xPrice1 < 0, red, green)
pos = iff(xPrice1 > BuyZone, 1,
       iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xPrice1, color=colorg, style = histogram, linewidth = input_barwidth, title="Change")

더 많은