예스스탁
예스스탁 답변
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(매도선,"매도선");
}
감사합니다.