월별 개시 장기 및 월말 종료 전략

저자:차오장, 날짜: 2023-11-02 14:23:40
태그:

img

이 전략의 핵심 아이디어는 매월 첫 거래일에 긴 포지션을 열고 매월 마지막 거래일에 포지션을 닫는 것입니다.

전략 논리

이 전략은 먼저 각 달의 첫 번째 거래일 (월요일) 을 입시 신호로 정의하고 마지막 거래일 (금요일) 을 출구 신호로 정의합니다.

포지션을 열 때, 단지 긴 경우 직접 긴, 그리고 짧은 허용되는 경우 긴 및 짧은 양쪽 포지션을 열 것입니다.

포지션을 닫을 때, 짧은 경우 모든 포지션을 닫을 것이고, 긴 경우만 긴 포지션을 닫을 것입니다.

위험을 통제하기 위해 간단한 스톱 로스가 추가됩니다. 가격이 스톱 로스 가격에 닿으면 스톱 로스로 포지션을 닫습니다.

전체적으로,이 전략은 매우 간단하고 직설적인 논리를 가지고 있으며, 그것은 교육 시범에 적합한 가장 기본적인 월간 거래 전략입니다. 실제 사용에서는 입출 신호, 중지 손실 방법 등이 필요에 따라 최적화 될 수 있습니다.

장점

  1. 논리는 간단하고 이해하기 쉬우며 초보자도 배울 수 있습니다.

  2. 월간 보유 주기를 채택하고, 낮은 운영 빈도, 안정성을 추구하는 투자자에게 적합합니다.

  3. 선택적으로 긴 또는 짧은, 다른 거래 스타일의 요구를 충족시킬 수 있습니다.

  4. 스톱 로스를 추가하면 단일 주식 리스크를 어느 정도 제어할 수 있습니다.

위험성

  1. 고정된 출입시간과 출입시간, 시장 조건에 따라 조정할 수 없는 경우 중재될 위험이 있습니다.

  2. 양적 지표가 추가되지 않고 맹목적으로 따라갈 위험이 있습니다.

  3. 단일 주식 스톱 손실은 톱 리스크를 효과적으로 통제할 수 없기 때문에 쉽게 돌파됩니다.

  4. 고정된 포지션 크기, 시장 조건에 따라 조정할 수 없습니다.

  5. 실행에 대한 불확실성, 전략에 따라 완전히 실행하지 못할 수 있습니다.

  6. 간단한 스톱 손실 방법은 작은 스톱 손실을 초래할 수 있습니다. 변동성 스톱과 같은 동적 스톱 손실을 채택해야합니다.

개선 방향

  1. 시장 상황을 판단하고 진입 속도를 동적으로 조정하기 위해 양적 지표를 도입하십시오.

  2. 벤치마킹 인덱스를 고려하여 출입에 대한 상대적 강도를 결정합니다.

  3. 시장 변동성 및 다른 위험 지표에 기초하여 지점 크기를 동적으로 조정합니다.

  4. 동적 스톱 로스 또는 여러 레벨의 스톱 로스를 채택합니다.

  5. 알고리즘 트레이딩 모듈을 추가해서 성공적인 실행을 보장합니다.

  6. 자본 관리 전략을 최적화하고, 다른 시장 환경에 따라 주식 지수 미래에셋 지위를 조정합니다.

  7. 기계 학습을 적용해서 입장을 위한 재고 품질을 판단할 수 있습니다.

요약

이것은 매우 기본적인 월간 오픈 장기 및 월말 폐쇄 전략입니다. 논리는 간단하고 이해하기 쉽고 초보자 학습에 적합합니다. 그러나 실제 사용에서는, 입력 / 출출 타이밍, 중지 손실 방법, 위치 사이즈 등을 향상시켜 복잡하고 끊임없이 변화하는 시장에서 지속적으로 이익을 얻어야합니다. 우리는 전략의 장단점을 철저히 이해하고, 자신에게 적합한 양적 거래 솔루션을 개발하기 위해 전략 시스템을 계속 개선해야합니다.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Je_Buurman September 1st 2020

//@version=4
strategy("Buurmans Tutorial", overlay=true, initial_capital=1000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.2)

// Some initial inputs, these are needed in case the strategy returns an error of "too many trades, > 3000" 

Year    = input(defval = 2020, title = "From Year", minval = 2010)              // 
Month   = input(defval = 1, title = "From Month", minval = 1, maxval=12)
LongOnly=input(true, title="Only go Long?")


// Phase I - the initial "Strategy" - buy Monday, sell Friday

longCondition = dayofweek==dayofweek.monday and (time > timestamp(Year, Month, 01, 00, 00, 00))
shortCondition = dayofweek==dayofweek.friday and (time > timestamp(Year, Month, 01, 23, 59, 59))


// Phase II - some rudimentary "risk-management" e.g. stoploss

Use_stoploss=input(false, title="Use stoploss ?")
stoploss_input=input(150, title="Stoploss in $")
Stoploss = Use_stoploss ? strategy.position_size>0 ? iff(strategy.position_size>0,strategy.position_avg_price - stoploss_input, na) : strategy.position_size<0 ? iff(strategy.position_size<0,strategy.position_avg_price + stoploss_input, na) : na : na
plot(Use_stoploss and strategy.position_size!=0 ? Stoploss : na, color=iff(Stoploss!=na,color.silver, color.red),style=plot.style_linebr)


// Phase III - make it more profitable by trying to filter conditions
// only buy on odd Mondays ? only buy on full moon Mondays ? something else entirely ?


// The actual trades, going Long, close Long, going Short and Stoploss

if (longCondition)
    strategy.entry("Buy on Monday", strategy.long)
    
if (shortCondition and LongOnly==false)
    strategy.entry("Short on Friday", strategy.short)

if (shortCondition and LongOnly)
    strategy.close("Buy on Monday", comment="Sell on Friday")

if (low < Stoploss)
    strategy.close("Buy on Monday", comment="Long Stopped on Someday")
if (high > Stoploss)
    strategy.close("Short on Friday", comment="Short Stopped on Someday")

더 많은