이동평균 단기 스캘핑 전략


생성 날짜: 2023-09-21 20:41:15 마지막으로 수정됨: 2023-09-21 20:41:15
복사: 0 클릭수: 935
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 짧은 라인 스칼핑 전략의 유형에 속하며, 그 목표는 빈번하게 입장을 닫고, 소액의 수익을 내고 하향 위험을 통제하여 안정적인 수익을 달성하는 것입니다. 전략은 평균선 지표에 의해 가능한 역전점 입장을 판단하여 더 많이 입주하고, 빠른 스톱 목표를 설정하여 소액의 수익을 잠금합니다.

전략 원칙

이 전략은 4개의 이동 평균선을 사용한다. 각각 9주기, 50주기, 100주기, 200주기 평균선이다.

구체적인 거래 규칙은 다음과 같습니다.

  • 9주기 평균선에서 착용 50주기 평균선에서 추가 진출
  • 50주기 평균선 100주기 평균선 이하
  • 100 주기 평균선 아래 200 주기 평균선

이러한 조합 판단은 가격이 단기간에 하락하는 시점을 찾을 수 있지만 반전될 수 있습니다.

평점점 규칙은 9 주기 평균선에서 200 주기 평균선을 통과할 때 평점보다 많은 위치를 차지한다. 여기서 더 가까운 정지 목표를 설정하고, 빈번한 작은 이윤을 통해 안정적인 수익을 달성하기 위해 노력하고 있다.

전략적 이점

  • 빈번한 청산, 단기 손실을 효과적으로 제어하는 방법
  • 평균선을 이용해서 역점을 판단하고, 잠재적인 매수점을 찾습니다.
  • 더 가까운 정지점을 설정하고 수익을 결정하는 작은 금액을 잠금합니다.
  • 포지션 보유 기간을 줄이고, 대 트렌드의 영향을 줄입니다.
  • 자금 활용도가 높고 소액 성장에 적합하다

전략적 위험

  • 평균선 판단이 늦어지고, 최적의 진입 시점을 놓칠 수 있다.
  • 이윤의 범위가 좁고 거래비용에 취약하다.
  • 더 많은 비효율 거래, 거래 빈도, 시간과 노력의 비용
  • “지속이 너무 보수적이어서 추세를 따라가지 못하고 있다”
  • 시장에서 수익을 내기 힘든 상황

위험은 다음과 같은 방법으로 줄일 수 있습니다.

  • 평균선 변수를 최적화하여 구매점 판단의 정확성을 향상시킵니다.
  • 유동성 수익을 추구하기 위해 EXIT을 적절히 완화하십시오
  • 다른 기술 지표를 추가하여 확인하고, 무효 거래를 줄입니다.
  • 자본 사용률 및 포지션 관리를 최적화
  • 고려usch

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 평균선 변수 모음 최적화

더 많은 평형 주기 변수를 테스트하여 역전을 더 정확하게 판단할 수 있는 조합을 찾습니다.

  1. 지점의 완화

“이번 트렌드에서 더 많은 수익을 추구하기 위해 적절히 긴장을 풀어야 한다”.

  1. 다른 기술 지표에 추가

예를 들어 KDJ, MACD 등이 확인을 하고, 무효 거래가 줄어들었다.

  1. 포지션 관리를 최적화

포지션 크기를 설정하여 특정 스톱포인트와 스톱로즈 포인트에 따라 동적으로 조정합니다.

  1. 재입학 메커니즘

정지 후 출전, 추세가 계속되면 조건으로 재입장 고려할 수 있다.

요약하다

이 전략은 단선 스칼핑 전략 유형에 속하며, 단기 반전의 평선 조합을 판단하여 거래 신호를 형성하고, 더 가까운 스톱을 설정하여 자주 이익을 얻습니다. 이것은 단위 손실과 위험을 효과적으로 제어할 수 있으며, 소액의 성장에 적합합니다. 그러나 수익 공간이 작고 거래 빈도 등의 문제가 있습니다.

전략 소스 코드
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(shorttitle='Moving Average Scalper (by Coinrule)',title='Moving Average Scalper', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Entry 
bullish = crossover(movingaverage_signal, movingaverage_fast)

strategy.entry(id="long", long = true, when = bullish and movingaverage_fast < movingaverage_mid and movingaverage_mid < movingaverage_slow and window())

//Exit

bearish = crossover(movingaverage_signal, movingaverage_slow)


Stop_loss= ((input (2))/100)
Take_profit= ((input (8))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = bearish)

// close < longStopPrice or close > longTakeProfit and window())

//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2 )
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)
plot(movingaverage_mid, color=color.blue, linewidth=2)