화요일 역전 전략(주말 필터)

RSI ATR MA
생성 날짜: 2024-04-30 16:07:45 마지막으로 수정됨: 2024-04-30 16:07:45
복사: 7 클릭수: 308
1
집중하다
1166
수행원

화요일 역전 전략(주말 필터)

개요

이 전략은 “목요일 반전 전략 ((주말 필터링)) “이라고 불리며, 주요 아이디어는 평균선 및 기타 필터링 조건을 기반으로, 조건을 충족하는 월요일 상장 구매, 수요일 상장 판매를 통해 화요일 반전 상황을 포착한다. 이 전략은 RSI, ATR 등의 지표를 필터링하여 5월과 같은 특정 시간을 배제하여 전략 승률과 수익 위험 비율을 높인다.

전략 원칙

  1. 30일평균선을 트렌드 판단기준으로 사용하여, 현재 거래일 종료 가격이 30일평균선보다 낮으면, 트렌드가 하향으로, 구매 조건 중 하나를 충족한다고 본다.
  2. 3일 RSI와 10일 ATR을 필터 조건으로 사용하며, 3일 RSI가 51보다 작고 상반 10일 ATR이 95%보다 작을 때, 시장 정서가 비관적이지만 극단적 인 행동이 없다고 판단하여 구매 조건에 부합합니다.
  3. 5월을 제외하고는 보통 주식시장이 약하기 때문에 ‘5월에 팔고 떠나라’는 효과가 있습니다.
  4. 위 조건들을 종합하여 월요일에는 모든 필터링 조건을 충족하면 구매하고, 수요일에는 상장할 때 판매한다.

전략적 이점

  1. 평균선과 감정 지표의 조합을 바탕으로 판단하면 화요일의 역전 상황을 효과적으로 파악할 수 있다.
  2. RSI와 ATR의 듀얼 필터링을 통해 극한상황의 거래를 배제하여 전략의 승률과 수익위험비율을 높였다.
  3. 5월을 제외하면, 보통 좋지 않은 기간을 피하고, 전략적 성과를 높일 수 있습니다.
  4. 월요일만 사서 수요일만 팔고 거래 빈도가 낮고 수수료도 적습니다.

전략적 위험

  1. 트렌드가 강할 때, 반전이 분명하지 않을 때, 전략은 좋지 않습니다.
  2. 고정된 매매시간은 더 좋은 매매시간을 놓칠 수 있고, 전략의 유연성과 수익의 공간을 제한한다.
  3. 시장의 급격한 변화로 인해 지표가 작동하지 않을 위험이 있습니다.
  4. 달의 판단은 역사적인 경험을 바탕으로 하고, 미래의 상황이 반드시 동일하게 될 것을 의미하지 않으며, 시간적 위험성이 존재한다.

전략 최적화 방향

  1. 전략의 안정성과 적응성을 높이기 위해 거래량, 변동성 등과 같은 더 효과적인 필터링 지표를 도입하는 것을 고려할 수 있습니다.
  2. 거래 시점을 최적화하여 거래 조건에 추가하여 전략의 유연성과 수익 공간을 향상시킵니다.
  3. 포지션 주기를 최적화하기 위해, 더 긴 포지션 시간을 고려하여 트렌드를 더 충분히 포착할 수 있습니다.
  4. 다른 시장 상황에 따라 다른 매개 변수를 설정하여 전략의 적응성을 향상시킵니다.
  5. 포지션 관리 및 위험 제어 모듈을 추가하여 시장의 극단적인 상황에 대응하십시오.

요약하다

화요일 역전 전략 ((주말 필터링) 은 평균선, RSI, ATR 등의 지표의 조합을 통해 판단하고, 특정 시간에 거래하는 시가 지표를 사용하여 화요일의 역전 상황을 포착한다. 전략 거래 빈도가 낮고, 수수료 비용이 적으며, 시간 단위 필터링과 지표 필터링을 통해 전략의 승률과 위험 수익률을 높인다. 그러나, 전략에는 특정 한계와 위험이 있습니다.

전략 소스 코드
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
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/
// © muikol  

//@version=5
strategy("Turnaround Tuesday", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.035)

// Inputs for MA period, filter_1, filter_2, month filter, and testing period
ma_period = input(30, title="Moving Average Period")
use_filter_1 = input(true, title="Use RSI Filter")
use_filter_2 = input(true, title="Use ATR Filter")
use_month_filter = input(true, title="Exclude May")
start_date = input(defval=timestamp("2009-01-01 00:00:00"), title="Start Backtest")
end_date = input(defval=timestamp("2025-01-01 00:00:00"), title="End Backtest")

// Data calculations
MA_tt = ta.sma(close, ma_period)
atr10 = ta.atr(10)
rsi3 = ta.rsi(close, 3)
c_1 = close[1]

// Entry conditions
isMonday = dayofweek == dayofweek.monday
bear = close[1] < MA_tt[1]
filter_1 = use_filter_1 ? rsi3[1] < 51 : true
filter_2 = use_filter_2 ? c_1/atr10[1] < 95 : true
notMay = use_month_filter ? month != 5 : true
entryCondition = isMonday and bear and notMay and filter_1 and filter_2

// Date check
inTestPeriod = true
// Exit conditions
isWednesdayOpen = dayofweek == dayofweek.wednesday 

// Entry and exit triggers
if entryCondition and inTestPeriod
    strategy.entry("Buy", strategy.long)

if isWednesdayOpen and strategy.position_size > 0 and inTestPeriod
    strategy.close("Buy")

// Plot the moving average
plot(MA_tt, title="Moving Average", color=color.blue)