첨부 이미지
그림1
그림2
안녕하세요 개발자님.
아래 수식은 다음과 같습니다.
전일 레인지(고가-저가), 전전일 레인지, 전전전일 레인지, 전전전전일 레인지 중 가장 작은 레인지는 전일 레인지와 같아야 한다.
또한 전일 고가는 전전일 고가보다 작아야하고, 전일 저가는 전전일 저가보다 높아야 한다.(전일 고가,저가가 전전일 고가,저가 범위 안에 있어야 한다)
이 두 조건을 충족 시, 전일 고가 돌파시 매수, 전일 저가 돌파시 매수 청산
이 두 조건을 충족 시, 전일 저가 돌파시 매도, 전일 고가 돌파시 매도 청산
(////// <---사이에 있는 N부터 시작되는 자금관리 식은 무시하셔도 좋습니다.)
궁금한 점은 사진을 보시면 아시겠지만 올바른 식이 적용이 되지 않습니다.
또한 메시지로그를 통해 condition1 값을 보면 true 나 false 혹은 1과 0 값이 아닌 다른 수가 나오는데 왜이런 현상이 나오는지 궁금합니다.
항상 도움주셔서 감사합니다.
답변 1
예스스탁
예스스탁 답변
2022-07-19 15:03:24
안녕하세요
예스스탁입니다.
1
올리신 수식에서 어떤 부분이 잘못되었는지 모르겠습니다.
작성하신 신호의 타입은 atstop이고 if문은 봉완성시입니다.
봉완성시 지정한 조건이 만족하면 가격을 셋팅하고 다음봉에서 해당 가격조건 충족시 신호가 발생합니다.
작성하신 식은 현재봉 완성시
1봉전,2봉전,3봉전 4봉전 레인지 중 한봉전값이 제일 작고 condition1이 true이면
현재봉 고가를 셋팅하고 다음봉에서 셋팅된 값과 같거나 큰 시세가 발생하면 매수입니다.
즉 신호발생봉으로 기준으로 보면 레인지와 condition1은 모두 전전봉이 기준입니다.
현재봉 레인지가 최근 4개봉 레인지 중 가장 작고
현재봉고가 전봉보다 작고, 현재봉저가가 전봉저가 보다 작을떄 고가를 셋팅하고
다음봉에서 신호를 발생하는 내용이면 아래와 같은 조건이 지정되어야 합니다.
if h-l == lowest(H-L,4) and H < H[1] and L > L[1] then
buy("b",atstop,h,E-num);
2
true/false가 저장되는 변수는 %s로 출력되게 하셔야 합니다.
MessageLog("%s",Condition1);
예스랭귀지 도움말 다운받으셔서
예스랭귀지 활용--> 디버깅의 내용을 참고하시기 바랍니다.
즐거운 하루되세요
> 히익 님이 쓴 글입니다.
> 제목 : 수식질문
> 안녕하세요 개발자님.
아래 수식은 다음과 같습니다.
전일 레인지(고가-저가), 전전일 레인지, 전전전일 레인지, 전전전전일 레인지 중 가장 작은 레인지는 전일 레인지와 같아야 한다.
또한 전일 고가는 전전일 고가보다 작아야하고, 전일 저가는 전전일 저가보다 높아야 한다.(전일 고가,저가가 전전일 고가,저가 범위 안에 있어야 한다)
이 두 조건을 충족 시, 전일 고가 돌파시 매수, 전일 저가 돌파시 매수 청산
이 두 조건을 충족 시, 전일 저가 돌파시 매도, 전일 고가 돌파시 매도 청산
(////// <---사이에 있는 N부터 시작되는 자금관리 식은 무시하셔도 좋습니다.)
궁금한 점은 사진을 보시면 아시겠지만 올바른 식이 적용이 되지 않습니다.
또한 메시지로그를 통해 condition1 값을 보면 true 나 false 혹은 1과 0 값이 아닌 다른 수가 나오는데 왜이런 현상이 나오는지 궁금합니다.
항상 도움주셔서 감사합니다.