커뮤니티

문의

프로필 이미지
파일럿
2018-07-30 14:16:06
138
글번호 120981
답변완료

첨부 이미지

장시작전에 보유한 포지션을 제대로 리턴해주지 못하는 원인이 뭔지 도움부탁드립니다
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2018-07-30 14:31:47

안녕하세요 예스스탁입니다. 잔고의 인덱스는 0부터 시작합니다. 작성하신 수식의 for문은 1부터 시작합니다. 즐거운 하루되세요 > 파일럿 님이 쓴 글입니다. > 제목 : 문의 > 장시작전에 보유한 포지션을 제대로 리턴해주지 못하는 원인이 뭔지 도움부탁드립니다
프로필 이미지

파일럿

2018-07-30 14:43:57

수정하니 종목코드와 수량은 제대로 읽어오는데요 포지션은 여전히 무포지션으로 잘못읽어 옵니다 어찌해야 되나요 ? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 > 안녕하세요 예스스탁입니다. 잔고의 인덱스는 0부터 시작합니다. 작성하신 수식의 for문은 1부터 시작합니다. 즐거운 하루되세요 > 파일럿 님이 쓴 글입니다. > 제목 : 문의 > 장시작전에 보유한 포지션을 제대로 리턴해주지 못하는 원인이 뭔지 도움부탁드립니다
프로필 이미지

예스스탁 예스스탁 답변

2018-07-30 15:03:34

안녕하세요 예스스탁입니다. 잔고가 1개이면 인덱스로 0하나입니다. 현재 보유종목수는 1인데 작성하신 for문에서 i가 0~1까지 할당되어 잔고가 셋팅됩니다. 보유종목이 하나이면 인덱스로는 0인 종목하나만 있습니다. 그러므로 인덱스를 아래와 같이 지정하셔야 합니다. for (var i = 0; i < num; i++) 보유종목이 1이면 0 보유종목이 2이면 0,1 보유종목이 3이면 0,1,2 과 같이 i에 할당되고 인덱스로 셋팅됩니다. 또한 올려주신 수식은 단지 가장 마지막 셋팅된 종목의 포지션 여부만 무포지션등 메세지가 출력됩니다. 다수의 보유종목이 있고 모든 종목에 대해 보시려면 아래와 같이 for문 안에서 메세지가 출력되게 하셔야 합니다. var num = a1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { a1.SetBalanceIndex(i); Main.MessageList("종목코드",a1.Balance.code,"수량",a1.Balance.count); if (a1.Balance.position == 0) { Main.MessageList("무포지션"); } if (a1.Balance.position == 1) { Main.MessageList("매도포지션"); } if (a1.Balance.position == 2) { Main.MessageList("매수포지션"); } } for문에 의해 다시 잔고가 셋팅되므로 for문위에 잔고셋팅은 의미가 없습니다. 즐거운 하루되세요 > 파일럿 님이 쓴 글입니다. > 제목 : Re : Re : 문의 > 수정하니 종목코드와 수량은 제대로 읽어오는데요 포지션은 여전히 무포지션으로 잘못읽어 옵니다 어찌해야 되나요 ? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 > 안녕하세요 예스스탁입니다. 잔고의 인덱스는 0부터 시작합니다. 작성하신 수식의 for문은 1부터 시작합니다. 즐거운 하루되세요 > 파일럿 님이 쓴 글입니다. > 제목 : 문의 > 장시작전에 보유한 포지션을 제대로 리턴해주지 못하는 원인이 뭔지 도움부탁드립니다