답변완료
지표문의
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
235
글번호 229236
지표
답변완료
지표 부탁 드립니다
//@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")
2025-12-20
270
글번호 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.')
2025-12-20
927
글번호 229233
지표
답변완료
문의드립니다.
지난번에 주신 아래의 수식을 5분봉차트에서 '1시간봉의 아래의 지표'가 표현되게 하고자 합니다. 5분봉에서 30분의 아래지표를 또는 5분붕에서 2시간봉차트의 아래지표를 적용할 수 있게 하는 등 시간프레임을 변경할 수 있게 수식을 수정부탁드립니다. 도와주셔서 항상 감사드립니다. 수고하세요!!! input : BB_len(2),BB_mult(2);input : BB상단굵기(1),BB중단굵기(1),BB하단굵기(1);var : src_bb(0),basis(0),dev(0),upperBB(0),lowerBB(0);var : sellBB(False),Buybb(False);sellBB = high >= upperBB;buyBB = low <= lowerBB;input : Period1(4),mult1(0.2),st1굵기(1);input : Period2(6),mult2(1.2),st2굵기(1);input : Period3(7),mult3(1.4),st3굵기(1);var : alpha1(0),a1(0),s1(0),u1(0),d1(0),up1(0),dn1(0),tr1(1);var : alpha2(0),a2(0),s2(0),u2(0),d2(0),up2(0),dn2(0),tr2(1);var : alpha3(0),a3(0),s3(0),u3(0),d3(0),up3(0),dn3(0),tr3(1);var : st1(0),st2(0),st3(0);src_bb = open;basis = ma(src_bb, bb_len);dev = std(src_bb, bb_len);upperBB = basis + bb_mult * dev;lowerBB = basis - bb_mult * dev;plot1(upperBB, "BB Upper", red,Def,BB상단굵기);plot2(basis, "BB Basis", orange,Def,BB중단굵기); plot3(lowerBB, "BB Lower", blue,Def,BB하단굵기);alpha1 = 1 / period1;a1 = IFf(IsNan(a1[1]) == true, ma(TrueRange,period1) , alpha1 * TrueRange + (1 - alpha1) * IFf(isnan(a1[1])==true,0,a1[1]));s1 = (h+l)/2;u1 = s1 - mult1 * a1;d1 = s1 + mult1 * a1;Up1 = iff(close[1] > iff(IsNan(Up1[1])==true,0,Up1[1]) , max(u1, iff(IsNan(Up1[1])==true,0,Up1[1])) , u1);Dn1 = iff(close[1] < iff(IsNan(Dn1[1])==true,0,Dn1[1]) , min(d1, iff(IsNan(Dn1[1])==true,0,Dn1[1])) , d1);tr1 = iff(close > iff(IsNan(Dn1[1])==true,0,Dn1[1]) , 1 ,IFf(close < iff(IsNan(Up1[1])==true,0,Up1[1]) , -1 , tr1));alpha2 = 1 / period2;a2 = IFf(IsNan(a2[1]) == true, ma(TrueRange,period2) , alpha2 * TrueRange + (1 - alpha2) * IFf(isnan(a2[1])==true,0,a2[1]));s2 = (h+l)/2;u2 = s2 - mult2 * a2;d2 = s2 + mult2 * a2;Up2 = iff(close[1] > iff(IsNan(Up2[1])==true,0,Up2[1]) , max(u2, iff(IsNan(Up2[1])==true,0,Up2[1])) , u2);Dn2 = iff(close[1] < iff(IsNan(Dn2[1])==true,0,Dn2[1]) , min(d2, iff(IsNan(Dn2[1])==true,0,Dn2[1])) , d2);tr2 = iff(close > iff(IsNan(Dn2[1])==true,0,Dn2[1]) , 1 ,IFf(close < iff(IsNan(Up2[1])==true,0,Up2[1]) , -1 , tr2));alpha3 = 1 / period3;a3 = IFf(IsNan(a3[1]) == true, ma(TrueRange,period3) , alpha3 * TrueRange + (1 - alpha3) * IFf(isnan(a3[1])==true,0,a3[1]));s3 = (h+l)/2;u3 = s3 - mult3 * a3;d3 = s3 + mult3 * a3;Up3 = iff(close[1] > iff(IsNan(Up3[1])==true,0,Up3[1]) , max(u3, iff(IsNan(Up3[1])==true,0,Up3[1])) , u3);Dn3 = iff(close[1] < iff(IsNan(Dn3[1])==true,0,Dn3[1]) , min(d3, iff(IsNan(Dn3[1])==true,0,Dn3[1])) , d3);tr3 = iff(close > iff(IsNan(Dn3[1])==true,0,Dn3[1]) , 1 ,IFf(close < iff(IsNan(Up3[1])==true,0,Up3[1]) , -1 , tr3));st1 = iff(tr1 == 1 , up1 , dn1 );st2 = iff(tr2 == 1 , up2 , dn2 );st3 = iff(tr3 == 1 , up3 , dn3);plot4(st1, "ST1", iff(tr1 == 1 , green , red),Def,st1굵기);plot5(st2, "ST2", iff(tr2 == 1 , green , red),Def,st2굵기);plot6(st3, "ST3", iff(tr3 == 1 , green , red),Def,st3굵기);var : allAbove(False),allBelow(False);var : regime(0),prevRegime(0);var : bullStart(False),bearStart(False);var : buySignal(False),SellSignal(False);var : tx1(0),tx2(0);allAbove = close > st1 and close > st2 and close > st3;allBelow = close < st1 and close < st2 and close < st3;prevRegime = regime;if allAbove Then regime = 1;if allBelow Then regime = -1;bullStart = regime == 1 and prevRegime != 1 ;bearStart = regime == -1 and prevRegime != -1;if bullStart Then{ tx1 = text_new(sDate,sTime,L,"Bull"); Text_SetStyle(tx1,2,0); Text_SetColor(tx1,Green);}if bearStart Then{ tx1 = text_new(sDate,sTime,H,"Bear"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,Red);}buySignal = (regime == 1) and buyBB ;sellSignal = (regime == -1) and sellBB;if buySignal Then{ tx2 = text_new(sDate,sTime,L,"▲"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,Green);}if sellSignal Then{ tx2 = text_new(sDate,sTime,H,"▼"); Text_SetStyle(tx2,2,1); Text_SetColor(tx2,Red);}
2025-12-20
151
글번호 229226
지표