커뮤니티

rsx

프로필 이미지
고성
2026-09-21 18:04:43
42
글번호 233705
답변완료

1. 지표

        plot1의 색상을, 상승은 적색, 하락은 청색으로 변경.

                       곡선형을 계단형으로 변경. (스텝라인)

2. 시스템

       30 이하에서 상승전환하면 매수, 다음봉에 매수청산. (30 이하에서 여러번 매수도 가능)

       70 이상에서 하락전환하면 매도, 다음봉에 매도청산.      감사합니다.


input : length(10),obLevel(70),osLevel(30);

input : highlightBreakouts(true);

var : src(0),f8(0),f10(0),v8(0),f18(0),f20(0),f28(0),f30(0);

var : vc(0),f38(0),f40(0),v10(0),f48(0),f50(0),v14(0),f58(0);

var : f60(0),v18(0),f68(0),f70(0),v1c(0),f78(0),f80(0),v20(0);

var : f88(0),f88_(0),f90_(0),f0(0),f90(0),v4_(0),rsx(0),rsxColor(0);

src = (h+l+c)/3;


f8 = 100 * src;

f10 = IFF(IsNan(f8[1])==true,0,f8[1]);

v8 = f8 - f10;

f18 = 3 / (length + 2);

f20 = 1 - f18;

f28 = 0.0;

f28 = f20 * IFF(IsNan(f28[1])==true,0,f28[1]) + f18 * v8;

f30 = 0.0;

f30 = f18 * f28 + f20 * IFF(IsNan(f30[1])==true,0,f30[1]);

vC = f28 * 1.5 - f30 * 0.5;

f38 = 0.0;

f38 = f20 * IFF(IsNan(f38[1])==true,0,f38[1]) + f18 * vC;

f40 = 0.0;

f40 = f18 * f38 + f20 * IFF(IsNan(f40[1])==true,0,f40[1]);

v10 = f38 * 1.5 - f40 * 0.5;

f48 = 0.0;

f48 = f20 * IFF(IsNan(f48[1])==true,0,f48[1]) + f18 * v10;

f50 = 0.0;

f50 = f18 * f48 + f20 * IFF(IsNan(f50[1])==true,0,f50[1]);

v14 = f48 * 1.5 - f50 * 0.5;

f58 = 0.0;

f58 = f20 * IFF(IsNan(f58[1])==true,0,f58[1]) + f18 * abs(v8);

f60 = 0.0;

f60 = f18 * f58 + f20 * IFF(IsNan(f60[1])==true,0,f60[1]);

v18 = f58 * 1.5 - f60 * 0.5;

f68 = 0.0;

f68 = f20 * IFF(IsNan(f68[1])==true,0,f68[1]) + f18 * v18;

f70 = 0.0;

f70 = f18 * f68 + f20 * IFF(IsNan(f70[1])==true,0,f70[1]);

v1C = f68 * 1.5 - f70 * 0.5;

f78 = 0.0;

f78 = f20 * IFF(IsNan(f78[1])==true,0,f78[1]) + f18 * v1C;

f80 = 0.0;

f80 = f18 * f78 + f20 * IFF(IsNan(f80[1])==true,0,f80[1]);

v20 = f78 * 1.5 - f80 * 0.5;

f88_ = 0.0;

f90_ = 0.0;

f88 = 0.0;

f90_ = IFF( IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 , 1 ,

   IFF( IFF(IsNan(f88[1])==true,0,f88[1]) <= IFF(IsNan(f90_[1])==true,0,f90_[1]) ,

IFF(IsNan(f88[1])==true,0,f88[1]) + 1 , IFF(IsNan(f90_[1])==true,0,f90_[1]) + 1));

f88 = IFF(IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 and (length - 1 >= 5) , length - 1 , 5);

f0 = IFF(f88 >= f90_ and f8 != f10 , 1 , 0);

f90 = IFF(f88 == f90_ and f0 == 0 , 0 , f90_);

v4_ = IFF(f88 < f90 and v20 > 0 , (v14 / v20 + 1) * 50 , 50);

rsx = IFF(v4_ > 100 , 100 , IFF(v4_ < 0 , 0 , v4_));


rsxColor = iff(rsx > obLevel , Green , iff(rsx < osLevel , Red , Orange));

plot1(rsx, "RSX",rsxColor);

