커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
7631
글번호 230811
지표
답변완료

보조지표작성 부탁드립니다

늘 도움주심에 깊은 감사드립니다.rsi지표를 하나는 (21)장기로 ,하나는 (7) 단기로 두개를 겹쳐서 보고 싶습니다.장기는 빨간색으로 단기는 노락색으로 해서 단기가 장기를 돌파할때 빨간동그라미 장기가 단기로 내려갈때 파란 동그라미가 생기게 해주세요과매수나 과매도 구간처럼 노란선이 빨간선아래있으면 보라색 빨간선이 노란색 아래 있으면 파란색으로 색칠이 되면 좋겠습니다.그리고 50 기준선만 하나 나오게 해주시구요.귀찮게 해드려 죄송하고 감사합니다.
프로필 이미지
3579
2025-12-22
413
글번호 229242
지표
답변완료

종목 검색 수식 검토 부탁드립니다.

input : 기간1(120);VAR : B1(0),B2(0),B3(0),B4(0),B5(0),B6(0),B7(0),BB(0),BB1(0),A0(0);VAR : A(0),A1(0),EQ(0),Z(0),Z1(0),MA20(0),MA60(0),MM20(0),MM60(0); B1=ifF(Ema(C,12)-Ema(C,26) > Ema(Ema(C,12)-Ema(C,26),9), 1,-1);B2=ifF(C > MA(C, 20), 1, -1);B3=ifF((C - C[12]) / C[12] * 100 > 0, 1, -1);B4=ifF(ema((C-lowest(L, 5)) / (highest(H, 5) - lowest(L, 5)) * 100, 3)>50, 1, -1);B5=IfF(CCI(20) > 0,1,-1);B6=IfF(C > SAR(0.02,0.2),1,-1);B7=IfF((ema(Accum(((C -L)-(H- C))/ (H-L)*V), 3)-ema(Accum(((C -L)-(H- C))/(H-L)*V), 10))>0,1,-1);A0=B1+B2+B3+B4+B5+B6+B7;BB=ema(A0,9);BB1=(BB-lowest(BB,기간1))/(highest(BB,기간1)-lowest(BB,기간1))*100; A=LRL(C,50);A1=LRL(A,50);eq= A-A1;z =A+eq;Z1=(Z-lowest(Z,기간1))/(highest(Z,기간1)-lowest(Z,기간1))*100; MA20 = (C - EmA(C, 20)) / EMA(C, 20) * 100;MM20=(MA20-lowest(MA20,기간1))/(highest(MA20,기간1)-lowest(MA20,기간1))*100; MA60 = (C - EMA(C, 60)) / EMA(C, 60) * 100;MM60=(MA60-lowest(MA60,기간1))/(highest(MA60,기간1)-lowest(MA60,기간1))*100; 조건= (BB1>Z1 && BB1>MM20 && BB1>MM60) OR (BB1<Z1 && BB1<MM20 && BB1<MM60) OR BB1<1 OR BB1>99; IF 조건==TRUE TheNFind(1);윗 식으로 는 지표간 비교가 가능한지 검토 부탁드립니다
프로필 이미지
hoon
2025-12-22
623
글번호 229239
종목검색
답변완료

수식작성부탁드립니다

1. 분봉사용 전략2. open의 -2%이면 매수 진입. (가격이 오면 바로 매수 진입)3. 2번의 매수 진입시 open 을 baseopen으로 두고 -3%되면 1번더 매수 진입 4. 마찬가지로 baseopen 에서 -4%되면 추가로 한번더 매수 진입 5. 2번 시점에서 10봉 후 1,2,3번 매수 전체 한번에 청산 6. 그후 다시 단순 open 가격에서 부터 시작.
프로필 이미지
소드노
2025-12-21
491
글번호 229238
시스템
답변완료

종목검색식 부탁드립니다.

S=Sum(1);기준선=Valuewhen(1,제한일수-S==20,(종가+시가)/2);CrossUp(C,기준선)위 수식을 예스랭귀지로 변환 부탁드립니다.
프로필 이미지
지구소방대
2025-12-21
336
글번호 229237
종목검색
답변완료

지표문의

