예스스탁
예스스탁 답변
2020-11-17 14:55:57
안녕하세요
예스스탁입니다.
1
var1 = dayhigh(1);
var2 = daylow(1);
var3 = var1-var2;
plot1(var1-var3*0.236);
plot2(var1-var3*0.50);
plot3(var1-var3*0.764);
2
추세선 모양을 점선으로 변경하시면
굵기가 굵으면 점과 점사이가 붙어 선모양으로 보이게 됩니다.
파동선두께와 굵기는 가장 얇은 것으로 지정해 드립니다.
Input:length(10),기준일(20201001);
input : 파동선두께(0);
input : 굵기(0);
Var:j(0),jj(0),jjj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),
TL1(0),TL2(0),TL3(0);
Array:고[5,4](0),저[5,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime
역사적고점[5](0),역사적저점[5](0);
#==========================================#
If Index == 0 Then
{
고[1,1] = H;
저[1,1] = L;
}
Condition1 = Highest(H,length) == H and 최종고가 <> H;
Condition2 = Lowest (L,length) == L and 최종저가 <> L;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리
Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = H; // 신규고점을 체크하기 위해 저장
If 최종변곡점 == "저점" Then
{
For j = 5 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLACK);
TL_Delete(TL2);
TL2 = TL_new(저[3,3],저[3,4],저[3,1],저[1,3],저[1,4],저[1,1]);
TL_SetExtRight(TL2,true);
TL_SetSize(TL2,파동선두께);
TL_SetColor(TL2,YELLOW);
}
Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
If 기준일 <= Date and (역사적고점[1] < 고[1,1] or 역사적고점[1] == 0) Then
{
For jjj = 1 To 4
{
역사적고점[jjj] = 고[1,jjj];
역사적저점[jjj] = 0;
}
}
최종변곡점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = L;
If 최종변곡점 == "고점" then
{
For j = 5 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLACK);
TL_Delete(TL3);
TL3 = TL_new(고[3,3],고[3,4],고[3,1],고[1,3],고[1,4],고[1,1]);
TL_SetExtRight(TL3,true);
TL_SetSize(TL3,파동선두께);
TL_SetColor(TL3,YELLOW);
}
Else If 저[1,1] > L then
{
저[1,1] = L;
저[1,3] = sDate;
저[1,4] = sTime;
저[1,2] = Index;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
If 기준일 <= Date and ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then
{
For jjj = 1 To 4
{
역사적저점[jjj] = 저[1,jjj];
//역사적고점[jjj] = 0; // 역사적 고점 초기화
}
}
최종변곡점 = "저점";
}
#==========================================#
Var:기울기(0);
Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 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;
}
If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then
{
If 역사적고점[1][1] != 역사적고점[1] or 역사적저점[1][1] != 역사적저점[1] Then
{
기울기 = (역사적고점[1] - 역사적저점[1]) / (역사적고점[2] - 역사적저점[2]);
for j = 1 to 7
{
If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고
fr[j,2] = 기울기 * fr[j,1] * (index - 역사적고점[2]) + 역사적고점[1]; // 피보나치 비율을 곱해서 계산
fr[j,3] = TL_New(역사적고점[3],역사적고점[4],역사적고점[1],sDate,sTime,fr[j,2]); // 라인을 생성
TL_SetSize(fr[j,3],굵기);
}
}
Else
{
for j = 1 to 7
{
fr[j,2] = 기울기 * fr[j,1] * (index - 역사적고점[2]) + 역사적고점[1];
TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]);
TL_SetExtRight(fr[j,3],true);
}
}
}
#0%선 색상
TL_SetColor(fr[1,3],MAGENTA);
#23.6%선 색상
TL_SetColor(fr[2,3],GRAY);
#38.2%선 색상
TL_SetColor(fr[3,3],GRAY);
#50.0%선 색상
TL_SetColor(fr[4,3],GREEN);
#61.8%선 색상
TL_SetColor(fr[5,3],GRAY);
#76.4%선 색상
TL_SetColor(fr[6,3],GRAY);
#100%선 색상
TL_SetColor(fr[7,3],CYAN);
#파동선 모양(1이면 선, 3이면 점)
TL_SetStyle(TL1,3);
TL_SetStyle(TL2,3);
TL_SetStyle(TL3,3);
#각%선 모양(1이면 선, 3이면 점)
TL_SetStyle(fr[1,3],3);
TL_SetStyle(fr[1,3],3);
TL_SetStyle(fr[2,3],3);
TL_SetStyle(fr[3,3],3);
TL_SetStyle(fr[4,3],3);
TL_SetStyle(fr[5,3],3);
TL_SetStyle(fr[6,3],3);
TL_SetStyle(fr[7,3],3);
#텍스트 출력
var : tx1(0),tx2(0),tx3(0);
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
tx1 = Text_New(NextBarSdate,NextBarStime,TL_GetValue(fr[2,3],sDate,sTime),NumToStr(TL_GetValue(fr[2,3],sDate,sTime),2));
tx2 = Text_New(NextBarSdate,NextBarStime,TL_GetValue(fr[4,3],sDate,sTime),NumToStr(TL_GetValue(fr[4,3],sDate,sTime),2));
tx3 = Text_New(NextBarSdate,NextBarStime,TL_GetValue(fr[5,3],sDate,sTime),NumToStr(TL_GetValue(fr[6,3],sDate,sTime),2));
Text_SetStyle(tx1,0,2);
Text_SetStyle(tx2,0,2);
Text_SetStyle(tx3,0,2);
즐거운 하루되세요
> 유선 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 1)var1 = dayhigh;
var2 = daylow;
var3 = var1-var2;
plot1(var1-var3*0.236);
plot2(var1-var3*0.50);
plot3(var1-var3*0.764);
위수식으로전일중십값을 기준으로 피보나치수식을 수정부탁드립니다
2)
Input:length(10),기준일(20201001),파동선두께(2),굵기(2);
Var:j(0),jj(0),jjj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),
TL1(0),TL2(0),TL3(0);
Array:고[5,4](0),저[5,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime
역사적고점[5](0),역사적저점[5](0);
#==========================================#
If Index == 0 Then
{
고[1,1] = H;
저[1,1] = L;
}
Condition1 = Highest(H,length) == H and 최종고가 <> H;
Condition2 = Lowest (L,length) == L and 최종저가 <> L;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리
Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = H; // 신규고점을 체크하기 위해 저장
If 최종변곡점 == "저점" Then
{
For j = 5 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLACK);
TL_Delete(TL2);
TL2 = TL_new(저[3,3],저[3,4],저[3,1],저[1,3],저[1,4],저[1,1]);
TL_SetExtRight(TL2,true);
TL_SetSize(TL2,파동선두께);
TL_SetColor(TL2,YELLOW);
}
Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
If 기준일 <= Date and (역사적고점[1] < 고[1,1] or 역사적고점[1] == 0) Then
{
For jjj = 1 To 4
{
역사적고점[jjj] = 고[1,jjj];
역사적저점[jjj] = 0;
}
}
최종변곡점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = L;
If 최종변곡점 == "고점" then
{
For j = 5 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLACK);
TL_Delete(TL3);
TL3 = TL_new(고[3,3],고[3,4],고[3,1],고[1,3],고[1,4],고[1,1]);
TL_SetExtRight(TL3,true);
TL_SetSize(TL3,파동선두께);
TL_SetColor(TL3,YELLOW);
}
Else If 저[1,1] > L then
{
저[1,1] = L;
저[1,3] = sDate;
저[1,4] = sTime;
저[1,2] = Index;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
If 기준일 <= Date and ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then
{
For jjj = 1 To 4
{
역사적저점[jjj] = 저[1,jjj];
//역사적고점[jjj] = 0; // 역사적 고점 초기화
}
}
최종변곡점 = "저점";
}
#==========================================#
Var:기울기(0);
Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 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;
}
If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then
{
If 역사적고점[1][1] != 역사적고점[1] or 역사적저점[1][1] != 역사적저점[1] Then
{
기울기 = (역사적고점[1] - 역사적저점[1]) / (역사적고점[2] - 역사적저점[2]);
for j = 1 to 7
{
If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고
fr[j,2] = 기울기 * fr[j,1] * (index - 역사적고점[2]) + 역사적고점[1]; // 피보나치 비율을 곱해서 계산
fr[j,3] = TL_New(역사적고점[3],역사적고점[4],역사적고점[1],sDate,sTime,fr[j,2]); // 라인을 생성
TL_SetSize(fr[j,3],굵기);
}
}
Else
{
for j = 1 to 7
{
fr[j,2] = 기울기 * fr[j,1] * (index - 역사적고점[2]) + 역사적고점[1];
TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]);
TL_SetExtRight(fr[j,3],true);
}
}
}
#0%선 색상
TL_SetColor(fr[1,3],MAGENTA);
#23.6%선 색상
TL_SetColor(fr[2,3],GRAY);
#38.2%선 색상
TL_SetColor(fr[3,3],GRAY);
#50.0%선 색상
TL_SetColor(fr[4,3],GREEN);
#61.8%선 색상
TL_SetColor(fr[5,3],GRAY);
#76.4%선 색상
TL_SetColor(fr[6,3],GRAY);
#100%선 색상
TL_SetColor(fr[7,3],CYAN);
피보나치수치테스트출 력값을 원합니다~23.6,50.76.4이세게만 나오게하며,`챠트왼쪽으로나오게부탁드리오며,현재선으로 표현되는것을 점선으로 나오게 수정하고십습니다 ,점선의크기도수치값색상도 조정할수있게부탁드립니다,