커뮤니티

중첩if문의 제한은 어떤식으로 걸리는지요?

프로필 이미지
캐빈이야
2010-09-15 17:49:05
1950
글번호 204134
답변완료
예를 들어 말씀드립니다. 100개보다 훨씬 많은 if문을 사용하지만.. 쉽게 이해하고자. 말씀드립니다. if () then { 50개 if문 존재 } else { 50개 if문 존재 } 1. 이것을 50개씩 짜르면 (검증)은 되지만 HTS는 죽습니다. if () then { 50개 if문 존재 } if () { 50개 if문 존재 } 2. 또 이렇게 50개씩 나눈 다음 부분적으로 if문절을 주석처리하면 컴파일도 되고 HTS도 죽지 않습니다. if () then { 40개 if문 존재 10개 if문 주석처리 } if () { 50개 if문 존재 } 3. 부분적으로 주석처리했던 if문을 따로 빼내서 주석을 풀면 컴파일은 되지만, HTS는 죽습니다. if () then { 40개 if문 존재 } if () { 50개 if문 존재 } if () then { 10개 if문 존재 } if문을 따로 빼내는것이 답이 아닌거 같습니다.
기타
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2010-09-17 10:12:29

안녕하세요? 예스스탁입니다. 먼저 말씀드린 중첩if문은 다음 형태로 중첩된 경우로 if문의 end(;)를 만나서 종료되지 않고 계속해서 추가되어 if문 안에 if문의 갯수가 많아지게 되는 경우입니다. if ~ then if ~ then if ~ then if ~ then .... 말씀하신 것처럼 아래와 같이 작성한 경우라면 크기의 제한이 문제되지 않습니다. if ~ then { if ~ then 실행문; if ~ then 실행문; if ~ then 실행문; ... } 만일 두 번째 방법처럼 작성하신 것이라면 중첩if문의 문제는 아니라고 판단됩니다. . 먼저 말씀드렸듯이 신호이름이 길이서 발생될 수도 있는 문제이니 신호이름을 줄여보시기 바랍니다. 이 글에서 자세히 내용을 올려주셨지만, 올려주신 내용으로는 원인을 파악하기 어려운것 같습니다 이것이 문제가 아니라면 문제가 되는 부분에 대한 좀더 자세한 설명을 들어야 원인을 찾을 수 있을것 같습니다. 감사합니다. > 캐빈이야 님이 쓴 글입니다. > 제목 : 중첩if문의 제한은 어떤식으로 걸리는지요? > 예를 들어 말씀드립니다. 100개보다 훨씬 많은 if문을 사용하지만.. 쉽게 이해하고자. 말씀드립니다. if () then { 50개 if문 존재 } else { 50개 if문 존재 } 1. 이것을 50개씩 짜르면 (검증)은 되지만 HTS는 죽습니다. if () then { 50개 if문 존재 } if () { 50개 if문 존재 } 2. 또 이렇게 50개씩 나눈 다음 부분적으로 if문절을 주석처리하면 컴파일도 되고 HTS도 죽지 않습니다. if () then { 40개 if문 존재 10개 if문 주석처리 } if () { 50개 if문 존재 } 3. 부분적으로 주석처리했던 if문을 따로 빼내서 주석을 풀면 컴파일은 되지만, HTS는 죽습니다. if () then { 40개 if문 존재 } if () { 50개 if문 존재 } if () then { 10개 if문 존재 } if문을 따로 빼내는것이 답이 아닌거 같습니다.
프로필 이미지

캐빈이야

2010-09-17 11:13:36

신호이름에 문제는 아닙니다... 아주 간단하게 작성하것입니다. 일단 신호이름에 문제는 아니라고 알려드리려고 적어드립니다. 갯수도 매수/매도에 대해 1개씩만 존재합니다. buy("선물매수진입",onclose,DEF,매매수량); ExitLong("선물매수청산",DEF,DEF,"선물매수진입",1); 신호이름에 대한것은 아니라고 봅니다. ========================================================== 답변주신대로 중첩if문을 주로 많이 사용합니다. if ~ then if ~ then if ~ then if ~ then .... 제가 if문을 사용하는 형식을 적어드리면 아래와 같은식입니다. 문제는 아래 주석표시부분을 작성할때 컴파일 안된다고 메시지가 떠서 아래처럼 A블럭을 전부 빼내어 완전히 독립적인 공간으로 if문절을 만들으면 컴파일은 되지만, HTS는 죽어버립니다. if ~ then { if ~ then { if ~ then { if ~ then { .... } else if ~ then { .... } else if ~ then { .... } } } else if ~ then { // --A 블럭시작 if ~ then { if ~ then { .... } else if ~ then { .... } else if ~ then { <---추가시 에러가 발생함 .... } } // -- A블럭끝 } } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 중첩if문의 제한은 어떤식으로 걸리는지요? > 안녕하세요? 예스스탁입니다. 먼저 말씀드린 중첩if문은 다음 형태로 중첩된 경우로 if문의 end(;)를 만나서 종료되지 않고 계속해서 추가되어 if문 안에 if문의 갯수가 많아지게 되는 경우입니다. if ~ then if ~ then if ~ then if ~ then .... 말씀하신 것처럼 아래와 같이 작성한 경우라면 크기의 제한이 문제되지 않습니다. if ~ then { if ~ then 실행문; if ~ then 실행문; if ~ then 실행문; ... } 만일 두 번째 방법처럼 작성하신 것이라면 중첩if문의 문제는 아니라고 판단됩니다. . 먼저 말씀드렸듯이 신호이름이 길이서 발생될 수도 있는 문제이니 신호이름을 줄여보시기 바랍니다. 이 글에서 자세히 내용을 올려주셨지만, 올려주신 내용으로는 원인을 파악하기 어려운것 같습니다 이것이 문제가 아니라면 문제가 되는 부분에 대한 좀더 자세한 설명을 들어야 원인을 찾을 수 있을것 같습니다. 감사합니다. > 캐빈이야 님이 쓴 글입니다. > 제목 : 중첩if문의 제한은 어떤식으로 걸리는지요? > 예를 들어 말씀드립니다. 100개보다 훨씬 많은 if문을 사용하지만.. 쉽게 이해하고자. 말씀드립니다. if () then { 50개 if문 존재 } else { 50개 if문 존재 } 1. 이것을 50개씩 짜르면 (검증)은 되지만 HTS는 죽습니다. if () then { 50개 if문 존재 } if () { 50개 if문 존재 } 2. 또 이렇게 50개씩 나눈 다음 부분적으로 if문절을 주석처리하면 컴파일도 되고 HTS도 죽지 않습니다. if () then { 40개 if문 존재 10개 if문 주석처리 } if () { 50개 if문 존재 } 3. 부분적으로 주석처리했던 if문을 따로 빼내서 주석을 풀면 컴파일은 되지만, HTS는 죽습니다. if () then { 40개 if문 존재 } if () { 50개 if문 존재 } if () then { 10개 if문 존재 } if문을 따로 빼내는것이 답이 아닌거 같습니다.