커뮤니티

질문드립니다~

프로필 이미지
겐지
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분 사이에서만 진입신호가 뜨게끔 할려는 겁니다.~ 도움부탁드릴게요~ 감사합니다!