커뮤니티
문의드립니다
2018-12-29 18:05:04
233
글번호 124845
Input : length(12),추세선굵기(2);#굵기(0~6사이의 정수)
input : 고저점값표시(1);#1이면 표시, 0이면 표시안함
input : 피보값표시(1);#1이면 표시, 0이면 표시안함
Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),T(0);
var : tx(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0),tx7(0);
Array:valArr[20](0),barArr[20](0),turnPntArr[20](""),r[10](0);
// 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가
For j = 0 To 19 {
barArr[j] = barArr[j] + 1;
}
// 고점조건 = 현재 봉의 고가가 기간최고가이면서 최고가 갱신되었을 때;
// 저점조건 = 현재 봉의 저가가 기간최저가이면서 최저가 갱신되었을 때;
// 고점,저점조건 만족시 현재 봉의 고[저]가를 변수에 저장
Condition1 = Highest(H,length) == H and lastHiVal <> H;
Condition2 = Lowest(L,length) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
// 전환점구분 null값으로 초기화;
// if 고점조건, 저점조건 동시 만족시 {
// if 전환점배열의 현재(배열상 1번째)값이 고점이면 전환점구분 = 저점;
// else if 전환점배열의 현재 값이 저점이면 전환점구분 = 고점;
// else if 고점조건 만족하면 전환점구분 = 고점;
// else if 저점조건 만족하면 전환점구분 = 저점;
turnPntBit = "";
If Condition1 and Condition2 Then {
If turnPntArr[1] == "Hi" Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Lo" Then turnPntBit = "Hi";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과
// if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then
// 배열값들을 이전값으로 Move;
If turnPntBit == "Hi" or turnPntBit == "Lo" Then
{
If turnPntBit <> turnPntArr[1] Then
{
for j = 18 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
// if 전환점구분이 바뀌었거나 또는
// (전환점구분은 안바뀌었는데
// (이전 고점보다 높은 고점이 발생했거나 또는
// 이전 저점보다 낮은 저점이 발생했으면)) then
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
// 값 배열에는 고점 또는 저점을 대입;
// 봉개수 배열에는 0값 대입;
// 전환점 배열에 전환점구분값을 대입;
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
// if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고;
// else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
if turnPntArr[1][0] == "Hi" Then
{
T = 1;
}
if turnPntArr[1][0] == "Lo" Then
{
T = -1;
}
if 고저점값표시 == 1 and T != T[1] Then
{
tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
if t == 1 then
{
Text_SetStyle(tx,2,0);
Text_SetColor(tx,BLACK);
}
Else
{
Text_SetStyle(tx,2,1);
Text_SetColor(tx,BLACK);
}
}
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,추세선굵기);
TL_SetColor(TL1,iff(t== 1,GRAY,GRAY));
var : TTL1(0),TTL2(0),TTL3(0),TTL4(0),TTL5(0),TTL6(0),TTL7(0);
if T == -1 then
{
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
var1 = valArr[1]+(valArr[2]-valArr[1])*R[0];
var2 = valArr[1]+(valArr[2]-valArr[1])*R[1];
var3 = valArr[1]+(valArr[2]-valArr[1])*R[2];
var4 = valArr[1]+(valArr[2]-valArr[1])*R[3];
var5 = valArr[1]+(valArr[2]-valArr[1])*R[4];
var6 = valArr[1]+(valArr[2]-valArr[1])*R[5];
var7 = valArr[1]+(valArr[2]-valArr[1])*R[6];
TL_Delete(TTL1);
TL_Delete(TTL2);
TL_Delete(TTL3);
TL_Delete(TTL4);
TL_Delete(TTL5);
TL_Delete(TTL6);
TL_Delete(TTL7);
TTL1 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[0],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[0]);
TTL2 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[1],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[1]);
TTL3 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[2],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[2]);
TTL4 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[3],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[3]);
TTL5 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[4],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[4]);
TTL6 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[5],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[5]);
TTL7 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[6],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[6]);
TL_SetExtRight(TTL1,true);
TL_SetExtRight(TTL2,true);
TL_SetExtRight(TTL3,true);
TL_SetExtRight(TTL4,true);
TL_SetExtRight(TTL5,true);
TL_SetExtRight(TTL6,true);
TL_SetExtRight(TTL7,true);
TL_SetExtRight(TTL7,true);
TL_SetColor(TTL1,GRAY);
TL_SetColor(TTL2,MAGENTA);
TL_SetColor(TTL3,MAGENTA);
TL_SetColor(TTL4,BLACK);
TL_SetColor(TTL5,MAGENTA);
TL_SetColor(TTL6,MAGENTA);
TL_SetColor(TTL7,GRAY);
if 피보값표시 == 1 then
{
}
}
#--하락적용---
if T == 1 Then
{
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
var1 = valArr[1]-(valArr[1]-valArr[2])*R[0];
var2 = valArr[1]-(valArr[1]-valArr[2])*R[1];
var3 = valArr[1]-(valArr[1]-valArr[2])*R[2];
var4 = valArr[1]-(valArr[1]-valArr[2])*R[3];
var5 = valArr[1]-(valArr[1]-valArr[2])*R[4];
var6 = valArr[1]-(valArr[1]-valArr[2])*R[5];
var7 = valArr[1]-(valArr[1]-valArr[2])*R[6];
TL_Delete(TTL1);
TL_Delete(TTL2);
TL_Delete(TTL3);
TL_Delete(TTL4);
TL_Delete(TTL5);
TL_Delete(TTL6);
TL_Delete(TTL7);
TTL1 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var1,sdate,stime,var1);
TTL2 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var2,sdate,stime,var2);
TTL3 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var3,sdate,stime,var3);
TTL4 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var4,sdate,stime,var4);
TTL5 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var5,sdate,stime,var5);
TTL6 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var6,sdate,stime,var6);
TTL7 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var7,sdate,stime,var7);
TL_SetExtRight(TTL1,true);
TL_SetExtRight(TTL2,true);
TL_SetExtRight(TTL3,true);
TL_SetExtRight(TTL4,true);
TL_SetExtRight(TTL5,true);
TL_SetExtRight(TTL6,true);
TL_SetExtRight(TTL7,true);
if 피보값표시 == 1 then
{
TL_SetColor(TTL1,GRAY);
TL_SetColor(TTL2,BLUE);
TL_SetColor(TTL3,BLUE);
TL_SetColor(TTL4,BLACK);
TL_SetColor(TTL5,BLUE);
TL_SetColor(TTL6,BLUE);
TL_SetColor(TTL7,GRAY);
}
}
위수식에서 약간변경하고십습니다 ,지그재그선이 상승점을찍고 피보나치선이 나오는데 76.4%하락돌파시 레드색수평선 하나만 나오게(돌파하지않았을떄는나오지않게,돌파시만수평선유지) 반대로 지그재그선이 하락점을찍고 23.6%상승시블루색수평선 하나만나오게 수정부탁드립니다~~미리감사드립니다
답변 1
예스스탁 예스스탁 답변
2019-01-02 13:12:53
안녕하세요
예스스탁입니다.
Input : length(12),추세선굵기(2);#굵기(0~6사이의 정수)
input : 고저점값표시(1);#1이면 표시, 0이면 표시안함
input : 피보값표시(1);#1이면 표시, 0이면 표시안함
Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),T(0);
var : tx(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0),tx7(0);
Array:valArr[20](0),barArr[20](0),turnPntArr[20](""),r[10](0);
// 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가
For j = 0 To 19 {
barArr[j] = barArr[j] + 1;
}
// 고점조건 = 현재 봉의 고가가 기간최고가이면서 최고가 갱신되었을 때;
// 저점조건 = 현재 봉의 저가가 기간최저가이면서 최저가 갱신되었을 때;
// 고점,저점조건 만족시 현재 봉의 고[저]가를 변수에 저장
Condition1 = Highest(H,length) == H and lastHiVal <> H;
Condition2 = Lowest(L,length) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
// 전환점구분 null값으로 초기화;
// if 고점조건, 저점조건 동시 만족시 {
// if 전환점배열의 현재(배열상 1번째)값이 고점이면 전환점구분 = 저점;
// else if 전환점배열의 현재 값이 저점이면 전환점구분 = 고점;
// else if 고점조건 만족하면 전환점구분 = 고점;
// else if 저점조건 만족하면 전환점구분 = 저점;
turnPntBit = "";
If Condition1 and Condition2 Then {
If turnPntArr[1] == "Hi" Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Lo" Then turnPntBit = "Hi";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과
// if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then
// 배열값들을 이전값으로 Move;
If turnPntBit == "Hi" or turnPntBit == "Lo" Then
{
If turnPntBit <> turnPntArr[1] Then
{
for j = 18 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
// if 전환점구분이 바뀌었거나 또는
// (전환점구분은 안바뀌었는데
// (이전 고점보다 높은 고점이 발생했거나 또는
// 이전 저점보다 낮은 저점이 발생했으면)) then
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
// 값 배열에는 고점 또는 저점을 대입;
// 봉개수 배열에는 0값 대입;
// 전환점 배열에 전환점구분값을 대입;
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
// if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고;
// else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
if turnPntArr[1][0] == "Hi" Then
{
T = 1;
if T != T[1] Then
Condition1 = false;
}
if turnPntArr[1][0] == "Lo" Then
{
T = -1;
if T != T[1] Then
Condition2 = false;
}
if 고저점값표시 == 1 and T != T[1] Then
{
tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
if t == 1 then
{
Text_SetStyle(tx,2,0);
Text_SetColor(tx,BLACK);
}
Else
{
Text_SetStyle(tx,2,1);
Text_SetColor(tx,BLACK);
}
}
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,추세선굵기);
TL_SetColor(TL1,iff(t== 1,GRAY,GRAY));
var : TTL1(0),TTL2(0),TTL3(0),TTL4(0),TTL5(0),TTL6(0),TTL7(0);
if T == -1 then
{
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
var1 = valArr[1]+(valArr[2]-valArr[1])*R[0];
var2 = valArr[1]+(valArr[2]-valArr[1])*R[1];
var3 = valArr[1]+(valArr[2]-valArr[1])*R[2];
var4 = valArr[1]+(valArr[2]-valArr[1])*R[3];
var5 = valArr[1]+(valArr[2]-valArr[1])*R[4];
var6 = valArr[1]+(valArr[2]-valArr[1])*R[5];
var7 = valArr[1]+(valArr[2]-valArr[1])*R[6];
if H >= r[1] Then
Condition2 = true;
TL_Delete(TTL1);
TL_Delete(TTL2);
TL_Delete(TTL3);
TL_Delete(TTL4);
TL_Delete(TTL5);
TL_Delete(TTL6);
TL_Delete(TTL7);
#TTL1 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[0],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[0]);
IF Condition2 == true then
TTL2 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[1],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[1]);
#TTL3 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[2],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[2]);
#TTL4 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[3],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[3]);
#TTL5 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[4],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[4]);
#TTL6 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[5],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[5]);
#TTL7 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[6],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[6]);
TL_SetExtRight(TTL1,true);
TL_SetExtRight(TTL2,true);
TL_SetExtRight(TTL3,true);
TL_SetExtRight(TTL4,true);
TL_SetExtRight(TTL5,true);
TL_SetExtRight(TTL6,true);
TL_SetExtRight(TTL7,true);
TL_SetExtRight(TTL7,true);
TL_SetColor(TTL1,GRAY);
TL_SetColor(TTL2,MAGENTA);
TL_SetColor(TTL3,MAGENTA);
TL_SetColor(TTL4,BLACK);
TL_SetColor(TTL5,MAGENTA);
TL_SetColor(TTL6,MAGENTA);
TL_SetColor(TTL7,GRAY);
if 피보값표시 == 1 then
{
}
}
#--하락적용---
if T == 1 Then
{
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
var1 = valArr[1]-(valArr[1]-valArr[2])*R[0];
var2 = valArr[1]-(valArr[1]-valArr[2])*R[1];
var3 = valArr[1]-(valArr[1]-valArr[2])*R[2];
var4 = valArr[1]-(valArr[1]-valArr[2])*R[3];
var5 = valArr[1]-(valArr[1]-valArr[2])*R[4];
var6 = valArr[1]-(valArr[1]-valArr[2])*R[5];
var7 = valArr[1]-(valArr[1]-valArr[2])*R[6];
if L <= r[5] Then
Condition1 = true;
TL_Delete(TTL1);
TL_Delete(TTL2);
TL_Delete(TTL3);
TL_Delete(TTL4);
TL_Delete(TTL5);
TL_Delete(TTL6);
TL_Delete(TTL7);
#TTL1 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var1,sdate,stime,var1);
#TTL2 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var2,sdate,stime,var2);
#TTL3 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var3,sdate,stime,var3);
#TTL4 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var4,sdate,stime,var4);
#TTL5 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var5,sdate,stime,var5);
if Condition1 == true then
TTL6 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var6,sdate,stime,var6);
#TTL7 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var7,sdate,stime,var7);
TL_SetExtRight(TTL1,true);
TL_SetExtRight(TTL2,true);
TL_SetExtRight(TTL3,true);
TL_SetExtRight(TTL4,true);
TL_SetExtRight(TTL5,true);
TL_SetExtRight(TTL6,true);
TL_SetExtRight(TTL7,true);
if 피보값표시 == 1 then
{
TL_SetColor(TTL1,GRAY);
TL_SetColor(TTL2,BLUE);
TL_SetColor(TTL3,BLUE);
TL_SetColor(TTL4,BLACK);
TL_SetColor(TTL5,BLUE);
TL_SetColor(TTL6,BLUE);
TL_SetColor(TTL7,GRAY);
}
}
즐거운 하루되세요
> 장군 님이 쓴 글입니다.
> 제목 : 문의드립니다
> Input : length(12),추세선굵기(2);#굵기(0~6사이의 정수)
input : 고저점값표시(1);#1이면 표시, 0이면 표시안함
input : 피보값표시(1);#1이면 표시, 0이면 표시안함
Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),T(0);
var : tx(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0),tx7(0);
Array:valArr[20](0),barArr[20](0),turnPntArr[20](""),r[10](0);
// 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가
For j = 0 To 19 {
barArr[j] = barArr[j] + 1;
}
// 고점조건 = 현재 봉의 고가가 기간최고가이면서 최고가 갱신되었을 때;
// 저점조건 = 현재 봉의 저가가 기간최저가이면서 최저가 갱신되었을 때;
// 고점,저점조건 만족시 현재 봉의 고[저]가를 변수에 저장
Condition1 = Highest(H,length) == H and lastHiVal <> H;
Condition2 = Lowest(L,length) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
// 전환점구분 null값으로 초기화;
// if 고점조건, 저점조건 동시 만족시 {
// if 전환점배열의 현재(배열상 1번째)값이 고점이면 전환점구분 = 저점;
// else if 전환점배열의 현재 값이 저점이면 전환점구분 = 고점;
// else if 고점조건 만족하면 전환점구분 = 고점;
// else if 저점조건 만족하면 전환점구분 = 저점;
turnPntBit = "";
If Condition1 and Condition2 Then {
If turnPntArr[1] == "Hi" Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Lo" Then turnPntBit = "Hi";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과
// if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then
// 배열값들을 이전값으로 Move;
If turnPntBit == "Hi" or turnPntBit == "Lo" Then
{
If turnPntBit <> turnPntArr[1] Then
{
for j = 18 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
// if 전환점구분이 바뀌었거나 또는
// (전환점구분은 안바뀌었는데
// (이전 고점보다 높은 고점이 발생했거나 또는
// 이전 저점보다 낮은 저점이 발생했으면)) then
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
// 값 배열에는 고점 또는 저점을 대입;
// 봉개수 배열에는 0값 대입;
// 전환점 배열에 전환점구분값을 대입;
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
// if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고;
// else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
if turnPntArr[1][0] == "Hi" Then
{
T = 1;
}
if turnPntArr[1][0] == "Lo" Then
{
T = -1;
}
if 고저점값표시 == 1 and T != T[1] Then
{
tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
if t == 1 then
{
Text_SetStyle(tx,2,0);
Text_SetColor(tx,BLACK);
}
Else
{
Text_SetStyle(tx,2,1);
Text_SetColor(tx,BLACK);
}
}
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,추세선굵기);
TL_SetColor(TL1,iff(t== 1,GRAY,GRAY));
var : TTL1(0),TTL2(0),TTL3(0),TTL4(0),TTL5(0),TTL6(0),TTL7(0);
if T == -1 then
{
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
var1 = valArr[1]+(valArr[2]-valArr[1])*R[0];
var2 = valArr[1]+(valArr[2]-valArr[1])*R[1];
var3 = valArr[1]+(valArr[2]-valArr[1])*R[2];
var4 = valArr[1]+(valArr[2]-valArr[1])*R[3];
var5 = valArr[1]+(valArr[2]-valArr[1])*R[4];
var6 = valArr[1]+(valArr[2]-valArr[1])*R[5];
var7 = valArr[1]+(valArr[2]-valArr[1])*R[6];
TL_Delete(TTL1);
TL_Delete(TTL2);
TL_Delete(TTL3);
TL_Delete(TTL4);
TL_Delete(TTL5);
TL_Delete(TTL6);
TL_Delete(TTL7);
TTL1 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[0],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[0]);
TTL2 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[1],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[1]);
TTL3 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[2],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[2]);
TTL4 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[3],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[3]);
TTL5 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[4],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[4]);
TTL6 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[5],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[5]);
TTL7 = TL_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1]+(valArr[2]-valArr[1])*R[6],sdate,stime,valArr[1]+(valArr[2]-valArr[1])*R[6]);
TL_SetExtRight(TTL1,true);
TL_SetExtRight(TTL2,true);
TL_SetExtRight(TTL3,true);
TL_SetExtRight(TTL4,true);
TL_SetExtRight(TTL5,true);
TL_SetExtRight(TTL6,true);
TL_SetExtRight(TTL7,true);
TL_SetExtRight(TTL7,true);
TL_SetColor(TTL1,GRAY);
TL_SetColor(TTL2,MAGENTA);
TL_SetColor(TTL3,MAGENTA);
TL_SetColor(TTL4,BLACK);
TL_SetColor(TTL5,MAGENTA);
TL_SetColor(TTL6,MAGENTA);
TL_SetColor(TTL7,GRAY);
if 피보값표시 == 1 then
{
}
}
#--하락적용---
if T == 1 Then
{
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
var1 = valArr[1]-(valArr[1]-valArr[2])*R[0];
var2 = valArr[1]-(valArr[1]-valArr[2])*R[1];
var3 = valArr[1]-(valArr[1]-valArr[2])*R[2];
var4 = valArr[1]-(valArr[1]-valArr[2])*R[3];
var5 = valArr[1]-(valArr[1]-valArr[2])*R[4];
var6 = valArr[1]-(valArr[1]-valArr[2])*R[5];
var7 = valArr[1]-(valArr[1]-valArr[2])*R[6];
TL_Delete(TTL1);
TL_Delete(TTL2);
TL_Delete(TTL3);
TL_Delete(TTL4);
TL_Delete(TTL5);
TL_Delete(TTL6);
TL_Delete(TTL7);
TTL1 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var1,sdate,stime,var1);
TTL2 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var2,sdate,stime,var2);
TTL3 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var3,sdate,stime,var3);
TTL4 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var4,sdate,stime,var4);
TTL5 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var5,sdate,stime,var5);
TTL6 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var6,sdate,stime,var6);
TTL7 = TL_New(sDate[barArr[1]],sTime[barArr[1]],var7,sdate,stime,var7);
TL_SetExtRight(TTL1,true);
TL_SetExtRight(TTL2,true);
TL_SetExtRight(TTL3,true);
TL_SetExtRight(TTL4,true);
TL_SetExtRight(TTL5,true);
TL_SetExtRight(TTL6,true);
TL_SetExtRight(TTL7,true);
if 피보값표시 == 1 then
{
TL_SetColor(TTL1,GRAY);
TL_SetColor(TTL2,BLUE);
TL_SetColor(TTL3,BLUE);
TL_SetColor(TTL4,BLACK);
TL_SetColor(TTL5,BLUE);
TL_SetColor(TTL6,BLUE);
TL_SetColor(TTL7,GRAY);
}
}
위수식에서 약간변경하고십습니다 ,지그재그선이 상승점을찍고 피보나치선이 나오는데 76.4%하락돌파시 레드색수평선 하나만 나오게(돌파하지않았을떄는나오지않게,돌파시만수평선유지) 반대로 지그재그선이 하락점을찍고 23.6%상승시블루색수평선 하나만나오게 수정부탁드립니다~~미리감사드립니다
다음글
이전글