
이 글은 주로 역동적인 포지션 보유 이익 추적 거래 전략 이라는 수량 거래 전략을 소개한다. 이 전략은 ATR 지표에 기반한 역동적인 출장 중지 경계를 설정하여 가격의 갑작스러운 유리한 상황이 발생한 후 1-2 K 라인 내에서 신속한 정지를 실현하여 가격 재조정이 손실을 초래하는 것을 방지한다.
이 전략의 거래 논리는 매우 간단하고 명확합니다. 구체적으로, 그것은 다음과 같은 단계를 포함합니다:
14기 SMA와 28기 SMA 형태의 평행선 교차를 사용하여 장과 하락의 신호로. 14기 평균선 위에 28기 평균선을 통과했을 때, 더 많이 구매하고, 14기 평균선 아래에 28기 평균선을 통과했을 때, 하락 판매한다.
ATR 지수를 계산하고, 그것을 하나의 곱셈으로 곱하면, 동적 출전의 정지 위치를 얻는다. 예를 들어, ATR 길이를 7 곱하기 1.5로 설정하면, 동적 정지 통로의 폭은 7기 ATR의 1.5배이다.
포지션 방향이 다단일 경우, 높은 점을 더하여 동적 정지 통로의 폭을 더하여 정지 라인을 얻는다. 포지션 방향이 공백일 경우, 낮은 점을 빼고 동적 정지 통로의 폭을 얻으며 공백 정지 라인을 얻는다.
가격이 동적 정지선을 넘으면 즉시 정지하고 퇴장한다. 이것은 가격이 갑자기 초강세를 나타낸 후 1-2 K선 안에 이익을 잡을 수 있다.
위의 단계를 통해, 이 전략은 간단하지만 효율적인 지분 이윤 추적과 신속한 정지 효과를 달성한다. ATR 통로는 최대 정지 라인을 위해 동적으로 조정할 수 있는 능력을 제공하며, 새로운 1BAR 조건은 정지 라인이 급격한 시장 우호적 인 경우에만 시작되도록 보장한다. 이것은 정지 라인이 조기 출발하는 상황을 효과적으로 줄일 수 있다.
동적 포지셔닝 수익 추적 거래 전략은 다음과 같은 장점이 있습니다.
아이디어는 간단하고 명확하며, 이해하기 쉬운 구현, 초보자 학습에 적합하다.
동적 ATR 정지를 통해 포지션 보유 수익을 자동으로 추적할 수 있으며, 수익성 nodeList을 피할 수 있다.
1BAR 고저점 조건을 추가하여, 초강력 상태가 발생했을 때만 정지기를 시작하도록 하고, 잘못된 동작을 줄인다.
다른 ATR 길이와 곱수를 설정할 수 있으며, 정지 강도를 조정할 수 있다.
“이런 일이 벌어진다면, 우리는 더 빨리 경기를 멈출 수 있고, 더 빨리 경기를 떠날 수 있다.
확장성이 강하고, 이 프레임워크를 기반으로 다른 스톱 스톱 손실 전략을 쉽게 구현할 수 있다.
이 전략에는 다음과 같은 위험도 있습니다.
ATR의 급격한 증폭은 경기가 너무 일찍 종료되는 것을 막을 수 있다.
시장의 소음을 효율적으로 필터링할 수 없고, 가짜 돌파구에 의해 오해받기 쉽다.
이 모든 것은 단지 평행선 교차로 의사결정을 내리는 데에 불과하며, 복잡한 상황을 효과적으로 판단할 수 없습니다.
하지만, 이 모든 것은 손실을 통제할 수 없는 막상 손실 장치가 없기 때문입니다.
기본 위험 매개 변수 설정은 모든 품종에 적합하지 않을 수 있으며, 최적화가 필요합니다.
위와 같은 위험을 줄이기 위해 다음과 같은 측면에서 최적화할 수 있습니다.
필터링 메커니즘을 추가하여 다른 지표와 함께 가짜 신호를 필터링합니다.
단독 손실을 엄격하게 통제하는 Stop Loss 전략이 추가되었습니다.
워크 포워드 분석을 이용한 최적화 매개 변수
다양한 품종에 대한 최적화 파라미터 조합.
더 똑똑한 의사결정을 위해 기계 학습 알고리즘을 추가합니다.
위험 분석에 따르면, 이 전략의 최적화 방향은 다음과 같습니다.
신호 필터를 추가합니다.: 신호가 들어간 후, 다른 지표의 필터를 추가할 수 있습니다. 예를 들어 MACD, 브린 밴드 등의 지표와 결합하여, 잡음으로 오도되는 것을 피한다.
스톱 라인을 추가하세요: ATR 기반 또는 모바일 스톱의 스톱 라인 설정을 추가하여 단편 손실을 제어한다.
변수 최적화: 기계 학습과 같은 방법을 통해 ATR 길이, ATR 곱하기 등과 같은 파라미터의 설정을 최적화하십시오.
리스크 조정: 다른 거래 품종의 특성에 따라 포지션 관리 및 위험 매개 변수를 조정하십시오.
모델 융합이 전략은 기계학습, 신경망 등과 같은 다른 모델과 결합하여 의사결정의 정확성을 향상시킬 수 있습니다.
외부의 개입: 인공 개입 노트를 추가하여 중요한 순간에 인공적으로 정지 중지 손실 위치를 결정한다.
위 몇 가지 방향의 최적화를 통해 이 전략의 수익 안정성을 크게 향상시킬 수 있다.
다이내믹 포지션 이윤 추적 거래 전략은 전체적으로 매우 실용적인 효율적인 중지 전략이다. 이 전략은 명확하고 이해하기 쉽다. 다이내믹 스톱을 통해 이윤을 자동으로 추적할 수 있으며, 초강도 상황에서 빠르게 중단된다. 이 전략에는 또한 몇 가지 위험이 있으며, 신호 필터링을 추가하고, 스톱 손실을 추가하고, 파라미터 최적화를 추가하여 더 복잡한 시장 환경에 적응하도록 개선 할 수 있습니다.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O
//@version=5
strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100)
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if longCondition
strategy.entry("Long", strategy.long, comment="long", alert_message="long")
if shortCondition
strategy.entry("Short", strategy.short, comment="short", alert_message="short")
atr_length=input.int(7, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")
atr_multiplied = atr_multiplier * ta.atr(atr_length)
ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na
ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na
plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1)
plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1)
strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong")
strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort")
// var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black)
// if barstate.islastconfirmedhistory
// table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white)
// table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white)
// table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white)
// table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white)
// table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)