커뮤니티

문의드립니다

프로필 이미지
해피데이m
2018-12-04 10:44:59
199
글번호 124119
답변완료
아래 지표에 우측 끝까지 나타나는 수평라인을, 지표가 새로 갱신되는 지점까지만 나타나게 부탁드립니다 ==================================================== Input : af(0.02), maxAF(0.2); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0); Array : TL11[50](0),TL22[50](0); var1 = CSar(af,maxAF); if bdate != bdate[1] then { value1 = 0; value2 = 0; for cnt = 1 to 49 { TL_Delete(TL11[cnt]); TL_Delete(TL22[cnt]); } } if crossup(c,var1) Then { T = 1; HH = H; HD = sdate; HT = stime; if LL > 0 Then { TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH); } if LD == sdate then { if value1 == 0 then { value1 = value1+1; value11 = LL[1]; TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); TL_SetExtRight(TL11[value1],true); } if value1 > 0 and LL[1] < value11 then { value1 = value1+1; value11 = LL[1]; TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); TL_SetExtRight(TL11[value1],true); } } } if CrossDown(c,var1) Then { T = -1; LL = L; LD = sdate; LT = stime; if HH > 0 Then { TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL); } if HD[1] == sdate then { if value2 == 0 then { value2 = value2+1; value22 = HH[1]; TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); TL_SetExtRight(TL22[value2],true); } if value2 > 0 and HH[1] > value22 then { value2 = value2+1; value22 = HH[1]; TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); TL_SetExtRight(TL22[value2],true); } } } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; TL_SetEnd(TL1,HD,HT,HH); } } if T == -1 then { if L < LL Then { LL = L; LD = sdate; LT = stime; TL_SetEnd(TL2,LD,LT,LL); } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-12-04 14:37:43

안녕하세요 예스스탁입니다. 문의하신 내용으로 수정하면 과거일에 출력된 추세선을 지우기 어렵습니다. 수평선은 당일에만 출력되게 했습니다. Input : af(0.02), maxAF(0.2); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0); var : TL11(0),TL21(0); var1 = CSar(af,maxAF); if bdate != bdate[1] then { value1 = 0; value2 = 0; } if crossup(c,var1) Then { T = 1; HH = H; HD = sdate; HT = stime; if LL > 0 Then { TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH); } if LD[1] == sdate and CurrentDate == sdate then { if value1 == 0 then { value1 = value1+1; value11 = LL[1]; TL11 = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); } if value1 > 0 and LL[1] < value11 then { value1 = value1+1; value11 = LL[1]; TL11 = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); } } } if CrossDown(c,var1) Then { T = -1; LL = L; LD = sdate; LT = stime; if HH > 0 Then { TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL); } if HD == sdate and CurrentDate == sdate then { if value2 == 0 then { value2 = value2+1; value22 = HH[1]; TL21 = TL_New(HD,HT,HH,sdate,stime,HH); if sdate == 20181204 Then MessageLog("%.f %.f",HD[1],HT[1]); } if value2 > 0 and HH[1] > value22 then { value2 = value2+1; value22 = HH[1]; TL21 = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); } } } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; TL_SetEnd(TL1,HD,HT,HH); } } if T == -1 then { if L < LL Then { LL = L; LD = sdate; LT = stime; TL_SetEnd(TL2,LD,LT,LL); } } TL_SetEnd(TL11,sdate,stime,TL_GetBeginVal(TL11)); TL_SetEnd(TL21,sdate,stime,TL_GetBeginVal(TL21)); 즐거운 하루되세요 > 해피데이m 님이 쓴 글입니다. > 제목 : 문의드립니다 > 아래 지표에 우측 끝까지 나타나는 수평라인을, 지표가 새로 갱신되는 지점까지만 나타나게 부탁드립니다 ==================================================== Input : af(0.02), maxAF(0.2); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0); Array : TL11[50](0),TL22[50](0); var1 = CSar(af,maxAF); if bdate != bdate[1] then { value1 = 0; value2 = 0; for cnt = 1 to 49 { TL_Delete(TL11[cnt]); TL_Delete(TL22[cnt]); } } if crossup(c,var1) Then { T = 1; HH = H; HD = sdate; HT = stime; if LL > 0 Then { TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH); } if LD == sdate then { if value1 == 0 then { value1 = value1+1; value11 = LL[1]; TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); TL_SetExtRight(TL11[value1],true); } if value1 > 0 and LL[1] < value11 then { value1 = value1+1; value11 = LL[1]; TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); TL_SetExtRight(TL11[value1],true); } } } if CrossDown(c,var1) Then { T = -1; LL = L; LD = sdate; LT = stime; if HH > 0 Then { TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL); } if HD[1] == sdate then { if value2 == 0 then { value2 = value2+1; value22 = HH[1]; TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); TL_SetExtRight(TL22[value2],true); } if value2 > 0 and HH[1] > value22 then { value2 = value2+1; value22 = HH[1]; TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); TL_SetExtRight(TL22[value2],true); } } } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; TL_SetEnd(TL1,HD,HT,HH); } } if T == -1 then { if L < LL Then { LL = L; LD = sdate; LT = stime; TL_SetEnd(TL2,LD,LT,LL); } }