예스스탁
예스스탁 답변
2023-02-14 12:49:01
안녕하세요
예스스탁입니다.
input:leftright20(5), x(0.005) ;
Input:상승추세선색상(Black),하락추세선색상(brown);
var:j20(0),예비고20(0),예비저20(0),예비고bar20(0),예비저bar20(0),미완성20(0),미완성bar20(0),고점표시20(0),저점표시20(0),
예비고추세기울기20(0),예비저추세기울기20(0),예비고추세선20(0),예비저추세선20(0),
고추세기울기20(0),저추세기울기20(0),고추세선20(0),저추세선20(0);
array:고20[10](0),저20[10](0),고bar20[10](0),저bar20[10](0);
var:hh(0),ll(0);
hh = max(c,o); //,hh(0),ll(0);
ll = min(c,o); //cR변환용
#================================================#
# 변곡점 계산
#================================================#
if highest(hh[1],leftright20) <= hh then
{
예비고20 = hh;
예비고bar20 = 0;
}
else
예비고bar20 = 예비고bar20 + 1;
if lowest(ll[1],leftright20) >= ll then
{
예비저20 = ll;
예비저bar20 = 0;
}
else
예비저bar20 = 예비저bar20 + 1;
고점표시20 = (hh[leftright20] + ll[leftright20]) / 2;
저점표시20 = (hh[leftright20] + ll[leftright20]) / 2;
for j20 = 1 to 9
{
고bar20[j20] = 고bar20[j20] + 1;
저bar20[j20] = 저bar20[j20] + 1;
}
if 예비고bar20 == leftright20 and highest(hh,leftright20) <= hh[leftright20] then
{
for j20 = 9 downto 2
{
고20[j20] = 고20[j20-1];
고bar20[j20] = 고bar20[j20-1];
}
고점표시20 = 예비고20 + x;
고20[1] = 예비고20;
고bar20[1] = 예비고bar20;
if 저bar20[1] > 고bar20[2] then
{
for j20 = 9 downto 2
{
저20[j20] = 저20[j20-1];
저bar20[j20] = 저bar20[j20-1];
}
미완성20 = 0;
for j20 = 고bar20[1] + 1 to 고bar20[2] - 1
{
if 미완성20 == 0 or 미완성20 > ll[j20] then
{
미완성20 = ll[j20];
미완성bar20 = j20;
}
}
저20[1] = 미완성20;
저bar20[1] = 미완성bar20;
}
}
if 예비저bar20 == leftright20 and lowest(ll,leftright20) >= ll[leftright20] then
{
for j20 = 9 downto 2
{
저20[j20] = 저20[j20-1];
저bar20[j20] = 저bar20[j20-1];
}
저점표시20 = 예비저20 - x;
저20[1] = 예비저20;
저bar20[1] = 예비저bar20;
if 고bar20[1] > 저bar20[2] then
{
for j20 = 9 downto 2
{
고20[j20] = 고20[j20-1];
고bar20[j20] = 고bar20[j20-1];
}
미완성20 = 0;
for j20 = 저bar20[1] + 1 to 저bar20[2] - 1
{
if 미완성20 < hh[j20] then
{
미완성20 = hh[j20];
미완성bar20 = j20;
}
}
고20[1] = 미완성20;
고bar20[1] = 미완성bar20;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
예비고추세선20 = 0;
예비저추세선20 = 0;
for j20 = 1 to 9
{
if 예비고20 < 고20[j20] then
{
예비고추세기울기20 = (예비고20-고20[j20])/(고bar20[j20]-예비고bar20);
예비고추세선20 = 예비고추세기울기20 * 고bar20[j20] + 고20[j20];
j20 = 9;
}
}
for j20 = 1 to 9
{
if 저20[j20] < 예비저20 and 저20[j20] > 0 then
{
예비저추세기울기20 = (예비저20-저20[j20])/(저bar20[j20]-예비저bar20);
예비저추세선20 = 예비저추세기울기20 * 저bar20[j20] + 저20[j20];
j20 = 9;
}
}
고추세선20 = 0;
저추세선20 = 0;
for j20 = 2 to 9
{
if 고20[1] < 고20[j20] then
{
고추세기울기20 = (고20[1]-고20[j20])/(고bar20[j20]-고bar20[1]);
고추세선20 = 고추세기울기20 * 고bar20[j20] + 고20[j20];
j20 = 9;
}
}
for j20 = 2 to 9
{
if 저20[j20] < 저20[1] and 저20[j20] > 0 then
{
저추세기울기20 = (저20[1]-저20[j20])/(저bar20[j20]-저bar20[1]);
저추세선20 = 저추세기울기20 * 저bar20[j20] + 저20[j20];
j20 = 9;
}
}
#=====================================================#
# 지표출력
#=====================================================#
#if 예비고추세선20>0 then plot22(예비고추세선20,"예비하락추세선",하락추세선색상);
#if 예비저추세선20>0 then plot23(예비저추세선20,"예비상승추세선",상승추세선색상);
#if 고추세선20>0 then plot24(고추세선20,"하락추세선",하락추세선색상);
#if 저추세선20>0 then plot25(저추세선20,"상승추세선",상승추세선색상);
if 저추세선20 > 0 Then
{
if 저추세기울기20 != 저추세기울기20[1] Then
{
var1 = TL_New(sDate[leftright20],sTime[leftright20],예비저추세선20[leftright20],sDate,sTime,저추세선20);
TL_SetColor(var1,상승추세선색상);
}
Else
TL_SetEnd(var1,sDate,sTime,저추세선20);
}
if 고추세선20 > 0 Then
{
if 고추세기울기20 != 고추세기울기20[1] Then
{
var2 = TL_New(sDate[leftright20],sTime[leftright20],예비고추세선20[leftright20],sDate,sTime,고추세선20);
TL_SetColor(var2,하락추세선색상);
}
Else
TL_SetEnd(var2,sDate,sTime,고추세선20);
}
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> 수고 하십니다.
아래 지표식을 TL추세선으로 표시하고 싶습니다.
수고 하세요...
#########
input:leftright20(5), x(0.005) ;
Input:상승추세선색상(Black),하락추세선색상(brown);
var:j20(0),예비고20(0),예비저20(0),예비고bar20(0),예비저bar20(0),미완성20(0),미완성bar20(0),고점표시20(0),저점표시20(0),
예비고추세기울기20(0),예비저추세기울기20(0),예비고추세선20(0),예비저추세선20(0),
고추세기울기20(0),저추세기울기20(0),고추세선20(0),저추세선20(0);
array:고20[10](0),저20[10](0),고bar20[10](0),저bar20[10](0);
var:hh(0),ll(0);
hh = max(c,o); //,hh(0),ll(0);
ll = min(c,o); //cR변환용
#================================================#
# 변곡점 계산
#================================================#
if highest(hh[1],leftright20) <= hh then {
예비고20 = hh;
예비고bar20 = 0;
}
else
예비고bar20 = 예비고bar20 + 1;
if lowest(ll[1],leftright20) >= ll then {
예비저20 = ll;
예비저bar20 = 0;
}
else
예비저bar20 = 예비저bar20 + 1;
고점표시20 = (hh[leftright20] + ll[leftright20]) / 2;
저점표시20 = (hh[leftright20] + ll[leftright20]) / 2;
for j20 = 1 to 9 {
고bar20[j20] = 고bar20[j20] + 1;
저bar20[j20] = 저bar20[j20] + 1;
}
if 예비고bar20 == leftright20 and highest(hh,leftright20) <= hh[leftright20] then {
for j20 = 9 downto 2 {
고20[j20] = 고20[j20-1];
고bar20[j20] = 고bar20[j20-1];
}
고점표시20 = 예비고20 + x;
고20[1] = 예비고20;
고bar20[1] = 예비고bar20;
if 저bar20[1] > 고bar20[2] then {
for j20 = 9 downto 2 {
저20[j20] = 저20[j20-1];
저bar20[j20] = 저bar20[j20-1];
}
미완성20 = 0;
for j20 = 고bar20[1] + 1 to 고bar20[2] - 1 {
if 미완성20 == 0 or 미완성20 > ll[j20] then {
미완성20 = ll[j20];
미완성bar20 = j20;
}
}
저20[1] = 미완성20;
저bar20[1] = 미완성bar20;
}
}
if 예비저bar20 == leftright20 and lowest(ll,leftright20) >= ll[leftright20] then {
for j20 = 9 downto 2 {
저20[j20] = 저20[j20-1];
저bar20[j20] = 저bar20[j20-1];
}
저점표시20 = 예비저20 - x;
저20[1] = 예비저20;
저bar20[1] = 예비저bar20;
if 고bar20[1] > 저bar20[2] then {
for j20 = 9 downto 2 {
고20[j20] = 고20[j20-1];
고bar20[j20] = 고bar20[j20-1];
}
미완성20 = 0;
for j20 = 저bar20[1] + 1 to 저bar20[2] - 1 {
if 미완성20 < hh[j20] then {
미완성20 = hh[j20];
미완성bar20 = j20;
}
}
고20[1] = 미완성20;
고bar20[1] = 미완성bar20;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
예비고추세선20 = 0;
예비저추세선20 = 0;
for j20 = 1 to 9 {
if 예비고20 < 고20[j20] then {
예비고추세기울기20 = (예비고20-고20[j20])/(고bar20[j20]-예비고bar20);
예비고추세선20 = 예비고추세기울기20 * 고bar20[j20] + 고20[j20];
j20 = 9;
}
}
for j20 = 1 to 9 {
if 저20[j20] < 예비저20 and 저20[j20] > 0 then {
예비저추세기울기20 = (예비저20-저20[j20])/(저bar20[j20]-예비저bar20);
예비저추세선20 = 예비저추세기울기20 * 저bar20[j20] + 저20[j20];
j20 = 9;
}
}
고추세선20 = 0;
저추세선20 = 0;
for j20 = 2 to 9 {
if 고20[1] < 고20[j20] then {
고추세기울기20 = (고20[1]-고20[j20])/(고bar20[j20]-고bar20[1]);
고추세선20 = 고추세기울기20 * 고bar20[j20] + 고20[j20];
j20 = 9;
}
}
for j20 = 2 to 9 {
if 저20[j20] < 저20[1] and 저20[j20] > 0 then {
저추세기울기20 = (저20[1]-저20[j20])/(저bar20[j20]-저bar20[1]);
저추세선20 = 저추세기울기20 * 저bar20[j20] + 저20[j20];
j20 = 9;
}
}
#=====================================================#
# 지표출력
#=====================================================#
if 예비고추세선20>0 then plot22(예비고추세선20,"예비하락추세선",하락추세선색상);
if 예비저추세선20>0 then plot23(예비저추세선20,"예비상승추세선",상승추세선색상);
if 고추세선20>0 then
plot24(고추세선20,"하락추세선",하락추세선색상);
if 저추세선20>0 then
plot25(저추세선20,"상승추세선",상승추세선색상);