| Q&A 게시판 | HOME > Q&A 게시판 |
작성자 :
예스스탁
작성일 : 2021-05-26 15:37:46
조회수 : 470
Re:항상 감사드립니다 수식문의드립니다.
안녕하세요
예스스탁입니다.
Input:P(0),length(10);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),
Text1(0),처리구분(""),T(0),TL3(0),TL4(0),TL5(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL3 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.382,sDate[eBar],sTime[eBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.382);
TL4 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.500,sDate[eBar],sTime[eBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.500);
TL5 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.618,sDate[eBar],sTime[eBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.618);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],P));
Var1 = 고점[1,1];
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,BLACK);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.382,sDate[eBar],sTime[eBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.382);
TL4 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.500,sDate[eBar],sTime[eBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.500);
TL5 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.618,sDate[eBar],sTime[eBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.618);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],P));
Var2 = 저점[1,1];
Text_SetStyle(Text1, 2, 8);
Text_SetColor(Text1,BLACK);
}
}
TL_SetSize(TL1,0);
TL_SetColor(TL1,GRAY);
Plot1((Var1+Var2)/2,"중점");
즐거운 하루되세요
>> 호로로록 님이 쓴 글입니다.
>> 제목 : 항상 감사드립니다 수식문의드립니다.Input:P(0),length(10);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),
Text1(0),처리구분(""),T(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
TL_Delete(TL2);
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],
NumToStr(고점[1,1],P));
Var1 = 고점[1,1];
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,BLACK);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
TL_Delete(TL2);
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],
NumToStr(저점[1,1],P));
Var2 = 저점[1,1];
Text_SetStyle(Text1, 2, 8);
Text_SetColor(Text1,BLACK);
}
}
TL_SetSize(TL1,0);
TL_SetColor(TL1,GRAY);
Plot1((Var1+Var2)/2,"중점");
장중에 고점과 저점을 표시해주는 지표입니다.
예를들어 최저점이 31111이고 최고점이 35889였을시
공식이 (최고점(35889)-최저점(31111))*피보나치비율(38.20 / 50.00 / 61.80)/100
차트상 가격에 밑줄같은것을 긋고 장중에 최고점이 35889에서 36889로 갱신시 최저점 또한 장중에 갱신시 고점과 저점 대비
기존 피보나치 선을 지우고 새로 갱신하여 긋고 싶습니다. 혹시 가능한가요?
항상 감사합니다.
