커뮤니티
질문드립니다~
2017-07-04 20:54:55
131
글번호 111004
안녕하세요
예스스탁입니다.
아래식 적용해 보시시기 바랍니다.
식상 var1값이 1이나 0일때로 구분해서 식 작성하시면 됩니다.
input : 분주기(30),P(5),분주기1(15);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum(0),mav(0),tf1(0);
Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0);
Array : C1[100](0),T1[100](0);
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{
S1 = TimeToMinutes(100000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF < TF[1]) Then{
OO[0] = o;
HH[0] = H;
LL[0] = L;
TT[0] = stime;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF1 < TF1[1]) Then{
T1[0] = stime;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
T1[cnt] = T1[cnt-1][1];
}
}
C1[0] = C;
}
if TT[0] == T1[0] Then
var1 = 1;
Else
var1 = 0;
plot1(var1);
즐거운 하루되세요
> 겐지 님이 쓴 글입니다.
> 제목 : 문의드립니다~
> input : 분주기(30),P(5),분주기1(15);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum(0),mav(0),tf1(0);
Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0);
Array : C1[100](0),T1[100](0);
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{
S1 = TimeToMinutes(100000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF < TF[1]) Then{
OO[0] = o;
HH[0] = H;
LL[0] = L;
TT[0] = stime;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF1 < TF1[1]) Then{
T1[cnt] = stime;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
T1[cnt] = T1[cnt-1][1];
}
}
C1[0] = C;
}
1.cc[1]과 c1[1]이 같지않은 경우를 식으로 표현하고 싶은데요~
틱분주기15분단위에서 이전종가가10시45분 11시15분 11시45분 12시15분 12시45분식으로 15분단위 시간일때에
5일선과 20일선데드크로스시매도한다라는걸 제가 식으로 표현하니깐
if cc[1]!=c1[1] then crossdown(tic5,tic20);
이렇게 표현을 했거든요
그런데 만약 2시가격인cc[1]과 2시15분가격인c[1]이 서로가격이 같아지게되면
2시15분이후에 데드크로스가나온자리를 시스템이 인지를 못하더라구요
그래서 cc[1]의 시간과 c1[1]의 시간이 같지않을때 또는 15분 45분단위시간을 식으로 표현하고 싶습니다.
새로받은식에서tt[1]과 t1[1]이 있던데요 plot로 표현해 보니깐
빨간세로선으로 새벽12시30분 그리고 낮10시30분에 세로로 가격이 그어지던데
tt랑 t1이 각각30분주기시작시간 15분주기시작시간을 나타낸거 같은데요
plot으로 표현해 보니깐 당일시작시간이 나타나서요
제가원하는 식이 tt[1]!=t1[1]이렇게 표현하면 되는건지요?
감사합니다~
================================================================================================================================================================================
이전에 질문내용과 답변받은 내용인데요~
다시 적용해 볼려니깐 잘 안되어서요~
원하는 식은 현재가격이 30분봉상 3봉전의 종가가격보다 높고
30분단위가 아니라 15분봉의 15분단위시간의 바로이전종가가격보다 높을때
5일선과20일선골든크로스시에 매수를 식으로 표현하고 싶은데요~
위식대로 하면은
if c>cc[3] and c>c1[1] and var1 = 0 and crossup(ma(c,5),ma(c,20)) then
buy() ;
이렇게 표현되는 거 같은데 검증해 보니깐 제대로 적용이 안됩니다~
원하는 부분은 30분봉상 4봉전종가가격이 형성되기 15분전의 가격과 비교하기 위해서
여쭈어 보는 거거든요~
30분~45분, 60분~15분사이에서는 진입신호가 뜨지 않고 15분~30분, 45분~60분 사이에서만 진입신호가 뜨게끔 할려는 겁니다.~
도움부탁드릴게요~ 감사합니다!
답변 1
예스스탁 예스스탁 답변
2017-07-05 11:39:47
안녕하세요
예스스탁입니다.
시간으로 15분~30분, 45분~60분 사이에서만
신호가 발생하게 수정했습니다.
input : 분주기(30),P(5),분주기1(15);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum(0),mav(0),tf1(0),TFF(0);
Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0);
Array : C1[100](0),T1[100](0);
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{
S1 = TimeToMinutes(100000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TFF = TM%60;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF < TF[1]) Then{
OO[0] = o;
HH[0] = H;
LL[0] = L;
TT[0] = stime;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF1 < TF1[1]) Then{
T1[0] = stime;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
T1[cnt] = T1[cnt-1][1];
}
}
C1[0] = C;
}
if c>cc[3] and c>c1[1] and crossup(ma(c,5),ma(c,20)) and
((TFF >= 15 and TFF < 30) or (TFF >= 45)) then
buy() ;
즐거운 하루되세요
> 겐지 님이 쓴 글입니다.
> 제목 : 질문드립니다~
> 안녕하세요
예스스탁입니다.
아래식 적용해 보시시기 바랍니다.
식상 var1값이 1이나 0일때로 구분해서 식 작성하시면 됩니다.
input : 분주기(30),P(5),분주기1(15);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum(0),mav(0),tf1(0);
Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0);
Array : C1[100](0),T1[100](0);
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{
S1 = TimeToMinutes(100000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF < TF[1]) Then{
OO[0] = o;
HH[0] = H;
LL[0] = L;
TT[0] = stime;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF1 < TF1[1]) Then{
T1[0] = stime;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
T1[cnt] = T1[cnt-1][1];
}
}
C1[0] = C;
}
if TT[0] == T1[0] Then
var1 = 1;
Else
var1 = 0;
plot1(var1);
즐거운 하루되세요
> 겐지 님이 쓴 글입니다.
> 제목 : 문의드립니다~
> input : 분주기(30),P(5),분주기1(15);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum(0),mav(0),tf1(0);
Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0);
Array : C1[100](0),T1[100](0);
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{
S1 = TimeToMinutes(100000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF < TF[1]) Then{
OO[0] = o;
HH[0] = H;
LL[0] = L;
TT[0] = stime;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or
(TF1 < TF1[1]) Then{
T1[cnt] = stime;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
T1[cnt] = T1[cnt-1][1];
}
}
C1[0] = C;
}
1.cc[1]과 c1[1]이 같지않은 경우를 식으로 표현하고 싶은데요~
틱분주기15분단위에서 이전종가가10시45분 11시15분 11시45분 12시15분 12시45분식으로 15분단위 시간일때에
5일선과 20일선데드크로스시매도한다라는걸 제가 식으로 표현하니깐
if cc[1]!=c1[1] then crossdown(tic5,tic20);
이렇게 표현을 했거든요
그런데 만약 2시가격인cc[1]과 2시15분가격인c[1]이 서로가격이 같아지게되면
2시15분이후에 데드크로스가나온자리를 시스템이 인지를 못하더라구요
그래서 cc[1]의 시간과 c1[1]의 시간이 같지않을때 또는 15분 45분단위시간을 식으로 표현하고 싶습니다.
새로받은식에서tt[1]과 t1[1]이 있던데요 plot로 표현해 보니깐
빨간세로선으로 새벽12시30분 그리고 낮10시30분에 세로로 가격이 그어지던데
tt랑 t1이 각각30분주기시작시간 15분주기시작시간을 나타낸거 같은데요
plot으로 표현해 보니깐 당일시작시간이 나타나서요
제가원하는 식이 tt[1]!=t1[1]이렇게 표현하면 되는건지요?
감사합니다~
================================================================================================================================================================================
이전에 질문내용과 답변받은 내용인데요~
다시 적용해 볼려니깐 잘 안되어서요~
원하는 식은 현재가격이 30분봉상 3봉전의 종가가격보다 높고
30분단위가 아니라 15분봉의 15분단위시간의 바로이전종가가격보다 높을때
5일선과20일선골든크로스시에 매수를 식으로 표현하고 싶은데요~
위식대로 하면은
if c>cc[3] and c>c1[1] and var1 = 0 and crossup(ma(c,5),ma(c,20)) then
buy() ;
이렇게 표현되는 거 같은데 검증해 보니깐 제대로 적용이 안됩니다~
원하는 부분은 30분봉상 4봉전종가가격이 형성되기 15분전의 가격과 비교하기 위해서
여쭈어 보는 거거든요~
30분~45분, 60분~15분사이에서는 진입신호가 뜨지 않고 15분~30분, 45분~60분 사이에서만 진입신호가 뜨게끔 할려는 겁니다.~
도움부탁드릴게요~ 감사합니다!
다음글
이전글