커뮤니티

추세선

프로필 이미지
팔보채
2023-03-12 14:15:49
1537
글번호 167063
답변완료
1. 아래 수식을 사용자함수로 만들어 주시면 고맙겠습니다 2. 사용자함수를 상승이면 1, 하락이면 -1로 만들어 주세요 3. 아래 수식(추세선)을 키움의 강세약세 처럼 색으로 표현 해주시면 고맙겠습니다 =============================================================== input : Period(35),선두께(2); Var:상승색(Black), 하락색(Black); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),tl9(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); Plot1(0); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if h == max(dayHigh(1),dayHigh(2),dayHigh(3),dayHigh(4),dayHigh(5),dayHigh(6),dayHigh(7),dayHigh(8),dayHigh(9),dayHigh(10), dayHigh(11),dayHigh(12),dayHigh(13),dayHigh(14),dayHigh(15),dayHigh(16),dayHigh(17),dayHigh(18),dayHigh(19),DayHigh()) Then T = 1; if L == min(daylow(1),daylow(2),daylow(3),daylow(4),daylow(5),daylow(6),daylow(7),daylow(8),daylow(9),daylow(10), daylow(11),daylow(12),daylow(13),daylow(14),daylow(15),daylow(16),daylow(17),daylow(18),daylow(19),daylow()) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,하락색); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,상승색); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } TL_SetSize(TL1,선두께);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-13 18:46:02

안녕하세요 예스스탁입니다. 1 사용자함수에서 추세선까지 포함하지 못합니다. T값만 리턴되게 작성하면 아래와 같습니다. 외부변수로 일간최고가와 최저가를 계산할 기간을 지정하시면 됩니다. 사용자함수명 : trend 반환값형 : 숫자형 input : N(Numeric); Var :cnt(0),hh(0),ll(0),T(0); hh = 0; ll = 0; For cnt = 0 to N { if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then hh = DayHigh(cnt); if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then ll = DayLow(cnt); } if h == hh Then T = 1; if L == ll Then T = -1; trend = t; 2 Var:T(0),box(0); T = trend(20); If T == -1 Then { If T != T[1] Then { box = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L); Box_SetColor(box,Blue); Box_SetFill(box,true,40); Box_SetExtFill(box,true); } Else { Box_SetEnd(box,NextBarSdate,NextBarStime,L); } } If T == 1 Then { If T != T[1] Then { box = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L); Box_SetColor(box,Red); Box_SetFill(box,true,40); Box_SetExtFill(box,true); } Else { Box_SetEnd(box,NextBarSdate,NextBarStime,L); } } 즐거운 하루되세요 > 팔보채 님이 쓴 글입니다. > 제목 : 추세선 > 1. 아래 수식을 사용자함수로 만들어 주시면 고맙겠습니다 2. 사용자함수를 상승이면 1, 하락이면 -1로 만들어 주세요 3. 아래 수식(추세선)을 키움의 강세약세 처럼 색으로 표현 해주시면 고맙겠습니다 =============================================================== input : Period(35),선두께(2); Var:상승색(Black), 하락색(Black); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),tl9(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); Plot1(0); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if h == max(dayHigh(1),dayHigh(2),dayHigh(3),dayHigh(4),dayHigh(5),dayHigh(6),dayHigh(7),dayHigh(8),dayHigh(9),dayHigh(10), dayHigh(11),dayHigh(12),dayHigh(13),dayHigh(14),dayHigh(15),dayHigh(16),dayHigh(17),dayHigh(18),dayHigh(19),DayHigh()) Then T = 1; if L == min(daylow(1),daylow(2),daylow(3),daylow(4),daylow(5),daylow(6),daylow(7),daylow(8),daylow(9),daylow(10), daylow(11),daylow(12),daylow(13),daylow(14),daylow(15),daylow(16),daylow(17),daylow(18),daylow(19),daylow()) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,하락색); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,상승색); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } TL_SetSize(TL1,선두께);