PlotBaseLine1(100, "Max Level",Gray);

PlotBaseLine2(obLevel, "Overbought Level",Gray);

PlotBaseLine3(osLevel, "Oversold Level",Gray);

PlotBaseLine4(0, "Min Level",Gray);



지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2026-09-22 13:12:23

안녕하세요 예스스탁입니다. 1 곡선형을 계단형으로 표시는 내용을 알수 없습니다. input : length(10),obLevel(70),osLevel(30); input : highlightBreakouts(true); var : src(0),f8(0),f10(0),v8(0),f18(0),f20(0),f28(0),f30(0); var : vc(0),f38(0),f40(0),v10(0),f48(0),f50(0),v14(0),f58(0); var : f60(0),v18(0),f68(0),f70(0),v1c(0),f78(0),f80(0),v20(0); var : f88(0),f88_(0),f90_(0),f0(0),f90(0),v4_(0),rsx(0),rsxColor(0); src = (h+l+c)/3; f8 = 100 * src; f10 = IFF(IsNan(f8[1])==true,0,f8[1]); v8 = f8 - f10; f18 = 3 / (length + 2); f20 = 1 - f18; f28 = 0.0; f28 = f20 * IFF(IsNan(f28[1])==true,0,f28[1]) + f18 * v8; f30 = 0.0; f30 = f18 * f28 + f20 * IFF(IsNan(f30[1])==true,0,f30[1]); vC = f28 * 1.5 - f30 * 0.5; f38 = 0.0; f38 = f20 * IFF(IsNan(f38[1])==true,0,f38[1]) + f18 * vC; f40 = 0.0; f40 = f18 * f38 + f20 * IFF(IsNan(f40[1])==true,0,f40[1]); v10 = f38 * 1.5 - f40 * 0.5; f48 = 0.0; f48 = f20 * IFF(IsNan(f48[1])==true,0,f48[1]) + f18 * v10; f50 = 0.0; f50 = f18 * f48 + f20 * IFF(IsNan(f50[1])==true,0,f50[1]); v14 = f48 * 1.5 - f50 * 0.5; f58 = 0.0; f58 = f20 * IFF(IsNan(f58[1])==true,0,f58[1]) + f18 * abs(v8); f60 = 0.0; f60 = f18 * f58 + f20 * IFF(IsNan(f60[1])==true,0,f60[1]); v18 = f58 * 1.5 - f60 * 0.5; f68 = 0.0; f68 = f20 * IFF(IsNan(f68[1])==true,0,f68[1]) + f18 * v18; f70 = 0.0; f70 = f18 * f68 + f20 * IFF(IsNan(f70[1])==true,0,f70[1]); v1C = f68 * 1.5 - f70 * 0.5; f78 = 0.0; f78 = f20 * IFF(IsNan(f78[1])==true,0,f78[1]) + f18 * v1C; f80 = 0.0; f80 = f18 * f78 + f20 * IFF(IsNan(f80[1])==true,0,f80[1]); v20 = f78 * 1.5 - f80 * 0.5; f88_ = 0.0; f90_ = 0.0; f88 = 0.0; f90_ = IFF( IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 , 1 , IFF( IFF(IsNan(f88[1])==true,0,f88[1]) <= IFF(IsNan(f90_[1])==true,0,f90_[1]) , IFF(IsNan(f88[1])==true,0,f88[1]) + 1 , IFF(IsNan(f90_[1])==true,0,f90_[1]) + 1)); f88 = IFF(IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 and (length - 1 >= 5) , length - 1 , 5); f0 = IFF(f88 >= f90_ and f8 != f10 , 1 , 0); f90 = IFF(f88 == f90_ and f0 == 0 , 0 , f90_); v4_ = IFF(f88 < f90 and v20 > 0 , (v14 / v20 + 1) * 50 , 50); rsx = IFF(v4_ > 100 , 100 , IFF(v4_ < 0 , 0 , v4_)); rsxColor = iff(rsx > obLevel , Green , iff(rsx < osLevel , Red , Orange)); plot1(rsx, "RSX",IFf(rsx>rsx[1],Red,Blue)); PlotBaseLine1(100, "Max Level",Gray); PlotBaseLine2(obLevel, "Overbought Level",Gray); PlotBaseLine3(osLevel, "Oversold Level",Gray); PlotBaseLine4(0, "Min Level",Gray); 2 input : length(10),obLevel(70),osLevel(30); input : highlightBreakouts(true); var : src(0),f8(0),f10(0),v8(0),f18(0),f20(0),f28(0),f30(0); var : vc(0),f38(0),f40(0),v10(0),f48(0),f50(0),v14(0),f58(0); var : f60(0),v18(0),f68(0),f70(0),v1c(0),f78(0),f80(0),v20(0); var : f88(0),f88_(0),f90_(0),f0(0),f90(0),v4_(0),rsx(0),rsxColor(0); var : t(0); src = (h+l+c)/3; f8 = 100 * src; f10 = IFF(IsNan(f8[1])==true,0,f8[1]); v8 = f8 - f10; f18 = 3 / (length + 2); f20 = 1 - f18; f28 = 0.0; f28 = f20 * IFF(IsNan(f28[1])==true,0,f28[1]) + f18 * v8; f30 = 0.0; f30 = f18 * f28 + f20 * IFF(IsNan(f30[1])==true,0,f30[1]); vC = f28 * 1.5 - f30 * 0.5; f38 = 0.0; f38 = f20 * IFF(IsNan(f38[1])==true,0,f38[1]) + f18 * vC; f40 = 0.0; f40 = f18 * f38 + f20 * IFF(IsNan(f40[1])==true,0,f40[1]); v10 = f38 * 1.5 - f40 * 0.5; f48 = 0.0; f48 = f20 * IFF(IsNan(f48[1])==true,0,f48[1]) + f18 * v10; f50 = 0.0; f50 = f18 * f48 + f20 * IFF(IsNan(f50[1])==true,0,f50[1]); v14 = f48 * 1.5 - f50 * 0.5; f58 = 0.0; f58 = f20 * IFF(IsNan(f58[1])==true,0,f58[1]) + f18 * abs(v8); f60 = 0.0; f60 = f18 * f58 + f20 * IFF(IsNan(f60[1])==true,0,f60[1]); v18 = f58 * 1.5 - f60 * 0.5; f68 = 0.0; f68 = f20 * IFF(IsNan(f68[1])==true,0,f68[1]) + f18 * v18; f70 = 0.0; f70 = f18 * f68 + f20 * IFF(IsNan(f70[1])==true,0,f70[1]); v1C = f68 * 1.5 - f70 * 0.5; f78 = 0.0; f78 = f20 * IFF(IsNan(f78[1])==true,0,f78[1]) + f18 * v1C; f80 = 0.0; f80 = f18 * f78 + f20 * IFF(IsNan(f80[1])==true,0,f80[1]); v20 = f78 * 1.5 - f80 * 0.5; f88_ = 0.0; f90_ = 0.0; f88 = 0.0; f90_ = IFF( IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 , 1 , IFF( IFF(IsNan(f88[1])==true,0,f88[1]) <= IFF(IsNan(f90_[1])==true,0,f90_[1]) , IFF(IsNan(f88[1])==true,0,f88[1]) + 1 , IFF(IsNan(f90_[1])==true,0,f90_[1]) + 1)); f88 = IFF(IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 and (length - 1 >= 5) , length - 1 , 5); f0 = IFF(f88 >= f90_ and f8 != f10 , 1 , 0); f90 = IFF(f88 == f90_ and f0 == 0 , 0 , f90_); v4_ = IFF(f88 < f90 and v20 > 0 , (v14 / v20 + 1) * 50 , 50); rsx = IFF(v4_ > 100 , 100 , IFF(v4_ < 0 , 0 , v4_)); if rsx > rsx[1] Then t = 1; if rsx < rsx[1] Then t = -1; if t == 1 and t != t[1] and rsx <= 30 Then Buy("b"); if MarketPosition == 1 and BarsSinceEntry == 1 Then ExitLong("bx"); if t == -1 and t != t[1] and rsx >= 70 Then Sell("s"); if MarketPosition == -1 and BarsSinceEntry == 1 Then ExitShort("sx"); 즐거운 하루되세요
프로필 이미지

