| Q&A 게시판 | HOME > Q&A 게시판 |
작성자 :
호로로록
작성일 : 2021-05-12 17:17:57
조회수 : 437
항상 감사드립니다 수식문의드립니다.
#==========================================#
# 지 표 명 : 피보나치 되돌림
#==========================================#
Input:변동률(0.2),레벨(4),선색(yellow),선두께(1),수치표시(1);
Var:j(0),고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4);
Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0),처리구분[5](0),
TL[2](0),
fr[15,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호
#==========================================#
If 레벨 <= 4 Then {
Var1 = 레벨 * 10;
Value1 = ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분);
If 최종상태[레벨] == 고점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1]);
TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1]);
TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
}
}
} Else {
Alert("4레벨까지만 가능합니다!!");
}
#==========================================#
If Index == 0 Then {
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
fr[8,1] = 1.236;
fr[9,1] = 1.382;
fr[10,1] = 1.50;
fr[11,1] = 1.618;
fr[12,1] = 2;
fr[13,1] = 2.618;
fr[14,1] = 4.236;
fr[15,1] = 6.845;
}
If 최종상태[레벨][1] == 고점 and 최종상태[레벨] == 저점 Then { // 추세가 바뀔 때 피보나치 라인을 계산
For j = 1 To 15 {
If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고
fr[j,2] = 고[1,Var1 + 1] - ((고[1,Var1 + 1] - 저[2,Var1 + 1]) * fr[j,1]); // 피보나치 비율을 곱해서 계산
fr[j,3] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],fr[j,2],sDate,sTime,fr[j,2]); // 라인을 생성
TL_SetColor(fr[j,3],선색);
TL_SetSize(fr[j,3],선두께);
If 수치표시 == 1 Then {
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(저[2,Var1 + 3],저[2,Var1 + 4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 0, 1); // 왼쪽,중앙
}
}
} Else If 최종상태[레벨][1] == 저점 and 최종상태[레벨] == 고점 Then {
For j = 1 To 15 {
If fr[j,3] > 0 Then TL_Delete(fr[j,3]);
fr[j,2] = 저[1,Var1 + 1] + ((고[2,Var1 + 1] - 저[1,Var1 + 1]) * fr[j,1]);
fr[j,3] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],fr[j,2],sDate,sTime,fr[j,2]);
TL_SetColor(fr[j,3],선색);
TL_SetSize(fr[j,3],선두께);
If 수치표시 == 1 Then {
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(고[2,Var1 + 3],고[2,4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 0, 1);
}
}
} Else {
For j = 1 To 15 {
TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]);
}
}
항상 감사합니다. 다름이아니라 차티스트님의 피보나치 되돌림 지표입니다.
여기서
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
fr[8,1] = 1.236;
fr[9,1] = 1.382;
fr[10,1] = 1.50;
fr[11,1] = 1.618;
fr[12,1] = 2;
fr[13,1] = 2.618;
fr[14,1] = 4.236;
fr[15,1] = 6.845;
비율마다 선 색을 다르게 선택 할수 있게 수정이 가능할 수 있는지 문의 드립니다.
# 지 표 명 : 피보나치 되돌림
#==========================================#
Input:변동률(0.2),레벨(4),선색(yellow),선두께(1),수치표시(1);
Var:j(0),고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4);
Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0),처리구분[5](0),
TL[2](0),
fr[15,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호
#==========================================#
If 레벨 <= 4 Then {
Var1 = 레벨 * 10;
Value1 = ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분);
If 최종상태[레벨] == 고점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1]);
TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],
저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1]);
TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],
고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]);
TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],
저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]);
}
}
} Else {
Alert("4레벨까지만 가능합니다!!");
}
#==========================================#
If Index == 0 Then {
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
fr[8,1] = 1.236;
fr[9,1] = 1.382;
fr[10,1] = 1.50;
fr[11,1] = 1.618;
fr[12,1] = 2;
fr[13,1] = 2.618;
fr[14,1] = 4.236;
fr[15,1] = 6.845;
}
If 최종상태[레벨][1] == 고점 and 최종상태[레벨] == 저점 Then { // 추세가 바뀔 때 피보나치 라인을 계산
For j = 1 To 15 {
If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고
fr[j,2] = 고[1,Var1 + 1] - ((고[1,Var1 + 1] - 저[2,Var1 + 1]) * fr[j,1]); // 피보나치 비율을 곱해서 계산
fr[j,3] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],fr[j,2],sDate,sTime,fr[j,2]); // 라인을 생성
TL_SetColor(fr[j,3],선색);
TL_SetSize(fr[j,3],선두께);
If 수치표시 == 1 Then {
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(저[2,Var1 + 3],저[2,Var1 + 4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 0, 1); // 왼쪽,중앙
}
}
} Else If 최종상태[레벨][1] == 저점 and 최종상태[레벨] == 고점 Then {
For j = 1 To 15 {
If fr[j,3] > 0 Then TL_Delete(fr[j,3]);
fr[j,2] = 저[1,Var1 + 1] + ((고[2,Var1 + 1] - 저[1,Var1 + 1]) * fr[j,1]);
fr[j,3] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],fr[j,2],sDate,sTime,fr[j,2]);
TL_SetColor(fr[j,3],선색);
TL_SetSize(fr[j,3],선두께);
If 수치표시 == 1 Then {
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(고[2,Var1 + 3],고[2,4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 0, 1);
}
}
} Else {
For j = 1 To 15 {
TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]);
}
}
항상 감사합니다. 다름이아니라 차티스트님의 피보나치 되돌림 지표입니다.
여기서
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
fr[8,1] = 1.236;
fr[9,1] = 1.382;
fr[10,1] = 1.50;
fr[11,1] = 1.618;
fr[12,1] = 2;
fr[13,1] = 2.618;
fr[14,1] = 4.236;
fr[15,1] = 6.845;
비율마다 선 색을 다르게 선택 할수 있게 수정이 가능할 수 있는지 문의 드립니다.
