커뮤니티

문의드립니다

프로필 이미지
시스시스스템
2022-01-28 15:37:23
1013
글번호 155921
답변완료
주식 5종목까지 보유종목을 제한하려고 var : AccNum(""), NumPosit(0); AccNum = " 계좌번호 " ; NumPosit = GetNumPositions(AccNum); if NumPosit <= 5 and 후략 then 이와 같은 식으로 시험 적용을 해보았는데 실제 매매가 아니어서인지 종목 갯수 제한이 걸리지 않은채 그냥 계속 추가 종목들이 매수가 되어버리는데요. 실제 매매에서는 갯수 제한이 동작할까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-01-28 16:15:19

안녕하세요 예스스탁입니다. 잔고관련된 함수는 과거봉의 값이 없습니다. 아래 내용을 시스템이나 지표식으로 작성해 차트에 적용하면 각봉의 값이 디버깅창에 출력됩니다. 확인해 보시면 차트 과거봉에는 값이 없어 N/A이고 차트 마지막 실시간봉에서만 0 이상의 값이 리턴되는 것을 보실 수 있습니다. 과거봉의 값이 N/A이기 때문에 NumPosit <= 5 같은 조건을 충족할 수 없어 과거봉에는 신호가 발생하지 못하는 것입니다. 실시간봉에서는 해당 조건 체크해서 신호가 발생할 수 있습니다. var : AccNum(""), NumPosit(0); AccNum = " 계좌번호 "; NumPosit = GetNumPositions(AccNum); MessageLog("%.10f",NumPosit); 실시간에서는 해당 내용으로 조건을 지정해 제어를 할수 있지만 프로그램을 재접속하거나 시스템을 재적용하면 다시 과거봉에는 값이 없으므로 신호를 연결해 갈수 없습니다. 즉 잔고와 관련된 모든 함수는 항상 실시간봉에서만 값이 제공되므로 사용하실 때는 위 내용에 유의/감안해서 사용하셔야 합니다. 즐거운 명절 되시길 바랍니다. > 시스시스스템 님이 쓴 글입니다. > 제목 : 문의드립니다 > 주식 5종목까지 보유종목을 제한하려고 var : AccNum(""), NumPosit(0); AccNum = " 계좌번호 " ; NumPosit = GetNumPositions(AccNum); if NumPosit <= 5 and 후략 then 이와 같은 식으로 시험 적용을 해보았는데 실제 매매가 아니어서인지 종목 갯수 제한이 걸리지 않은채 그냥 계속 추가 종목들이 매수가 되어버리는데요. 실제 매매에서는 갯수 제한이 동작할까요?