예스스탁
예스스탁 답변
2023-08-07 17:26:34
안녕하세용
예스스탁입니다.
RSI는 0~100사이를 움직입니다.
0.7, 0.3을 70, 30으로 변경해드립니다.
Inputs: Period(18), D(2), 밴드폭이평선(50),변동성최저(0.6);
Variables: BBTop(0,data2), BBMid(0,data2), BBBot(0,data2),BBwidth(0,data2),T(o),TL1(0),비중(0);
var : v1(0,Data2),v3(0,Data2),v4(0,Data2);
BBTop = data2(BollBandUp(Period,D));
BBMid = data2(ma(C,Period));
BBBot = data2(BollBandDown(Period,D));
BBWidth = ((BBTop - BBBot)/ BBMid)*100;
V1 = data2(ma(BBwidth,밴드폭이평선));
//Var2 = Data2(ma(BBWidth,5));
V3 = V1[0] - V1[1]; // 오늘의 기울기
V4 = V1[1] - V1[2]; // 어제의 기울기
If BBWidth < 변동성최저 and BBWidth[0] < BBWidth[1] Then
{
T = -1;
}
If BBWidth < 변동성최저 and BBWidth[0] > BBWidth[1] Then
{
T = 1;
}
If CrossUp(BBWidth, 변동성최저) Then
{
T = 2;
}
//============ADX지표=================//
input :Length(14);
var : ADXv(0,Data2),DP(0,Data2),DM(0,Data2);
ADXv = Data2(ADX(Length));
DP = Data2(DiPlus(Length));
DM = Data2(DiMinus(Period));
//====================================//
Input : RSIP(14), Period1(40),dv(2.5);
var : RSIV(0,Data2),Mid(0,Data2),BBup(0,Data2),BBdn(0,Data2),RSIVBB(0,Data2),Sigma(0,Data2),S(0);
RSIV = Data2(RSI(RSIP));
Mid = Data2(ma(RSIV,Period1));
BBup = Mid+Data2(STD(RSIV,Period1))*dv;
BBdn = Mid-data2(STD(RSIV,Period1))*dv;
RSIVBB = (RSIv - BBdn)/(BBup - BBdn);
If (T == 1 or T==2 ) and ADXv[0] < ADXv[1] Then { //밴드폭이 확장 & ADX 하락
S = 1;
}
If (T == 1 or T==2) and ADXv[0] > ADXv[1] Then { ////밴드폭이 확장 & ADX 상승
S = -1;
}
If S == 1 and CrossDown(RSIV,70) Then //밴드폭확장 & ADX하락 & RDI 고점 이탈
Plot1(999999,"눌림매도진입",Blue);
If S == 1 and CrossUp(RSIV,30) Then //밴드폭확장 & ADX하락 & RDI 저점 돌파
Plot2(999999,"눌림매수진입",Red);
즐거운 하루되세요
> 매버릭 님이 쓴 글입니다.
> 제목 : 수직선이 나타나지를 않습니다. 수정 좀 부탁드립니다.
> //============밴드폭지표=====================//
Inputs: Period(18), D(2), 밴드폭이평선(50),변동성최저(0.6);
Variables: BBTop(0,data2), BBMid(0,data2), BBBot(0,data2),BBwidth(0,data2),T(o),TL1(0),비중(0);
BBTop = data2(BollBandUp(Period,D));
BBMid = data2(ma(C,Period));
BBBot = data2(BollBandDown(Period,D));
BBWidth = ((BBTop - BBBot)/ BBMid)*100;
Var1 = data2(ma(BBwidth,밴드폭이평선));
//Var2 = Data2(ma(BBWidth,5));
Var3 = Var1[0] - Var1[1]; // 오늘의 기울기
Var4 = Var1[1] - Var1[2]; // 어제의 기울기
If BBWidth < 변동성최저 and BBWidth[0] < BBWidth[1] Then {
T = -1;
}
If BBWidth < 변동성최저 and BBWidth[0] > BBWidth[1] Then {
T = 1;
}
If CrossUp(BBWidth, 변동성최저) Then {
T = 2;
}
//============ADX지표=================//
input :Length(14);
var : ADXv(0,Data2),DP(0,Data2),DM(0,Data2);
ADXv = Data2(ADX(Length));
DP = Data2(DiPlus(Length));
DM = Data2(DiMinus(Period));
//====================================//
Input : RSIP(14), Period1(40),dv(2.5);
var : RSIV(0,Data2),Mid(0,Data2),BBup(0,Data2),BBdn(0,Data2),RSIVBB(0,Data2),Sigma(0,Data2),S(0);
RSIV = Data2(RSI(RSIP));
Mid = Data2(ma(RSIV,Period1));
BBup = Mid+STD(RSIV,Period1)*dv;
BBdn = Mid-STD(RSIV,Period1)*dv;
RSIVBB = (RSIv - BBdn)/(BBup - BBdn);
If (T == 1 or T==2 ) and ADXv[0] < ADXv[1] Then { //밴드폭이 확장 & ADX 하락
S = 1;
}
If (T == 1 or T==2) and ADXv[0] > ADXv[1] Then { ////밴드폭이 확장 & ADX 상승
S = -1;
}
If S == 1 and CrossDown(RSIV,0.7) Then //밴드폭확장 & ADX하락 & RDI 고점 이탈
Plot1(999999,"눌림매도진입",Blue);
If S == 1 and CrossUp(RSIV,0.3) Then //밴드폭확장 & ADX하락 & RDI 저점 돌파
Plot2(999999,"눌림매수진입",Red);