이동 평균 스칼핑 전략

저자:차오장, 날짜: 2023-09-21 20:41:15
태그:

전반적인 설명

이 전략은 스칼핑 전략 유형에 속하며, 낮은 수익을 창출하면서 하향 위험을 제한하면서 작은 수익을 창출하기 위해 자주 포지션을 열고 닫는 것을 목표로합니다. 이동 평균이 길게 이동하는 잠재적 인 반전 지점을 식별하고 작은 수익을 확보하기 위해 긴 수익 목표를 설정합니다.

전략 논리

이 전략은 4개의 이동평균을 사용합니다. 9, 50, 100, 200 기간입니다.

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

  • 9MA가 50MA를 넘을 때 긴 경로
  • 50MA는 100MA보다 작습니다.
  • 100MA는 200MA보다 작습니다.

이 조합은 가격이 단기 하락 추세에 있지만 반전이 발생할 수 있는 상황을 식별합니다.

출구 규칙은 9 MA가 200 MA를 넘을 때입니다. 수익에 가까운 목표물은 안정적인 이익을 위해 빈번한 작은 이익을 잠금하는 데 사용됩니다.

장점

  • 빈번하게 열고 닫는 제어 단수
  • MA 크로스오버가 잠재적인 바닥을 잡습니다.
  • 거의 수익 목표물 작은 특정 승리의 잠금
  • 단축된 보유 시간은 트렌드 영향력을 최소화합니다.
  • 작은 계좌에 적합한 높은 자본 활용

위험성

  • MA 지연은 최고의 입구 지점을 놓칠 수 있습니다.
  • 수수료에 취약한 작은 수익 범위
  • 더 많은 무효 직업은 시간과 에너지 비용을 증가시킵니다.
  • 지나치게 보수적인 TP는 추세를 따라가지 못한다
  • 범주형 시장에서 수익을 창출하기 어렵다는 것

위험은 다음과 같이 감소 할 수 있습니다.

  • 더 나은 신호 정확성을 위해 MA 매개 변수를 최적화
  • 더 많은 트렌드 이윤을 얻기 위해 TP를 완화
  • 확인을 위한 다른 지표를 추가하고 유효하지 않은 거래를 줄입니다.
  • 자본 활용 및 위치 크기의 최적화
  • 재입국을 고려합니다.

최적화 방향

이 전략은 다음과 같이 개선될 수 있습니다.

  1. MA 조합을 최적화

    더 많은 MA 기간을 테스트하여 더 나은 반전 검출을 위해

  2. 수익률 증가

    더 큰 트렌드 수익을 위해 더 넓은 TP 거리를 허용하십시오.

  3. 다른 지표를 추가합니다.

    예를 들어 KDJ, MACD 등은 유효하지 않은 트레이드를 줄이기 위해 확인합니다.

  4. 위치 크기 최적화

    특정 TP와 SL에 기초한 동적 크기 위치

  5. 재입국규칙 추가

    트렌드가 계속된다면 TP 후에 다시 진입하는 것을 고려하십시오.

요약

이 스칼핑 전략은 빈번한 작은 이윤을 위해 MA 조합으로 잠재적 인 단기 반전을 식별합니다. 이것은 단일 손실과 위험을 효과적으로 제어하여 작은 계정 성장에 적합합니다. 그러나 작은 이익 범위 및 과도한 거래와 같은 한계가 있습니다. 매개 변수 조정, TP 조정, 필터 등을 추가하여 이익을 확장 할 수 있습니다.


/*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)


더 많은