커뮤니티
지표 수정 부탁드립니다.
2025-06-17 13:06:21
248
글번호 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(매도선,"매도선");
}
감사합니다.
이전글