커뮤니티
수식 문의 드립니다.
2018-10-16 09:50:13
179
글번호 122719
수식 작성에 노고가 많으십니다.
일봉 주봉 월봉에서의 지표를
분봉에 나타 나도록 부탁 드립니다.
/*input:p1(5),p2(15),sig(3);
var:m1(0);
m1=(h+l)/2;
var1=ma(m1,p1)-ma(m1,p2);
var2=ma(var1,sig);
*/
input : ntime1(30),p1(5),p2(15),sig(3);
var : S1(0),D1(0),TM(0),TF(0),HH(0),LL(0);
var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0);
Array : M1[100](0),diff[100](99999999999);
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%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH = H;
LL = L;
for cnt = 1 to 99
{
M1[cnt] = M1[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL[0] Then
LL = L;
M1[0] = (HH+LL)/2;
if HH[P2] > 0 and LL[P2] > 0 then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to P2
{
if cnt < P1 then
sum1 = sum1+M1[cnt];
if cnt < P2 then
sum2 = sum2+M1[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
diff[0] = mav1-mav2;
}
if diff[sig] != 99999999999 then
{
sum3 = 0;
for cnt = 0 to sig-1
{
sum3 = sum3+diff[cnt];
}
mav3 = sum3/sig;
plot1(mav3);
}
}
답변 1
예스스탁 예스스탁 답변
2018-10-17 15:52:44
안녕하세요
예스스탁입니다.
1.
Inputs: P1(5),P2(15),sig(3);
var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0);
var : ii(0),sum(0);
sum = 0;
for ii = 0 to sig-1
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to P2
{
if cnt < P1 Then
sum1 = sum1 + (DayHigh(ii+cnt)+DayLow(ii+cnt))/2;
if cnt < P2 Then
sum2 = sum2 + (DayHigh(ii+cnt)+DayLow(ii+cnt))/2;
}
mav1 = sum1/P1;
mav2 = sum2/P2;
var1 = mav1-mav2;
sum = sum + var1;
}
var2 = sum/sig;
plot1(var2);
2
Inputs: P1(5),P2(15),sig(3);
var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0),sum(0);
Array : wh[50](0),wl[50](0),wm[50](0),diff[50](999999999);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
{
wh[0] = h;
wl[0] = l;
for cnt = 1 to 49
{
wh[cnt] = wh[cnt-1][1];
wl[cnt] = wl[cnt-1][1];
wm[cnt] = wm[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if h > wh[0] Then
wh[0] = h;
if l < wl[0] Then
wl[0] = l;
wm[0] = (wh[0]+wl[0])/2;
if wm[P2-1] > 0 then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to P2
{
if cnt < P1 Then
sum1 = sum1 + wm[cnt];
if cnt < P2 Then
sum2 = sum2 + wm[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
diff[0] = mav1-mav2;
}
if diff[sig-1] != 999999999 then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
var2 = sum/sig;
plot1(var2);
}
3
Inputs: P1(5),P2(15),sig(3);
var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0),sum(0);
Array : mh[50](0),ml[50](0),mm[50](0),diff[50](999999999);
if bdate > bdate[1]+30 Then
{
mh[0] = h;
ml[0] = l;
for cnt = 1 to 49
{
mh[cnt] = mh[cnt-1][1];
ml[cnt] = ml[cnt-1][1];
mm[cnt] = mm[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if h > mh[0] Then
mh[0] = h;
if l < ml[0] Then
ml[0] = l;
mm[0] = (mh[0]+ml[0])/2;
if mm[P2-1] > 0 then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to P2
{
if cnt < P1 Then
sum1 = sum1 + mm[cnt];
if cnt < P2 Then
sum2 = sum2 + mm[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
diff[0] = mav1-mav2;
}
if diff[sig-1] != 999999999 then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
var2 = sum/sig;
plot1(var2);
}
즐거운 하루되세요
> 뮬리 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
> 수식 작성에 노고가 많으십니다.
일봉 주봉 월봉에서의 지표를
분봉에 나타 나도록 부탁 드립니다.
/*input:p1(5),p2(15),sig(3);
var:m1(0);
m1=(h+l)/2;
var1=ma(m1,p1)-ma(m1,p2);
var2=ma(var1,sig);
*/
input : ntime1(30),p1(5),p2(15),sig(3);
var : S1(0),D1(0),TM(0),TF(0),HH(0),LL(0);
var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0);
Array : M1[100](0),diff[100](99999999999);
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%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH = H;
LL = L;
for cnt = 1 to 99
{
M1[cnt] = M1[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL[0] Then
LL = L;
M1[0] = (HH+LL)/2;
if HH[P2] > 0 and LL[P2] > 0 then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to P2
{
if cnt < P1 then
sum1 = sum1+M1[cnt];
if cnt < P2 then
sum2 = sum2+M1[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
diff[0] = mav1-mav2;
}
if diff[sig] != 99999999999 then
{
sum3 = 0;
for cnt = 0 to sig-1
{
sum3 = sum3+diff[cnt];
}
mav3 = sum3/sig;
plot1(mav3);
}
}