리소스 로딩... 로딩...

다차원 금 금요일 이상성 전략 분석 시스템

저자:차오장, 날짜: 2024-12-12 16:32:12
태그:MARSIROCSLTPMACDEMA위험성PNLATR

img

전반적인 설명

이 전략은 시장 이상성에 기반을 둔 거래 시스템으로, 주로 목요일 저녁 종료와 금요일 종료 사이의 시장 행동 특성을 활용합니다. 이 전략은 고정된 입출시기를 고용하고 백테스팅을 통해 이 시장 패턴을 검증합니다. 거래 당 자본의 10%를 사용하고 현실적인 백테스팅 결과를 보장하기 위해 미끄러짐 및 수수료 요인을 고려합니다.

전략 원칙

전략의 핵심 논리는 몇 가지 핵심 요소에 기반합니다.

  1. 진입 조건: 역사 데이터 분석을 기반으로 목요일 종료 시 긴 포지션을 진입합니다.
  2. 출구 조건: 고정된 보유 기간을 가진 금요일의 폐쇄로 포지션을 닫습니다.
  3. 화폐 관리: 거래 당 계좌 자본의 10%를 사용합니다. 이 보수적인 위치 사이징은 위험을 제어하는 데 도움이됩니다.
  4. 거래 실행: 거래는 종료 가격으로 실행되며, 내일 변동성 영향을 피합니다.

전략적 장점

  1. 단순하고 명확하다: 거래 규칙은 단순하고 복잡한 지표 조합이 없으며 이해하기 쉽고 실행하기 쉽습니다.
  2. 통제된 위험: 고정된 보유 기간과 자금 관리 계획은 위험을 더 쉽게 평가하고 통제 할 수 있습니다.
  3. 높은 자동화: 자동화 거래 구현에 적합한 간단한 전략 논리.
  4. 높은 유연성: 매개 변수를 다른 시장 환경에 맞게 조정할 수 있으며, 좋은 적응력을 보여줍니다.

전략 위험

  1. 시간 의존성: 전략은 특정 시간 창에 크게 의존하고, 거래 시간 이외의 주요 뉴스에 영향을 받을 수 있습니다.
  2. 시장 환경 변화: 과거 통계 패턴은 미래에 무효가 될 수 있으며, 지속적인 전략 성과 모니터링이 필요합니다.
  3. 실행 위험: 폐업 기간 동안 유동성이 부족하여 미끄러짐이 증가할 수 있습니다. 위험 관리 제안:
  • 스톱 로스 및 영업 취득 레벨을 설정
  • 유지 기간을 동적으로 조정합니다.
  • 필터링 조건 추가

전략 최적화 방향

  1. 변동성 지표를 포함합니다. 동적 위치 크기를 위해 ATR 지표를 추가하여 전략을 더 적응력있게 만듭니다.
  2. 진입 시기를 최적화: 진입 정확성을 향상시키기 위해 가격 패턴과 기술 지표를 결합하십시오.
  3. 리스크 제어 강화: 기존 수익을 보호하기 위해 동적 스톱-러스 메커니즘을 추가합니다.
  4. 필터링 조건 추가: 불리한 시장 조건에서 거래를 피하기 위해 트렌드 필터를 추가하는 것을 고려하십시오.

요약

이 전략은 엄격한 시간 관리와 보수적인 돈 관리를 통해 잠재적 수익을 추구하는 시장 이상성에 기반한 고전적인 거래 시스템이다. 전략 논리는 간단하지만 변화하는 시장 환경의 위험에주의를 기울여야 한다. 라이브 거래에서 더 보수적인 위치 크기와 포괄적인 위험 관리 메커니즘을 사용하는 것이 좋습니다.


/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 4h
basePeriod: 4h
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/
// © piirsalu

//@version=5
strategy("Gold Friday Anomaly Strategy", 
     default_qty_type=strategy.percent_of_equity,
     slippage = 1, commission_value=0.0005,
     process_orders_on_close = true,
     initial_capital = 50000,
     default_qty_value=500,
     overlay = true)
     

/////////////////////////////////////////////////////////////////////////////////////
//                                 . USER INPUTS .                                 //
/////////////////////////////////////////////////////////////////////////////////////

// Define backtest start and end dates
st_yr_inp = input(defval=2000, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')

// Set start and end timestamps for backtesting
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp, 00, 00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp, 00, 00)

/////////////////////////////////////////////////////////////////////////////////////
//                              . STRATEGY LOGIC .                                 //
/////////////////////////////////////////////////////////////////////////////////////

// Check if the current day is Friday
isFriday = (dayofweek == dayofweek.friday)

// Initialize a candle counter
var int barCounter = 0

// Increment the candle counter on each new bar
barCounter := barCounter + 1

// Define trading session time ranges
pre_mkt = time(timeframe.period, '0400-0800:23456')
mkt_hrs = time(timeframe.period, '0800-1600:23456')
eod = time(timeframe.period, '1200-1600:23456')

/////////////////////////////////////////////////////////////////////////////////////
//                          . STRATEGY ENTRY & EXIT .                              //
/////////////////////////////////////////////////////////////////////////////////////

// Enter a long position on the first candle of Friday within the backtest period
if dayofweek == 4 and time >= start and time <= end
    strategy.entry("BuyOnFriday", strategy.long)

// Close the position after holding it for 4 candles
if (barCounter % 1 == 0)
    strategy.close("BuyOnFriday")



관련

더 많은