커뮤니티
오류 수정 요청
2019-06-28 16:11:24
179
글번호 129861
아래 시스템식중 ①②③에서 연산자 앞뒤 두 데이터의 형태가 같아야 합니다.
라고 오류가 뜨는데 그 이유를 알고 싶습니다.
================================================================================
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);
정배열 =단기이평>중기이평 and 중기이평>장기이평;//①
역배열 =단기이평<중기이평 and 중기이평<장기이평;//②
최대=max(단기이평,중기이평,장기이평);
최소=min(단기이평,중기이평,장기이평);
이평수렴 =최대[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(청산조건==1and!정배열)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
예스스탁 예스스탁 답변
2019-06-28 16:28:28
안녕하세요
예스스탁입니다.
1
정배열, 역배열, 이평수렴은 모두 조건만족하면 true 아니면 false가 저장됩니다.
변수 선언시에 해당 변수에 숫자를 할당하면 (0)과 같이 초기값을 숫자로 지정하고
변수에 논리값이 저장되면 초기값을 false로 지정하셔야 합니다.
2
accumn은 n개봉 동안 숫자값을 저장하는 변수입니다.
n개봉 동안 조건만족 횟수는 countif함수를 이용하셔야 합니다.
3
수정한 식입니다.
input:shortPeriod(5),midPeriod(10),longPeriod(20),Percent(1),수렴조건(2),청산조건(1);
var:단기이평(0),중기이평(0),장기이평(0),정배열(false),역배열(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(청산조건==1and!정배열)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();
즐거운 하루되세요
> 이대표 님이 쓴 글입니다.
> 제목 : 오류 수정 요청
> 아래 시스템식중 ①②③에서 연산자 앞뒤 두 데이터의 형태가 같아야 합니다.
라고 오류가 뜨는데 그 이유를 알고 싶습니다.
================================================================================
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);
정배열 =단기이평>중기이평 and 중기이평>장기이평;//①
역배열 =단기이평<중기이평 and 중기이평<장기이평;//②
최대=max(단기이평,중기이평,장기이평);
최소=min(단기이평,중기이평,장기이평);
이평수렴 =최대[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(청산조건==1and!정배열)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();
다음글
이전글