커뮤니티
수식 문의
2011-12-16 02:49:03
492
글번호 45826
아래와 같이 시스템 수식을 얻었으나
차트에 뿌려지지가 않네요.
어찌된 영문인지도 모르겠고.
오류를 좀 잡아 주셨으면 감사하겠습니다.
메일로 부탁드립니다.
win8181@naver.com
감사합니다.
variables : v_i(0),state(0),v_close(0),rate(0.95),num(1),next_state(0);
arrays : av_price[20](0);
if(index >2 ) then {
state = next_state[1];
next_state = next_state[1];
}
print("state2.txt","index = %6.0f state %4.0f close:%2.2f",index,state,close);
if(time<90130) then {
state = 0;
next_state = 0;
}
if(state==0) then { /*initialization */
if( time > 90130 && date == 20070718 ) then { /* Transition to trading */
next_state = 1;
print("state.txt","state %4.0f",state);
av_price[0] = Close;
For v_i=1 to 19 {
av_price[v_i] = av_price[v_i-1]*rate;
}
For v_i=0 to 19 { /*소수점 두 째 짜리까지로 라운드 */
av_price[v_i] = round(av_price[v_i],2);
print("price222.txt","price:%2.2f %.0f %",av_price[v_i],state);
}
}
} else if(state == 1) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b1",Onclose,DEF,num);
}
if(close>=av_price[state-1]) then {
next_state = 1001;
print("state.txt","state %4.0f",next_state);
}
} else if(state == 2) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b2",Onclose,DEF,1);
}
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s2",Onclose,DEF,"b1",num,1);
}
} else if(state ==3) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b3",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s3",Onclose,DEF,"b2",num,1);
}
} else if(state ==4) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b4",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s4",Onclose,DEF,"b3",num,1);
}
} else if(state ==5) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b5",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s5",Onclose,DEF,"b4",num,1);
}
}else if(state ==6) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b6",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s6",Onclose,DEF,"b5",num,1);
}
}else if(state ==7) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b7",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s7",Onclose,DEF,"b6",num,1);
}
}else if(state ==8) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b8",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s8",Onclose,DEF,"b7",num,1);
}
}else if(state ==9) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b9",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s9",Onclose,DEF,"b8",num,1);
}
}else if(state ==10) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b10",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s10",Onclose,DEF,"b9",num,1);
}
} else if(state ==11) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b11",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s11",Onclose,DEF,"b10",num,1);
}
} else if(state ==12) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b12",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s12",Onclose,DEF,"b11",num,1);
}
} else if(state ==13) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b13",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s13",Onclose,DEF,"b12",num,1);
}
} else if(state ==14) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b14",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s14",Onclose,DEF,"b13",num,1);
}
} else if(state ==15) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b15",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s15",Onclose,DEF,"b14",num,1);
}
} else if(state ==16) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b16",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s16",Onclose,DEF,"b15",num,1);
}
} else if(state ==17) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b17",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s17",Onclose,DEF,"b16",num,1);
}
} else if(state ==18) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b18",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s18",Onclose,DEF,"b17",num,1);
}
} else if(state ==19) then {
/* if(close<=av_price[state]) then {
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy(1);
}*/
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s19",Onclose,DEF,"b18",num,1);
}
} else if(state == 1001) then {
if(close<=av_price[0]) then { /*Transit to next state */
next_state = 1;
print("state.txt","state %4.0f",next_state);
}
}
답변 1
예스스탁 예스스탁 답변
2011-12-16 14:01:45
안녕하세요
예스스탁입니다.
해당식 아래와 같이 특정일의 특정시간이후로
조건식이 지정되어 있습니다.
if(state==0) then { /*initialization */
if( time > 90130 && date == 20070718 ) then { /* Transition to trading */
차트에 해당 일이 없으면
발생하지 않습니다.
첨부된 그림은 5분봉으로 20060526~20111215 까지
데이터 조회후 시뮬레이션한 결과입니다.
정상적으로 신호가 발생하고 있습니다.
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
> 아래와 같이 시스템 수식을 얻었으나
차트에 뿌려지지가 않네요.
어찌된 영문인지도 모르겠고.
오류를 좀 잡아 주셨으면 감사하겠습니다.
메일로 부탁드립니다.
win8181@naver.com
감사합니다.
variables : v_i(0),state(0),v_close(0),rate(0.95),num(1),next_state(0);
arrays : av_price[20](0);
if(index >2 ) then {
state = next_state[1];
next_state = next_state[1];
}
print("state2.txt","index = %6.0f state %4.0f close:%2.2f",index,state,close);
if(time<90130) then {
state = 0;
next_state = 0;
}
if(state==0) then { /*initialization */
if( time > 90130 && date == 20070718 ) then { /* Transition to trading */
next_state = 1;
print("state.txt","state %4.0f",state);
av_price[0] = Close;
For v_i=1 to 19 {
av_price[v_i] = av_price[v_i-1]*rate;
}
For v_i=0 to 19 { /*소수점 두 째 짜리까지로 라운드 */
av_price[v_i] = round(av_price[v_i],2);
print("price222.txt","price:%2.2f %.0f %",av_price[v_i],state);
}
}
} else if(state == 1) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b1",Onclose,DEF,num);
}
if(close>=av_price[state-1]) then {
next_state = 1001;
print("state.txt","state %4.0f",next_state);
}
} else if(state == 2) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b2",Onclose,DEF,1);
}
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s2",Onclose,DEF,"b1",num,1);
}
} else if(state ==3) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b3",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s3",Onclose,DEF,"b2",num,1);
}
} else if(state ==4) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy("b4",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s4",Onclose,DEF,"b3",num,1);
}
} else if(state ==5) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b5",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s5",Onclose,DEF,"b4",num,1);
}
}else if(state ==6) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b6",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s6",Onclose,DEF,"b5",num,1);
}
}else if(state ==7) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b7",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s7",Onclose,DEF,"b6",num,1);
}
}else if(state ==8) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b8",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s8",Onclose,DEF,"b7",num,1);
}
}else if(state ==9) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b9",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s9",Onclose,DEF,"b8",num,1);
}
}else if(state ==10) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b10",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s10",Onclose,DEF,"b9",num,1);
}
} else if(state ==11) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b11",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s11",Onclose,DEF,"b10",num,1);
}
} else if(state ==12) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b12",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s12",Onclose,DEF,"b11",num,1);
}
} else if(state ==13) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b13",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s13",Onclose,DEF,"b12",num,1);
}
} else if(state ==14) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b14",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s14",Onclose,DEF,"b13",num,1);
}
} else if(state ==15) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b15",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s15",Onclose,DEF,"b14",num,1);
}
} else if(state ==16) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b16",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s16",Onclose,DEF,"b15",num,1);
}
} else if(state ==17) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b17",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s17",Onclose,DEF,"b16",num,1);
}
} else if(state ==18) then {
if(close<=av_price[state]) then { /*Transit to next state */
next_state =state+1;
print("state.txt","state %4.0f",next_state);
buy("b18",Onclose,DEF,num);
}
if(close>=av_price[state-2]) then {
next_state =state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s18",Onclose,DEF,"b17",num,1);
}
} else if(state ==19) then {
/* if(close<=av_price[state]) then {
next_state = state+1;
print("state.txt","state %4.0f",next_state);
buy(1);
}*/
if(close>=av_price[state-2]) then {
next_state = state-1;
print("state.txt","state %4.0f",next_state);
Exitlong("s19",Onclose,DEF,"b18",num,1);
}
} else if(state == 1001) then {
if(close<=av_price[0]) then { /*Transit to next state */
next_state = 1;
print("state.txt","state %4.0f",next_state);
}
}