커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

제가 만든 지표의 값을 시스템식에서 사용할 수 없나요?

제가 만든 지표가 있는데요. 해당 지표에서 생성된 값을 시스템에서 사용하고 싶은데, 지표에서 발생되는 값을 어떻게 가져올 수 있을까요?
프로필 이미지
올리미
2025-07-27
154
글번호 192774
시스템
답변완료

볼린저밴드 수식 문의

볼린저 밴드를 활용하여 매매를 하고자 합니다. 가격이 볼린저 밴드의 상단에 닿았을 때 매도 진입하고 하단에 닿았을때 매수 진입하는 전략을 세우고 싶은데요. 아래 전략에서 부등호의 방향이 맞는지 문의 드립니다. ==================================================================== Input:Period(20),MultiD(2); var:BBmd(0),BBup(0),BBdn(0); BBmd=ma(C,Period); BBup=BollBandUp(Period,MultiD); BBdn=BollBandDown(Period,MultiD); If MarketPosition<=0 and H < bbup Then Sell("s",atmarket,bbup); If MarketPosition>=0 and L > bbdn Then Buy("b",atmarket,bbdn);
프로필 이미지
강우
2025-07-27
148
글번호 192773
시스템
답변완료

지표 수정바랍니다.

안녕하세요? 아래 트뷰 원본지표를 예스랭귀지로 변환하였는데, 선은 잘 나오는 것 같은데, 원본 그림처럼 잘 나오지 않는 것 같습니다. 그리고 당일만 선들이 나오네요. 과거에도 선들이 나오면 좋겠습니다. 체크한번 부탁드립니다. == 예스랭귀지 == // === 1. Input Parameters === Input: PivotLen(20), // Pivot length for detection Repainting(True), // If False, wait for bar close (LastBarOnChart=1) to confirm breakout ShowTargets(False), // Draw flat target lines at pivot prices BearColor(Red), // Color for bearish trendlines BullColor(Green), // Color for bullish trendlines ExtendLeft(True), // Always extend trendlines to the left ExtendRight(True); // Always extend trendlines to the right // === 2. Internal Variables === Vars: phBar(0), plBar(0), // Offsets for swing pivots lastPhIndex(0), prevPhIndex(0), lastPhVal(0), prevPhVal(0), lastPlIndex(0), prevPlIndex(0), lastPlVal(0), prevPlVal(0), offsetB(0), offsetE(0), // Relative bar offsets for trendline endpoints phLineID(0), plLineID(0), // Trendline object IDs hasCrossPh(False), hasCrossPl(False); // Breakout flags // === 3. Detect Swing Pivots === phBar = SwingHighBar(1, H, PivotLen, PivotLen, PivotLen*2+1); plBar = SwingLowBar(1, L, PivotLen, PivotLen, PivotLen*2+1); // === 4. On New High Pivot === if phBar == PivotLen then { prevPhIndex = lastPhIndex; prevPhVal = lastPhVal; lastPhIndex = BarIndex - phBar; lastPhVal = H[phBar]; hasCrossPh = False; if phLineID <> 0 then TL_Delete(phLineID); if prevPhIndex > 0 then { offsetB = BarIndex - prevPhIndex; offsetE = phBar; phLineID = TL_New( sDate[offsetB], sTime[offsetB], prevPhVal, sDate[offsetE], sTime[offsetE], lastPhVal ); // Style and extend the line both directions TL_SetColor(phLineID, BullColor); TL_SetSize(phLineID, 2); TL_SetStyle(phLineID, 2); // dashed style TL_SetExtLeft(phLineID, ExtendLeft); TL_SetExtRight(phLineID, ExtendRight); } } // === 5. On New Low Pivot === if plBar == PivotLen then { prevPlIndex = lastPlIndex; prevPlVal = lastPlVal; lastPlIndex = BarIndex - plBar; lastPlVal = L[plBar]; hasCrossPl = False; if plLineID <> 0 then TL_Delete(plLineID); if prevPlIndex > 0 then { offsetB = BarIndex - prevPlIndex; offsetE = plBar; plLineID = TL_New( sDate[offsetB], sTime[offsetB], prevPlVal, sDate[offsetE], sTime[offsetE], lastPlVal ); TL_SetColor(plLineID, BearColor); TL_SetSize(plLineID, 2); TL_SetStyle(plLineID, 2); TL_SetExtLeft(plLineID, ExtendLeft); TL_SetExtRight(plLineID, ExtendRight); } } // === 6. Breakout Detection === if phLineID <> 0 and !hasCrossPh then { if Repainting or LastBarOnChart == 1 then { if C > lastPhVal then { hasCrossPh = True; TL_SetEnd(phLineID, sDate, sTime, lastPhVal); Text_New(sDate, sTime, lastPhVal, "Br"); } } } if plLineID <> 0 and !hasCrossPl then { if Repainting or LastBarOnChart == 1 then { if C < lastPlVal then { hasCrossPl = True; TL_SetEnd(plLineID, sDate, sTime, lastPlVal); Text_New(sDate, sTime, lastPlVal, "Br"); } } } // === 7. Optional Target Lines === if ShowTargets then { if phLineID <> 0 then TL_New(sDate, sTime, lastPhVal, NextBarSdate, NextBarStime, lastPhVal); if plLineID <> 0 then TL_New(sDate, sTime, lastPlVal, NextBarSdate, NextBarStime, lastPlVal); } == 트뷰 원본 스크립트 == // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // &#169; HoanGhetti //@version=5 indicator("지표", overlay = true, max_lines_count = 500) import HoanGhetti/SimpleTrendlines/4 as tl input_len = input.int(defval = 20, title = 'Pivot Length', minval = 1) input_pivotType = input.string(defval = 'Normal', title = 'Pivot Type', options = ['Normal', 'Fast'], tooltip = 'Normal: Uses Pine₩'s built-in pivot system.₩n₩nFast: Uses a custom pivot system that tracks every reversal.') input_repaint = input.bool(defval = true, title = 'Repainting', tooltip = 'If disabled, it will wait for bar confirmation to avoid printing false alerts.') input_targets = input.bool(defval = false, title = 'Target Levels') input_bearC = input.color(defval = color.red, title = 'Bear Breakout', group = 'Styling') input_bullC = input.color(defval = color.green, title = 'Bull Breakout', group = 'Styling') input_extend = input.string(defval = extend.none, title = 'Extend', options = [extend.none, extend.right, extend.left, extend.both], group = 'Styling') input_style = input.string(defval = line.style_dotted, title = 'Trendline Style', options = [line.style_dotted, line.style_dashed, line.style_solid], group = 'Styling') input_tstyle = input.string(defval = line.style_dashed, title = 'Target Style', options = [line.style_dotted, line.style_dashed, line.style_solid], group = 'Styling') input_override = input.bool(defval = false, title = 'Override Source', group = 'Override', tooltip = 'Overriding the source will allow this to create trendlines on any specified source.') input_useSrc = input.bool(defval = true, title = 'Use Source for Cross Detection', group = 'Override', tooltip = 'Instead of checking if the close value crossed trendline, check for the specified source.') input_source = input.source(defval = low, title = 'Source', group = 'Override') pl = fixnan(ta.pivotlow(input_override ? input_source : low, input_pivotType == 'Normal' ? input_len : 1, input_len)) ph = fixnan(ta.pivothigh(input_override ? input_source : high, input_pivotType == 'Normal' ? input_len : 1, input_len)) pivot(float pType) => pivot = pType == pl ? pl : ph xAxis = ta.valuewhen(ta.change(pivot), bar_index, 0) - ta.valuewhen(ta.change(pivot), bar_index, 1) prevPivot = ta.valuewhen(ta.change(pivot), pivot, 1) pivotCond = ta.change(pivot) and (pType == pl ? pivot > prevPivot : pivot < prevPivot) pData = tl.new(x_axis = xAxis, offset = input_len, strictMode = true, strictType = pType == pl ? 0 : 1) pData.drawLine(pivotCond, prevPivot, pivot, input_override ? input_source : na) pData breakout(tl.Trendline this, float pType) => var bool hasCrossed = false if ta.change(this.lines.startline.get_y1()) hasCrossed := false this.drawTrendline(not hasCrossed) confirmation = not hasCrossed and (input_repaint ? not hasCrossed : barstate.isconfirmed) if (pType == pl ? (input_override and input_useSrc ? input_source : close) < this.lines.trendline.get_y2() : (input_override and input_useSrc ? input_source : close) > this.lines.trendline.get_y2()) and confirmation hasCrossed := true this.lines.startline.set_xy2(this.lines.trendline.get_x2(), this.lines.trendline.get_y2()) this.lines.trendline.set_xy2(na, na) this.lines.startline.copy() hasCrossed plData = pivot(pl) phData = pivot(ph) style(tl.Trendline this, color col) => this.lines.startline.set_color(col), this.lines.trendline.set_color(col) this.lines.startline.set_width(2), this.lines.trendline.set_width(2) this.lines.trendline.set_style(input_style), this.lines.trendline.set_extend(input_extend) style(plData, input_bearC), style(phData, input_bullC) cu = breakout(plData, pl) co = breakout(phData, ph) plotshape(ta.change(cu) and cu ? plData.lines.startline.get_y2() : na, title = 'Bearish Breakout', style = shape.labeldown, color = input_bearC, textcolor = color.white, location = location.absolute, text = 'Br') plotshape(ta.change(co) and co ? phData.lines.startline.get_y2() : na, title = 'Bullish Breakout', style = shape.labelup, color = input_bullC, textcolor = color.white, location = location.absolute, text = 'Br') alertcondition(ta.change(cu) and cu, 'Bearish Breakout') alertcondition(ta.change(co) and co, 'Bullish Breakout') // Target Levels phData_target = tl.new(phData.values.changeInX) plData_target = tl.new(plData.values.changeInX) phData_target.drawLine(ta.change(phData.values.y1) and input_targets, phData.values.y2, phData.values.y2) plData_target.drawLine(ta.change(plData.values.y1) and input_targets, plData.values.y2, plData.values.y2) target_style(tl.Trendline this, color col) => this.lines.startline.set_style(input_tstyle) this.lines.trendline.set_style(input_tstyle) this.lines.startline.set_color(col) this.lines.trendline.set_color(col) target_style(plData_target, input_bearC) target_style(phData_target, input_bullC) breakout(phData_target, ph) breakout(plData_target, pl)
프로필 이미지
주식남
2025-07-27
266
글번호 192772
지표
답변완료