1.아래는 수식 검색하다 찾은 지표인데 TX = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx,2,0); Text_SetSize(tx,20); Text_SetColor(tx,Red); 표시중 화살표시를 수평선(좌봉3개,우봉3개 총6개)길이로바꾸고 굵기두 조정 할수있게하고 ,"▲" 생길때 해당값 출력되도록 해 주세요. 아래는 반대로 TX = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx,2,1); Text_SetSize(tx,20); Text_SetColor(tx,Blue); Else { if var4 > 0 and Index < var4+5 Then { TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1); TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2); TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3); Box_SetEnd(box1,NextBarSdate,NextBarStime,var2); Box_SetEnd(box2,NextBarSdate,NextBarStime,var3); } } 위의 else 문장부분 무슨의미인가요? 설명두 부탁드릴께요. input : period1(10),multiplier1(3); input : period2(20),multiplier2(2); input : period3(30),multiplier3(3); var : src(0); var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0); var : prevSuperTrend1(0), superTrend1(C), direction1(0),alpha1(0),source1(0); var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0); var : prevSuperTrend2(0), superTrend2(C), direction2(0),alpha2(0),source2(0); var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0); var : prevSuperTrend3(0), superTrend3(C), direction3(0),alpha3(0),source3(0); var : TL1(0),TL2(0),TL3(0),TL(0),box1(0),box2(0); src = (H+L)/2; if CurrentBar > 1 Then { alpha1 = 1 / period1; source1 = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand1 = src + multiplier1 * AtrV1; lowerBand1 = src - multiplier1 * AtrV1; prevLowerBand1 = lowerBand1[1]; prevUpperBand1 = upperBand1[1]; if lowerBand1 > prevLowerBand1 or close[1] < prevLowerBand1 Then lowerBand1 = lowerBand1; Else lowerBand1 = prevLowerBand1; if upperBand1 < prevUpperBand1 or close[1] > prevUpperBand1 Then upperBand1 = upperBand1; Else upperBand1 = prevUpperBand1; if C > UpperBand1 Then direction1 = 1; if C < LowerBand1 Then direction1 = -1; if direction1 == 1 Then supertrend1 = lowerband1; Else supertrend1 = upperband1; alpha2 = 1 / period2; source2 = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand2 = src + multiplier2 * AtrV2; lowerBand2 = src - multiplier2 * AtrV2; prevLowerBand2 = lowerBand2[1]; prevUpperBand2 = upperBand2[1]; if lowerBand2 > prevLowerBand2 or close[1] < prevLowerBand2 Then lowerBand2 = lowerBand2; Else lowerBand2 = prevLowerBand2; if upperBand2 < prevUpperBand2 or close[1] > prevUpperBand2 Then upperBand2 = upperBand2; Else upperBand2 = prevUpperBand2; if C > UpperBand2 Then direction2 = 1; if C < LowerBand2 Then direction2 = -1; if direction2 == 1 Then supertrend2 = lowerband2; Else supertrend2 = upperband2; alpha3 = 1 / period3; source3 = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand3 = src + multiplier3 * AtrV3; lowerBand3 = src - multiplier3 * AtrV3; prevLowerBand3 = lowerBand3[1]; prevUpperBand3 = upperBand3[1]; if lowerBand3 > prevLowerBand3 or close[1] < prevLowerBand3 Then lowerBand3 = lowerBand3; Else lowerBand3 = prevLowerBand3; if upperBand3 < prevUpperBand3 or close[1] > prevUpperBand3 Then upperBand3 = upperBand3; Else upperBand3 = prevUpperBand3; if C > UpperBand3 Then direction3 = 1; if C < LowerBand3 Then direction3 = -1; if direction3 == 1 Then supertrend3 = lowerband3; Else supertrend3 = upperband3; if C > superTrend1 Then { Plot1(superTrend1,"매수1", rgb(247, 75, 201), 0, 1); NoPlot(2); } Else { Plot2(superTrend1,"매도1", Indigo, 0, 1); NoPlot(1); } if C > superTrend2 Then { Plot3(superTrend2,"매수2", rgb(247, 75, 201), 0, 2); NoPlot(4); } Else { Plot4(superTrend2,"매도2", Indigo, 0, 2); NoPlot(3); } if C > superTrend3 Then { Plot5(superTrend3,"매수3", rgb(247, 75, 201), 0, 7); NoPlot(6); } Else { Plot6(superTrend3,"매도3", Indigo, 0, 7); NoPlot(5); } } var : box(0),tx(0); if CrossUp(c,supertrend2) Then { TL = TL_New(sDate,sTime,0,sDate,sTime,99999999); TL_SetColor(TL,rgb(255, 215, 0)); TL_SetSize(TL,1); TL_SetStyle(TL,2); TX = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx,2,0); Text_SetSize(tx,20); Text_SetColor(tx,Red); } Else if CrossDown(c,supertrend2) Then { TL = TL_New(sDate,sTime,0,sDate,sTime,999999999); TL_SetColor(TL, rgb(193, 216, 251)); TL_SetSize(TL,2); TL_SetStyle(TL,2); TX = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx,2,1); Text_SetSize(tx,20); Text_SetColor(tx,Blue); } Else { if var4 > 0 and Index < var4+5 Then { TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1); TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2); TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3); Box_SetEnd(box1,NextBarSdate,NextBarStime,var2); Box_SetEnd(box2,NextBarSdate,NextBarStime,var3); } } 2.그럼수고하세요
프로필 이미지
성공예견
2025-12-21
817
글번호 229236
지표
답변완료

