
이 전략은 동력 돌파와 평평선에 기반한 짧은 라인 거래 전략이다. 그것은 이동 평균, K 라인 형태, 거래량 및 변동성과 같은 여러 지표를 결합하여 돌파 동력이있는 방향적 기회를 식별하여 더 짧은 라인의 추세를 포착한다.
3일 EMA를 기준 평균선으로 삼고, 종전 가격이 그 평균선 아래로 떨어지면 시장이 하향 추세에 있다고 본다 ((Cond01) ).
오프닝 가격이 전날의 OHLC 가격 (오프닝 가격, 최고 가격, 최저 가격, 종료 가격의 평균 가격) 보다 높다는 것은 상거래가 오프닝 가격을 높인다는 것을 의미하며 상승 신호 (Cond02) 이다.
volume는 전날의 volume보다 작아 동력이 부족하다는 것을 나타내며 방향성 돌파를 유도한다 ((Cond03) .
마감 가격은 전날의 가격 범위를 돌파하여 Cond04의 돌파가 있음을 나타냅니다.
위의 4가지 조건이 동시에 충족될 때, 더 많은 입장을 개설한다.
스톱로스 조건: 10 K 라인을 초과하거나 5 번이나 흑자를 기록한 경우, 흑자 (Exits) .
이 전략은 여러 지표들을 통합하여 시장의 돌파 방향을 판단하고, 단기간에 가격 경향을 포착하는 데 강한 방향성을 가지고 있다. 그러나 각 조건은 1~3개의 K선만을 고려하고, 장기적인 경향 판단 능력은 약하다.
여러 지표의 합성 판단을 사용하여 가짜 돌파구를 필터링하고 유효한 돌파구를 식별할 수 있다.
동력이 부족하면 가격의 방향성 돌파구와 트렌드 폭발이 발생하고 더 명확한 방향성 기회를 잡을 수 있습니다.
거래 횟수가 많고, 단선 운영에 적합하며, 매번 작은 수익을 빠르게 잠금 할 수 있습니다.
단위 손실과 위험을 효과적으로 제어할 수 있는 합리적인 스톱 및 스톱 설정
여러 개의 포지션을 동시에 열면, 포지션이 증가할 위험이 있습니다.
단일 지표 파라미터 설정이 너무 엄격할 수 있으며, 적응 파라미터를 도입할 수 있다.
갱신 실패의 확률이 존재하고, 갱신 결함이 발생할 수 있다.
단기적인 정보에만 집중하는 것은 큰 트렌드를 파악하지 못하는 것입니다.
정지 지점이 지나치게 가까워지면 20~30 K선까지 확장할 수 있다.
트렌드 판단을 추가하여 역전치 포지션을 피하십시오. 장기 평균선 판단을 추가하여 큰 트렌드 방향으로만 포지션을 열 수 있습니다.
최적화 매개 변수 설정. EMA 주기, 돌파구 매개 변수를 테스트하고 최적화하여 다른 시장 상태에 더 적합하게 만들 수 있습니다. 또한 적응 매개 변수를 설정하여 지표가 자동으로 조정되는 주기 등을 설정할 수 있습니다.
조건적 최적화. 의 유효성을 검증하고, 가짜 을 줄이기 위해 에너지 물결, 브린 대역폭, RSI 등과 같은 다른 보조 지표를 추가하는 것을 고려할 수 있다.
충분한 테스트, 극단적인 상황에서의 수익 곡선을 검사한다. 과거의 상황을 재검토할 수 있고, 극심한 상황에서의 전략의 성능을 검사한다.
손해 중지 메커니즘을 최적화한다. 손해 중지 추적, 비율 중지, 적응 중지 등의 방법을 고려할 수 있다. 손해 중지 더 탄력하게 만든다.
이 전략은 EMA, 거래량, 변동성 등 여러 지표를 통합하여 단기간에 돌파 동력이 있는 기회를 식별하고, 전형적인 단선 돌파 전략에 속한다. 이 전략은 자주 돌아와, 가볍게 작동하며, 단선 이윤을 빠르게 잠금할 수 있다. 그러나 최근의 정보에만 집중하고, 대시장 상황을 제대로 파악하지 못한다. 우리는 트렌드 요소를 포함하고, 최적의 매개 변수 설정을 하고, 돌파 효과를 높이고, 극단적인 상황을 검사하는 등의 측면에서 최적화하여, 전략을 더 안정적이고, 더 잘 적응시킬 수 있다.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Free Strategy #01 (ES / SPY)", overlay=true)
// Inputs
Quantity = input(1, minval=1, title="Quantity")
EmaPeriod = input(3, minval=1, title="EMA Period")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")
// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Ema = ema(close, EmaPeriod)
OHLC = (open + high + low + close) / 4.0
// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Ema
Cond02 = open > OHLC
Cond03 = volume <= volume[1]
Cond04 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])
// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04))
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))