커뮤니티
수식 요청 에러 수정부탁
2007-09-11 18:27:55
712
글번호 13537
프로그램 예스트3 -> 예스베타3.1 변경으로 애러나서 올립니다
[내용]
input : malen1(5),malen2(18),malen3(52),s3(0.37),s2(4.0),S1(0),POS(0);
var : cond1(0),cond2(0),var11(0),var12(0),cond10(0),cond11(0);
Var1 = dayhigh(1)-open[1];//전일고저차
Cond1 = sdate==exitdate(1) And marketposition(1)==-1; //'최근청산날짜가 금일이고 직전이 매도
Cond2 = sdate==exitdate(1) And marketposition(1)==1; //'최근청산날짜가 금일이고 직전이 매수
//이평 필터
If malen1*1.5 <= malen2 And malen2*1.5 <= malen3 Then{ // '이평 기간값 비교
Var10= ma(high,malen1);
Var11= ma(open,malen2);
Var12= ma(close,malen3);
Cond10=var10<var11 And Var11<var12;
Cond11=var10>var11 And Var11>var12;
}
//진입
If stime < 150000 And marketposition() == 0 Then {
If Cond10 Then {
If Cond1 == False Then {
sell("매도1",Atstop,dayopen()-var1*S1);//'지정가 저가 상향돌파시 매도
}
}
If Cond11 Then{
If Cond2 == False Then{
buy("매수1",Atstop,dayopen()+var1*s3);// '지정가 고가 돌파 매수
}
}
If Cond10 == False And Cond11 == False Then{
If Cond1== False Then {
sell("매도2",Atstop,dayopen()-var1*s3);//'지정가 저가 상향돌파시 매도
}
}
If Cond10 == False And Cond11 == False Then{
If Cond2 == False Then{
buy("매수2",Atstop,dayopen() +var1*s1);// '지정가 고가 돌파 매수
}
}
}
//청산
If marketposition() <>0 Then{
exitshort("매도추적스탑",Atstop,nthhighest(1,high,Pos+1)+atr(9)*S3);
exitlong("매수추적스탑",Atstop,nthlowest(1,low,pos+1)-atr(9)*s3);
}
If stime == 144900 Then{
exitshort("매도청산",Atmarket);
exitlong("매수청산",Atmarket);
}
답변 1
예스스탁 예스스탁 답변
2007-09-12 08:50:01
안녕하세요
예스스탁입니다.
수식을 수정했습니다.
변수에 논리식을 할당할 경우
해당 변수는 (false)로 선언하시기 바랍니다.
변수 = 논리식; << 논리변수선언
변수 = 수치; << 수치변수선언
input : malen1(5),malen2(18),malen3(52),s3(0.37),s2(4.0),S1(0),POS(0);
var : cond1(False),cond2(False),var11(0),var12(0),cond10(False),cond11(False);
Var1 = dayhigh(1)-open[1];//전일고저차
Cond1 = sdate==exitdate(1) And marketposition(1)==-1; //'최근청산날짜가 금일이고 직전이 매도
Cond2 = sdate==exitdate(1) And marketposition(1)==1; //'최근청산날짜가 금일이고 직전이 매수
//이평 필터
If malen1*1.5 <= malen2 And malen2*1.5 <= malen3 Then{ // '이평 기간값 비교
Var10= ma(high,malen1);
Var11= ma(open,malen2);
Var12= ma(close,malen3);
Cond10=var10<var11 And Var11<var12;
Cond11=var10>var11 And Var11>var12;
}
//진입
If stime < 150000 And marketposition() == 0 Then {
If Cond10 Then {
If Cond1 == False Then {
sell("매도1",Atstop,dayopen()-var1*S1);//'지정가 저가 상향돌파시 매도
}
}
If Cond11 Then{
If Cond2 == False Then{
buy("매수1",Atstop,dayopen()+var1*s3);// '지정가 고가 돌파 매수
}
}
If Cond10 == False And Cond11 == False Then{
If Cond1== False Then {
sell("매도2",Atstop,dayopen()-var1*s3);//'지정가 저가 상향돌파시 매도
}
}
If Cond10 == False And Cond11 == False Then{
If Cond2 == False Then{
buy("매수2",Atstop,dayopen() +var1*s1);// '지정가 고가 돌파 매수
}
}
}
//청산
If marketposition() <>0 Then{
exitshort("매도추적스탑",Atstop,nthhighest(1,high,Pos+1)+atr(9)*S3);
exitlong("매수추적스탑",Atstop,nthlowest(1,low,pos+1)-atr(9)*s3);
}
If stime == 144900 Then{
exitshort("매도청산",Atmarket);
exitlong("매수청산",Atmarket);
}
즐거운 하루되세요
> CJ_yang1130 님이 쓴 글입니다.
> 제목 : 수식 요청 에러 수정부탁
> 프로그램 예스트3 -> 예스베타3.1 변경으로 애러나서 올립니다
[내용]
input : malen1(5),malen2(18),malen3(52),s3(0.37),s2(4.0),S1(0),POS(0);
var : cond1(0),cond2(0),var11(0),var12(0),cond10(0),cond11(0);
Var1 = dayhigh(1)-open[1];//전일고저차
Cond1 = sdate==exitdate(1) And marketposition(1)==-1; //'최근청산날짜가 금일이고 직전이 매도
Cond2 = sdate==exitdate(1) And marketposition(1)==1; //'최근청산날짜가 금일이고 직전이 매수
//이평 필터
If malen1*1.5 <= malen2 And malen2*1.5 <= malen3 Then{ // '이평 기간값 비교
Var10= ma(high,malen1);
Var11= ma(open,malen2);
Var12= ma(close,malen3);
Cond10=var10<var11 And Var11<var12;
Cond11=var10>var11 And Var11>var12;
}
//진입
If stime < 150000 And marketposition() == 0 Then {
If Cond10 Then {
If Cond1 == False Then {
sell("매도1",Atstop,dayopen()-var1*S1);//'지정가 저가 상향돌파시 매도
}
}
If Cond11 Then{
If Cond2 == False Then{
buy("매수1",Atstop,dayopen()+var1*s3);// '지정가 고가 돌파 매수
}
}
If Cond10 == False And Cond11 == False Then{
If Cond1== False Then {
sell("매도2",Atstop,dayopen()-var1*s3);//'지정가 저가 상향돌파시 매도
}
}
If Cond10 == False And Cond11 == False Then{
If Cond2 == False Then{
buy("매수2",Atstop,dayopen() +var1*s1);// '지정가 고가 돌파 매수
}
}
}
//청산
If marketposition() <>0 Then{
exitshort("매도추적스탑",Atstop,nthhighest(1,high,Pos+1)+atr(9)*S3);
exitlong("매수추적스탑",Atstop,nthlowest(1,low,pos+1)-atr(9)*s3);
}
If stime == 144900 Then{
exitshort("매도청산",Atmarket);
exitlong("매수청산",Atmarket);
}
다음글
이전글