시스템식 부탁드립니다

초보입니다. 잘 부탁합니다마이크로유로선물 5분봉 거래하고 있습니다. 일봉기준 전일봉이 양봉이면 시초가+5틱에서1계약매수진입,-15틱에서1개매수진입-30틱에서1개매수진입 총 3계약까지 진입합니다. 손절은 없고 시초가대비30틱이상 상승시 되돌림50프로에 청산,또는 06시에 청산전일봉이 음봉이면 +5틱에서 1개매도진입,-15틱,-30틱에서 1계약씩 추가매도진입,청산조건은 매수진입 반대로 부탁합니다.
프로필 이미지
김슌
2025-12-21
298
글번호 229235
시스템
답변완료

지표 부탁 드립니다

//@version=5indicator("7/19 EMA Crossover Alerts", overlay=true)// ==================== INPUTS ====================fastLen = input.int(7, "Fast EMA")slowLen = input.int(19, "Slow EMA")slCandles = input.int(4, "SL Candles Lookback", options=[3, 4])skipSaturday = input.bool(true, "Skip Saturday")showSLLevels = input.bool(true, "Show SL Levels on Signal")// ==================== EMAs ====================ema7 = ta.ema(close, fastLen)ema19 = ta.ema(close, slowLen)// ==================== SIGNALS ====================bullishCross = ta.crossover(ema7, ema19)bearishCross = ta.crossunder(ema7, ema19)// ==================== DAY FILTER ====================canTrade = skipSaturday ? dayofweek != dayofweek.saturday : true// ==================== STOP LOSS CALCULATIONS ====================lowestLow3 = math.min(low, math.min(low[1], low[2]))lowestLow4 = math.min(low, math.min(low[1], math.min(low[2], low[3])))highestHigh3 = math.max(high, math.max(high[1], high[2]))highestHigh4 = math.max(high, math.max(high[1], math.max(high[2], high[3])))longSL = slCandles == 3 ? lowestLow3 : lowestLow4shortSL = slCandles == 3 ? highestHigh3 : highestHigh4// ==================== ENTRY CONDITIONS ====================longSignal = bullishCross and canTradeshortSignal = bearishCross and canTradeskippedLong = bullishCross and not canTradeskippedShort = bearishCross and not canTrade// ==================== TRACK TREND ====================var int trend = 0if bullishCross trend := 1if bearishCross trend := -1// ==================== PLOTS ====================plot(ema7, "7 EMA", color.lime, 2)plot(ema19, "19 EMA", color.red, 2)// Signal markersplotshape(longSignal, "Long Signal", shape.triangleup, location.belowbar, color.lime, size=size.normal, text="LONG")plotshape(shortSignal, "Short Signal", shape.triangledown, location.abovebar, color.red, size=size.normal, text="SHORT")plotshape(skippedLong, "Skip Long", shape.xcross, location.belowbar, color.gray, size=size.small, text="SKIP")plotshape(skippedShort, "Skip Short", shape.xcross, location.abovebar, color.gray, size=size.small, text="SKIP")// SL level lines on signalsplot(showSLLevels and longSignal ? longSL : na, "Long SL", color.orange, 2, plot.style_circles)plot(showSLLevels and shortSignal ? shortSL : na, "Short SL", color.orange, 2, plot.style_circles)// Backgroundbgcolor(ema7 > ema19 ? color.new(color.green, 93) : color.new(color.red, 93))// ==================== INFO TABLE ====================var table t = table.new(position.top_right, 2, 6, bgcolor=color.new(color.black, 80))if barstate.islast table.cell(t, 0, 0, "7/19 EMA ALERTS", text_color=color.white, bgcolor=color.blue) table.cell(t, 1, 0, "", bgcolor=color.blue) table.cell(t, 0, 1, "Trend:", text_color=color.white, text_size=size.small) table.cell(t, 1, 1, ema7 > ema19 ? "BULLISH" : "BEARISH", text_color=ema7 > ema19 ? color.lime : color.red, text_size=size.small) table.cell(t, 0, 2, "EMA " + str.tostring(fastLen) + ":", text_color=color.white, text_size=size.small) table.cell(t, 1, 2, str.tostring(ema7, "#.##"), text_color=color.lime, text_size=size.small) table.cell(t, 0, 3, "EMA " + str.tostring(slowLen) + ":", text_color=color.white, text_size=size.small) table.cell(t, 1, 3, str.tostring(ema19, "#.##"), text_color=color.red, text_size=size.small) table.cell(t, 0, 4, "Long SL:", text_color=color.white, text_size=size.small) table.cell(t, 1, 4, str.tostring(longSL, "#.##"), text_color=color.orange, text_size=size.small) table.cell(t, 0, 5, "Short SL:", text_color=color.white, text_size=size.small) table.cell(t, 1, 5, str.tostring(shortSL, "#.##"), text_color=color.orange, text_size=size.small)// ==================== ALERTS ====================// Main entry alertsalertcondition(longSignal, "Long Entry", "7/19 EMA: LONG Signal")alertcondition(shortSignal, "Short Entry", "7/19 EMA: SHORT Signal")// Raw crossover alerts (ignore Saturday filter)alertcondition(bullishCross, "Bullish Crossover (Any)", "7/19 EMA: Bullish Crossover")alertcondition(bearishCross, "Bearish Crossover (Any)", "7/19 EMA: Bearish Crossover")// Any signal alert (for single alert setup)alertcondition(longSignal or shortSignal, "Any Signal", "7/19 EMA: Signal Triggered")
프로필 이미지
매치다2
2025-12-20
1298
글번호 229234
지표
답변완료

