기본 이동 평균 루프 전략


생성 날짜: 2023-11-06 16:46:45 마지막으로 수정됨: 2023-11-06 16:46:45
복사: 0 클릭수: 682
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

기본 이동 평균 루프 전략

개요

기본평균선 회귀전략은 이치모쿠 클라우드 그래프 지표의 기본평균선 ((Kijun Sen) 을 활용하여, 가격과 기본평균선의 교차에 따라 더 많은 코스피를 하는, 트렌드 따라가는 전략에 속한다. 이 전략은 기본평균선의 회귀선을 통해 트렌드의 전환점을 포착하여 트렌드 포착 능력, 회수 제어 등의 장점을 가지고 있다.

전략 원칙

기저 평균 회귀 전략은 이치모쿠 구름 도표의 기저 평균 ((Kijun Sen) 을 결정 기준으로 사용한다. 기저 평균은 일정 주기 동안의 최고 가격과 최저 가격에 따라 계산된 평균이다. 가격이 기저 평균선 아래에서 통과하면 더 많이 하고, 가격이 기저 평균선 위에서 아래로 통과하면 공백을 한다. 이렇게, 기저 평균선의 회귀를 사용하여 가격 경향의 전환점을 판단하고, 트렌드 따를 수 있다.

구체적으로, 전략은 Base Long와 Base Short 두 가지 조건을 통해 기본 평균선의 회전을 판단한다. Base Long 조건은 오픈 가격보다 낮은 기본 평균선과 폐쇄 가격보다 높은 기본 평균선, 기본 평균선 상부로 이동하는 것을 나타냅니다. Base Short 조건은 오픈 가격보다 높은 기본 평균선과 폐쇄 가격보다 낮은 기본 평균선, 기본 평균선 아래로 이동하는 것을 나타냅니다.

따라서, 전략은 기본 평균선의 회전을 사용하여 가격 경향의 전환점을 포착하여 트렌드 따를 수 있습니다.

우위 분석

기저 평균 회전 전략은 다음과 같은 장점이 있다:

  1. 트렌드 전환을 포착하는 능력이 강하다. 기저 평균선은 가격 트렌드를 잘 반영하고, 그 회전은 가격 트렌드의 전환을 나타냅니다. 전략은 전환점을 제때 포착하고, 트렌드를 따라갈 수 있다.

  2. 회수 위험 조절 전략은 기본 평균선으로 회수 범위를 제한하고, 간단한 이동 평균 전략보다 회수 위험을 제어 할 수 있다.

  3. 이 전략은 기저 평균선 단 하나의 지표가 필요하며, 논리는 간단하고 명확하며, 구현하기 쉽다.

  4. 적용 범위는 넓다. 다양한 주기 및 다양한 주류 거래 품종에 적용할 수 있으며, 적용 범위는 넓다.

  5. 데이터 요구량이 작다. 이 전략은 가격 데이터만 필요로 하고, 많은 지표 계산이 필요하지 않아 데이터 요구량이 작다.

위험 분석

기본 평균 회전 전략에는 다음과 같은 위험도 있습니다.

  1. 너무 많은 거래 신호를 발생시킬 수 있다. 기저 평균선의 빈번한 회전이 존재할 경우, 너무 빈번한 거래가 발생하여 거래 수수료와 슬라이드 포인트 손실이 증가할 수 있다.

  2. 철회 제어 능력은 제한된다. 기저 평균선은 철회 범위를 어느 정도 제어할 수 있지만, 가격이 급격히 변동할 때 철회량은 여전히 더 클 수 있다.

  3. 잘못된 신호가 발생하기 쉽다. 기저 평균선이 근래에 자주 위아래로 넘어가면 잘못된 신호가 발생하고, 입구 방향이 트렌드와 일치하지 않는다.

  4. 효능과 품종 관련성이 높다. 다양한 품종의 기저 평균선 운행 효능 차이가 크며, 품종에 맞는 조정 매개 변수가 필요하다.

  5. 단 하나의 지표만 고려한다. 단 하나의 지표로 설계되어 지표의 실패에 영향을 받을 수 있다.

대응방법:

  1. 거래 빈도를 낮추기 위한 최적화 매개 변수

  2. 이 전략은 더 많은 손실을 막고, 더 많은 회수량을 통제할 수 있게 해준다.

  3. 필터를 추가하여 잘못된 신호를 피하십시오.

  4. 품종에 따라 조정 파라미터를 설정한다.

  5. 여러 지표와 함께 의사결정을 합니다.

최적화 방향

기저 평균 회전 전략은 다음과 같은 측면에서 최적화될 수 있다:

  1. 트렌드 판단 능력을 강화한다. MACD, 브린 라인 등과 같은 다른 트렌드 판단 지표를 도입할 수 있으며, 단일 지표에 기반한 잘못된 신호를 방지한다.

  2. 최적화 변수 설정. 기본 평균선 변수를 조정하여 수익 속도와 승률을 균형을 잡을 수 있습니다. 또한 다른 스톱 스톱 전략을 테스트 할 수 있습니다.

  3. 거래량 특성을 도입한다. 거래량에 따라 신호를 필터링하고, 불합리한 신호를 피한다.

  4. 여러 품종의 일반 파라미터. 기계 학습과 같은 방법을 통해, 다른 품종의 일반 파라미터 범위를 얻으며, 수동 조정 작업을 줄인다.

  5. 입학 시기를 최적화한다. 다른 지표의 판단력을 도입할 수 있고, 강력한 입학 시기를 선택한다.

  6. 손해 방지 전략을 최적화한다. 손해 방지 전략을 더욱 최적화하고, 승률을 보장하는 전제하에서 불필요한 손해를 최대한 줄인다.

  7. 위험 관리 메커니즘을 도입한다. 다양한 시장 환경에 따라 포지션 및 스톱 손실 전략을 조정하고, 위험을 적극적으로 제어한다.

요약하다

기본평등선 회로전략은 기본평등선의 회로 판단 가격 경향을 활용하여 트렌드 전환, 회수 제어 등의 장점을 가지고 있다. 그러나 잘못된 신호를 발생시키고, 회수 통제가 제한되는 등의 위험도 존재한다. 향후에는 최적화 파라미터를 설정하고, 보조 판단 지표를 추가하는 등의 측면에서 개선하여 전략을 더 안정적으로 신뢰할 수 있다. 일반적으로 기본평등선 전략은 간단하고 실용적이며, 적절하게 최적화되면 정량화 거래의 기본 전략 중 하나가 될 수 있다.

전략 소스 코드
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Master VP","MVP",true)
        
//INDICATOR---------------------------------------------------------------------    
    //Average True Range (1. RISK)
atr_period = input(14, "Average True Range Period")
atr = atr(atr_period)

    //Ichimoku Cloud - Kijun Sen (2. BASELINE)
ks_period = input(20, "Kijun Sen Period")
kijun_sen = (highest(high, ks_period) + lowest(low,ks_period))/2
base_long = open < kijun_sen and close > kijun_sen
base_short = open > kijun_sen and close < kijun_sen

//TRADE LOGIC-------------------------------------------------------------------
    //Long Entry
    //if -> WPR crosses below -39 AND MACD line is less than signal line
l_en = base_long
    //Long Exit
    //if -> WPR crosses above -14
l_ex = close < kijun_sen
    //Short Entry
    //if -> WPR crosses above -39 AND MACD line is greater than signal line
s_en = base_short
    //Short Exit
    //if -> WPR crosses under -14
s_ex = close > kijun_sen
strategy.initial_capital = 50000
//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(4,"Risk %")/100           //risk % per trade
equity_protector = input(30,"Equity Protection %")/100  //equity protection %
stop = atr*100000*input(1.5,"Average True Range multiplier")    //Stop level
target = input(100, "Target TP in Points")  //TP level
    //Calculate current DD and determine if stopout is necessary
equity_stopout = false
if(floating<0 and abs(floating/balance)>equity_protector)
    equity_stopout := true
    
    //Calculate the size of the next trade
temp01 = balance * risk     //Risk in USD
temp02 = temp01/stop        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
    size := 1000            //Set min. lot size

//TRADE EXECUTION---------------------------------------------------------------
strategy.close_all(equity_stopout)      //Close all trades w/equity protector
is_open = strategy.opentrades > 0

if true
    strategy.entry("l_en",true,oca_name="a",when=l_en and not is_open)  //Long entry
    strategy.entry("s_en",false,oca_name="a",when=s_en and not is_open) //Short entry
    
    strategy.exit("S/L","l_en",loss=stop, profit=target)      //Long exit (stop loss)
    strategy.close("l_en",when=l_ex)            //Long exit (exit condition)
    strategy.exit("S/L","s_en",loss=stop, profit=target)      //Short exit (stop loss)
    strategy.close("s_en",when=s_ex)            //Short exit (exit condition)
    
//PLOTTING----------------------------------------------------------------------
plot(kijun_sen,"Kijun-Sen",color.blue,2)