이중 진입 포지션 평균화 후속 스톱 손실 전략

저자:차오장, 날짜: 2023-12-01 13:33:48
태그:

img

전반적인 설명

이 전략은 이중 엔트리 접근 방식을 채택합니다. 첫 번째 엔트리 후 가격이 첫 번째 영업 수준에 도달하지 않으면 포지션을 추가하는 효과를 달성하기 위해 더 높은 가격으로 다시 진입합니다. 동시에 전략은 포지션 평균화 후속 스톱 로스 방법을 채택하여 실시간으로 스톱 로스 라인을 업데이트하고 수익을 잠금하고 위험을 제어하기 위해 평균 엔트리 가격보다 특정 비율로 설정합니다.

전략 논리

전략은 먼저 가격이 200일 간 간단한 이동 평균 이하인지 판단합니다. 만약 네라면, 입시 기준이 충족됩니다. 전략은 첫 입시를 형성하기 위해 매일 14:29에서 15:00 사이에 입력합니다. 그 후 전략은 첫 번째 수익 및 스톱 손실 라인을 그릴 것입니다.

만약 가격이 상승하지만 첫 번째 영업 목표에 도달하지 못하면, 포지션을 추가하기 위해 첫 번째 영업 가격보다 5% 더 높은 가격으로 다시 진입합니다. 이 시점에서 전략은 현재 평균 보유 가격의 1.15배로 스톱 로스 라인을 업데이트합니다. 동시에 두 번째 영업 라인을 그래프화합니다.

이 전략은 두 가지 수익 목표와 후속 스톱 로스를 통해 수익을 올릴 수 있으며, 포지션을 추가함으로써 더 많은 수익을 얻을 수 있습니다.

이점 분석

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

  1. 이중 입시 부가적인 방법을 채택하면 위험을 증가시키지 않고 더 높은 수익을 얻을 수 있습니다.

  2. 정지 손실 라인 포지션의 실시간 업데이트. 포지션 평균화 후속 정지 손실 방법은 효과적으로 위험을 제어하고 이익을 잠금 할 수 있습니다.

  3. 하향 트렌드에서 포지션을 개설하면 특정 반 트렌드 거래 능력을 가지고 있습니다.

  4. 합리적인 출입 시간과 가격 수준으로 함정에 빠지지 않도록 합니다.

  5. 합리적인 매개 변수 설정, 긴밀한 취득 및 스톱 손실 수준은 높은 위험/이익 비율을 의미합니다.

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 이중 입력 부가 방식은 손실을 증폭시킬 수 있습니다. 두 항목이 결국 Stop Loss에 도달하면 손실이 더 커질 것입니다.

  2. 만약 스톱 로스 레벨이 잘못 설정되면, 이는 위험을 효과적으로 제어하지 못하고 받아들일 수 없는 손실로 이어질 수 있습니다.

  3. 입구시간이 잘못 선택되면, 불리한 입구로 이어질 수 있고, 함락될 확률이 높아질 수 있습니다.

  4. 이윤을 너무 멀리 내거나 손해를 너무 가까이 내리는 것과 같은 부적절한 매개 변수 설정은 이윤을 줄일 수 있습니다.

이러한 위험은 합리적인 매개 변수 최적화와 엄격한 위험 통제를 통해 줄일 수 있고 피할 수 있습니다.

최적화 방향

이 전략은 다음 측면에서도 최적화 될 수 있습니다.

  1. 다른 기술 지표를 입력 신호로 테스트하여 더 나은 입력 지점을 찾습니다.

  2. 리스크/상금 비율을 극대화하기 위해 수익을 취하고 손실을 멈추는 수준을 테스트하고 최적화합니다.

  3. 최적의 부가 곱을 결정하기 위해 다른 부가 방법을 테스트합니다.

  4. 트렌드 판단 규칙을 추가하여 역 트렌드 항목을 피합니다.

  5. 유입 기간 선택을 최적화하여 유입이 불리하지 않도록 합니다.