질문 부탁드립니다

수고하십니다 지난번에 for ~ step 관련해서 알려주셨는데요 for 문에서 사용할 수 있는 예스랭귀지 문법들이 더 있다면 공부를 해보고 싶은데 간단한 설명과 함께 알려주셨으면 감사하겠습니다
프로필 이미지
yamu
2025-07-27
136
글번호 192771
지표
답변완료

수식 문의

안녕하세요? 개별 주식이나 개별 주식 선물이나 호가의 스케일이 다른데요, abs(C-O) 가 3호가 이내라는 것을 어떻게 표시하나요? 감사합니다.
프로필 이미지
에구머니
2025-07-27
121
글번호 192770
지표
답변완료

몸통고가만의 swinghigh

무더위에 고생 많으십니다. 제가 나름 응용해보려고 하다 보니 자꾸 중복 질문하게 돼 죄송합니다, 다음과 같이 문의 드립니다. 1. 몸통만으로 이루어진 좌 5, 우 10봉중 고가(몸통)를 오늘 종가(몸통고가)가 돌파하는 종목검색식 2. 몸통만으로 이루어진 좌 5, 우 10봉중 고가(몸통의)를 당일 종가(몸통고가)가 돌파하는 봉(1번요건 충족봉)이 20봉 이내에(오늘부터 과거로) 있는 종목 검색식을 부탁드립니다 3. 그리고 100봉이내 최고거래량 종목 검색식 input : n(100); if v > highest(v,n)[1] Then Find(1); 에서'[1]'이 들어가지 않으면 작동이 안되는데 v > highest(v,n)과 v > highest(v,n)[1] 이 어떻게 다른지, 어떤 경우에 '[1]'이 필요한지 알려주시기 바랍니다. 항상 감사드립니다.
프로필 이미지
선도인
2025-07-27
128
글번호 192769
종목검색
답변완료

