
이 전략의 주요 아이디어는 주간 가격 추세에 기반하여 포트 오브 방향을 결정하는 것이며, 부진의 경우, 일조형이 나타났을 때 포트 오드에 들어갑니다. 가격이 설정한 정지점까지 올라갈 때 정지하고, 설정한 정지점까지 떨어지면 정지합니다.
이 전략은 먼저 주간 트렌드를 판단하는 조건을 정의합니다.
isUptrend = close > close[1]
isDowntrend = close < close[1]
만약 현재 종결 가격이 전날의 종결 가격보다 크다면, 이는 부진 경향으로 판단되며, 반대로 하락한다.
다음으로 일일 거래 신호를 정의합니다.
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
즉, 하루 전날의 종결 가격이 개시 가격 (陽線) 보다 크고, 하루 전날의 개시 가격이 전날 전날의 종결 가격 (缺口) 보다 크며, 부진 추세에 있으며, 다중 입시 조건을 충족한다.
입시 후, 스톱로스는 전날의 폐장 가격으로 설정되어 전날의 실물 선의 길이를 1.382배로 다:
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
스톱포인트는 전날의 매각 가격과 2배의 매각 가격의 차이로 설정된다:
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
“이런 일이 벌어진다면,
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험을 통제하기 위해 다음과 같은 최적화를 고려할 수 있습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
이 전략은 전체적으로 실용적인 것으로, 핵심 아이디어는 트렌드 트레이딩을 강조하면서 위험을 통제한다. 일일 단선 거래의 기본 전략으로도 사용할 수 있으며, 다른 시장과 품종에 따라 모듈화 최적화하여 다양한 거래 포트폴리오를 구현할 수 있다. 실제 적용에서는 비용 통제와 위험 감축을 방지하는 데 주의를 기울이고 적절한 정신을 유지하는 것이 중요합니다.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)
// Function to get previous day's close and open
getPrevDayClose() =>
request.security(syminfo.tickerid, "D", close[1])
getPrevDayOpen() =>
request.security(syminfo.tickerid, "D", open[1])
// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]
// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
// Strategy logic
if (isUptrend)
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
if (isDowntrend)
strategy.entry("Sell", strategy.short)
// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)
// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)