키준 루프백 전략

저자:차오장, 날짜: 2023-11-06 16:46:45
태그:

img

전반적인 설명

루프백 전략은 키 루프백 라인의 가격 교차를 기반으로 긴 포지션과 짧은 포지션을 결정하기 위해 이치모쿠 클라우드 지표에서 키 루프백 라인을 사용합니다. 트렌드 다음 전략입니다. 키 루프백 라인의 루프백을 캡처함으로써이 전략은 강력한 트렌드 포착 능력과 제어 가능한 드라우다운과 같은 장점으로 트렌드 역전 지점을 효과적으로 식별하는 것을 목표로합니다.

전략 논리

키준 루프백 전략은 이치모쿠 클라우드에서 키준 센 라인을 결정의 기본 라인으로 사용합니다. 키준 센은 주어진 기간 동안 가장 높은 가격과 가장 낮은 가격에서 계산된 평균 라인입니다. 가격이 키준 센 라인을 넘을 때 긴 포지션이 열립니다. 가격이 키준 센 라인을 넘을 때 짧은 포지션이 열립니다. 이러한 방식으로, 키준 센 라인의 루프백은 트렌드를 따르는 트렌드에 대한 가격의 전환점을 감지하는 데 사용됩니다.

구체적으로, 전략은 베이스 롱과 베이스 쇼트 조건을 사용하여 키준센 루프백을 결정합니다. 베이스 롱 조건은 오픈 < 키준센과 클로즈 > 키준센, 키준센 라인의 상승을 나타냅니다. 베이스 쇼트 조건은 오픈 > 키준센과 클로즈 < 키준센, 다운크로스를 나타냅니다. 베이스 롱이 트리거되면, 긴 포지션이 열립니다. 베이스 쇼트 트리거되면, 짧은 포지션이 열립니다. 출구 조건은 가격이 반대 방향으로 키준센을 다시 넘어가면, 즉 긴 거래에 대해 키준센 아래에 닫고 짧은 거래에 대해 닫습니다.

따라서, 키준센 라인의 루프백은 트렌드를 따르는 트렌드 반전 지점을 잡기 위해 사용됩니다.

이점 분석

루프백 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 트렌드 반전을 포착하는 강력한 능력. 키준센 라인은 가격 트렌드를 잘 반영합니다. 그 루프백은 트렌드 반전을 나타냅니다. 전략은 트렌드를 따르는 전환 지점을 적시에 포착 할 수 있습니다.

  2. 통제 가능한 유출 위험. 전략은 간단한 이동 평균 전략보다 유출 범위를 제한하기 위해 키 센을 사용합니다.

  3. 실행이 간단합니다. 전략은 단지 하나의 지표, 키준센을 필요로 합니다. 논리는 간단하고 깨끗합니다.

  4. 폭넓은 적용 가능성: 다양한 시간 프레임과 주요 거래 수단에 적용될 수 있습니다.

  5. 데이터 수요가 낮습니다. 전략은 단지 가격 데이터를 필요로 합니다. 무거운 지표 계산 없이요.

위험 분석

루프백 전략은 또한 다음과 같은 위험을 가지고 있습니다.

  1. 과도한 거래 신호를 생성하는 경향이 있습니다. 빈번한 Kijun-sen 루프백은 과잉 거래로 이어지고 수수료 및 미끄러짐으로 인한 비용을 증가시킬 수 있습니다.

  2. 제한된 유출 통제 능력. 키준센은 유출을 어느 정도만 제한할 수 있습니다. 극심한 가격 변동 하에서 유출은 여전히 중요 할 수 있습니다.

  3. 잘못된 신호에 취약합니다. 키준센의 빈번한 교차는 트렌드 방향에 대한 잘못된 신호를 생성할 수 있습니다.

  4. 악기 간의 성능 변동. 키준센의 효과는 다른 악기마다 크게 다릅니다. 각 악기마다 매개 변수 조정이 필요합니다.

  5. 단일 지표에 의존하는 것 단일 지표 설계는 전략을 무효화 할 수 있습니다.

해결책:

  1. 거래 빈도를 줄이기 위해 매개 변수를 최적화합니다.

  2. 더 많은 제어 드로다운에 Stop Loss/Profit 취득을 추가합니다.

  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)

더 많은