커뮤니티

조회 횟수 및 OnNotifyFill 관련 질문입니다.

프로필 이미지
nollae
2019-05-11 18:14:47
3495
글번호 224854
1. 예를 들어 현재 잔고 중 전일 매수한 종목의 개수를 확인한다고 할 때 전일 매수 종목수가 50종목, 현재 잔고가 50개라고 하면 아래와 같이 작성하면 최대 몇 번 계좌조회를 한 것으로 계산되나요? 최대 50*50 = 2500번 조회로 계산되는지 Account1.Balance.code는 조회 횟수 계산에 포함되지 않는지 궁금합니다. 50종목 정도의 포트폴리오를 구성하여 운영하고자 하는데 모두 조회 횟수로 계산된다면 다른 방법이 있는지도 궁금합니다. PrevBuyNum = 50; //전일 매수종목 개수 CheckItem = 0; Account1.Refresh(); var num = Account1.GetTheNumberOfBalances(); for (var i = 0 ; i < num ; i++) { Account1.SetBalanceIndex(i); //현재 잔고 중 전일 매수 종목 개수 파악 for (var j = 0 ; j < PrevBuyNum; j++) { if (BuyItem[j] == Account1.Balance.code) //BuyItem : 전일 매수 종목코드 CheckItem++; } } 2. 종목 객체 생성 후 시세나 호가가 바뀔 때마다 들어오는 Main_OnUp*dateMarket 이벤트 내에서 이벤트 발생할 때마다 price = sItemCode.current; 로 조회를 하면, 매 시세나 호가 변경시마다 1회씩 시세조회한 것으로 계산되나요? 아니면 한 번 생성한 종목객체에 대한 현재가나 호가 등 정보 접근은 조회수 계산에서 제외되는지 궁금합니다. 보유 종목의 실시간 시세를 확인하여 Stoploss를 적용하고자 하여 현재가를 실시간으로 파악하고자 하는데 매번 조회수가 계산된다면 다른 방법이 있을까요? 3. OnNotifyFill 은 전체 주문화면에서 발생한 모든 주문 체결에 대해서 호출된다고 하였는데 그 범위가 궁금합니다. 1) Spot이 실행되고 있는 특정 계좌에서 발생한 모든 체결 내용이 수신되는 것인지 2) 본인이 소유한 모든 계좌에서 발생한 체결 내용이 수신되는 것인지 어떤 방식인지 궁금합니다. 4. OnOrderResponse은 Spot 전략에서 발생한 주문에 대해서만 호출된다고 하는데 1) 한 계좌에서 여러개의 Spot 전략을 사용할 경우 구분없이 모두 수신되는지 전략별로 따로 수신되는지 궁금합니다. 2) 더불어 한 계좌에서 Spot과 YesLanguage 전략을 같이 수행하는 경우에는 Spot 전략에서 발생한 신호만 호출되는지도 궁금합니다. 복수의 계좌에서 여러 전략을 동시에 작성하고 있어 위의 사항들에 대해 문의 드립니다.
답변 1
프로필 이미지

불꽃기사

2019-05-13 22:27:38

1. 스팟은 프로그램 내부의 가원장과 동기화되는 구조이기 때문에 그냥 값을 참조할 뿐이지 조회하는 게 아닙니다. 2. 종목객체역시 한번 생성되고나면 RemoveMarketData를 하지 않는 이상 그냥 자동으로 값이 갱신됩니다. 이를 자동업데이트라고 하며 그때마다 이벤트가 호출되는 겁니다. 당연히 단순히 객체에 있는 값을 참조할 뿐이지 조회하는 게 아닙니다. 3. 2)입니다. 4. 스팟은 스팟에서 발생한 주문에 대해서만 OnOrderResponse 가 호출됩니다. 그리고, 각 전략에서 발생한 주문에 대해서만 해당 전략의 OnOrderResponse가 호출됩니다. A, B, C 전략이 있을 때, A에서 주문이 발생하면 A의 OnOrderResponse 이벤트가 호출됩니다. 마찬가지로 B에서 주문이 발생하면 B의 이벤트가 호출되는거죠. A라는 전략을 3개 적용했더라도 이는 하나의 전략이 아니라 3개의 별개의 전략이 적용된 것입니다. 각각 다른 메모리입니다. 이름이 같다고 같은 전략이 아니라는 거죠. 도움이 되셨길... > nollae 님이 쓴 글입니다. > 제목 : 조회 횟수 및 OnNotifyFill 관련 질문입니다. > 1. 예를 들어 현재 잔고 중 전일 매수한 종목의 개수를 확인한다고 할 때 전일 매수 종목수가 50종목, 현재 잔고가 50개라고 하면 아래와 같이 작성하면 최대 몇 번 계좌조회를 한 것으로 계산되나요? 최대 50*50 = 2500번 조회로 계산되는지 Account1.Balance.code는 조회 횟수 계산에 포함되지 않는지 궁금합니다. 50종목 정도의 포트폴리오를 구성하여 운영하고자 하는데 모두 조회 횟수로 계산된다면 다른 방법이 있는지도 궁금합니다. PrevBuyNum = 50; //전일 매수종목 개수 CheckItem = 0; Account1.Refresh(); var num = Account1.GetTheNumberOfBalances(); for (var i = 0 ; i < num ; i++) { Account1.SetBalanceIndex(i); //현재 잔고 중 전일 매수 종목 개수 파악 for (var j = 0 ; j < PrevBuyNum; j++) { if (BuyItem[j] == Account1.Balance.code) //BuyItem : 전일 매수 종목코드 CheckItem++; } } 2. 종목 객체 생성 후 시세나 호가가 바뀔 때마다 들어오는 Main_OnUp*dateMarket 이벤트 내에서 이벤트 발생할 때마다 price = sItemCode.current; 로 조회를 하면, 매 시세나 호가 변경시마다 1회씩 시세조회한 것으로 계산되나요? 아니면 한 번 생성한 종목객체에 대한 현재가나 호가 등 정보 접근은 조회수 계산에서 제외되는지 궁금합니다. 보유 종목의 실시간 시세를 확인하여 Stoploss를 적용하고자 하여 현재가를 실시간으로 파악하고자 하는데 매번 조회수가 계산된다면 다른 방법이 있을까요? 3. OnNotifyFill 은 전체 주문화면에서 발생한 모든 주문 체결에 대해서 호출된다고 하였는데 그 범위가 궁금합니다. 1) Spot이 실행되고 있는 특정 계좌에서 발생한 모든 체결 내용이 수신되는 것인지 2) 본인이 소유한 모든 계좌에서 발생한 체결 내용이 수신되는 것인지 어떤 방식인지 궁금합니다. 4. OnOrderResponse은 Spot 전략에서 발생한 주문에 대해서만 호출된다고 하는데 1) 한 계좌에서 여러개의 Spot 전략을 사용할 경우 구분없이 모두 수신되는지 전략별로 따로 수신되는지 궁금합니다. 2) 더불어 한 계좌에서 Spot과 YesLanguage 전략을 같이 수행하는 경우에는 Spot 전략에서 발생한 신호만 호출되는지도 궁금합니다. 복수의 계좌에서 여러 전략을 동시에 작성하고 있어 위의 사항들에 대해 문의 드립니다.