
이 전략은 형태를 식별하여 트레이드 신호를 추적하고, 스톱 스톱 로직과 결합하여 자동으로 거래한다. 반전 형태를 식별할 때 더 많은 공백을 하고, 스톱 또는 스톱 손실 후 평정 위치에 도달한다.
형태를 식별: 개체 크기가 설정된 값보다 작고, 오픈 가격과 클로즈 가격이 같을 때 트레이딩 신호를 추적하는 것으로 간주한다.
더 많은 공백: 역전형이 확인되면, 전날의 종결 가격이 전날의 2일보다 높으면 더 많은 공백을 한다. 전날의 종결 가격이 전날의 2일보다 낮으면 공백을 한다.
정지 손실: 더 많은 것을 한 후에 가격이 입시 가격과 정지 지점을 도달했을 때 정지; 더 많은 것을 한 후에 가격이 입시 가격과 정지 지점을 도달했을 때 정지; 더 많은 것을 한 후에 가격이 정지 지점을 촉발했을 때 정지.
반전 형태를 이용하여 주가 전환점을 효과적으로 포착하여 거래 신호의 효과를 높일 수 있다.
스톱 스톱 손실 메커니즘과 결합하면 위험을 효과적으로 제어하고 수익을 잠금하고 손실이 확대되는 것을 방지 할 수 있습니다.
자동화 거래, 인적 개입 없이 거래 비용을 줄이고 거래 효율성을 높여줍니다.
형 판단에는 어느 정도 주관성이 존재하며, 잘못된 판단이 발생할 수 있는 상황이다.
스티핑 스톱포인트는 잘못 설정되어 있어, 큰 상황을 놓치거나 조기 스톱포인트가 발생할 수 있다.
정책 매개 변수는 계속 테스트 및 최적화를 필요로 하며, 그렇지 않으면 과도한 적합성을 초래할 수 있다.
형태 판단 조건을 최적화하여, 더 많은 K선 지표와 함께 판단 정확도를 향상시킨다.
다양한 거래 품종을 테스트하고, 스톱 스톱 손실 지점을 조정하고, 파라미터를 최적화한다.
더 많은 거래 신호를 판단하는 알고리즘을 추가하고, 전략적 논리를 풍부하게 한다.
포지션 관리 모듈을 추가하여 참조 지표에 따라 포지션을 동적으로 조정할 수 있습니다.
이 전략은 ?? 형태를 인식하여 반전 신호를 인식하고, 스톱 스톱 스로스 규칙을 설정하여 자동 거래를 구현한다. 전략은 간단하고 이해하기 쉽고, 실용적인 가치가 있다. 그러나 식별 정확도와 매개 변수 최적화 공간은 아직 개선되어야 하며, 실장 적용을 권장하기 전에 추가 테스트 및 최적화를 권장한다.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/01/2019
// This is a candlestick where the open and close are the same.
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Doji Backtest", overlay = true)
input_takeprofit = input(10, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
input_minsizebody = input(0.5, title="Min. Size Body pip", step=0.01)
barcolor(abs(close - open) <= input_minsizebody ? open == close ? yellow : na : na)
possell = 0.0
posbuy = 0.0
pospricebuy = 0.0
pospricesell = 0.0
barcolornow = blue
pospricesell := close< close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) : nz(pospricesell[1], 0)
possell := iff(pospricesell > 0 , -1, 0)
barcolornow := possell == -1 ? red: posbuy == 1 ? green : blue
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 , nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 , nz(pospricesell, 0))
pospricebuy := close > close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0)
posbuy := iff(pospricebuy > 0 , 1, 0)
barcolornow := posbuy == 1 ? green: barcolornow
pospricebuy := iff(high >= pospricebuy + input_takeprofit and pospricebuy > 0, 0 , nz(pospricebuy, 0))
pospricebuy := iff(low <= pospricebuy - input_stoploss and pospricebuy > 0, 0 , nz(pospricebuy, 0))
barcolor(barcolornow)
if (posbuy == 0 and possell == 0)
strategy.close_all()
if (posbuy == 1)
strategy.entry("Long", strategy.long)
if (possell == -1)
strategy.entry("Short", strategy.short)
pospricebuy := iff(high <= pospricebuy + input_takeprofit and pospricebuy > 0, 0 , nz(pospricebuy, 0))
pospricebuy := iff(low >= pospricebuy - input_stoploss and pospricebuy > 0, 0 , nz(pospricebuy, 0))
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 , nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 , nz(pospricesell, 0))