커뮤니티

함수 작성 부탁드립니다

프로필 이미지
이만스닥
2023-08-10 15:25:00
935
글번호 171389
답변완료
안녕하세요 만수무강하십쇼 해당 지표 잘 적어주셔서 잘 사용하고 있습니다. 항상 노고에 감사드립니다. 해당 지표를 항상 복붙하기가 힘들어서 그런데, 사용자 함수로 만들어서 쓰고 싶습니다. 사용자 함수로 작성 부탁드립니다. (__) ex)OHLC(090000, HH) 이런식으로요. 090000은 시작 시간입니다. HH 대신 MM 또는 LL 또는 CC를 넣어서 쓸수 있도록 부탁드립니다. ------------ input : 기준시간(090000); var : cnt(0); Array : OO[20](0),HH[20](0),LL[20](0),CC[20](0),MM[20](0); if (sdate != sdate[1] and stime >= 기준시간) or (sdate == sdate[1] and stime >= 기준시간 and stime[1] < 기준시간) Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 19 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; } } CC[0] = C; if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; plot1(OO[0],"당일시가"); plot2(OO[1],"전일시가"); plot3(HH[0],"당일고가"); plot4(HH[1],"전일고가"); plot5(LL[0],"당일저가"); plot6(LL[1],"전일저가"); plot7(MM[0],"당일중심"); plot8(MM[1],"전일중심"); --------------- 감사드립니다.
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-08-10 16:50:15

안녕하세요 예스스탁입니다. 해당 함수 사용자함수로 만드신다면 이전일을 지정해서도 값을 리턴되야 하므로 매개변수를 3개 지정하셔야 합니다. 첫번째 매개변수는 시간 두번째 매개변수는 "OO","HH","LL","CC","MM"과 같이 지정 세번째는 이전일입니다. 당일은 0, 전일은 1과 같은 순서입니다. 당일시가 --> OHLC(90000,"OO",0); 전일고가 --> OHLC(90000,"HH",1); 사용자함수명 : OHLC 반환값형 : 숫자형 input : 기준시간(Numeric),valuetype(String),prev(Numeric); var : cnt(0); Array : OO[20](0),HH[20](0),LL[20](0),CC[20](0),MM[20](0); if (sdate != sdate[1] and stime >= 기준시간) or (sdate == sdate[1] and stime >= 기준시간 and stime[1] < 기준시간) Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 19 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; } } CC[0] = C; if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; if valuetype == "OO" Then OHLC = OO[prev]; if valuetype == "HH" Then OHLC = HH[prev]; if valuetype == "LL" Then OHLC = LL[prev]; if valuetype == "CC" Then OHLC = CC[prev]; if valuetype == "MM" Then OHLC = MM[prev]; 즐거운 하루되세요 > 이만스닥 님이 쓴 글입니다. > 제목 : 함수 작성 부탁드립니다 > 안녕하세요 만수무강하십쇼 해당 지표 잘 적어주셔서 잘 사용하고 있습니다. 항상 노고에 감사드립니다. 해당 지표를 항상 복붙하기가 힘들어서 그런데, 사용자 함수로 만들어서 쓰고 싶습니다. 사용자 함수로 작성 부탁드립니다. (__) ex)OHLC(090000, HH) 이런식으로요. 090000은 시작 시간입니다. HH 대신 MM 또는 LL 또는 CC를 넣어서 쓸수 있도록 부탁드립니다. ------------ input : 기준시간(090000); var : cnt(0); Array : OO[20](0),HH[20](0),LL[20](0),CC[20](0),MM[20](0); if (sdate != sdate[1] and stime >= 기준시간) or (sdate == sdate[1] and stime >= 기준시간 and stime[1] < 기준시간) Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 19 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; } } CC[0] = C; if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; plot1(OO[0],"당일시가"); plot2(OO[1],"전일시가"); plot3(HH[0],"당일고가"); plot4(HH[1],"전일고가"); plot5(LL[0],"당일저가"); plot6(LL[1],"전일저가"); plot7(MM[0],"당일중심"); plot8(MM[1],"전일중심"); --------------- 감사드립니다.