고성

2026-09-22 14:04:05

시스템에서, 상승전환시 rsx 선의 하단이 30 이하일 때는 매수여야되는데,
상승전환시 하단은 30 이하여도 종가가 30을 넘어서면 신호가 안나옵니다.
선물 1분봉에 length 를 7로 설정했습니다.
프로필 이미지

예스스탁 예스스탁 답변

2026-09-22 16:39:46

안녕하세요 예스스탁입니다. 전환시 현재봉이 아닌 전봉기준으로 수정해 드립니다. input : length(10),obLevel(70),osLevel(30); input : highlightBreakouts(true); var : src(0),f8(0),f10(0),v8(0),f18(0),f20(0),f28(0),f30(0); var : vc(0),f38(0),f40(0),v10(0),f48(0),f50(0),v14(0),f58(0); var : f60(0),v18(0),f68(0),f70(0),v1c(0),f78(0),f80(0),v20(0); var : f88(0),f88_(0),f90_(0),f0(0),f90(0),v4_(0),rsx(0),rsxColor(0); var : t(0); src = (h+l+c)/3; f8 = 100 * src; f10 = IFF(IsNan(f8[1])==true,0,f8[1]); v8 = f8 - f10; f18 = 3 / (length + 2); f20 = 1 - f18; f28 = 0.0; f28 = f20 * IFF(IsNan(f28[1])==true,0,f28[1]) + f18 * v8; f30 = 0.0; f30 = f18 * f28 + f20 * IFF(IsNan(f30[1])==true,0,f30[1]); vC = f28 * 1.5 - f30 * 0.5; f38 = 0.0; f38 = f20 * IFF(IsNan(f38[1])==true,0,f38[1]) + f18 * vC; f40 = 0.0; f40 = f18 * f38 + f20 * IFF(IsNan(f40[1])==true,0,f40[1]); v10 = f38 * 1.5 - f40 * 0.5; f48 = 0.0; f48 = f20 * IFF(IsNan(f48[1])==true,0,f48[1]) + f18 * v10; f50 = 0.0; f50 = f18 * f48 + f20 * IFF(IsNan(f50[1])==true,0,f50[1]); v14 = f48 * 1.5 - f50 * 0.5; f58 = 0.0; f58 = f20 * IFF(IsNan(f58[1])==true,0,f58[1]) + f18 * abs(v8); f60 = 0.0; f60 = f18 * f58 + f20 * IFF(IsNan(f60[1])==true,0,f60[1]); v18 = f58 * 1.5 - f60 * 0.5; f68 = 0.0; f68 = f20 * IFF(IsNan(f68[1])==true,0,f68[1]) + f18 * v18; f70 = 0.0; f70 = f18 * f68 + f20 * IFF(IsNan(f70[1])==true,0,f70[1]); v1C = f68 * 1.5 - f70 * 0.5; f78 = 0.0; f78 = f20 * IFF(IsNan(f78[1])==true,0,f78[1]) + f18 * v1C; f80 = 0.0; f80 = f18 * f78 + f20 * IFF(IsNan(f80[1])==true,0,f80[1]); v20 = f78 * 1.5 - f80 * 0.5; f88_ = 0.0; f90_ = 0.0; f88 = 0.0; f90_ = IFF( IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 , 1 , IFF( IFF(IsNan(f88[1])==true,0,f88[1]) <= IFF(IsNan(f90_[1])==true,0,f90_[1]) , IFF(IsNan(f88[1])==true,0,f88[1]) + 1 , IFF(IsNan(f90_[1])==true,0,f90_[1]) + 1)); f88 = IFF(IFF(IsNan(f90_[1])==true,0,f90_[1]) == 0 and (length - 1 >= 5) , length - 1 , 5); f0 = IFF(f88 >= f90_ and f8 != f10 , 1 , 0); f90 = IFF(f88 == f90_ and f0 == 0 , 0 , f90_); v4_ = IFF(f88 < f90 and v20 > 0 , (v14 / v20 + 1) * 50 , 50); rsx = IFF(v4_ > 100 , 100 , IFF(v4_ < 0 , 0 , v4_)); if rsx > rsx[1] Then t = 1; if rsx < rsx[1] Then t = -1; if t == 1 and t != t[1] and rsx[1] <= 30 Then Buy("b"); if MarketPosition == 1 and BarsSinceEntry == 1 Then ExitLong("bx"); if t == -1 and t != t[1] and rsx[1] >= 70 Then Sell("s"); if MarketPosition == -1 and BarsSinceEntry == 1 Then ExitShort("sx"); 즐거운 하루되세요