커뮤니티

문의 드립니다.

프로필 이미지
하늘북
2020-08-04 07:27:22
1578
글번호 141209
답변완료
아래 수식은 게시판에서 가져왔습니다. 아래 수식은 지표식으로 추세선을 표시해주는데 고점은 검정색 라인으로 저점은 빨간색 라인이네요. 이걸 시스템식으로 바꿔 보고싶은데요 바로이전에 발생한 빨간색 라인(저점)을 아래로 돌파후 다시 위로 가격이 위로 돌파하면. 매도진입 바로이전에 발생한 검정색 라인(고점)을 위로 돌파후 다시 아래로 돌파하면 매수진입 되도록 수정가능할까요?? Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); }
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2020-08-04 15:40:23

안녕하세요 예스스탁입니다. 해당식에서 저점은 빨간색,고점은 파란색입니다. 가격이 하락한후 상승하면 새로운 저점이 만들어 집니다 최근 저점으로는 신호 발생이 불가능하므로 완성된 직전의 저점과 고점을 기준으로 작성해 드립니다. Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); } if MarketPosition <= 0 and 저점[1,1] < 저점[2,1] and C > 저점[2,1] and 저점[2,1] > 0 Then Sell(); if MarketPosition >= 0 and 고점[1,1] > 고점[2,1] and C < 고점[2,1] and 고점[2,1] > 0 Then Buy(); 즐거운 하루되세요 > 하늘북 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 아래 수식은 게시판에서 가져왔습니다. 아래 수식은 지표식으로 추세선을 표시해주는데 고점은 검정색 라인으로 저점은 빨간색 라인이네요. 이걸 시스템식으로 바꿔 보고싶은데요 바로이전에 발생한 빨간색 라인(저점)을 아래로 돌파후 다시 위로 가격이 위로 돌파하면. 매도진입 바로이전에 발생한 검정색 라인(고점)을 위로 돌파후 다시 아래로 돌파하면 매수진입 되도록 수정가능할까요?? Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); }
프로필 이미지

하늘북

2020-08-04 16:03:54

작성 해주신 수식을 해외선물에 적용하니 신호가 나오지 않습니다. 한번 봐주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다. > 안녕하세요 예스스탁입니다. 해당식에서 저점은 빨간색,고점은 파란색입니다. 가격이 하락한후 상승하면 새로운 저점이 만들어 집니다 최근 저점으로는 신호 발생이 불가능하므로 완성된 직전의 저점과 고점을 기준으로 작성해 드립니다. Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); } if MarketPosition <= 0 and 저점[1,1] < 저점[2,1] and C > 저점[2,1] and 저점[2,1] > 0 Then Sell(); if MarketPosition >= 0 and 고점[1,1] > 고점[2,1] and C < 고점[2,1] and 고점[2,1] > 0 Then Buy(); 즐거운 하루되세요 > 하늘북 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 아래 수식은 게시판에서 가져왔습니다. 아래 수식은 지표식으로 추세선을 표시해주는데 고점은 검정색 라인으로 저점은 빨간색 라인이네요. 이걸 시스템식으로 바꿔 보고싶은데요 바로이전에 발생한 빨간색 라인(저점)을 아래로 돌파후 다시 위로 가격이 위로 돌파하면. 매도진입 바로이전에 발생한 검정색 라인(고점)을 위로 돌파후 다시 아래로 돌파하면 매수진입 되도록 수정가능할까요?? Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); }
프로필 이미지

예스스탁 예스스탁 답변

2020-08-04 16:14:54

안녕하세요 예스스탁입니다. 식을 잘못 넣어드렸습니다. 아래식으로 적용해 보시기 바랍니다. Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); } if MarketPosition >= 0 and 저점[1,1] < 저점[2,1] and CrossUp(C,저점[2,1]) and 저점[2,1] > 0 Then Sell(); if MarketPosition <= 0 and 고점[1,1] > 고점[2,1] and CrossDown(c,고점[2,1]) and 고점[2,1] > 0 Then Buy(); 즐거운 하루되세요 > 하늘북 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다. > 작성 해주신 수식을 해외선물에 적용하니 신호가 나오지 않습니다. 한번 봐주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다. > 안녕하세요 예스스탁입니다. 해당식에서 저점은 빨간색,고점은 파란색입니다. 가격이 하락한후 상승하면 새로운 저점이 만들어 집니다 최근 저점으로는 신호 발생이 불가능하므로 완성된 직전의 저점과 고점을 기준으로 작성해 드립니다. Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); } if MarketPosition <= 0 and 저점[1,1] < 저점[2,1] and C > 저점[2,1] and 저점[2,1] > 0 Then Sell(); if MarketPosition >= 0 and 고점[1,1] > 고점[2,1] and C < 고점[2,1] and 고점[2,1] > 0 Then Buy(); 즐거운 하루되세요 > 하늘북 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 아래 수식은 게시판에서 가져왔습니다. 아래 수식은 지표식으로 추세선을 표시해주는데 고점은 검정색 라인으로 저점은 빨간색 라인이네요. 이걸 시스템식으로 바꿔 보고싶은데요 바로이전에 발생한 빨간색 라인(저점)을 아래로 돌파후 다시 위로 가격이 위로 돌파하면. 매도진입 바로이전에 발생한 검정색 라인(고점)을 위로 돌파후 다시 아래로 돌파하면 매수진입 되도록 수정가능할까요?? Input:length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), TL1(0),처리구분(""),T(0),TL2(0),TL3(0); var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0); Array:고점[10,5](0),저점[10,5](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 { T = 1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]); TL_SetColor(TL2,BLUE); TL_SetSize(TL2,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetExtRight(TL3,False); TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]); TL_SetColor(TL3,RED); TL_SetSize(TL3,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0); TL_SetColor(TL1,YELLOW); TL_SetEnd(TL2,sdate,stime,고점[1,1]); TL_SetEnd(TL3,sdate,stime,저점[1,1]); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); if T != T[1] then { if T == 1 Then { HH = 고점[2,1]; LL = 저점[1,1]; ii = index-고점[2,2]; diff = abs(HH-LL); } Else { HH = 고점[1,1]; LL = 저점[2,1]; ii = index-저점[2,2]; diff = abs(HH-LL); } TL_Delete(TL41); TL_Delete(TL42); TL_Delete(TL43); TL_Delete(TL44); TL_Delete(TL45); TL_Delete(TL46); TL41 = TL_New(sdate[ii],stime[ii],LL+diff*2.00,sdate,stime,LL+diff*2.00); TL42 = TL_New(sdate[ii],stime[ii],LL+diff*2.618,sdate,stime,LL+diff*2.618); TL43 = TL_New(sdate[ii],stime[ii],LL+diff*3.618,sdate,stime,LL+diff*3.618); TL44 = TL_New(sdate[ii],stime[ii],HH-diff*2.00,sdate,stime,HH-diff*2.00); TL45 = TL_New(sdate[ii],stime[ii],HH-diff*2.618,sdate,stime,HH-diff*2.618); TL46 = TL_New(sdate[ii],stime[ii],HH-diff*3.618,sdate,stime,HH-diff*3.618); TL_SetExtRight(TL41,true); TL_SetExtRight(TL42,true); TL_SetExtRight(TL43,true); TL_SetExtRight(TL44,true); TL_SetExtRight(TL45,true); TL_SetExtRight(TL46,true); TL_SetSize(TL41,2); TL_SetSize(TL42,2); TL_SetSize(TL43,2); TL_SetSize(TL44,2); TL_SetSize(TL45,2); TL_SetSize(TL46,2); }