이 전략은 스칼핑 전략 유형에 속하며, 낮은 수익을 창출하면서 하향 위험을 제한하면서 작은 수익을 창출하기 위해 자주 포지션을 열고 닫는 것을 목표로합니다. 이동 평균이 길게 이동하는 잠재적 인 반전 지점을 식별하고 작은 수익을 확보하기 위해 긴 수익 목표를 설정합니다.
이 전략은 4개의 이동평균을 사용합니다. 9, 50, 100, 200 기간입니다.
구체적인 거래 규칙은 다음과 같습니다.
이 조합은 가격이 단기 하락 추세에 있지만 반전이 발생할 수 있는 상황을 식별합니다.
출구 규칙은 9 MA가 200 MA를 넘을 때입니다. 수익에 가까운 목표물은 안정적인 이익을 위해 빈번한 작은 이익을 잠금하는 데 사용됩니다.
위험은 다음과 같이 감소 할 수 있습니다.
이 전략은 다음과 같이 개선될 수 있습니다.
MA 조합을 최적화
더 많은 MA 기간을 테스트하여 더 나은 반전 검출을 위해
수익률 증가
더 큰 트렌드 수익을 위해 더 넓은 TP 거리를 허용하십시오.
다른 지표를 추가합니다.
예를 들어 KDJ, MACD 등은 유효하지 않은 트레이드를 줄이기 위해 확인합니다.
위치 크기 최적화
특정 TP와 SL에 기초한 동적 크기 위치
재입국규칙 추가
트렌드가 계속된다면 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)