커뮤니티
산식검토요
2011-04-26 10:58:07
812
글번호 37965
작업중에 산식중 무엇이 잘못됐는지 프로그램이 다운 돼버려서 질문드립니다
그림처럼 원하는 구간에 var50을 표시하기 위한 수식입니다 검토부탁드립니다
조건
1. crossup(Padong,0)일때부터 최근의 UPTypeV2==-5 일때까지
Padong값이 -5이상일것 (CountIF(Padong<-4,(UpTypeI4-UpTypeI2))<=1)
2.구간 : UPTypeI4[0]에서 UPTypeV2==-5일때의 index값 기준
var : TX20(0),TX40(0),TX60(0),TX80(0),TX100(0);
var : TR20(0),TR40(0),TR60(0),TR80(0),TR100(0);
var : J(0);
TX40 = ema(TRIX(20),18); TR20 = TRIX(20);
TX40 = ema(TRIX(40),32); TR40 = TRIX(40);
TX60 = ema(TRIX(60),48); TR60 = TRIX(60);
TX80 = ema(TRIX(80),64); TR80 = TRIX(80);
TX100 = ema(TRIX(100),80); TR100= TRIX(100);
var : Padong(0);
Padong=iff(TR20>TX20,1,-1)+iff(TR40>TX40,1,-1)+iff(TR60>TX60,1,-1)
+iff(TR80>TX80,1,-1)+iff(TR100>TX100,1,-1);
var: Type01(0),Point01(0);
Array : UPTypeV2[5](0),UPTypeI2[5](0);
Array : DNTypeV2[5](0),DNTypeI2[5](0);
if Padong[2]==Padong[1] and Padong[1]<Padong[0] and Padong[1]==-5 Then { //
UPTypeV2[0] = Padong[1]; Type01=1;Point01=0;
UPTypeI2[0] = index[1];
For J=1 to 4 {
UPTypeV2[J] = UPTypeV2[J-1][1];
UPTypeI2[J] = UPTypeI2[J-1][1];
}
}
# CrossUp
Array : UPTypeI4[5](0),UPTypeM4[5](0);
If CrossUp(Padong,0) Then {
UPTypeI4[0] = index; Type01=0;
UPTypeM4[0] = MA(C,05);
For J=1 to 4 {
UPTypeI4[J] = UPTypeI4[J-1][1];
UPTypeM4[J] = UPTypeM4[J-1][1];
}
}
#######################
# 구간신호 #
#######################
# CountIF(Padong>-9,(UpTypeI4-UpTypeI2))<=1 and UPTypeV2==-10 and UPTypeV2
# padong[1]<0 and padong[0]>0 and
var50=0;
If CrossUp(Padong,0) and UpTypeI4>UpTypeI2 and CountIF(Padong<-4,(UpTypeI4-UpTypeI2))<=1 Then //
var50=2;
- 1. 이미지3.jpg (0.23 MB)
답변 1
예스스탁 예스스탁 답변
2011-04-26 16:06:43
안녕하세요
예스스탁입니다.
UpTypeI4>UpTypeI2 and CountIF(Padong<-4,(UpTypeI4-UpTypeI2))<=1
수식에 에러가 발생하는 이유는
배열변수를 일반변수와 같이 if문에 사용하셔야 합니다.
배열변수는 꼭 그 배열방의 번호를 같이 붙여주셔야 합니다.
아래와 같이 배열방의 번호를 지정해 주시면 됩니다.
UpTypeI4[0]>UpTypeI2[0] and CountIF(Padong<-4,(UpTypeI4[0]-UpTypeI2[0]))<=1
그외에 부분은 정확히 이해하지 못했습니다.
crossup(Padong,0)일때부터 2를 할당하여
특정 조건이 만족하면 0으로 해제하실 의도시면
if crossup(Padong,0) then
var2 = 2;
if 해제조건 then
var2 = 0;
과 같이 작성하시면 됩니다.
유지조건을 지정하실 필요는 없으시며
해제될 조건식을 넣어주시면 됩니다.
즐거운 하루되세요
> 티끌 님이 쓴 글입니다.
> 제목 : 산식검토요
> 작업중에 산식중 무엇이 잘못됐는지 프로그램이 다운 돼버려서 질문드립니다
그림처럼 원하는 구간에 var50을 표시하기 위한 수식입니다 검토부탁드립니다
조건
1. crossup(Padong,0)일때부터 최근의 UPTypeV2==-5 일때까지
Padong값이 -5이상일것 (CountIF(Padong<-4,(UpTypeI4-UpTypeI2))<=1)
2.구간 : UPTypeI4[0]에서 UPTypeV2==-5일때의 index값 기준
var : TX20(0),TX40(0),TX60(0),TX80(0),TX100(0);
var : TR20(0),TR40(0),TR60(0),TR80(0),TR100(0);
var : J(0);
TX40 = ema(TRIX(20),18); TR20 = TRIX(20);
TX40 = ema(TRIX(40),32); TR40 = TRIX(40);
TX60 = ema(TRIX(60),48); TR60 = TRIX(60);
TX80 = ema(TRIX(80),64); TR80 = TRIX(80);
TX100 = ema(TRIX(100),80); TR100= TRIX(100);
var : Padong(0);
Padong=iff(TR20>TX20,1,-1)+iff(TR40>TX40,1,-1)+iff(TR60>TX60,1,-1)
+iff(TR80>TX80,1,-1)+iff(TR100>TX100,1,-1);
var: Type01(0),Point01(0);
Array : UPTypeV2[5](0),UPTypeI2[5](0);
Array : DNTypeV2[5](0),DNTypeI2[5](0);
if Padong[2]==Padong[1] and Padong[1]<Padong[0] and Padong[1]==-5 Then { //
UPTypeV2[0] = Padong[1]; Type01=1;Point01=0;
UPTypeI2[0] = index[1];
For J=1 to 4 {
UPTypeV2[J] = UPTypeV2[J-1][1];
UPTypeI2[J] = UPTypeI2[J-1][1];
}
}
# CrossUp
Array : UPTypeI4[5](0),UPTypeM4[5](0);
If CrossUp(Padong,0) Then {
UPTypeI4[0] = index; Type01=0;
UPTypeM4[0] = MA(C,05);
For J=1 to 4 {
UPTypeI4[J] = UPTypeI4[J-1][1];
UPTypeM4[J] = UPTypeM4[J-1][1];
}
}
#######################
# 구간신호 #
#######################
# CountIF(Padong>-9,(UpTypeI4-UpTypeI2))<=1 and UPTypeV2==-10 and UPTypeV2
# padong[1]<0 and padong[0]>0 and
var50=0;
If CrossUp(Padong,0) and UpTypeI4>UpTypeI2 and CountIF(Padong<-4,(UpTypeI4-UpTypeI2))<=1 Then //
var50=2;