단순 하락 구매 하락 판매 높은 전략

저자:차오장, 날짜: 2023-12-26 10:49:19
태그:

img

전반적인 설명

낮은 가격에 높은 가격을 매각하는 전략은 매우 간단하지만 효과적인 장기적인 거래 전략입니다. 이 전략은 큰 하락 후 자동으로 암호화폐를 구매하고 증가가 설정된 목표에 도달하면 판매하여 주요 시장 변동 중에 수익을 창출합니다.

전략 원칙

이 전략의 핵심은 특정 룩백 기간 동안 암호화폐 가격의 상승과 하락을 계산하여 시장이 큰 하락을 경험했는지 판단하는 것입니다. 암호화폐 가격이 가장 최근의 기간 동안 설정된 임계보다 급격히 떨어졌을 때 시장이 극도로 공황에 빠질 수 있음을 나타냅니다. 이 전략은 자동으로 구매 할 것입니다. 또한이 전략은 가격이 이 두 지점에 도달하면 자동적으로 중지 손실을 유발하거나 이익을 취하는 스톱 손실 및 수익 지점을 설정합니다.

특히, 이 전략은 trailing_change 함수를 사용하여 주어진 룩백 기간 동안 암호화폐 가격의 전반적인 상승과 하락을 계산합니다. 마지막 inp_lkb 촛불 내에서 암호화폐 가격의 상승과 하락이 설정된 매개 변수 dip의 음수 값보다 낮을 때, 구매 조건을 충족하는 주요 하락입니다. 이 시점에서, 백테스트 시간 창 내에서, 전략의 구매 주문이 활성화됩니다.

구매 후 이 전략은 가격 변화를 실시간으로 추적하고 두 가지 출구 조건을 설정합니다. (1) 가격이 오픈 가격의 (1 - 스톱 손실 비율) % 이하로 떨어지면 스톱 손실 주문이 발동됩니다. (2) 가격이 오픈 가격의 (1 + 영업률) % 이상으로 상승하면 영업 주문이 발동됩니다.

강도 분석

이 낮은 가격에 높은 가격을 매각하는 전략의 가장 큰 장점은 매우 간단하고 실행하기 쉽다는 것입니다. 최근 기간 동안 가격의 상승과 하락에 의존하여 시장 조건을 판단하기 위해 복잡한 기술적 지표가 필요하지 않으며 초보 트레이더에게 매우 적합합니다. 동시에, 낮은 가격에 구매하고 높은 가격에 판매하는 것은 특히 매우 변동적인 암호화폐 시장에서 효과적인 장기 전략입니다. 그러한 역행적인 거래 전략은 상당한 장기 수익을 얻을 수 있습니다.

또한, 이 전략은 개인 거래의 손실을 효과적으로 제어하고 일부 수익을 잠금 할 수 있는 스톱 로스 및 수익 취득 설정을 지원합니다. 이것은 또한 이 전략을 라이브 거래에 적합하게 만듭니다. 시장이 더 큰 부정적인 변동을 경험하더라도 손실은 저렴한 범위 내에서 제어 될 수 있습니다.

위험 분석

이 전략의 주요 위험은 시장 반전의 시기를 결정하는 것이 불가능하다는 것입니다. 시장이 회복하지 않고 계속 하락하면 오픈 된 긴 포지션은 더 큰 부동 손실을 경험할 수 있습니다. 따라서 스톱 로스 포인트를 설정하는 것이 중요합니다. 스톱 로스 포인트가 너무 넓게 설정되면 단일 손실이 파괴적 일 수 있습니다.

주목해야 할 또 다른 위험은 시장의 격렬한 변동이있는 경우 가격이 단기간에 스톱 로스를 유발하거나 이익을 얻을 수 있다는 것입니다. 이것은 추가 거래 비용으로 이어질 수 있습니다. 특히 시장이 급격하게 변동할 때 가격이 단기간에 여러 번 스톱 로스를 유발하고 이익을 얻는 것은 드문 일이 아닙니다.

위의 위험을 해결하기 위해, 우리는 시장 변동에서 일부 잘못된 신호를 필터링하는 더 안정적이고 신뢰할 수있는 구매 신호를 보장하기 위해 더 긴 룩백 기간을 설정할 수 있습니다. 또한, 특정 거래 냉각 기간을 도입 할 수 있습니다. 포지션을 닫은 후 일정 기간 동안 새로운 포지션을 열지 않는 것도 가격 변동으로 인한 과도하게 높은 거래 빈도의 문제를 효과적으로 줄일 수 있습니다.

최적화 방향

이 전략은 여전히 다음 측면에서 더 많은 최적화를 할 수 있습니다.

  1. 동적으로 스톱 로스 및 취리 매개 변수를 조정합니다. 스톱 로스 범위 및 취리 이윤 범위는 시장 변동성에 따라 동적으로 조정 할 수 있습니다. 시장 공황 중 더 넓은 스톱 로스 범위를 가지고 있으며 시장이 상승 할 때 적절하게 좁은 취리 이윤 범위를 가지고 있습니다.

  2. 진입 시기를 결정하기 위해 여러 요인을 결합합니다. 최근 상승과 하락 외에도 더 신뢰할 수있는 반전 신호를 결정하기 위해 거래량 변화와 같은 다른 요인이 도입 될 수 있습니다.

  3. 재입구 메커니즘을 추가하십시오. 손실을 멈추거나 이익을 취한 후, 새로운 반전 기회를 다시 구입하기 위해 특정 재입구 전략을 설정할 수 있습니다.

결론

전체적으로, 이 낮은 구매 판매 높은 전략은 매우 변동적인 암호화폐 시장에 잘 적합합니다. 그것은 시장 반전 기회를 포착하고 위험을 제어하기 위해 손해를 멈추고 이익을 설정합니다. 이 전략은 매우 간단하고 이해하기 쉽고 구현하기 쉽고 초보 트레이더에게 이상적입니다. 추가 최적화로 더 안정적인 전략 성능을 얻을 수 있습니다. 요약적으로, 낮은 구매와 높은 판매는 권장 할 가치가있는 장기적인 거래 전략입니다.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=3
strategy(shorttitle='Buy the Dips',title='Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, 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")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       

showDate  = input(defval = true, title = "Show Date Range")

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

inp_lkb = input(1, title='Lookback Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)

//Entry

dip= -(input(2))

strategy.entry(id="long", long = true, when = overall< dip and window()) 

//Exit
Stop_loss= ((input (2))/100)
Take_profit= ((input (2))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())


더 많은