커뮤니티
타주기식 부탁드립니다.
2016-05-31 17:29:42
226
글번호 98662
아래식은 38697 질의에 답변해주셨던 내용인데요
타주기 식을 만들어 보려하니 잘 안되어 부탁드립니다.
감사합니다.
INPUTS:
TICKCHG(10), #{Change (number of ticks) required to set up a new swing high/low.}
PCTCHG(.2), #{Percent change in price to set up a new swing high/low}
OCCUR(1),
PLOTBARS(40),
ETALINE(true),
ZIGZAG(TRUE);
ARRAY:
PBAR[50](0),
P[50](0);
VARS:
X(0),
PP(1),
JA_SLOPE1(0),
JLA_CTR(0),
JLA_LINE(0),
JAIRHBAR(0), #{ LAST SWING HIGH BAR}
JAIRLBAR(0), #{LAST SWING LOW BAR}
LOWSEEK(FALSE), #{LOOKING FOR A LOW OR A HIGH?}
W(0), #{COUNTER}
JLA_IRH(0), #{LAST SWING HIGH VALUE}
JLA_IRL(99999), #{LAST SWING LOW VALUE}
JA_SLOPE2(0),
JA_SLOPE3(0),
JLA_PT1(0),
WOLFE(0);
#{==================MAIN
#PROGRAM=========================}
IF CURRENTBAR == 1 THEN P[50] = C;
IF LOWSEEK == FALSE AND P[50] <= H THEN
BEGIN
P[50] = H;
PBAR[50] = 0;
END;
IF LOWSEEK == TRUE AND P[50] >= L THEN
BEGIN
P[50] = L;
PBAR[50] = 0;
END;
IF (LOWSEEK == FALSE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG == 0
AND L < P[50] * ( 1 - PCTCHG / 100) )
OR (TICKCHG <> 0
AND L < ( P[50] - tickchg * PriceScale)) THEN
BEGIN
IF ZIGZAG == TRUE THEN
PLOT4(P[50],"SWINGS");
LOWSEEK = TRUE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = L;
PBAR[50] = 0;
END;
END;
IF (LOWSEEK == TRUE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG == 0
AND H> P[50] * ( 1 + PCTCHG / 100))
OR (TICKCHG <> 0
AND H > (P[50] + tickchg * PriceScale )) THEN
BEGIN
IF ZIGZAG == TRUE THEN
PLOT4(P[50],"SWINGS");
LOWSEEK = FALSE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = H;
PBAR[50] = 0;
END;
END;
IF P[48 - PP] <> 0 THEN
BEGIN
PP = -1;
WOLFE = 0;
WHILE WOLFE < OCCUR AND PP < 46
BEGIN
PP = PP + 1;
VALUE1 = P[47-PP];
VALUE2 = P[48-PP];
VALUE3 = P[49-PP];
VALUE4 = P[50-PP];
CONDITION1 =
VALUE2 > VALUE1
AND VALUE4 > VALUE3
AND VALUE4 < VALUE2
AND VALUE3 < VALUE1
AND VALUE4 > VALUE1;
CONDITION2 =
VALUE2 < VALUE1
AND VALUE4 < VALUE3
AND VALUE4 > VALUE2
AND VALUE3 > VALUE1
AND VALUE4 < VALUE1;
IF CONDITION1 OR CONDITION2 THEN
WOLFE = WOLFE + 1;
END;
JA_SLOPE1 = (P[49-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[49-PP]);
JA_SLOPE2 = (P[50-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[50-PP]);
#{LINE 1-3}
if PBAR[47-PP] >=0 and PBAR[49-PP] >= 0 and PBAR[49-PP]-PLOTBARS >=0 then
begin
TL_Delete(value90);
VALUE90 = TL_New(sDATE[PBAR[47-PP]],sTIME[PBAR[47-PP]],P[47-PP ],
sDATE[PBAR[49-PP]], sTIME[PBAR[49-PP]],P[49-PP]);
Value14=TL_SetColor(VALUE90, red);
#{VALUE93 = TL_SetExtRight(VALUE90,TRUE);}
VALUE94 =
TL_SETEND(VALUE90,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS],
TL_GetVALUE(VALUE90,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS])); //
end ;
#{LINE 1-4}
if PBAR[47-PP] >= 0 and PBAR[50-PP] >= 0 and PBAR[49-PP]-PLOTBARS >= 0 then
begin
TL_Delete(value91);
VALUE91 = TL_NEW(sDATE[PBAR[47-PP]],sTIME[PBAR[47-PP]],P[47-PP ],
sDATE[PBAR[50-PP]], sTIME[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE91, green);
TL_SETEND(VALUE91,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS],
TL_GETVALUE(VALUE91,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS]));
end ;
if PBAR[48-PP] >=0 and PBAR[50-PP]-PLOTBARS >= 0 then
begin
#{ETA LINE}
IF ETALINE THEN
BEGIN
TL_Delete(value92);
VALUE92 = TL_NEW(sDate[PBAR[48-PP]],sTime[PBAR[48-PP]],P[48-PP ],
sDate[PBAR[50-PP]],sTime[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE92, blue);
TL_SETEND(VALUE92,sDate[PBAR[50-PP]-PLOTBARS],sTime[PBAR[50-PP]-PLOTBARS],
TL_GETVALUE(VALUE92,sDate[PBAR[50-PP]-PLOTBARS],sTime[PBAR[50-PP] -PLOTBARS]));
END;
end;
END;
IF LastBarOnChart == 1
AND ZIGZAG == TRUE THEN
BEGIN
JA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]);
FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGIN
PLOT4(P[49] + (PBAR[49] - JLA_CTR) *
JA_SLOPE3,"Swings");
END;
END;
FOR W = 1 TO 50
BEGIN
PBAR[W] = PBAR[W]+1;
END;
답변 1
예스스탁 예스스탁 답변
2016-06-01 14:58:50
안녕하세요
예스스탁입니다.
문의하신 내용 가능하지 않습니다.
해당 수식은 추세선함수를 이용해서만 가능한 내용인데
추세선 함수가 참조데이터에는 적용이 되지 않아
변환이 가능하지 않습니다.
즐거운 하루되세요
> 예시스 님이 쓴 글입니다.
> 제목 : 타주기식 부탁드립니다.
> 아래식은 38697 질의에 답변해주셨던 내용인데요
타주기 식을 만들어 보려하니 잘 안되어 부탁드립니다.
감사합니다.
INPUTS:
TICKCHG(10), #{Change (number of ticks) required to set up a new swing high/low.}
PCTCHG(.2), #{Percent change in price to set up a new swing high/low}
OCCUR(1),
PLOTBARS(40),
ETALINE(true),
ZIGZAG(TRUE);
ARRAY:
PBAR[50](0),
P[50](0);
VARS:
X(0),
PP(1),
JA_SLOPE1(0),
JLA_CTR(0),
JLA_LINE(0),
JAIRHBAR(0), #{ LAST SWING HIGH BAR}
JAIRLBAR(0), #{LAST SWING LOW BAR}
LOWSEEK(FALSE), #{LOOKING FOR A LOW OR A HIGH?}
W(0), #{COUNTER}
JLA_IRH(0), #{LAST SWING HIGH VALUE}
JLA_IRL(99999), #{LAST SWING LOW VALUE}
JA_SLOPE2(0),
JA_SLOPE3(0),
JLA_PT1(0),
WOLFE(0);
#{==================MAIN
#PROGRAM=========================}
IF CURRENTBAR == 1 THEN P[50] = C;
IF LOWSEEK == FALSE AND P[50] <= H THEN
BEGIN
P[50] = H;
PBAR[50] = 0;
END;
IF LOWSEEK == TRUE AND P[50] >= L THEN
BEGIN
P[50] = L;
PBAR[50] = 0;
END;
IF (LOWSEEK == FALSE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG == 0
AND L < P[50] * ( 1 - PCTCHG / 100) )
OR (TICKCHG <> 0
AND L < ( P[50] - tickchg * PriceScale)) THEN
BEGIN
IF ZIGZAG == TRUE THEN
PLOT4(P[50],"SWINGS");
LOWSEEK = TRUE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = L;
PBAR[50] = 0;
END;
END;
IF (LOWSEEK == TRUE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG == 0
AND H> P[50] * ( 1 + PCTCHG / 100))
OR (TICKCHG <> 0
AND H > (P[50] + tickchg * PriceScale )) THEN
BEGIN
IF ZIGZAG == TRUE THEN
PLOT4(P[50],"SWINGS");
LOWSEEK = FALSE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = H;
PBAR[50] = 0;
END;
END;
IF P[48 - PP] <> 0 THEN
BEGIN
PP = -1;
WOLFE = 0;
WHILE WOLFE < OCCUR AND PP < 46
BEGIN
PP = PP + 1;
VALUE1 = P[47-PP];
VALUE2 = P[48-PP];
VALUE3 = P[49-PP];
VALUE4 = P[50-PP];
CONDITION1 =
VALUE2 > VALUE1
AND VALUE4 > VALUE3
AND VALUE4 < VALUE2
AND VALUE3 < VALUE1
AND VALUE4 > VALUE1;
CONDITION2 =
VALUE2 < VALUE1
AND VALUE4 < VALUE3
AND VALUE4 > VALUE2
AND VALUE3 > VALUE1
AND VALUE4 < VALUE1;
IF CONDITION1 OR CONDITION2 THEN
WOLFE = WOLFE + 1;
END;
JA_SLOPE1 = (P[49-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[49-PP]);
JA_SLOPE2 = (P[50-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[50-PP]);
#{LINE 1-3}
if PBAR[47-PP] >=0 and PBAR[49-PP] >= 0 and PBAR[49-PP]-PLOTBARS >=0 then
begin
TL_Delete(value90);
VALUE90 = TL_New(sDATE[PBAR[47-PP]],sTIME[PBAR[47-PP]],P[47-PP ],
sDATE[PBAR[49-PP]], sTIME[PBAR[49-PP]],P[49-PP]);
Value14=TL_SetColor(VALUE90, red);
#{VALUE93 = TL_SetExtRight(VALUE90,TRUE);}
VALUE94 =
TL_SETEND(VALUE90,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS],
TL_GetVALUE(VALUE90,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS])); //
end ;
#{LINE 1-4}
if PBAR[47-PP] >= 0 and PBAR[50-PP] >= 0 and PBAR[49-PP]-PLOTBARS >= 0 then
begin
TL_Delete(value91);
VALUE91 = TL_NEW(sDATE[PBAR[47-PP]],sTIME[PBAR[47-PP]],P[47-PP ],
sDATE[PBAR[50-PP]], sTIME[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE91, green);
TL_SETEND(VALUE91,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS],
TL_GETVALUE(VALUE91,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS]));
end ;
if PBAR[48-PP] >=0 and PBAR[50-PP]-PLOTBARS >= 0 then
begin
#{ETA LINE}
IF ETALINE THEN
BEGIN
TL_Delete(value92);
VALUE92 = TL_NEW(sDate[PBAR[48-PP]],sTime[PBAR[48-PP]],P[48-PP ],
sDate[PBAR[50-PP]],sTime[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE92, blue);
TL_SETEND(VALUE92,sDate[PBAR[50-PP]-PLOTBARS],sTime[PBAR[50-PP]-PLOTBARS],
TL_GETVALUE(VALUE92,sDate[PBAR[50-PP]-PLOTBARS],sTime[PBAR[50-PP] -PLOTBARS]));
END;
end;
END;
IF LastBarOnChart == 1
AND ZIGZAG == TRUE THEN
BEGIN
JA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]);
FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGIN
PLOT4(P[49] + (PBAR[49] - JLA_CTR) *
JA_SLOPE3,"Swings");
END;
END;
FOR W = 1 TO 50
BEGIN
PBAR[W] = PBAR[W]+1;
END;