리소스 로딩... 로딩...

전략에 따른 SMA 시스템 트렌드

저자:차오장날짜: 2024-02-23 12:29:51
태그:

img

전반적인 설명

이 전략은 SMA 시스템 트렌드 다음 전략이라고 불립니다. 주요 아이디어는 다른 매개 변수 길이를 가진 SMA 라인을 기반으로 거래 신호를 구성하고 위험을 제어하기 위해 스톱 로스 메커니즘을 사용하여 브레이크 포인트에서 시장에 진입하는 것입니다.

전략 원칙

이 전략은 두 개의 SMA 라인, SMA1 및 SMA2를 사용합니다. SMA1 길이는 1이고 SMA2 길이는 3입니다. 이 두 개의 SMA 라인을 계산함으로써, SMA1가 SMA2를 넘을 때 구매 신호가 생성됩니다. SMA1가 SMA2를 넘을 때 판매 신호가 생성됩니다. 이것은 가격의 추세를 파악하는 것을 목표로합니다.

구체적으로, 전략은 ta.crossover 및 ta.crossunder 함수를 통해 SMA 라인 간의 교차 관계를 판단하여 longCondition 및 shortCondition 부울 변수를 생성합니다. longCondition가 사실이라면 구매 신호가 생성됩니다. shortCondition이 사실일 경우 판매 신호가 생성됩니다. 전략은 신호 지점에서 시장에 진입하고 누적된 이익을 추적하기 위해 profitAccumulated 및 lastTradeProfit 변수를 업데이트합니다.

위험 통제를 위해 전략은 또한 고정된 지점에 기반한 스톱 로스 메커니즘을 설정합니다. 가격이 엔트리 포인트에서 설정된 스톱 로스 지점에 도달하면 스톱 로스 오더의 폐쇄를 유발합니다.

이점 분석

이 전략의 가장 큰 장점은 가격 트렌드의 변화를 효과적으로 파악하기 위해 SMA 라인의 트렌드 추적 기능을 활용한다는 것입니다. 단일 라인 전략과 비교하면 이중 라인 전략은 트렌드 방향을 결정하고 따라서 거래 신호를 생성하기 위해 라인 간의 교차 관계를 사용할 수 있습니다. 또한, 스톱 로스 메커니즘은 단일 손실을 효과적으로 제어 할 수 있습니다.

위험 분석

이 전략의 주요 위험은 이동 평균 전략이 잘못된 신호를 생성하는 경향이 있다는 것입니다. 가격이 변동할 때 SMA 라인은 자주 넘어가면서 불필요한 거래 신호가 발생할 수 있습니다. 이 시점에서 효과적인 스톱 로스가 없으면 큰 손실이 발생할 수 있습니다.

최적화 방향

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

  1. SMA 매개 변수를 조정하여 역 테스트를 통해 이동 평균 길이의 최상의 조합을 찾습니다.

  2. 필터링 조건을 높이고, 잘못된 신호를 피하기 위해 이동 평균 교차점 근처에 가격 돌파 조건을 설정합니다.

  3. 다양한 종류의 스톱 로스 메소드를 테스트 할 수 있습니다. 예를 들어 모바일 스톱 로스, 대기 주문 스톱 로스 등이 있습니다.

  4. 자본 활용 효율을 최적화하기 위해 위치 크기 컨트롤을 추가합니다.

결론

전체적으로, 이것은 전형적인 트렌드 다음 전략이다. 그것은 가격 트렌드의 방향을 결정하고 트렌드의 전환점에 진입하기 위해 SMA 라인 사이의 돌파구 관계를 사용합니다. 동시에, 전략은 위험을 제어하기 위해 고정된 스톱 로스 기능을 가지고 있습니다. 전략은 간단하고 이해하기 쉽지만 실제 거래에서 안정적인 이윤을 창출하기 전에 깊이 있는 테스트와 최적화가 필요합니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cesarpieres72

//@version=5
strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true)

// Definir las variables de las medias móviles
sma1_length = input(1, title="SMA 1 Longitud")
sma2_length = input(3, title="SMA 2 Longitud")

// Calcular las medias móviles
sma1 = ta.sma(close, sma1_length)
sma2 = ta.sma(close, sma2_length)

// Condiciones para las señales de compra y venta
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

// Acumular las ganancias
var float profitAccumulated = 0.0
var float lastTradeProfit = na

if (longCondition)
    strategy.entry("Buy", strategy.long)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

// Mostrar las señales en el gráfico
plot(sma1, color=color.blue, title="SMA 1")
plot(sma2, color=color.red, title="SMA 2")

// Añadir stop loss
stopLossPips = input(5000, title="Stop Loss (en pips)")
stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick)
strategy.exit("SL", "Buy", stop=stopLossPrice)


더 많은