월초에 매수하고 월말에 마감하는 전략


생성 날짜: 2023-11-02 14:23:40 마지막으로 수정됨: 2023-11-02 14:23:40
복사: 0 클릭수: 619
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

월초에 매수하고 월말에 마감하는 전략

이 전략의 핵심 아이디어는 매월의 첫 번째 거래일에 상장하고, 마지막 거래일에 평점이다. 이것은 매우 간단한 전략으로 주로 교육 시연을 위해 사용된다.

전략 원칙

이 전략은 먼저 매월의 첫 번째 거래일 (월요일) 을 포지션 개시 신호로, 마지막 거래일 (금요일) 을 포지션 평소 신호로 정의한다.

포지션 개설시, 개설된 경우만 더 많은 설정을 하면, 직접 더 많은 것을 한다. 공백이 허용된 경우, 동시에 포지션을 개설하면 더 많은 공백을 한다.

평정시에는 공백을 허용하면 전체 포지션을 평정하고, 과잉만 하면 과잉 포지션을 평정한다.

위험을 통제하기 위해, 전략은 또한 간단한 중지 손실 설정을 추가했다. 가격이 중지 가격에 도달 할 때, 강제 평정 위치 중지했다.

일반적으로 이 전략은 매우 간단하고 직설적이며, 가장 기본적인 월간 거래 전략에 속하며, 교육용 시연에 적합하다. 실제 적용에서는 입출장 신호, 중단 방법 등에 대한 필요에 따라 최적화할 수 있다.

전략적 이점

  1. 이 아이디어는 간단하고 직설적이어서 초보자에게는 아주 적합합니다.

  2. 월간 지분을 사용하고, 연산 빈도가 낮아 안정성을 추구하는 투자자에게 적합하다.

  3. 다양한 스타일의 거래자를 만족시킬 수 있는 옵션이 있습니다.

  4. 손해 차단 기능이 추가되어 개인 주식 위험을 어느 정도 조절할 수 있습니다.

전략적 위험

  1. 출전시간은 고정되어 있고, 시장상황에 따라 조정할 수 없으며, 경매가 이루어질 가능성이 있다.

  2. 수량적 판단을 포함하지 않고 맹목적 추적의 위험이 있습니다.

  3. 단일 주식 정지는 쉽게 뚫릴 수 있으며, Tail Risk을 효과적으로 제어할 수 없습니다.

  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")