커뮤니티

MA를 이용 매수/매도

프로필 이미지
geylang
2004-06-07 17:50:17
1446
글번호 3966
답변완료
수고 많으십니다. MA를 이용한 매매를 할려고 하는데, 제가 만들고 싶은 것은 1. 매수 : - 5MA 가 20MA Goldcross 시 - AND 5MA 가 30MA Goldcross 시 2. 매도 : - 5MA 가 30MA Deadcross 시 입니다. yeslanguage에서 제가 보고 아래와 같이 해보았읍니다. Input : shortPeriod(5), longPeriod(20), longperiod1(30); var : value1(0), value2(0), value3(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); value3 = ma(C, longPeriod1); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); Exitshort(); } If CrossUP(value1, value3) Then { Buy(); Exitshort(); } #매도/매수청산 If CrossDown(value1, value3) Then { Sell(); Exitlong(); } 상기와 같이 작성후 이름변경을 하고 검증을 눌렀더니,검증은 'ㅇ'표시가 나오는데, 제일 하단에는 오류라고 뜨는데... 제대로 된건지 검토 부탁드림니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2004-06-09 14:31:51

안녕하세요 예스스탁입니다. 작성하신 식의 경우 매수식을 두개를 작성하셨는데 그렇게 되면 두개의 매수조건이 or로 연결되는 것과 같습니다. 따라서 두개모두 동시에 골든크로스 발생할때 매수하려면 다음과 같이 작성하셔야 합니다. exitshort(), exitlong()은 생략하셔도 됩니다. 그런데, 아래와 같이 작성할 경우 두개의 이동평균선이 동시에(동일한 봉에서) 골든크로스가 같이 발생하는 경우는 사실상 드물기 때문에 아래와 같이 수정하여 작성해 보았습니다. 수정해서 작성한 식은 두개의 모두 정배열이 되면 매수하는 식입니다. Input : shortPeriod(5), longPeriod(20), longperiod1(30); var : value1(0), value2(0), value3(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); value3 = ma(C, longPeriod1); # 매수/매도청산 If CrossUP(value1, value2) and CrossUP(value1, value3) Then Buy(); #매도/매수청산 If CrossDown(value1, value3) Then Sell(); [수정식] Input : shortPeriod(5), longPeriod(20), longperiod1(30); var : value1(0), value2(0), value3(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); value3 = ma(C, longPeriod1); # 매수/매도청산 If value1 > value2 > and value1 > value3 Then Buy(); #매도/매수청산 If CrossDown(value1, value3) Then Sell(); Yeslanguage 제일하단의 오류는 함수검증창을 의미합니다. 함수검증창에 검증을 완료했습니다 라는 메세지가 나오거나 검증에 O표시가 있다면 검증에 성공한것입니다. 감사합니다. 즐거운 하루되세요 =================================================================================== > geylang 님이 쓴 글입니다. > 제목 : MA를 이용 매수/매도 > 수고 많으십니다. MA를 이용한 매매를 할려고 하는데, 제가 만들고 싶은 것은 1. 매수 : - 5MA 가 20MA Goldcross 시 - AND 5MA 가 30MA Goldcross 시 2. 매도 : - 5MA 가 30MA Deadcross 시 입니다. yeslanguage에서 제가 보고 아래와 같이 해보았읍니다. Input : shortPeriod(5), longPeriod(20), longperiod1(30); var : value1(0), value2(0), value3(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); value3 = ma(C, longPeriod1); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); Exitshort(); } If CrossUP(value1, value3) Then { Buy(); Exitshort(); } #매도/매수청산 If CrossDown(value1, value3) Then { Sell(); Exitlong(); } 상기와 같이 작성후 이름변경을 하고 검증을 눌렀더니,검증은 'ㅇ'표시가 나오는데, 제일 하단에는 오류라고 뜨는데... 제대로 된건지 검토 부탁드림니다.