커뮤니티
yt3.0에서는 작동되는데, 3.1에서는 안됩니다.
2008-11-05 16:32:37
703
글번호 17918
var: cnt(0), 저점(0), 고점(0), 이평(0);
cnt = 0;
이평 = ma(c,10);
for var1=0 to 10{
if sdate==entrydate(var1) Then
cnt = cnt+1;
}
if cnt==0 then{
if 저점==0 or 저점>이평 Then{
저점=이평;
If 저점*1.05< c then
buy("매수", atmarket,def, 1);
}
}
if cnt > 0 then{
if entryprice(1) < c Then
buy("22222", AtMarket,def, 1);
}
if CrossDown(ma(c,5),ma(c,20)) Then
ExitLong("매수 청산", AtMarket,1);
아까 문의 드린건데요...버전을 바꾸면 실행이 안되네요,
옵션에다 적용해 보는데
yt3.0에서는 작동되는데, 3.1에서는 안됩니다.
설명좀 해주세요
답변 1
예스스탁 예스스탁 답변
2008-11-06 09:27:42
안녕하세요
예스스탁입니다.
3.0버전에서는 어떤 값이 N/A면 그 값을 할당하지 않았습니다.
3.1버전은 그 부분을 체킹하고 수식에서 이용가능한 체계이므로 그 부분이 할당이 됩니다.
식상에서
if 저점==0 or 저점>이평 Then{
저점=이평;
이평값은 10이평이므로 10봉이후에 계산됩니다.
첫봉에서 보면 저점은 0값이고 이평은 N/A로 저점값에 N/A가
할당이 됩니다.
그리고 봉이 계속 흘러 이평값이 계산되며 N/A > 이평값으로 비교가 되므로
서로 비교 불가한 항목이므로 저점에 계산 N/A가 저장되어 이후 계속 그 값을
유지하게 됩니다.
식을 수정해 드립니다.
if cnt==0 and index >= 10 then{ 이동평균이 10이평이므로
index가 10이후부터 계산되게 변경했습니다.
이렇게 작성하시면 3.0, 3.1에서 동일한 결과를 가져옵니다.
input : P(10);
var: cnt(0), 저점(0), 고점(0), 이평(0);
이평 = ma(c,P);
if date != date[1] Then
저점 = 이평;
cnt = 0;
for var1=0 to 10{
if sdate==entrydate(var1) Then
cnt = cnt+1;
}
if cnt==0 and index >= P then{
if 저점==0 or 저점>이평 Then{
저점=이평;
If 저점*1.05< c then
buy("매수", atmarket,def, 1);
}
}
if cnt > 0 then{
if entryprice(1) < c Then
buy("22222", AtMarket,def, 1);
}
즐거운 하루되세요
> CJ_coco 님이 쓴 글입니다.
> 제목 : yt3.0에서는 작동되는데, 3.1에서는 안됩니다.
> var: cnt(0), 저점(0), 고점(0), 이평(0);
cnt = 0;
이평 = ma(c,10);
for var1=0 to 10{
if sdate==entrydate(var1) Then
cnt = cnt+1;
}
if cnt==0 then{
if 저점==0 or 저점>이평 Then{
저점=이평;
If 저점*1.05< c then
buy("매수", atmarket,def, 1);
}
}
if cnt > 0 then{
if entryprice(1) < c Then
buy("22222", AtMarket,def, 1);
}
if CrossDown(ma(c,5),ma(c,20)) Then
ExitLong("매수 청산", AtMarket,1);
아까 문의 드린건데요...버전을 바꾸면 실행이 안되네요,
옵션에다 적용해 보는데
yt3.0에서는 작동되는데, 3.1에서는 안됩니다.
설명좀 해주세요
다음글
이전글