예스스탁
예스스탁 답변
2023-07-19 17:00:31
안녕하세요
예스스탁입니다.
input : smoothK(3),smoothD(3),lengthRSI(14),lengthStoch(14);
input : bandno0(80),bandno2(50),bandno1(20);
var : rsi1(0),sr(0),k(0),d(0);
rsi1 = rsi(lengthRSI);
sr = 100 * (rsi1 - lowest(rsi1, lengthStoch)) / (highest(rsi1, lengthStoch) - lowest(rsi1, lengthStoch));
k = ma(sr, smoothK);
d = ma(k, smoothD);
input : crossoverAlertBgColourMidOnOff(false),crossoverAlertBgColourOBOSOnOff(false);
input : crossoverAlertBgColourGreaterThanOnOff(false),crossoverAlertBgColourLessThanOnOff(false);
input : maTypeChoice(1);#1:EMA, 2:WMA, 3:SMA,4:None
input : maSrc(close),maLen(200);
var : maValue(0);
if maTypeChoice == 1 Then
maValue = ema(maSrc, maLen);
else if maTypeChoice == 2 Then
maValue = wma(maSrc, maLen);
else if maTypeChoice == 3 Then
maValue = ma(maSrc, maLen);
else
maValue = 0;
var : crossupCHECK(False),crossdownCHECK(False);
var : crossupalert(False),crossdownalert(False),crossupOSalert(False),crossdownOBalert(False);
var : aboveBandalert(False),belowBandalert(False);
crossupCHECK = maTypeChoice == 4 or (open > maValue and maTypeChoice != 4);
crossdownCHECK = maTypeChoice == 4 or (open < maValue and maTypeChoice != 4);
crossupalert = crossupCHECK and CrossUp(k, d) and (k < bandno2 or d < bandno2);
crossdownalert = crossdownCHECK and CrossDown(k, d) and (k > bandno2 or d > bandno2);
crossupOSalert = crossupCHECK and CrossUp(k, d) and (k < bandno1 or d < bandno1);
crossdownOBalert = crossdownCHECK and CrossDown(k, d) and (k > bandno0 or d > bandno0);
aboveBandalert = CrossDown(k, bandno0);
belowBandalert = CrossUp(k, bandno1);
if crossupalert and crossoverAlertBgColourMidOnOff Then
PlotPaintBar(H,L,"강조",Green);
if crossdownalert and crossoverAlertBgColourMidOnOff Then
PlotPaintBar(H,L,"강조",Red);
if crossupOSalert and crossoverAlertBgColourOBOSOnOff Then
PlotPaintBar(H,L,"강조",Orange);
if crossdownOBalert and crossoverAlertBgColourOBOSOnOff Then
PlotPaintBar(H,L,"강조",Black);
if aboveBandalert and crossoverAlertBgColourGreaterThanOnOff Then
PlotPaintBar(H,L,"강조",Red);
if crossdownalert and crossoverAlertBgColourMidOnOff Then
PlotPaintBar(H,L,"강조",Black);
if belowBandalert and crossoverAlertBgColourLessThanOnOff Then
PlotPaintBar(H,L,"강조",Green);
if crossdownalert and crossoverAlertBgColourMidOnOff Then
PlotPaintBar(H,L,"강조",Red);
즐거운 하루되세요
> 다올 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 어제 변형 부탁드렸던 수식 뒷부분 입니다.
부탁 드립니다. 항상 감사합니다.
// Set Alerts
alertcondition(ta.crossover(v_fastEMA, v_slowEMA), title='Bullish EMA Cross', message='Bullish EMA crossover')
alertcondition(ta.crossunder(v_fastEMA, v_slowEMA), title='Bearish EMA Cross', message='Bearish EMA Crossover')
// Stoch RSI code
smoothK = input.int(3, 'K', minval=1)
smoothD = input.int(3, 'D', minval=1)
lengthRSI = input.int(14, 'RSI Length', minval=1)
lengthStoch = input.int(14, 'Stochastic Length', minval=1)
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
bandno0 = input.int(80, minval=1, title='Upper Band', group='Bands (change this instead of length in Style for Stoch RSI colour to work properly)')
bandno2 = input.int(50, minval=1, title='Middle Band', group='Bands (change this instead of length in Style for Stoch RSI colour to work properly)')
bandno1 = input.int(20, minval=1, title='Lower Band', group='Bands (change this instead of length in Style for Stoch RSI colour to work properly)')
// Alerts
crossoverAlertBgColourMidOnOff = input.bool(title='Crossover Alert Background Colour (Middle Level) [ON/OFF]', group='Crossover Alerts', defval=false)
crossoverAlertBgColourOBOSOnOff = input.bool(title='Crossover Alert Background Colour (OB/OS Level) [ON/OFF]', group='Crossover Alerts', defval=false)
crossoverAlertBgColourGreaterThanOnOff = input.bool(title='Crossover Alert >input [ON/OFF]', group='Crossover Alerts', defval=false)
crossoverAlertBgColourLessThanOnOff = input.bool(title='Crossover Alert <input [ON/OFF]', group='Crossover Alerts', defval=false)
maTypeChoice = input.string('EMA', title='MA Type', group='Moving Average', options=['EMA', 'WMA', 'SMA', 'None'])
maSrc = input.source(close, title='MA Source', group='Moving Average')
maLen = input.int(200, minval=1, title='MA Length', group='Moving Average')
maValue = if maTypeChoice == 'EMA'
ta.ema(maSrc, maLen)
else if maTypeChoice == 'WMA'
ta.wma(maSrc, maLen)
else if maTypeChoice == 'SMA'
ta.sma(maSrc, maLen)
else
0
crossupCHECK = maTypeChoice == 'None' or open > maValue and maTypeChoice != 'None'
crossdownCHECK = maTypeChoice == 'None' or open < maValue and maTypeChoice != 'None'
crossupalert = crossupCHECK and ta.crossover(k, d) and (k < bandno2 or d < bandno2)
crossdownalert = crossdownCHECK and ta.crossunder(k, d) and (k > bandno2 or d > bandno2)
crossupOSalert = crossupCHECK and ta.crossover(k, d) and (k < bandno1 or d < bandno1)
crossdownOBalert = crossdownCHECK and ta.crossunder(k, d) and (k > bandno0 or d > bandno0)
aboveBandalert = ta.crossunder(k, bandno0)
belowBandalert = ta.crossover(k, bandno1)
bgcolor(color=crossupalert and crossoverAlertBgColourMidOnOff ? #4CAF50 : crossdownalert and crossoverAlertBgColourMidOnOff ? #FF0000 : na, title='Crossover Alert Background Colour (Middle Level)', transp=70)
bgcolor(color=crossupOSalert and crossoverAlertBgColourOBOSOnOff ? #fbc02d : crossdownOBalert and crossoverAlertBgColourOBOSOnOff ? #000000 : na, title='Crossover Alert Background Colour (OB/OS Level)', transp=70)
bgcolor(color=aboveBandalert and crossoverAlertBgColourGreaterThanOnOff ? #ff0014 : crossdownalert and crossoverAlertBgColourMidOnOff ? #FF0000 : na, title='Crossover Alert - K > Upper level', transp=70)
bgcolor(color=belowBandalert and crossoverAlertBgColourLessThanOnOff ? #4CAF50 : crossdownalert and crossoverAlertBgColourMidOnOff ? #FF0000 : na, title='Crossover Alert - K < Lower level', transp=70)
alertcondition(crossupalert or crossdownalert, title='Stoch RSI Crossover', message='STOCH RSI CROSSOVER')