커뮤니티

지표 수정 부탁드립니다.

프로필 이미지
길게가자
2025-06-17 13:06:21
174
글번호 191819
답변완료
안녕하세요. 항상 많은 도움 주셔서 감사합니다. 아래의 수식은 예스스탁을 통해 만든 수식인데요. input에 원하는 분을 입력하면 해당 분차트 기준으로 값이 계산되어 선으로 표시되게 하는 수식입니다. 제가 원하는 것은 여러 개의 시간을 입력할 수 있도록 동일한 수식을 합치고 싶습니다. 예를 들어 5분, 10분, 15분, 30분, 60분, 120분, 240분을 하나의 수식에 모두 입력해서 하나의 수식으로 각 분차트에서 계산된 값들이 선으로 나타나게 하고 싶습니다. 아래의 수식을 참조하여 수정 부탁드립니다. 감사합니다. input : 분(10),LENGTH(14); var : S1(0),D1(0),TM(0),TF(0),cnt(0),DFact(0); var : sum1(0),mav1(0),DPO(0),DPO1(0),DPO2(0); var : T(0),HV(0),HH(0),LV(0),LL(0); var : 매수선(0),매도선(0); Array : C1[100](0),H1[100](0),L1[100](0); DFact = (Length * 0.5) + 1; if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { for cnt = 99 downto 1 { C1[cnt] = C1[cnt-1]; H1[cnt] = H1[cnt-1]; L1[cnt] = L1[cnt-1]; } H1[0] = H; L1[0] = L; DPO1 = DPO[1]; DPO2 = DPO1[1]; if DPO1 > 0 and DPO2 <= 0 Then { T = 1; HV = DPO1; HH = H1[1]; 매도선 = LL; } if DPO1 < 0 and DPO2 >= 0 Then { T = -1; LV = DPO1; LL = L1[1]; 매수선 = HH; } if T == 1 Then { if DPO1 > HV Then { HV = DPO1; HH = H1[1]; } } if T == -1 Then { if DPO1 < LV Then { LV = DPO1; LL = L1[1]; } } } C1[0] = C; if H1[0] > 0 and H > H1[0] Then H1[0] = H; if L1[0] > 0 and L < L1[0] Then L1[0] = L; if C1[LENGTH-DFact] > 0 then { sum1 = 0; for cnt = 0 to LENGTH-1 { sum1 = sum1+C1[cnt+DFact]; } mav1 = sum1/LENGTH; DPO = C - mav1; } if 매수선 > 0 Then Plot1(매수선,"매수선"); if 매도선 > 0 Then Plot2(매도선,"매도선"); } 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-06-18 09:18:21