두 가지 수식이 동시에 만족하는 종목을 찾고싶습니다. 도움 부탁드립니다.

input : Period(20),Period1(5),Period2(20),A(0); var1 = ma(C,Period); Var2 = ma(C,Period2); Var3 = (ma(c,Period1)-Var2)/C*100; if Crossup(C,Var1) and Var2 > Var2[1] and Var2[1] < Var2[2] and CrossUp(Var3,A) Then Find(1); 이 두 가지 신호가 동시에 발생하는 종목을 찾고 싶습니다. 수식 완성 부탁 드립니다. 수고하세요.
프로필 이미지
행복사랑채
2025-07-27
136
글번호 192768
종목검색
답변완료

검색식부탁드립니다

수고많습니다 수식을검색식으로 뷰탁드립니다 a1=v(1)>=v(2)*5; b2=v<=v(1)*0.25; c3=(o/avg(c,5)*100)>=90; d4=(o/avg(c,5)*100)<=110; e5=(c(1)/o(1)-1)*100>=5; a=ma(c,20); a1&&b2&&c3&&d4&&e5&&c>a&&c>a(20)
프로필 이미지
달오
2025-07-27
163
글번호 192767
종목검색
답변완료

선물거래에서 연결물과 거래가능 최근월물의 차이로 발생하는 오류

안녕하세요, 예를들어 '나스닥선물 60분봉에서 200 이평선이 우상향할때' 라는 필터를 적용한다면 시뮬레이션차트 NQ.1 에서는 시뮬레이션이 가능한데 전략실행차트 NQU25 에서는 과거봉이 없을때 필터적용이 안되네요. 어떻게 해결할 수 있을까요? 항상 감사합니다.
프로필 이미지
uncle
2025-07-27
123
글번호 192766
시스템
답변완료

프로그램 문의

수고하십니다! 예스트레이드 확장모니터의 1번 화면을 2번 등 타 모니터로 복사가능한지요? 감사합니다
프로필 이미지
바다를내품에
2025-07-27
143
글번호 192765
지표