커뮤니티

문의드립니다

프로필 이미지
뉴스타트
2013-09-07 10:44:44
159
글번호 67286
답변완료
32308 관련입니다 올려주신 지표 감사드립니다. 1. 내용중 MACD 와 MA는 예스트레이더에서 잘 적용이 됩니다. 제가 많이 사용하는 예스글로벌에서 "시장서버시작시간기준"으로 적용할려는데 그대로 사용하면 되는지 아니면, 시간관련하여 수정이 필요한 부분이 있으면 수정부탁드립니다. 2. RCI관련하여 답변주신 것을 적용하니 지표출력이 정상적이지 않습니다(파일첨부). 확인부탁드립니다. 추가문의드립니다. 3. Accumulation_Distribution 관련이며 예스로 변환해주세요 수식1 X=AD(); A=AVG(X,5); B=AVG(X,20); Y=valuewhen(1,crossup(a,b) or crossdown(a,b),C) 수식2 if(Y<C,Y,0)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-09-06 16:25:30

안녕하세요 예스스탁입니다. 작성된 식은 예스글로벌에 적용하면 모두 0시를 기준으로 하게 됩니다. 예스글로벌에서는 봉의갯수를 카운트하는데 어떤 시간에서 초기화할지를 직접 시간을 지정해서 지정하셔야 합니다. 외부변수로 모두 초기화시간을 지정하게 변경해서 올려드립니다. 1번 3번 Input : N(6),Period1(12),Period2(26),Period3(9),초기화시간(170000); Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Var : Ep3(0), JISU3(0), PreMACDSIG(0); var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0),idx(0); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); if (stime == 초기화시간 or (stime > 초기화시간 and stime[1] < 초기화시간)) Then idx = 0; idx = idx+1; var1 = (idx-1)%N; if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ DINDEX1 = DINDEX1 + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMACDOsc = MACDOsc[1]; if Dindex1 >= 2 Then PreMACDSIG = MACDSIG[1]; } if DINDEX1 <= 1 then { JISU1 = C; JISU2 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); } MACDVal = JiSu1-Jisu2; if DINDEX1 <= 2 then { MACDSIG = Jisu1-jisu2; } else{ MACDSIG = MACDVal * EP3 + PreMACDSIG * (1-EP3); } MACDOsc = MACDVal-MACDsig; plot1(MACDVal); plot2(MACDsig); plot3(MACDOsc); 2번 4번 input : N(6),P1(5),P2(10),P3(20),P4(60),초기화시간(170000); var : cnt(0),count(0); var : sum1(0),sum2(0),sum3(0),sum4(0); var : mav1(0),mav2(0),mav3(0),mav4(0),idx(0); Array : CC[130](0); if (stime == 초기화시간 or (stime > 초기화시간 and stime[1] < 초기화시간)) Then idx = 0; idx = idx+1; var1 = (idx-1)%N; if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ for cnt = 1 to 129{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; for count = 0 to P4{ if count < P1 Then sum1 = sum1+CC[count]; if count < P2 Then sum2 = sum2+CC[count]; if count < P3 Then sum3 = sum3+CC[count]; if count < P4 Then sum4 = sum4+CC[count]; } mav1 = sum1/P1; mav2 = sum2/P2; mav3 = sum3/P3; mav4 = sum4/P4; plot1(mav1); plot2(mav2); plot3(mav3); plot4(mav4); 5번. 수정한RCI식입니다. input : P1(9),P2(13),P3(18),MACDP1(12),MACDP2(26); var : RCI1(0),RCI2(0),RCI3(0),count1(0),count2(0),count3(0),count4(0),count5(0),count6(0),DD1(0),DD2(0),DD3(0); var1 = MACD(MACDP1,MACDP2); DD1 = 0; for count1 = 1 to P1{ for count2 = 1 to P1{ if var1[count1-1] == nthhighest(count2,var1,P1) Then{ DD1 = DD1+(count1-count2)^2; } } } DD2 = 0; for count3 = 1 to P2{ for count4 = 1 to P2{ if var1[count3-1] == nthhighest(count4,var1,P2) Then{ DD2 = DD2+(count3-count4)^2; } } } DD3 = 0; for count5 = 1 to P3{ for count6 = 1 to P3{ if var1[count5-1] == nthhighest(count6,var1,P3) Then{ DD3 = DD3+(count5-count6)^2; } } } RCI1 = (1-(6*DD1)/(P1*(P1*P1-1)))*100; RCI2 = (1-(6*DD2)/(P2*(P2*P2-1)))*100; RCI3 = (1-(6*DD3)/(P3*(P3*P3-1)))*100; plot1(RCI1); plot2(RCI2); plot3(RCI3); 추가문의 하신 식입니다. var : x(0),A(0),B(0),Y(0); X=AccDist(); A=AVG(X,5); B=AVG(X,20); if crossup(A,B) or CrossDown(A,B) Then Y = c; if C > Y Then plot1(Y); 즐거운 하루되세요 > 뉴스타트 님이 쓴 글입니다. > 제목 : 문의드립니다 > 32308 관련입니다 올려주신 지표 감사드립니다. 1. 내용중 MACD 와 MA는 예스트레이더에서 잘 적용이 됩니다. 제가 많이 사용하는 예스글로벌에서 "시장서버시작시간기준"으로 적용할려는데 그대로 사용하면 되는지 아니면, 시간관련하여 수정이 필요한 부분이 있으면 수정부탁드립니다. 2. RCI관련하여 답변주신 것을 적용하니 지표출력이 정상적이지 않습니다(파일첨부). 확인부탁드립니다. 추가문의드립니다. 3. Accumulation_Distribution 관련이며 예스로 변환해주세요 수식1 X=AD(); A=AVG(X,5); B=AVG(X,20); Y=valuewhen(1,crossup(a,b) or crossdown(a,b),C) 수식2 if(Y<C,Y,0)