이 전략은 빠른 이동 평균, 느린 이동 평균, MACD 지표를 계산하여 가격 경향에 대한 판단을 구현하고, 금 포크 사형 포크 거래 신호를 구성하며, 스톱 스톱 손실 추적 스톱 손실과 결합하여 수익을 잠금화하여 추세에 대한 지속적인 추적을 구현합니다.
이 전략은 크게 세 가지 지표에 기반을 두고 있습니다.
먼저, 빠른 이동 평균과 두 개의 느린 이동 평균을 계산한다. 빠른 이동 평균 위에 두 개의 느린 이동 평균을 통과하면 구매 신호가 생성되고, 빠른 이동 평균 아래 두 개의 느린 이동 평균을 통과하면 판매 신호가 생성된다. 이렇게 가격의 단기 경향과 장기 경향의 관계를 판단하여 금 포크 거래가 이루어진다.
둘째, MACD 선, 신호 선 및 직각 도표를 포함하는 MACD 지표를 계산한다. MACD 직각 도표>0일 때는 다목도표; MACD 직각 도표일 때는 공백도표이다. 이렇게 골드 포크 사다리 신호의 신뢰성을 판단하는데 도움을 준다.
마지막으로, 스톱스톱로스 트래킹 스톱스톱 메커니즘과 결합. 스톱스톱과 스톱스톱을 사용하여 수익을 잠금하고 위험을 제어합니다. 스톱스톱을 사용하여 수익을 추적합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위험과 대응하는 방법:
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 전체적으로 금색 포크와 MACD 지표를 사용하여 추세를 판단하고, 손실을 추적하는 간단한 효과적인 전략이다. 장점은 트렌드 추적과 이익 잠금을 구현하고, 사용자 정의가 강하며, 여러 품종에 적용되며, 범용적인 변수 최적화 전략이다. 특정 위험과 최적화 할 수있는 공간이 있지만, 전체적으로 신뢰할 수있는 실용적인 거래 전략이다.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy('The Puria Method', shorttitle = 'Puria',overlay = true)
//=== GENERAL INPUTS ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 5, title = "Fast MA Period", minval = 1)
// long ma 1
maSlow1Source = input(defval = low, title = "Slow MA1 Source")
maSlow1Length = input(defval = 85, title = "Slow MA Period", minval = 1)
// long ma 2
maSlow2Source = input(defval = low, title = "Slow MA2 Source")
maSlow2Length = input(defval = 75, title = "Slow MA Period", minval = 1)
//macd
macdFastLength = input(defval = 12, title = "Fast MACD Period", minval = 1)
macdSlowLength = input(defval = 26, title = "Slow MACD Period", minval = 1)
macdSmaLength = input(defval = 9, title = "SMA MACD Period", minval = 1)
// the risk management inputs
inpTakeProfit = input(defval = 30, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 10, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 5, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
// === SERIES SETUP ===
maFast = ema(maFastSource, maFastLength)
maSlow1 = wma(maSlow1Source, maSlow1Length)
maSlow2 = wma(maSlow2Source, maSlow2Length)
[_, signal, histLine] = macd(close, macdFastLength, macdSlowLength, macdSmaLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow1 = plot(maSlow1, title = "Slow MA1", color = red, linewidth = 2, style = line, transp = 50)
slow2 = plot(maSlow2, title = "Slow MA2", color = red, linewidth = 2, style = line, transp = 50)
// === LOGIC ===
signalUp = crossover(maFast, maSlow1) and crossover(maFast, maSlow2) and histLine > 0
signalDown = crossunder(maFast, maSlow1) and crossunder(maFast, maSlow2) and histLine < 0
// ===STRATEGY===
strategy.entry(id = "Long", long = true, when = signalUp)
strategy.entry(id = "Short", long = false, when = signalDown)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)