커뮤니티

도무지 완성이 안됩니다.. 수정에 도움을 주세요..

프로필 이미지
twotbgym
2010-08-21 00:13:22
715
글번호 31746
케이스 1 input : pe1(100), pe2(20), D(2), Disparity(100); Var :tbg(0), gym(0), kevin(0); tbg=Disparity(pe1); gym=avg(tbg,pe2); kevin=avg(tbg,pe2)-D*std(tbg,pe2); # 매수/매도청산 If CrossUp(tbg,kevin) Then { Buy(); } # 매도/매수청산 If CrossDown(tbg,gym) && gym>100.10 Then { Sell(); } 케이스 2 input : pe1(100), pe2(20), D(2), Disparity(100); Var : value(0); value = Disparity(pe1) ; value1=value; value2=avg(value1,pe2); value3=avg(value1,pe2)-D*std(value1,pe2); # 매수/매도청산 If CrossUp(value1,value3) Then { Buy(); } # 매도/매수청산 If CrossDown(value1,value2) && value2>100.10 Then { Sell(); } 케이스 3 input : pe1(100), pe2(20), D(2); value1=Disparity(pe1); value2=avg(value1,pe2); value3=avg(value1,pe2)-D*std(value1,pe2); # 매수/매도청산 If CrossUp(value1,value2)Then { Buy(); } # 매도/매수청산 If CrossDown(value1,99.90) && value2>100.10 Then { Sell(); } ============================================================================== 보시면 아시겠지만 케이스 123 순서로 제가 해보다가 셋다 안뜨길래 이렇게 도움을 요청합니다. 수식에는 이상이 없다고 나오는데 도무지 잡히질 않네요.. 없는건 아닐테고.. pe1 = period1 pe2 = period2 줄여서 썻구요 tbg나 gym, kevin 등은 그냥 벨루만쓰기 싫어서 교체해본거구요;; 수치는 임의로 100으로 변경했습니다. 음 한글로는 매도 : "[100개의 이격도]의 20개 평균"이 100.10보다 크다는 조건을 만족시키면서 "100개의 이격도"가 "[100개의 이격도]의 20개 평균" 을 하향돌파할때 매도 매도청산 : "100개의 이격도"가 "[100개의 이격도]의 20개 평균"의 볼리저밴드 하단선을 상향돌파할때 매도청산. cf) "100개의 이격도"="Disparity(100)" 긴글과 복잡한 수식, 평균을 두번이나 내는식, 볼린저밴드를 주가가아닌 다른것에 한번더 연결한식등등.. 복잡한게 많아서 송구스럽네요.. 꼭 틀린부분을 바로잡아주시길 바랍니다... 케이스 123중 하나라도 그냥 적용되게끔 바꿔주시면 됩니다..
시스템
답변 1
프로필 이미지

캐빈이야

2010-08-21 04:37:46

수식에서 avg를 사용하신게 잘못된거 같습니다. AVG함수는 각 값의 평균으로 avg(1,2,3,4) 결과는 (1+2+3+4)/4 의 값을 반환해주고 ma(C,10) 결과는 C값의 10개값의 평균을 반환해줍니다. 그래서 avg를 ma로 바꾸면 됩니다 . -------------------------------- 참 Disparity는 함수로 input으로 쓰지 않아도 됩니다. input : pe1(100), pe2(20), D(2), Disparity(100); // 케이스1 input : pe1(100), pe2(100), D(2); Var :tbg(0), gym(0), kevin(0); tbg=Disparity(pe1); gym=ma(tbg,pe2); kevin=ma(tbg,pe2)-D*std(tbg,pe2); MessageLog("%.2f,%.2f,%.2f",tbg,gym,kevin); # 매수/매도청산 If CrossUp(tbg,kevin) Then { Buy(); } # 매도/매수청산 If CrossDown(tbg,gym) && gym>100.10 Then { Sell(); } ------------------------------------ //케이스2 input : pe1(100), pe2(20), D(2); Var : value(0); value = Disparity(pe1) ; value1=value; value2= ma(value1,pe2); value3= ma(value1,pe2)-D*std(value1,pe2); # 매수/매도청산 If CrossUp(value1,value3) Then { Buy(); } # 매도/매수청산 If CrossDown(value1,value2) && value2>100.10 Then { Sell(); } --------------------------------------- //케이스3 input : pe1(100), pe2(20), D(2); value1=Disparity(pe1); value2=ma(value1,pe2); value3=ma(value1,pe2)-D*std(value1,pe2); # 매수/매도청산 If CrossUp(value1,value2)Then { Buy(); } # 매도/매수청산 If CrossDown(value1,99.90) && value2>100.10 Then { Sell(); }