커뮤니티
에러 수정요청
2009-06-05 19:08:35
803
글번호 22615
상세 매뉴얼에 나와 있는 예제를 그대로 돌려 보았는데 에러가 나왔습니다.
수식에 표시하둔 6째, 7째, 10째 줄에서 에러가 나왔습니다.
어떻게 수정해야 하는지 도와주세요.
input : shortPeriod(5),midPeriod(10),longPeriod(20),Percent(1),수렴조건(2),청산조건(1);
var : 단기이평(0),중기이평(0),장기이평(0),정배열(0),역배열(0),최대(0),최소(0),이평수렴(0);
단기이평 = ma(C, shortPeriod);
중기이평 = ma(C, midPeriod);
장기이평 = ma(C, longPeriod);
**<6>**정배열 = 단기이평 > 중기이평 and 중기이평 > 장기이평; //①
**<7>**역배열 = 단기이평 < 중기이평 and 중기이평 < 장기이평;
최대 = max(단기이평,중기이평,장기이평); //③
최소 = min(단기이평,중기이평,장기이평);
**<10>**이평수렴 = 최대[1]/최소[1] <= (1+Percent/100);
if CrossUp(단기이평, 중기이평) and 정배열 and //②
((수렴조건 == 1 and AccumN(이평수렴,5) > 0) or //④
(수렴조건 == 2 and 이평수렴) or
(수렴조건 == 3 and AccumN(이평수렴,3) == 3))
then
Buy();
if (청산조건 == 1 and !정배열) or //⑤
(청산조건 == 2 and 역배열)
then
ExitLong();
if CrossDown(단기이평, 중기이평) and 역배열 and //②
((수렴조건 == 1 and AccumN(이평수렴,5) > 0) or //④
(수렴조건 == 2 and 이평수렴) or
(수렴조건 == 3 and AccumN(이평수렴,3) == 3))
then
Sell();
if (청산조건 == 1 and !역배열) or //⑥
(청산조건 == 2 and 정배열) then
ExitShort();
답변 1
예스스탁 예스스탁 답변
2009-06-08 08:46:46
안녕하세요
예스스탁입니다.
1.
논리식을 할당하는 변수는 선언시에 (false)로 선언해야 합니다.
2.
N봉 동안 특정조건이 몇번발생했는지 알고자 하실 때는
accumn(iff(조건,1,0),N) 또는
countif(조건,N) 으로 작성하셔야 합니다.
input : shortPeriod(5),midPeriod(10),longPeriod(20),Percent(1),수렴조건(2),청산조건(1);
var : 단기이평(0),중기이평(0),장기이평(0),정배열(True),역배열(False),최대(0),최소(0),이평수렴(false);
단기이평 = ma(C, shortPeriod);
중기이평 = ma(C, midPeriod);
장기이평 = ma(C, longPeriod);
정배열 = 단기이평 > 중기이평 and 중기이평 > 장기이평; //①
역배열 = 단기이평 < 중기이평 and 중기이평 < 장기이평;
최대 = max(단기이평,중기이평,장기이평); //③
최소 = min(단기이평,중기이평,장기이평);
이평수렴 = 최대[1]/최소[1] <= (1+Percent/100);
if CrossUp(단기이평, 중기이평) and 정배열 and //②
((수렴조건 == 1 and countif(이평수렴,5) > 0) or //④
(수렴조건 == 2 and 이평수렴) or
(수렴조건 == 3 and countif(이평수렴,3) == 3))
then
Buy();
if (청산조건 == 1 and !정배열) or //⑤
(청산조건 == 2 and 역배열)
then
ExitLong();
if CrossDown(단기이평, 중기이평) and 역배열 and //②
((수렴조건 == 1 and countif(이평수렴,5) > 0) or //④
(수렴조건 == 2 and 이평수렴) or
(수렴조건 == 3 and countif(이평수렴,3) == 3))
then
Sell();
if (청산조건 == 1 and !역배열) or //⑥
(청산조건 == 2 and 정배열) then
ExitShort();
즐거운 하루되세요
> nobound 님이 쓴 글입니다.
> 제목 : 에러 수정요청
> 상세 매뉴얼에 나와 있는 예제를 그대로 돌려 보았는데 에러가 나왔습니다.
수식에 표시하둔 6째, 7째, 10째 줄에서 에러가 나왔습니다.
어떻게 수정해야 하는지 도와주세요.
input : shortPeriod(5),midPeriod(10),longPeriod(20),Percent(1),수렴조건(2),청산조건(1);
var : 단기이평(0),중기이평(0),장기이평(0),정배열(0),역배열(0),최대(0),최소(0),이평수렴(0);
단기이평 = ma(C, shortPeriod);
중기이평 = ma(C, midPeriod);
장기이평 = ma(C, longPeriod);
**<6>**정배열 = 단기이평 > 중기이평 and 중기이평 > 장기이평; //①
**<7>**역배열 = 단기이평 < 중기이평 and 중기이평 < 장기이평;
최대 = max(단기이평,중기이평,장기이평); //③
최소 = min(단기이평,중기이평,장기이평);
**<10>**이평수렴 = 최대[1]/최소[1] <= (1+Percent/100);
if CrossUp(단기이평, 중기이평) and 정배열 and //②
((수렴조건 == 1 and AccumN(이평수렴,5) > 0) or //④
(수렴조건 == 2 and 이평수렴) or
(수렴조건 == 3 and AccumN(이평수렴,3) == 3))
then
Buy();
if (청산조건 == 1 and !정배열) or //⑤
(청산조건 == 2 and 역배열)
then
ExitLong();
if CrossDown(단기이평, 중기이평) and 역배열 and //②
((수렴조건 == 1 and AccumN(이평수렴,5) > 0) or //④
(수렴조건 == 2 and 이평수렴) or
(수렴조건 == 3 and AccumN(이평수렴,3) == 3))
then
Sell();
if (청산조건 == 1 and !역배열) or //⑥
(청산조건 == 2 and 정배열) then
ExitShort();
이전글