지표 부탁 드립니다

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/// © Uncle_the_shooter//@version=6indicator('Pivot Oscillator', overlay=false, max_lines_count=500, max_labels_count=500, precision=2)// PIVOT SETTINGS (user inputs) lenSwing = input.int(5, 'Pivot Length', minval=1, group='Pivot Settings')pivotLevel = input.float(0.5, 'Pivot Level', minval=0.0, maxval=1.0, step=0.01, group='Pivot Settings')lookback = input.int(5, 'Pivot Lookback', minval=1, group='Pivot Settings')// ATR SCALING atrLen = input.int(14, 'ATR Length', minval=1, group='ATR Settings')multUp = input.float(15.0, 'ATR Multiplier Up', minval=0.1, group='ATR Settings')multDown = input.float(15.0, 'ATR Multiplier Down', minval=0.1, group='ATR Settings')// THRESHOLD LEVELS obLevel = input.float(70, 'Overbought Level', minval=51, maxval=99, group='Threshold Levels')osLevel = input.float(30, 'Oversold Level', minval=1, maxval=49, group='Threshold Levels')maOverbought = input.float(60, 'MA Overbought Threshold', minval=51, maxval=99, group='Threshold Levels')maOversold = input.float(40, 'MA Oversold Threshold', minval=1, maxval=49, group='Threshold Levels')// SIGNAL SETTINGS signalLength = input.int(14, 'SMA Length for Signal', group='Signal Settings')extraSmooth = input.int(10, "SMA Smoothing", minval=1, group='Signal Settings')// COLORS bullColor = input.color(color.rgb(22,193,67), 'Bullish Color', group='Style Settings')bearColor = input.color(color.rgb(229,11,11), 'Bearish Color', group='Style Settings')signalColorBull = input.color(color.rgb(22,193,67), 'Signal SMA Bullish', group='Style Settings') signalColorBear = input.color(color.rgb(229,11,11), 'Signal SMA Bearish', group='Style Settings') obColor = input.color(color.red, 'Overbought Line Color', group='Style Settings')osColor = input.color(color.green, 'Oversold Line Color', group='Style Settings')midLineColor = input.color(color.gray, 'Midline 50 Color', group='Style Settings') // <--- nowy inputtextColor = input.color(color.white, 'Text Color', group='Style Settings')// GRADIENT SETTINGSshowOverboughtGradient = input.bool(true, 'Show Overbought Gradient', group='Gradient Settings')showOversoldGradient = input.bool(true, 'Show Oversold Gradient', group='Gradient Settings')showOscillatorGradient = input.bool(true, 'Show Oscillator Gradient', group='Gradient Settings')showMaGradient = input.bool(true, 'Show Moving Average Gradient', group='Gradient Settings')fillEnabled = input.bool(true, 'Enable Gradient Fill', group='Gradient Settings')fillTransparency = input.int(75, 'Gradient Fill Transparency', minval=0, maxval=100, group='Gradient Settings')bandTransparency = input.int(50, 'Band/Label Gradient Transparency', minval=0, maxval=100, group='Gradient Settings')// INTERNAL VARIABLES rangeUpper = 60rangeLower = 5var int gradientTransparency = 85// PIVOTS CALCULATIONph = ta.pivothigh(high, lenSwing, lenSwing)pl = ta.pivotlow(low, lenSwing, lenSwing)var float[] phArray = array.new_float()var float[] plArray = array.new_float()if not na(ph) array.push(phArray, ph) if array.size(phArray) > lookback array.shift(phArray)if not na(pl) array.push(plArray, pl) if array.size(plArray) > lookback array.shift(plArray)avgPH = array.size(phArray) > 0 ? array.avg(phArray) : naavgPL = array.size(plArray) > 0 ? array.avg(plArray) : napivotLine = not na(avgPH) and not na(avgPL) ? avgPL + (avgPH - avgPL) * pivotLevel : naosc_raw = close - nz(pivotLine)// ATR SCALINGatr = ta.atr(atrLen)atr_safe = atr > 0 ? atr : 1upper_bound = atr_safe * multUplower_bound = atr_safe * multDownfloat osc_scaled = 50.0if osc_raw > 0 osc_scaled := 50.0 + 50.0 * (osc_raw / upper_bound)else if osc_raw < 0 osc_scaled := 50.0 + 50.0 * (osc_raw / lower_bound)else osc_scaled := 50.0osc_scaled := math.max(1.0, math.min(100.0, osc_scaled))oscSignal = ta.sma(osc_scaled, signalLength)// DYNAMIC COLORS FOR OB/OS ob_gradient_color = oscSignal >= maOverbought ? obColor : color.grayos_gradient_color = oscSignal <= maOversold ? osColor : color.gray// PLOTTING hline(obLevel, 'Overbought', color=obColor, linestyle=hline.style_dashed, linewidth=1)plot(showOverboughtGradient ? obLevel : na, 'OB Gradient', color=color.new(ob_gradient_color, bandTransparency), linewidth=8, editable=false)hline(osLevel, 'Oversold', color=osColor, linestyle=hline.style_dashed, linewidth=1)plot(showOversoldGradient ? osLevel : na, 'OS Gradient', color=color.new(os_gradient_color, bandTransparency), linewidth=8, editable=false)// MIDLINE 50hline(50, 'Midline 50', color=midLineColor, linestyle=hline.style_dashed, linewidth=1)hline(1, 'Min', color=color.new(color.gray, 80), linestyle=hline.style_dotted)hline(100, 'Max', color=color.new(color.gray, 80), linestyle=hline.style_dotted)lineColor = osc_raw > 0 ? bullColor : bearColorpOsc = plot(osc_scaled, 'Oscillator 1–100', color=lineColor, linewidth=2)plot(showOscillatorGradient ? osc_scaled : na, 'Osc Gradient', color=color.new(lineColor, gradientTransparency), linewidth=10)// SMA SMOOTHED + DYNAMIC COLOR + GRADIENTsmoothSignal = ta.sma(oscSignal, extraSmooth) dynSignalColor = smoothSignal > smoothSignal[1] ? signalColorBull : smoothSignal < smoothSignal[1] ? signalColorBear : color.gray // SMA PLOTpSignal = plot(showMaGradient ? smoothSignal : smoothSignal, "Signal SMA", dynSignalColor, 2)// SMA GRADIENT – 3 layersplot(showMaGradient ? smoothSignal : na, "", color.new(dynSignalColor, 60), 5)plot(showMaGradient ? smoothSignal : na, "", color.new(dynSignalColor, 35), 3)plot(showMaGradient ? smoothSignal : na, "", color.new(dynSignalColor, 0), 1)// GRADIENT FILL pMid1 = plot(osc_scaled * 0.8 + 50 * 0.2, color=na, display=display.none)pMid2 = plot(osc_scaled * 0.6 + 50 * 0.4, color=na, display=display.none)pMid3 = plot(osc_scaled * 0.4 + 50 * 0.6, color=na, display=display.none)pMid4 = plot(osc_scaled * 0.2 + 50 * 0.8, color=na, display=display.none)fill(pOsc, pMid1, color=fillEnabled ? color.new(lineColor, fillTransparency) : na)fill(pMid1, pMid2, color=fillEnabled ? color.new(lineColor, fillTransparency + 5) : na)fill(pMid2, pMid3, color=fillEnabled ? color.new(lineColor, fillTransparency + 10) : na)fill(pMid3, pMid4, color=fillEnabled ? color.new(lineColor, fillTransparency + 15) : na)// SIGNALSlongSignalObos = ta.crossover(osc_scaled, osLevel)shortSignalObos = ta.crossunder(osc_scaled, obLevel)// plotshapeplotshape(longSignalObos ? osc_scaled : na, location=location.bottom, color=osColor, style=shape.triangleup, size=size.tiny, title='Buy (OS)')plotshape(shortSignalObos ? osc_scaled : na, location=location.top, color=obColor, style=shape.triangledown, size=size.tiny, title='Sell (OB)')// ALERTS alertcondition(longSignalObos, 'Buy (Oversold)', 'Oscillator crossed above oversold.')alertcondition(shortSignalObos, 'Sell (Overbought)', 'Oscillator crossed below overbought.')
프로필 이미지
매치다2
2025-12-20
4913
글번호 229233
지표
답변완료

수식 검토요청드립니다.

input : P(20),dv(2); var : bbup(0),bbdn(0), A(0); bbup = BollBandUp(P,dv); bbdn = BollBandDown(P,dv);A=(bbup[2]-bbdn[2])/bbdn[2]*100;if CrossUp(C[1], bbup[1]) && A>0 && A<1.0 && C[1]>C[2]*1.03 && C[1]<C[2]*1.15 && O[1]<=C[2]*1.05 Then Find(1);볼밴이 극도로 스퀴즈되었다가 갑자기 가격상승하는 종목을 검색하는 수식으로 위와같이 작성해보았읍니다. 검증에서는 문제없는 것으로 나오는데, 맞는건지 모르겠읍니다.문제는 A값이 1%이고 볼밴돌파봉이 3%상승으로하니 단가가 낮은종목, 높은 종목을 동시에 잡기가 어려운거 같습니다. 그래서 혹시 단가가 3만원미만은 A를 2%, 볼밴돌파 봉의 상승을 5%로 하고 3만원 이상은 A를 1%, 볼밴돌파 봉의 상승을 3%로 이원화할 수 할 수 없는지 검토해주세요.
프로필 이미지
ksks
2025-12-20
714
글번호 229230
종목검색