예스스탁
예스스탁 답변
2023-11-01 14:43:26
안녕하세요
예스스탁입니다.
해당식은 RSI의 시그널선(RSI을 이평한값)을 기준으로
상승반전(전봉하락,현재봉상승),하락반전(전봉상승,현재봉하락)한 봉의 지표값과 가격을 비교해 선을 그리게 됩니다.
상승반전 발생시 직전 상승반전 발생한 봉의 지표값보다 크고 저가는 작으면 선연결
하락반전 발생시 직전 하락반전 발생한 봉의 지표값보다 작고 고가는 크면 선연결
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : TXi1(0),TXi2(0),TXi3(0),TXi4(0);
#RSI
RSIV = RSI(RSIPeriod);
#RSI시그널1
RSIPL = ma(RSIV,PLPeriod);
#RSI시그널2
TSL = ma(RSIV,TSLPeriod);
#RSI 볼밴 중단
MidBand = ma(RSIV,BandPeriod);
#RSI 볼밴 상단
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod));
#RSI 볼밴 하단
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod));
#RSI시그널1이 50이하에서 상승반전
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then
{
#RSI시그널1값
var1 = RSIPL[1];
#직전 상승반전시 RSI시그널1값
var2 = var1[1];
#저가
var3 = L[1];
#직전 상승반전시 저가
var4 = var3[1];
#날짜
var5 = sdate[1];
var6 = var5[1];
#시간
var7 = stime[1];
var8 = var7[1];
#현재 RSI시그널1값이 직전 상승반전시 RSI시그널1값보다 크고
#현재 저가는 직전 상승반전시 저가보다 작으면 1
if var1 > var2 and var3 < var4 then
var9 = 1;
}
else #상승반전아니면 0
var9 = 0;
if var9 == 1 then
{
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TL_SetSize(TL1, 5);
TL_SetColor(TL1, Black);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TL_SetSize(TLi1, 5);
TL_SetColor(TLi1, Red);
TX1 = Text_new(var5, var7, L, "★");
Text_SetColor(Tx1,DarkRed);
Text_SetStyle(Tx1,0,0);
TXi1 = Text_New_Self(var5, var7, var1, "★");
Text_SetColor(Txi1,DarkRed);
Text_SetStyle(Txi1,0,0);
}
if CrossUp(RSIPL, DnBand) then
{
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,DarkRed);
Text_SetStyle(Tx3,2,0);
TXi3 = Text_New_Self(sdate, stime, RSIPL, "▲");
Text_SetColor(Txi3,DarkRed);
Text_SetStyle(Txi3,2,0);
}
#RSI시그널1이 50위에서 하락반전
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then
{
#RSI시그널1값
var11 = RSIPL[1];
#직전 상승반전시 RSI시그널1값
var12 = var11[1];
#고가
var13 = H[1];
#직전 상승반전시 고가값
var14 = var13[1];
#날짜
var15 = sdate[1];
var16 = var15[1];
#시간
var17 = stime[1];
var18 = var17[1];
#현재 RSI시그널1값이 직전 하락반전시 RSI시그널1값보다 작고
#현재 고가는 직전 하락반전시 고가보다 크면 1
if var11 < var12 and var13 > var14 then
var19 = 1;
}
else #하락반전 아니면 0
var19 = 0;
if var19 == 1 then
{
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TL_SetSize(TL2, 5);
TL_SetColor(TL2, blue);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TL_SetSize(TLi2, 3);
TL_SetColor(TLi2, blue);
TX2 = Text_new(var15, var17, H, "★");
Text_SetColor(Tx2,Black);
Text_SetStyle(Tx2,0,1);
TXi2 = Text_New_Self(var15, var17, var11, "★");
Text_SetColor(Txi2,Black);
Text_SetStyle(Txi2,0,1);
}
if CrossDown(RSIPL, UpBand) then
{
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
TXi4 = Text_New_Self(sdate, stime, RSIPL, "▼");
Text_SetColor(Txi4,Rgb(0,255,0));
Text_SetStyle(Txi4,2,1);
}
plot1(RSIPL, "RSIPL",Lgreen,def,2);
plot2(TSL,"TSL",DarkRed,def,1);
plot3(MidBand,"MidBand",Yellow,def,1);
plot4(UpBand,"UpBand",White,def,0);
plot5(DnBand,"DnBand",White,def,0);
if CrossUp(RSIPL,DnBand) then
plot6(RSIPL, "상향돌파시점");
if CrossDown(RSIPL, UpBand) then
plot7(RSIPL, "하향이탈시점");
if var9 == 1 then
plot8(RSIPL, "상승다이버전스");
if var19 == 1 then
plot9(RSIPL, "하락다이저번스");
즐거운 하루되세요
> 파생돌이 님이 쓴 글입니다.
> 제목 : 부틱드립니다
> 수고하십니다
아래수식은 RSI 다이버전스 수식같으데요 분봉에적응해보면 그림처럼 2번타원형에 선이 나타나는데
1번타원형에는 선이나타나지않는이유? 수식변경과 주석좀 달아주시면 감사히겠습니다
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : TXi1(0),TXi2(0),TXi3(0),TXi4(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod);
TSL = ma(RSIV,TSLPeriod);
MidBand = ma(RSIV,BandPeriod);
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod));
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod));
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then
{
var1 = RSIPL[1];
var2 = var1[1];
var3 = L[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then
{
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TL_SetSize(TL1, 5);
TL_SetColor(TL1, Black);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TL_SetSize(TLi1, 5);
TL_SetColor(TLi1, Red);
TX1 = Text_new(var5, var7, L, "★");
Text_SetColor(Tx1,DarkRed);
Text_SetStyle(Tx1,0,0);
TXi1 = Text_New_Self(var5, var7, var1, "★");
Text_SetColor(Txi1,DarkRed);
Text_SetStyle(Txi1,0,0);
}
if CrossUp(RSIPL, DnBand) then
{
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,DarkRed);
Text_SetStyle(Tx3,2,0);
TXi3 = Text_New_Self(sdate, stime, RSIPL, "▲");
Text_SetColor(Txi3,DarkRed);
Text_SetStyle(Txi3,2,0);
}
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then
{
var11 = RSIPL[1];
var12 = var11[1];
var13 = H[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then
{
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TL_SetSize(TL2, 5);
TL_SetColor(TL2, blue);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TL_SetSize(TLi2, 3);
TL_SetColor(TLi2, blue);
TX2 = Text_new(var15, var17, H, "★");
Text_SetColor(Tx2,Black);
Text_SetStyle(Tx2,0,1);
TXi2 = Text_New_Self(var15, var17, var11, "★");
Text_SetColor(Txi2,Black);
Text_SetStyle(Txi2,0,1);
}
if CrossDown(RSIPL, UpBand) then
{
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
TXi4 = Text_New_Self(sdate, stime, RSIPL, "▼");
Text_SetColor(Txi4,Rgb(0,255,0));
Text_SetStyle(Txi4,2,1);
}
#
plot1(RSIPL, "RSIPL",Lgreen,def,2);
plot2(TSL,"TSL",DarkRed,def,1);
plot3(MidBand,"MidBand",Yellow,def,1);
plot4(UpBand,"UpBand",White,def,0);
plot5(DnBand,"DnBand",White,def,0);
if CrossUp(RSIPL,DnBand) then
plot6(RSIPL, "상향돌파시점");
if CrossDown(RSIPL, UpBand) then
plot7(RSIPL, "하향이탈시점");
if var9 == 1 then
plot8(RSIPL, "상승다이버전스");
if var19 == 1 then
plot9(RSIPL, "하락다이저번스");