커뮤니티
For문 관련 문의
2015-12-29 14:55:19
130
글번호 93901
예스랭귀지 도움말 69페이지에 있는 for문 관련 질문드립니다.
여기서 Vaule1을 for문을 돌리는 이유를 알지를 못하겠네요.
0 to 9로 해도, 0 to 2로 해도 0 to 100으로 해도 결과는 똑같이 나오는데
vaule1값 을 for문에 넣어서 돌리는 이유가 먼지요?
Messagelog를 찍어봐도 value1에는 그냥 for문의 마지막 숫자+1이 찍히는 이유는 무엇인가요?
감사합니다.
Var: Entry(0);
Entry = 0;
for Value1 = 0 to 9 {
if EntryDate(Value1) == sDate then
Entry = Entry+1;
}
if L<L[1] and Entry<1 Then
Buy("B", AtLimit,L-PriceScale);
If H>H[1] Then
Exitlong("EX", AtLimit, H+PriceScale);
Messagelog("%.f, %.f, %.f,%.2f,%.2f,%.2f,%.2f", value1, Entry, EntryDate, L,L[1], H, H[1]);
답변 1
예스스탁 예스스탁 답변
2015-12-29 15:53:12
안녕하세요
예스스탁입니다.
Entry = 0;
for Value1 = 0 to 9{
if EntryDate(Value1) == sDate then
Entry = Entry+1;
}
위 문장은 당일 진입횟수를 카운트하는 식입니다.
for Value1 = 0 to 9
위 문장은 0부터 9까지 1씩 증가하면서
value1에 해당값을 저장한다는 내용입니다.
value1에 값이 한번 저장되면
아래 문장이 수행됩니다.
if EntryDate(Value1) == sDate then
Entry = Entry+1;
Entrydate는 진입날짜입니다
Entrydate(0)은 현재 진입중인 포지션이 있으면 해당 진입의 날짜를
Entrydate(1)은 이전의 거래완료(청산완료)된 거래 중 현재봉에서 가장 가까운 진입의 날짜를
Entrydate(2)은 이전의 거래완료(청산완료)된 거래 중 현재봉에서 두번째 가까운 진입의 날짜를
Entrydate(3)은 이전의 거래완료(청산완료)된 거래 중 현재봉에서 세번째 가까운 진입의 날짜를
순서대로 가져옵니다.
그러므로 위 식은 0~9
즉 가장최근의 10개의 진입의 날짜를 가져와 현재봉의 날짜와 비교해
오늘 진입이 몇번인지 카운트 합니다.
0 to 9를 0 to 2로 해도 0 to 100으로 해도 결과가 같은것은
진입식이 하루에 한번만(Entry < 1) 발생하게 되어 있기 때문입니다.
if L<L[1] and Entry < 1 Then
Buy("B", AtLimit,L-PriceScale);
당일 진입횟수를 지정할 때
for문의 최종값은 진입횟수 이상으로만 지정하면 됩니다.
즉 0 to 9에서 9는 큰 의미가 있는 값은 아니고
당일진입횟수가 1이면 0 to 1이상으로만 지정하면 되는데
수식에서 당일진입횟수를 조절할수 있으므로
넉넉히 9로 지정한 내용입니다.
진입식에서 entry < 1을
entry < 2나 entry < 3으로 변경해
적용해 보시면 메세지로그에 2나 3의 값을 보실수 있습니다.
즐거운 하루되세요
> 콩형 님이 쓴 글입니다.
> 제목 : For문 관련 문의
> 예스랭귀지 도움말 69페이지에 있는 for문 관련 질문드립니다.
여기서 Vaule1을 for문을 돌리는 이유를 알지를 못하겠네요.
0 to 9로 해도, 0 to 2로 해도 0 to 100으로 해도 결과는 똑같이 나오는데
vaule1값 을 for문에 넣어서 돌리는 이유가 먼지요?
Messagelog를 찍어봐도 value1에는 그냥 for문의 마지막 숫자+1이 찍히는 이유는 무엇인가요?
감사합니다.
Var: Entry(0);
Entry = 0;
for Value1 = 0 to 9 {
if EntryDate(Value1) == sDate then
Entry = Entry+1;
}
if L<L[1] and Entry<1 Then
Buy("B", AtLimit,L-PriceScale);
If H>H[1] Then
Exitlong("EX", AtLimit, H+PriceScale);
Messagelog("%.f, %.f, %.f,%.2f,%.2f,%.2f,%.2f", value1, Entry, EntryDate, L,L[1], H, H[1]);
다음글
이전글