안녕하세요 예스스탁입니다. input : 분1(5),LENGTH1(14); var : SS(0),DD(0),TM(0),TF(0),cnt(0); var : DFact1(0),sum1(0),mav1(0),DPO1(0),DPO1_1(0),DPO1_2(0); var : T1(0),HV1(0),HH1(0),LV1(0),LL1(0); var : 매수선1(0),매도선1(0); Array : C1[250](0),H1[250](0),L1[250](0); DFact1 = (LENGTH1 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1440-SS; TF = TM%분1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분1 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분1 > 1 and TM >= TM[1]+분1) or (Bdate == Bdate[1] and 분1 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C1[cnt] = C1[cnt-1]; H1[cnt] = H1[cnt-1]; L1[cnt] = L1[cnt-1]; } H1[0] = H; L1[0] = L; DPO1_1 = DPO1[1]; DPO1_2 = DPO1_1[1]; if DPO1_1 > 0 and DPO1_2 <= 0 Then { T1 = 1; HV1 = DPO1_1; HH1 = H1[1]; 매도선1 = LL1; } if DPO1_1 < 0 and DPO1_2 >= 0 Then { T1 = -1; LV1 = DPO1_1; LL1 = L1[1]; 매수선1 = HH1; } if T1 == 1 Then { if DPO1_1 > HV1 Then { HV1 = DPO1_1; HH1 = H1[1]; } } if T1 == -1 Then { if DPO1_1 < LV1 Then { LV1 = DPO1_1; LL1 = L1[1]; } } } C1[0] = C; if H1[0] > 0 and H > H1[0] Then H1[0] = H; if L1[0] > 0 and L < L1[0] Then L1[0] = L; if C1[LENGTH1-DFact1] > 0 then { sum1 = 0; for cnt = 0 to LENGTH1-1 { sum1 = sum1+C1[cnt+DFact1]; } mav1 = sum1/LENGTH1; DPO1 = C - mav1; } if 매수선1 > 0 Then Plot1(매수선1,"매수선1"); if 매도선1 > 0 Then Plot2(매도선1,"매도선1"); } input : 분2(10),LENGTH2(14); var : DFact2(0),sum2(0),mav2(0),DPO2(0),DPO2_1(0),DPO2_2(0); var : T2(0),HV2(0),HH2(0),LV2(0),LL2(0); var : 매수선2(0),매도선2(0); Array : C2[250](0),H2[250](0),L2[250](0); DFact2 = (LENGTH2 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1440-SS; TF = TM%분2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분2 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분2 > 1 and TM >= TM[1]+분2) or (Bdate == Bdate[1] and 분2 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C2[cnt] = C2[cnt-1]; H2[cnt] = H2[cnt-1]; L2[cnt] = L2[cnt-1]; } H2[0] = H; L2[0] = L; DPO2_1 = DPO2[1]; DPO2_2 = DPO2_1[1]; if DPO2_1 > 0 and DPO2_2 <= 0 Then { T2 = 1; HV2 = DPO2_1; HH2 = H2[1]; 매도선2 = LL2; } if DPO2_1 < 0 and DPO2_2 >= 0 Then { T2 = -1; LV2 = DPO2_1; LL2 = L2[1]; 매수선2 = HH2; } if T2 == 1 Then { if DPO2_1 > HV2 Then { HV2 = DPO2_1; HH2 = H2[1]; } } if T2 == -1 Then { if DPO2_1 < LV2 Then { LV2 = DPO2_1; LL2 = L2[1]; } } } C2[0] = C; if H2[0] > 0 and H > H2[0] Then H2[0] = H; if L2[0] > 0 and L < L2[0] Then L2[0] = L; if C2[LENGTH2-DFact2] > 0 then { sum2 = 0; for cnt = 0 to LENGTH2-1 { sum2 = sum2+C2[cnt+DFact2]; } mav2 = sum2/LENGTH2; DPO2 = C - mav2; } if 매수선2 > 0 Then PloT3(매수선2,"매수선2"); if 매도선2 > 0 Then Plot4(매도선2,"매도선2"); } input : 분3(15),LENGTH3(14); var : DFact3(0),sum3(0),mav3(0),DPO3(0),DPO3_1(0),DPO3_2(0); var : T3(0),HV3(0),HH3(0),LV3(0),LL3(0); var : 매수선3(0),매도선3(0); Array : C3[250](0),H3[250](0),L3[250](0); DFact3 = (LENGTH3 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1440-SS; TF = TM%분3; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분3 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분3 > 1 and TM >= TM[1]+분3) or (Bdate == Bdate[1] and 분3 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C3[cnt] = C3[cnt-1]; H3[cnt] = H3[cnt-1]; L3[cnt] = L3[cnt-1]; } H3[0] = H; L3[0] = L; DPO3_1 = DPO3[1]; DPO3_2 = DPO3_1[1]; if DPO3_1 > 0 and DPO3_2 <= 0 Then { T3 = 1; HV3 = DPO3_1; HH3 = H3[1]; 매도선3 = LL3; } if DPO3_1 < 0 and DPO3_2 >= 0 Then { T3 = -1; LV3 = DPO3_1; LL3 = L3[1]; 매수선3 = HH3; } if T3 == 1 Then { if DPO3_1 > HV3 Then { HV3 = DPO3_1; HH3 = H3[1]; } } if T3 == -1 Then { if DPO3_1 < LV3 Then { LV3 = DPO3_1; LL3 = L3[1]; } } } C3[0] = C; if H3[0] > 0 and H > H3[0] Then H3[0] = H; if L3[0] > 0 and L < L3[0] Then L3[0] = L; if C3[LENGTH3-DFact3] > 0 then { sum3 = 0; for cnt = 0 to LENGTH3-1 { sum3 = sum3+C3[cnt+DFact3]; } mav3 = sum3/LENGTH3; DPO3 = C - mav3; } if 매수선3 > 0 Then Plot5(매수선3,"매수선3"); if 매도선3 > 0 Then Plot6(매도선3,"매도선3"); } input : 분4(30),LENGTH4(14); var : DFact4(0),sum4(0),mav4(0),DPO4(0),DPO4_1(0),DPO4_2(0); var : T4(0),HV4(0),HH4(0),LV4(0),LL4(0); var : 매수선4(0),매도선4(0); Array : C4[250](0),H4[250](0),L4[250](0); DFact4 = (LENGTH4 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1440-SS; TF = TM%분4; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분4 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분4 > 1 and TM >= TM[1]+분4) or (Bdate == Bdate[1] and 분4 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C4[cnt] = C4[cnt-1]; H4[cnt] = H4[cnt-1]; L4[cnt] = L4[cnt-1]; } H4[0] = H; L4[0] = L; DPO4_1 = DPO4[1]; DPO4_2 = DPO4_1[1]; if DPO4_1 > 0 and DPO4_2 <= 0 Then { T4 = 1; HV4 = DPO4_1; HH4 = H4[1]; 매도선4 = LL4; } if DPO4_1 < 0 and DPO4_2 >= 0 Then { T4 = -1; LV4 = DPO4_1; LL4 = L4[1]; 매수선4 = HH4; } if T4 == 1 Then { if DPO4_1 > HV4 Then { HV4 = DPO4_1; HH4 = H4[1]; } } if T4 == -1 Then { if DPO4_1 < LV4 Then { LV4 = DPO4_1; LL4 = L4[1]; } } } C4[0] = C; if H4[0] > 0 and H > H4[0] Then H4[0] = H; if L4[0] > 0 and L < L4[0] Then L4[0] = L; if C4[LENGTH4-DFact4] > 0 then { sum4 = 0; for cnt = 0 to LENGTH4-1 { sum4 = sum4+C4[cnt+DFact4]; } mav4 = sum4/LENGTH4; DPO4 = C - mav4; } if 매수선4 > 0 Then PloT7(매수선4,"매수선4"); if 매도선4 > 0 Then PloT8(매도선4,"매도선4"); } input : 분5(60),LENGTH5(14); var : DFact5(0),sum5(0),mav5(0),DPO5(0),DPO5_1(0),DPO5_2(0); var : T5(0),HV5(0),HH5(0),LV5(0),LL5(0); var : 매수선5(0),매도선5(0); Array : C5[250](0),H5[250](0),L5[250](0); DFact5 = (LENGTH5 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1550-SS; TF = TM%분5; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분5 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분5 > 1 and TM >= TM[1]+분5) or (Bdate == Bdate[1] and 분5 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C5[cnt] = C5[cnt-1]; H5[cnt] = H5[cnt-1]; L5[cnt] = L5[cnt-1]; } H5[0] = H; L5[0] = L; DPO5_1 = DPO5[1]; DPO5_2 = DPO5_1[1]; if DPO5_1 > 0 and DPO5_2 <= 0 Then { T5 = 1; HV5 = DPO5_1; HH5 = H5[1]; 매도선5 = LL5; } if DPO5_1 < 0 and DPO5_2 >= 0 Then { T5 = -1; LV5 = DPO5_1; LL5 = L5[1]; 매수선5 = HH5; } if T5 == 1 Then { if DPO5_1 > HV5 Then { HV5 = DPO5_1; HH5 = H5[1]; } } if T5 == -1 Then { if DPO5_1 < LV5 Then { LV5 = DPO5_1; LL5 = L5[1]; } } } C5[0] = C; if H5[0] > 0 and H > H5[0] Then H5[0] = H; if L5[0] > 0 and L < L5[0] Then L5[0] = L; if C5[LENGTH5-DFact5] > 0 then { sum5 = 0; for cnt = 0 to LENGTH5-1 { sum5 = sum5+C5[cnt+DFact5]; } mav5 = sum5/LENGTH5; DPO5 = C - mav5; } if 매수선5 > 0 Then PloT9(매수선5,"매수선5"); if 매도선5 > 0 Then PloT10(매도선5,"매도선5"); } input : 분6(120),LENGTH6(14); var : DFact6(0),sum6(0),mav6(0),DPO6(0),DPO6_1(0),DPO6_2(0); var : T6(0),HV6(0),HH6(0),LV6(0),LL6(0); var : 매수선6(0),매도선6(0); Array : C6[250](0),H6[250](0),L6[250](0); DFact6 = (LENGTH6 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1660-SS; TF = TM%분6; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분6 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분6 > 1 and TM >= TM[1]+분6) or (Bdate == Bdate[1] and 분6 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C6[cnt] = C6[cnt-1]; H6[cnt] = H6[cnt-1]; L6[cnt] = L6[cnt-1]; } H6[0] = H; L6[0] = L; DPO6_1 = DPO6[1]; DPO6_2 = DPO6_1[1]; if DPO6_1 > 0 and DPO6_2 <= 0 Then { T6 = 1; HV6 = DPO6_1; HH6 = H6[1]; 매도선6 = LL6; } if DPO6_1 < 0 and DPO6_2 >= 0 Then { T6 = -1; LV6 = DPO6_1; LL6 = L6[1]; 매수선6 = HH6; } if T6 == 1 Then { if DPO6_1 > HV6 Then { HV6 = DPO6_1; HH6 = H6[1]; } } if T6 == -1 Then { if DPO6_1 < LV6 Then { LV6 = DPO6_1; LL6 = L6[1]; } } } C6[0] = C; if H6[0] > 0 and H > H6[0] Then H6[0] = H; if L6[0] > 0 and L < L6[0] Then L6[0] = L; if C6[LENGTH6-DFact6] > 0 then { sum6 = 0; for cnt = 0 to LENGTH6-1 { sum6 = sum6+C6[cnt+DFact6]; } mav6 = sum6/LENGTH6; DPO6 = C - mav6; } if 매수선6 > 0 Then PloT11(매수선6,"매수선6"); if 매도선6 > 0 Then PloT12(매도선6,"매도선6"); } input : 분7(240),LENGTH7(14); var : DFact7(0),sum7(0),mav7(0),DPO7(0),DPO7_1(0),DPO7_2(0); var : T7(0),HV7(0),HH7(0),LV7(0),LL7(0); var : 매수선7(0),매도선7(0); Array : C7[250](0),H7[250](0),L7[250](0); DFact7 = (LENGTH7 * 0.5) + 1; if Bdate != Bdate[1] Then { SS = TimeToMinutes(stime); DD = sdate; } if DD > 0 then { if sdate == DD Then TM = TimeToMinutes(stime)-SS; Else TM = TimeToMinutes(stime)+1770-SS; TF = TM%분7; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분7 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분7 > 1 and TM >= TM[1]+분7) or (Bdate == Bdate[1] and 분7 == 1 and TM > TM[1]) Then { for cnt = 246 downto 1 { C7[cnt] = C7[cnt-1]; H7[cnt] = H7[cnt-1]; L7[cnt] = L7[cnt-1]; } H7[0] = H; L7[0] = L; DPO7_1 = DPO7[1]; DPO7_2 = DPO7_1[1]; if DPO7_1 > 0 and DPO7_2 <= 0 Then { T7 = 1; HV7 = DPO7_1; HH7 = H7[1]; 매도선7 = LL7; } if DPO7_1 < 0 and DPO7_2 >= 0 Then { T7 = -1; LV7 = DPO7_1; LL7 = L7[1]; 매수선7 = HH7; } if T7 == 1 Then { if DPO7_1 > HV7 Then { HV7 = DPO7_1; HH7 = H7[1]; } } if T7 == -1 Then { if DPO7_1 < LV7 Then { LV7 = DPO7_1; LL7 = L7[1]; } } } C7[0] = C; if H7[0] > 0 and H > H7[0] Then H7[0] = H; if L7[0] > 0 and L < L7[0] Then L7[0] = L; if C7[LENGTH7-DFact7] > 0 then { sum7 = 0; for cnt = 0 to LENGTH7-1 { sum7 = sum7+C7[cnt+DFact7]; } mav7 = sum7/LENGTH7; DPO7 = C - mav7; } if 매수선7 > 0 Then PloT13(매수선7,"매수선7"); if 매도선7 > 0 Then PloT14(매도선7,"매도선7"); } 즐거운 하루되세요 > 길게가자 님이 쓴 글입니다. > 제목 : 지표 수정 부탁드립니다. > 안녕하세요. 항상 많은 도움 주셔서 감사합니다. 아래의 수식은 예스스탁을 통해 만든 수식인데요. input에 원하는 분을 입력하면 해당 분차트 기준으로 값이 계산되어 선으로 표시되게 하는 수식입니다. 제가 원하는 것은 여러 개의 시간을 입력할 수 있도록 동일한 수식을 합치고 싶습니다. 예를 들어 5분, 10분, 15분, 30분, 60분, 120분, 240분을 하나의 수식에 모두 입력해서 하나의 수식으로 각 분차트에서 계산된 값들이 선으로 나타나게 하고 싶습니다. 아래의 수식을 참조하여 수정 부탁드립니다. 감사합니다. input : 분(10),LENGTH(14); var : S1(0),D1(0),TM(0),TF(0),cnt(0),DFact(0); var : sum1(0),mav1(0),DPO(0),DPO1(0),DPO2(0); var : T(0),HV(0),HH(0),LV(0),LL(0); var : 매수선(0),매도선(0); Array : C1[100](0),H1[100](0),L1[100](0); DFact = (Length * 0.5) + 1; if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { for cnt = 99 downto 1 { C1[cnt] = C1[cnt-1]; H1[cnt] = H1[cnt-1]; L1[cnt] = L1[cnt-1]; } H1[0] = H; L1[0] = L; DPO1 = DPO[1]; DPO2 = DPO1[1]; if DPO1 > 0 and DPO2 <= 0 Then { T = 1; HV = DPO1; HH = H1[1]; 매도선 = LL; } if DPO1 < 0 and DPO2 >= 0 Then { T = -1; LV = DPO1; LL = L1[1]; 매수선 = HH; } if T == 1 Then { if DPO1 > HV Then { HV = DPO1; HH = H1[1]; } } if T == -1 Then { if DPO1 < LV Then { LV = DPO1; LL = L1[1]; } } } C1[0] = C; if H1[0] > 0 and H > H1[0] Then H1[0] = H; if L1[0] > 0 and L < L1[0] Then L1[0] = L; if C1[LENGTH-DFact] > 0 then { sum1 = 0; for cnt = 0 to LENGTH-1 { sum1 = sum1+C1[cnt+DFact]; } mav1 = sum1/LENGTH; DPO = C - mav1; } if 매수선 > 0 Then Plot1(매수선,"매수선"); if 매도선 > 0 Then Plot2(매도선,"매도선"); } 감사합니다.