결론

전체적으로, 이 전략은 매우 실용적이며 강력한 실용적 의미를 가지고 있다. 이중 입출 추가 방식은 위험을 통제하면서 더 높은 수익을 얻을 수 있다. 지점을 평균하는 후속 스톱 손실은 이익을 잠금하고 위험을 효과적으로 제어할 수 있다. 합리적인 매개 변수 최적화와 엄격한 위험 통제로, 이 전략은 안정적이고 일관된 알파를 달성할 수 있다.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//              @version=4
strategy("8 Whittle Down", "8 WD", 1, initial_capital=0)


//              DUAL ENTRIES
//              ADDS ON MORE SHARES IF THE PILOT TRADE DOES NOT REACH PROFIT TARGET
//              RED     LINE        == STOP LOSS LINE
//              GREEN   LINE        == PROFIT TARGET FOR THE 1ST TRADE
//              YELLOW  LINE        == ADD ON SHARES TO THE TRADE
//              WHITE   LINE        == PROFIT TARGET FOR THE 1ST & SECOND TRADE COMBINED


StopLossPerc        = input(1.15, "Total Stop Loss", step=0.01)


T2EntTrgPerc        = input(1.05, "Enter Second trade @ what higher 5%?", step=0.01)    //  BUY STOP LIMIT ONLY WHEN ONE TRADE IS ALREADY OPEN & AIMS TO BUY DOUBLE THE OWNED SHARES AT A HIGHER ENTRY PRICE // YELLOW LINE

T1ProfTrgPerc       = input(0.95, "First Trade Profit % Target", step=0.01)
T2ProfTrgPerc       = input(0.90, "Second Trade Profit % Target", step=0.01)


RiskRange           = close*(StopLossPerc)-1
Shares              = floor(1000*1000/RiskRange) / 3                                    //  SPLITS THE RISK OVER THREE TRADES

F1                  = close < sma(security(syminfo.tickerid, "D", close[2]), 200)       //  HIGH OF OLD DATA -- SO NO REPAINTING
F2                  = strategy.opentrades == 0
buyTime             = time(timeframe.period, "1429-1500")                               //  BUY AT THE END OF THE  DAY
 
 
StopLossLine        = strategy.position_avg_price * StopLossPerc
StopLossCol         = strategy.opentrades != 0 ? #FF0000 : na
plot(StopLossLine,  "StopLossLine", StopLossCol, 2)



strategy.cancel_all()                                                                   //  CANCELS ALL ORDERS: BECAUSE THE SYSTEM WILL ADD A BUY STOP LIMIT ORDER FOR ENTRY TWO



///==============   ENTRY 1   ==============   
if  F1 and buyTime and strategy.opentrades == 0
    strategy.entry("S1", false, qty=Shares)


T1Prof              = strategy.position_avg_price * T1ProfTrgPerc
plot(T1Prof,        "1st Profit Target", strategy.opentrades == 1 ? #00FF00 : na, 2)

strategy.exit("S1 Ex", "S1", limit=T1Prof, stop=StopLossLine )


///==============   ENTRY 2   ==============   
T2EntryTrg          = strategy.position_avg_price * T2EntTrgPerc // enters on higher target than 1st entry
plot(T2EntryTrg,    "ent2EntryTrg", strategy.opentrades == 1 ? color.yellow : na, 2)
    
    
if  strategy.opentrades == 1
    strategy.order("S2", false, stop=T2EntryTrg, limit= T2EntryTrg, qty=Shares * 2)     //  BUYS MORE SHARES

T2Prof              = strategy.position_avg_price * T2ProfTrgPerc
    
T2Col               = strategy.opentrades == 2 ? color.white : na
plot(T2Prof,        "2nd Profit Target", T2Col, 2)
    
    
strategy.exit("S2 Ex", "S2", limit=T2Prof, stop=StopLossLine )



더 많은