고정 손절매 및 손절매 청산을 통한 양적 거래 전략


생성 날짜: 2024-02-18 09:53:48 마지막으로 수정됨: 2024-02-18 09:53:48
복사: 1 클릭수: 362
1
집중하다
1215
수행원

고정 손절매 및 손절매 청산을 통한 양적 거래 전략

개요

이 전략의 이름은 동적 이동 평균을 뚫고 진입, 고정된 스톱 스톱 손실 출구를 하는 양적 거래 전략 . 이 전략의 주요 아이디어는 매주 월요일 거래 시간대에서, 상장 가격이 115 주기의 Hull 동적 이동 평균보다 낮은 경우, 장시간 입문 작업을 수행한다. 그 후 매주 3 일 거래 시간대에서, 조건 없이 평점 출구 작업을 수행하면서 고정된 스톱 손실을 설정한다.

전략 원칙

이 전략은 주로 헐 이동 평균의 지표 신호와 주기적인 거래 규칙을 기반으로 설계되었다.

첫째, 매주 월요일 거래 시간 동안, 종식 가격이 115 주기의 헐 이동 평균보다 낮은지 여부를 판단하고, 조건이 충족되면, 장거리 입시 작업을 수행한다. 헐 이동 평균은 일반 이동 평균에 비해 가격 변화에 더 빨리 반응하고, 추세를 인식하는 데 더 민감하므로, 이 지표 신호는 입시 시기의 정확성을 향상시킬 수 있다.

둘째, 무조건적으로 매주 수요일 거래 시간에 평점 출장을 한다. 이러한 주기적인 운영 방식을 통해 갑작스러운 사건에 영향을 받지 않도록 하고, 철회 가능성을 줄일 수 있다. 동시에 매 거래의 위험과 수익을 제어하기 위해 고정 비율의 스톱 스로스를 설정한다.

마지막으로, 매 거래마다 포지션 보유 기간이 짧고 거래 빈도가 높기 때문에 포지션을 어느 정도 조정하여 단일 거래의 위험을 줄일 수 있습니다.

우위 분석

이 전략에는 다음과 같은 장점이 있습니다.

  1. 헐 이동 평균을 입점 신호 지표로 사용하면 입점 시점 선택의 정확성을 높이고 트렌드 기회를 잡을 수 있습니다.

  2. 주기적으로 출전하는 방식은 비이성적인 행동으로 인한 위험을 피할 수 있으며, 회수 가능성을 줄일 수 있다.

  3. 고정된 스톱로스 포인트를 설정하면 단일 거래의 리스크/이익 비율을 잘 조절할 수 있다.

  4. 거래 빈도가 높기 때문에 포지션을 조정하고 단일 거래의 위험을 줄일 수 있습니다.

  5. 전략 규칙은 간단하고 명확하며, 이해하기 쉽고 구현하기 쉬우며, 양적 거래의 알고리즘화에 적합하다.

위험 분석

이 전략에는 다음과 같은 위험도 있습니다.

  1. 시장이 장기적으로 재조정될 수 있기 때문에, 시장에 진입한 후 감옥에 갇힐 가능성이 높다.

  2. 고정 스톱 스톱 손실 지점 설정은 충분히 유연하지 않으며, 너무 이른 스톱 손실 또는 너무 늦은 스톱 손실이 발생할 수 있습니다.

  3. 주요한 급격한 상황이 발생하면 주기적인 출전 방식이 큰 손실을 초래할 수 있다.

  4. 자주 거래하는 것은 거래 비용과 점유율을 증가시킵니다.

  5. 변수 설정 (정산주기 길이나 같은) 이 적절하지 않으면 정책 성능에 영향을 줄 수 있다.

