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로 갱신시 최저점 또한 장중에  갱신시 고점과 저점 대비
 기존 피보나치 선을 지우고 새로 갱신하여 긋고 싶습니다. 혹시 가능한가요?
항상 감사합니다.
 
목록 답변