답변완료
문의
strategy(title="MACD 다이버전스 + 골든 크로스 지표", overlay=false, initial_capital = 100000, default_qty_type=strategy.percent_of_equity, default_qty_value=90)
// 사용자 입력
shortMaPeriod = input.int(defval=10, title="단기 이동평균선")
longMaPeriod = input.int(defval=20, title="장기 이동평균선")
shortMaColor = input.color(defval=color.blue, title="단기 이평선 컬러")
longMaColor = input.color(defval=color.yellow, title="장기 이평선 컬러")
shortLineWidth = input.int(defval=1, minval=1, maxval=5, title="단기 라인 굵기")
longLineWidth = input.int(defval=2, minval=1, maxval=5, title="장기 라인 굵기")
pivotLeft = input.int(defval=5, minval=1, maxval=10, title="피봇 왼쪽")
pivotRight = input.int(defval=5, minval=1, maxval=10, title="피봇 오른쪽")
// MACD 다이버전스를 찾아 내기 위한 코드
// MACD 변수 선언
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
plot(macdLine, color=color.red)
pivotLowMACD = ta.pivotlow(macdLine, pivotLeft, pivotRight)
divLowPrice = not na(pivotLowMACD) ? low[pivotRight] : na
// 저점으로 이동하기 위한 변수를 따로 선언
prevLowPricePoint = ta.valuewhen(not na(divLowPrice), divLowPrice, 0)
prevPivotLowMACD = ta.valuewhen(not na(pivotLowMACD), pivotLowMACD, 0)
// MACD 다이버전스 조건
isDivergence = prevLowPricePoint[1] > prevLowPricePoint[0] and prevPivotLowMACD[1] < prevPivotLowMACD[0]
plot(divLowPrice, color=isDivergence ? color.new(color.green, 30) : na, style=plot.style_line, linewidth=5, offset=-pivotRight, force_overlay=true)
plot(pivotLowMACD, color=isDivergence ? color.new(color.green, 30) : na, style=plot.style_line, linewidth=5, offset=-pivotRight)
// 이동평균선 관련하여 장기와 단기 이동평균선을 선언해 놓았습니다.
maShort = ta.sma(close, shortMaPeriod)
maLong = ta.sma(close, longMaPeriod)
// 이동평균선을 차트에 직접 그리는 코드
plot(maShort, color=shortMaColor, force_overlay=true)
plot(maLong, color=longMaColor, force_overlay=true)
// 조건 1: 골든 크로스 검출 -> 위 변수를 활용하여 골든 크로스 시점을 저장합니다.
goldenCross = ta.crossover(maShort, maLong)
// 최종 거래 조건 변수
var bool hasLastDivergence = false
var float divAfterLowPrice = na
if isDivergence
hasLastDivergence := true
divAfterLowPrice := low[pivotRight]
// bgcolor(color = hasLastDivergence? color.aqua: na)
enterLong = hasLastDivergence and goldenCross
exitLong = ta.crossunder(close, maLong)
plotshape(maShort, color=enterLong ? color.new(color.green, 0) : na, location=location.absolute, style=shape.triangleup, size=size.small, force_overlay=true)
// 거래 실행
if enterLong
strategy.entry("매수진입", strategy.long)
if exitLong
strategy.close("매수진입")
deadCross = ta.crossunder(maShort, maLong)
if enterLong or divAfterLowPrice > low or deadCross
hasLastDivergence := false
divAfterLowPrice := na
예스로 부탁드립니다
2025-04-01
467
글번호 189740
지표
답변완료
Re : Re : 재문의드립니다
input : 두께(0),색상(RED);
var : ST(0), TL(0);
if Bdate != Bdate[1] Then
{
if sTime >= 80000 Then
ST = 233000;
Else
ST = 223000;
}
#미국장 시작
if ST > 0 and
((sDate != sdate[1] and sTime >= ST) or
(sDate == sdate[1] and sTime >= ST and sTime[1] < ST)) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,9999999999);
TL_SetSize(TL,두께);
TL_SetColor(TL,색상);
}
--------
나스닥100 선물차트와 나스닥종합 차트 (분봉)에 적용했는데 아무것도 안나타납니다
관리자님은 세로선이 나온다고 하는데 저는 왜 안나올까요?
2025-03-31
390
글번호 189737
지표