| Q&A 게시판 | HOME > Q&A 게시판 |
작성자 :
예스스탁
작성일 : 2021-05-12 17:32:48
조회수 : 455
Re:항상 감사드립니다 수식문의드립니다.
안녕하세요
예스스탁입니다.
색상1 = 0;
색상2 = 0.236;
색상3 = 0.382;
색상4 = 0.50;
색상5 = 0.618;
색상6 = 0.764;
색상7 = 1;
색상8 = 1.236;
색상9 = 1.382;
색상10 = 1.50;
색상11 = 1.618;
색상12 = 2;
색상13 = 2.618;
색상14 = 4.236;
색상15 = 6.845;
15개의 선을 모두 개별적으로 색상지정할 수 있게 외부변수로 처리해 드립니다.
예스랭귀지 도움말에서 제공되는 색상예약어 확인하시고 색 지정하시면 됩니다.
#===================================#
# 지 표 명 : 피보나치 되돌림
#==========================================#
Input:변동률(0.2),레벨(4),선두께(1),수치표시(1);
input : 선색1(RED),선색2(RED),선색3(RED),선색4(YELLOW),선색5(YELLOW),선색6(YELLOW),선색7(GREEN),선색8(GREEN);
input : 선색9(GREEN),선색10(CYAN),선색11(CYAN),선색12(CYAN),선색13(BLUE),선색14(BLUE),선색15(BLUE);
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_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_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]);
}
}
TL_SetColor(fr[1,3],선색1); # 0
TL_SetColor(fr[2,3],선색2); # 0
TL_SetColor(fr[3,3],선색3); # 0
TL_SetColor(fr[4,3],선색4); # 0
TL_SetColor(fr[5,3],선색5); # 0
TL_SetColor(fr[6,3],선색6); # 0
TL_SetColor(fr[7,3],선색7); # 0
TL_SetColor(fr[8,3],선색8); # 0
TL_SetColor(fr[9,3],선색9); # 0
TL_SetColor(fr[10,3],선색10); # 0
TL_SetColor(fr[11,3],선색11); # 0
TL_SetColor(fr[12,3],선색12); # 0
TL_SetColor(fr[13,3],선색13); # 0
TL_SetColor(fr[14,3],선색14); # 0
TL_SetColor(fr[15,3],선색15); # 0
즐거운 하루되세요
>> 호로로록 님이 쓴 글입니다.
>> 제목 : 항상 감사드립니다 수식문의드립니다.#==========================================#
# 지 표 명 : 피보나치 되돌림
#==========================================#
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;
비율마다 선 색을 다르게 선택 할수 있게 수정이 가능할 수 있는지 문의 드립니다.