위와 같은 위험을 줄이기 위해 다음과 같은 최적화 조치를 고려할 수 있습니다.

  1. 진입하기 전에 시장의 패턴을 판단하고, 회수할 때 진입하는 것을 피한다.

  2. 동적으로 슬라이딩 스톱 스톱을 설정하거나 여러 고정 스톱 스톱 스톱을 미리 설정하는 것을 고려하십시오.

  3. 주요 사건 전후 거래는 중단하고, 급격한 변동이 있는 시기를 피하십시오.

  4. 거래 빈도를 적절히 줄이고 거래 비용과 슬라이드 포인트의 영향을 줄입니다.

  5. 최적화 파라미터 설정, 안정성 검사를 수행하여 전략을 더욱 안정화한다.

최적화 방향

이 전략에는 더 많은 최적화가 가능하며, 다음과 같은 부분들이 포함됩니다.

  1. 기계 학습과 같은 방법을 사용하여 이동 평균의 파라미터를 동적으로 최적화하여 지표 신호를 더 정확하게 만듭니다.

  2. 더 복잡한 출전 및 출전 규칙을 설계하기 위해 여러 지표를 조합하여 시도하십시오.

  3. 다른 시기와 시장 환경에 따라 적응하는 스톱 스톱 손실 메커니즘을 설계하십시오.

  4. 더 나은 재무 관리를 위해 위험 관리 모델에 통합하십시오.

  5. 분단점 회수 모듈을 설계하여 주식 분식회계와 같은 중요한 사건을 성공적으로 완료할 수 있도록합니다.

  6. 리얼 디스크 검증 모듈을 추가하여 리얼 디스크에서 전략의 성능을 검증한다.

기계 학습, 지표 조합, 적응형 스톱 로즈, 위험 관리 등의 방법을 통합하고 최적화함으로써 이 전략은 더 큰 안정성과 수익성을 얻을 수 있다. 또한 실내 검증 메커니즘을 추가하는 것은 전략의 추가적인 개선을 위한 중요한 수단이다. 이것들은 이 전략이 미래에 최적화될 수 있는 주요 방향이다.

요약하다

이 전략은 Hull의 동적 이동 평균 지표 신호 입문과 고정 주기 출구에 기반하여 설계되었으며, 지표 신호 정확성, 회수 확률 낮은 장점이 있으며, 단일 거래의 스톱 로즈를 제어하고 있다. 그러나 이 전략에는 피지, 스톱 로즈 설정이 불합리한 문제도 있다. 미래의 최적화 방향에는 기계 학습과 더 복잡한 다중 지표 조합 입문, 사용자 정의 스톱 로즈 메커니즘을 설계하고, 단점 복제 및 실물 시판 증명 모듈을 추가하는 등이 있다.

전략 소스 코드
/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
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/
// © gnatskiller

//@version=5
strategy("Strategia HMA + LUN/MER", overlay=true)

// Inputs: stoploss %, takeProfit %
stopLossPercentage = input.float(defval=0.8, title='StopLoss %', minval=0.1, step=0.2) / 100
takeProfit = input.float(defval=1.5, title='Take Profit %', minval=0.3, step=0.2) / 100

// Calculate HMA 115
hma115 = ta.hma(close, 115)

// Exit and Entry Conditions - Check current day, session time, and price below HMA 115
isLong = dayofweek == dayofweek.monday  and not na(time(timeframe.period, "1000-1101")) and close < hma115
isExit = dayofweek == dayofweek.wednesday and not na(time(timeframe.period, "1000-1101"))

// Calculate Stoploss and Take Profit values
SL = strategy.position_avg_price * (1 - stopLossPercentage)
TP = strategy.position_avg_price * (1 + takeProfit)

// Strategy Enter, and exit when conditions are met
if isLong
    strategy.entry("Enter Long", strategy.long)
if strategy.position_size > 0 
    if isExit
        strategy.close("Enter Long", comment="Exit")
        strategy.exit("Exit", "Exit", stop=SL, limit=TP)

// Plot Stoploss and TakeProfit lines
plot(strategy.position_size > 0 ? SL : na, style=plot.style_linebr, color=color.red, linewidth=2, title="StopLoss")
plot(strategy.position_size > 0 ? TP : na, style=plot.style_linebr, color=color.green, linewidth=2, title="TakeProfit")

// Plot HMA 115
plot(hma115, color=color.blue, title="HMA 115")