커뮤니티

예스트레이더 속도문제

프로필 이미지
아름다운아침
2019-06-03 10:43:20
2160
글번호 214597
답변완료
예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
기타
답변 10
프로필 이미지

쓸데없는짓

2019-06-03 13:25:19

저도 이용하고 있는데 속도 문제 정말 심각해요. 하루에 골뱅이 가 되서 몇번을 껏다겼다하는지... 이거 정말 해결좀 안해주시는지?
프로필 이미지

아름다운아침

2019-06-03 22:18:22

추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

불꽃기사

2019-06-03 23:43:51

거래량같은 비가격 데이터도 안 쓰고 시고저종가만 사용하고 강제청산 같은 기능도 전혀 안 쓰면서 나중에 신호가 달라져도 전혀 상관없는 사람들만 예스랭귀지를 쓰란 말이죠? 예스랭귀지를 이용하는 시스템트레이딩의 장점 중 하나는 바로 일관성이라고 생각합니다. 실시간으로 갱신되는 시세에서 나오는 신호와 과거데이터에서 나오는 신호가 거의 일치하기에 신뢰할 수 있는 거죠. 님말씀대로면 실시간이후에 시스템 다시 적용하면 신호는 다 달라져 있을테고 계좌잔고와도 다 어긋나 있을 겁니다. 그런 시스템을 누가 쓰나요? > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

아름다운아침

2019-06-03 23:51:15

불꽃기사님 내 아이디어는 차팅부분말 이야기한겁니다. 그리고 문제해결은 개발팀이 알아서 ㅏ겠지요 > 불꽃기사 님이 쓴 글입니다. > 제목 : 저렇게되면.... > 거래량같은 비가격 데이터도 안 쓰고 시고저종가만 사용하고 강제청산 같은 기능도 전혀 안 쓰면서 나중에 신호가 달라져도 전혀 상관없는 사람들만 예스랭귀지를 쓰란 말이죠? 예스랭귀지를 이용하는 시스템트레이딩의 장점 중 하나는 바로 일관성이라고 생각합니다. 실시간으로 갱신되는 시세에서 나오는 신호와 과거데이터에서 나오는 신호가 거의 일치하기에 신뢰할 수 있는 거죠. 님말씀대로면 실시간이후에 시스템 다시 적용하면 신호는 다 달라져 있을테고 계좌잔고와도 다 어긋나 있을 겁니다. 그런 시스템을 누가 쓰나요? > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

불꽃기사

2019-06-04 00:11:25

차팅이라는 게 지표그리는 문제를 말씀하시는 거였군요. 주제넘게 댓글달아 죄송합니다.^^ 전 지표는 시스템 만들 때 신호가 제 위치에 나오는지 디버깅용도로만 쓰기에 시스템 트레이딩 관점에서 접근을 하게 되네요. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 저렇게되면.... > 불꽃기사님 내 아이디어는 차팅부분말 이야기한겁니다. 그리고 문제해결은 개발팀이 알아서 ㅏ겠지요 > 불꽃기사 님이 쓴 글입니다. > 제목 : 저렇게되면.... > 거래량같은 비가격 데이터도 안 쓰고 시고저종가만 사용하고 강제청산 같은 기능도 전혀 안 쓰면서 나중에 신호가 달라져도 전혀 상관없는 사람들만 예스랭귀지를 쓰란 말이죠? 예스랭귀지를 이용하는 시스템트레이딩의 장점 중 하나는 바로 일관성이라고 생각합니다. 실시간으로 갱신되는 시세에서 나오는 신호와 과거데이터에서 나오는 신호가 거의 일치하기에 신뢰할 수 있는 거죠. 님말씀대로면 실시간이후에 시스템 다시 적용하면 신호는 다 달라져 있을테고 계좌잔고와도 다 어긋나 있을 겁니다. 그런 시스템을 누가 쓰나요? > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

예스스탁 예스스탁 답변

2019-06-05 16:13:14

안녕하세요? 예스스탁입니다. 해외선물 예스트레이더의 처리속도 문제와 이에 대한 해결 방안 아이디어를 제시해 주셨는데, 먼저 시세 처리 속도 문제로 사용에 불편을 드리게 된 점에 대해서 사과의 말씀을 드립니다. 그리고 이에 대한 아이디어를 제시해 주셔서 깊은 감사를 드립니다. 해외선물의 시세처리 속도에 대해서 저희 예스스탁도 오랫동안 고민해 오면서 랭귀지나 데이터처리 방법, 차팅 방법에 대해서 일부 기능을 개선시키기는 했지만 아직까지 해당 문제를 근본적으로 해결하지 못하고 있어서 고민스러운 부분이었습니다. 이번에 올려주신 내용으로 개발팀과 미팅을 하면서 다시한번 현 상황의 중요성에 대한 인식과 향후 프로그램 처리 속도 문제 해결을 위한 방향 설정의 계기가 되었습니다. 아래에서 처리속도 문제 해결을 위해 프로그램에서 처리한 내용과 일반적인 사용방법에서의 해결방법, 그리고 향후 예스스탁에서 검토하여 진행할 부분에 대해 말씀드리도록 하겠습니다. 1. 해외선물 프로그램 속도 문제 해결을 위해 처리된 내용 1) 차트에서 현재가가 직전 현재가와 동일한 경우 연산 및 차팅을 하지 않도록 처리되었습니다. 2) 랭귀지에서는 당일청산 때문에 당일 청산에 해당되는 시간 영역에서는 모든 데이터를 처리하도록 하였고 그 이외의 시간에는 거래량이나 거래대금 등 실시간으로 변하는 내용을 이용하는 경우를 제외하고 동일한 가격에 대해서는 연산을 처리하지 않도록 하였습니다. 3) 차트에서 지표가 많이 그려진 경우에 속도 저하가 발생되는 경우가 많아서 이를 해결하고자 작년 하반기에 봉완성시에만 지표를 연산하도록 하는 기능을 옵션으로 처리하였습니다.(관리>종합환경설정>기본환경 화면에서 '데이터 추가시에만 지표연산'에 체크하여 적용할 수 있습니다.) 2. 속도 처리 지연에 대한 일반적인 해결 방법 이미 알고 계신 내용으로 판단되지만, 다른 사용자 분들을 위해 추가로 올려 드립니다. 1) 차트의 갯수를 최소화 시켜서 뛰웁니다.(가상화면도 하나의 화면으로 인식하므로 여러개의 차트를 띄워서 사용하신다면 가상화면 보다는 다른 화면틀에 저장해서 사용하시기를 권해 드립니다.) 2) 참조차트로 띄우는 갯수를 최소화 합니다. 3) 차트의 조회건수를 최소화 합니다. 4) 한 화면에 표시되는 차트의 건수를 적게 사용합니다.(화면 확대 축소 버튼으로 봉간격을 넓게 하여 한 화면에 표시되는 봉수를 최대한 줄입니다.) 5) 색상이 많이 표시되는 지표를 최소화 시킵니다. 특히, 색상채우기 기능을 최소화하여 사용합니다. 6) 환경설정의 기본화면 설정에서 ''데이터 추가시에만 지표연산'에 체크하여 봉 완성시에만 지표가 연산되도록 설정해 놓습니다. 7) 틱차트가 아닌 분차트를 이용합니다.(틱차트의 경우는 모든 틱데이터를 처리해야 하기 때문에 위에 설명드린 동일가격에 연산을 처리하지 않는 기능을 적용할 수 없기 때문에 속도 저하의 큰 원인이 될 수 있습니다.) 3. 향후 업그레이드 검토 방향 1) 올려주신 내용 중에 64비트와 관련된 내용이 있는데, 64비트 지원은 메모리와 관련하여 필요한 부분이고 해결해야 할 내용이긴 하지만, 프로그램 처리 속도를 향상시키는 부분과는 상관이 없어서 이 부분은 검토 대상에서 제외될 것 같습니다. 2) 멀티코어 지원에 대해서도 언급해 주셨는데, 이 내용은 저희가 조금더 자세히 검증을 해 보겠습니다. 이 내용에 대해서 구조적인 문제가 있기는 하지만 그 보다는 화면이나 차트창마다 멀티코어 지원을 위해 분배 처리를 하는 과정에서 오히려 오버헤드가 발생되어 속도 향상이 되지 않을 수도 있기 때문에 여러 테스트를 거쳐 충분히 검증하고 개발 검토가 이루어져야 될 부분이라고 생각하고 있습니다. 3) 팩키징하여 데이터 처리 하는 부분에 대해서 좋은 아이디어를 올려 주셨는데, 이 부분도 충분히 검토를 하겠습니다. 저희가 가장 염려하는 것은 팩키징을 할때 실시간과 재조회시에 신호가 바뀌는 현상인데, 이런 현상이 발생되지 않게 하거나 최소화 하면서 효율적으로 패키징하는 방법의 아이디어를 내고 검토하겠습니다. 향후 처리 방안에 대해서는 개발 검토가 이루어지면 추가 답변을 올려 드리도록 하겠습니다. 추가 답변까지 1~2주 정도는 소요될 것 같습니다. 다시한번 좋은 의견 제시해 주신것에 감사드립니다. 즐거운 오후 되십시오. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

아름다운아침

2019-06-21 16:54:08

예정기간이 지났는데 아직 답변이 없으셔서요. 진행상황에 대해 알고 싶습니다~ > 예스스탁 님이 쓴 글입니다. > 제목 : 예스트레이더 속도 문제 답변드립니다. > 안녕하세요? 예스스탁입니다. 해외선물 예스트레이더의 처리속도 문제와 이에 대한 해결 방안 아이디어를 제시해 주셨는데, 먼저 시세 처리 속도 문제로 사용에 불편을 드리게 된 점에 대해서 사과의 말씀을 드립니다. 그리고 이에 대한 아이디어를 제시해 주셔서 깊은 감사를 드립니다. 해외선물의 시세처리 속도에 대해서 저희 예스스탁도 오랫동안 고민해 오면서 랭귀지나 데이터처리 방법, 차팅 방법에 대해서 일부 기능을 개선시키기는 했지만 아직까지 해당 문제를 근본적으로 해결하지 못하고 있어서 고민스러운 부분이었습니다. 이번에 올려주신 내용으로 개발팀과 미팅을 하면서 다시한번 현 상황의 중요성에 대한 인식과 향후 프로그램 처리 속도 문제 해결을 위한 방향 설정의 계기가 되었습니다. 아래에서 처리속도 문제 해결을 위해 프로그램에서 처리한 내용과 일반적인 사용방법에서의 해결방법, 그리고 향후 예스스탁에서 검토하여 진행할 부분에 대해 말씀드리도록 하겠습니다. 1. 해외선물 프로그램 속도 문제 해결을 위해 처리된 내용 1) 차트에서 현재가가 직전 현재가와 동일한 경우 연산 및 차팅을 하지 않도록 처리되었습니다. 2) 랭귀지에서는 당일청산 때문에 당일 청산에 해당되는 시간 영역에서는 모든 데이터를 처리하도록 하였고 그 이외의 시간에는 거래량이나 거래대금 등 실시간으로 변하는 내용을 이용하는 경우를 제외하고 동일한 가격에 대해서는 연산을 처리하지 않도록 하였습니다. 3) 차트에서 지표가 많이 그려진 경우에 속도 저하가 발생되는 경우가 많아서 이를 해결하고자 작년 하반기에 봉완성시에만 지표를 연산하도록 하는 기능을 옵션으로 처리하였습니다.(관리>종합환경설정>기본환경 화면에서 '데이터 추가시에만 지표연산'에 체크하여 적용할 수 있습니다.) 2. 속도 처리 지연에 대한 일반적인 해결 방법 이미 알고 계신 내용으로 판단되지만, 다른 사용자 분들을 위해 추가로 올려 드립니다. 1) 차트의 갯수를 최소화 시켜서 뛰웁니다.(가상화면도 하나의 화면으로 인식하므로 여러개의 차트를 띄워서 사용하신다면 가상화면 보다는 다른 화면틀에 저장해서 사용하시기를 권해 드립니다.) 2) 참조차트로 띄우는 갯수를 최소화 합니다. 3) 차트의 조회건수를 최소화 합니다. 4) 한 화면에 표시되는 차트의 건수를 적게 사용합니다.(화면 확대 축소 버튼으로 봉간격을 넓게 하여 한 화면에 표시되는 봉수를 최대한 줄입니다.) 5) 색상이 많이 표시되는 지표를 최소화 시킵니다. 특히, 색상채우기 기능을 최소화하여 사용합니다. 6) 환경설정의 기본화면 설정에서 ''데이터 추가시에만 지표연산'에 체크하여 봉 완성시에만 지표가 연산되도록 설정해 놓습니다. 7) 틱차트가 아닌 분차트를 이용합니다.(틱차트의 경우는 모든 틱데이터를 처리해야 하기 때문에 위에 설명드린 동일가격에 연산을 처리하지 않는 기능을 적용할 수 없기 때문에 속도 저하의 큰 원인이 될 수 있습니다.) 3. 향후 업그레이드 검토 방향 1) 올려주신 내용 중에 64비트와 관련된 내용이 있는데, 64비트 지원은 메모리와 관련하여 필요한 부분이고 해결해야 할 내용이긴 하지만, 프로그램 처리 속도를 향상시키는 부분과는 상관이 없어서 이 부분은 검토 대상에서 제외될 것 같습니다. 2) 멀티코어 지원에 대해서도 언급해 주셨는데, 이 내용은 저희가 조금더 자세히 검증을 해 보겠습니다. 이 내용에 대해서 구조적인 문제가 있기는 하지만 그 보다는 화면이나 차트창마다 멀티코어 지원을 위해 분배 처리를 하는 과정에서 오히려 오버헤드가 발생되어 속도 향상이 되지 않을 수도 있기 때문에 여러 테스트를 거쳐 충분히 검증하고 개발 검토가 이루어져야 될 부분이라고 생각하고 있습니다. 3) 팩키징하여 데이터 처리 하는 부분에 대해서 좋은 아이디어를 올려 주셨는데, 이 부분도 충분히 검토를 하겠습니다. 저희가 가장 염려하는 것은 팩키징을 할때 실시간과 재조회시에 신호가 바뀌는 현상인데, 이런 현상이 발생되지 않게 하거나 최소화 하면서 효율적으로 패키징하는 방법의 아이디어를 내고 검토하겠습니다. 향후 처리 방안에 대해서는 개발 검토가 이루어지면 추가 답변을 올려 드리도록 하겠습니다. 추가 답변까지 1~2주 정도는 소요될 것 같습니다. 다시한번 좋은 의견 제시해 주신것에 감사드립니다. 즐거운 오후 되십시오. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

예스스탁 예스스탁 답변

2019-07-26 16:50:02

안녕하세요? 예스스탁입니다. 답변이 늦어져서 죄송합니다. 현재까지 진행된 내용은 데이타 처리가 지연되는 경우 데이터를 팩킹하는 구조로 작업을 하여 테스트를 진행해 왔습니다. 데이터 팩킹을 할 경우 먼저 언급드린 내용처럼 신호가 바뀌는 현상이 발생될 수 있는데, 이와 관련하여 저희가 다시 검토하는 과정에서 신호가 바뀌지 않으면서 팩킹을 할 수 있는 아이디어를 찾아서 현재 구현 중에 있습니다. 테스트 진행까지는 좀더 시간이 걸릴 것으로 생각됩니다. 완료 되면, 이 곳에 추가 답변으로 글을 올리도록 하겠습니다. 감사합니다. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도 문제 답변드립니다. > 예정기간이 지났는데 아직 답변이 없으셔서요. 진행상황에 대해 알고 싶습니다~ > 예스스탁 님이 쓴 글입니다. > 제목 : 예스트레이더 속도 문제 답변드립니다. > 안녕하세요? 예스스탁입니다. 해외선물 예스트레이더의 처리속도 문제와 이에 대한 해결 방안 아이디어를 제시해 주셨는데, 먼저 시세 처리 속도 문제로 사용에 불편을 드리게 된 점에 대해서 사과의 말씀을 드립니다. 그리고 이에 대한 아이디어를 제시해 주셔서 깊은 감사를 드립니다. 해외선물의 시세처리 속도에 대해서 저희 예스스탁도 오랫동안 고민해 오면서 랭귀지나 데이터처리 방법, 차팅 방법에 대해서 일부 기능을 개선시키기는 했지만 아직까지 해당 문제를 근본적으로 해결하지 못하고 있어서 고민스러운 부분이었습니다. 이번에 올려주신 내용으로 개발팀과 미팅을 하면서 다시한번 현 상황의 중요성에 대한 인식과 향후 프로그램 처리 속도 문제 해결을 위한 방향 설정의 계기가 되었습니다. 아래에서 처리속도 문제 해결을 위해 프로그램에서 처리한 내용과 일반적인 사용방법에서의 해결방법, 그리고 향후 예스스탁에서 검토하여 진행할 부분에 대해 말씀드리도록 하겠습니다. 1. 해외선물 프로그램 속도 문제 해결을 위해 처리된 내용 1) 차트에서 현재가가 직전 현재가와 동일한 경우 연산 및 차팅을 하지 않도록 처리되었습니다. 2) 랭귀지에서는 당일청산 때문에 당일 청산에 해당되는 시간 영역에서는 모든 데이터를 처리하도록 하였고 그 이외의 시간에는 거래량이나 거래대금 등 실시간으로 변하는 내용을 이용하는 경우를 제외하고 동일한 가격에 대해서는 연산을 처리하지 않도록 하였습니다. 3) 차트에서 지표가 많이 그려진 경우에 속도 저하가 발생되는 경우가 많아서 이를 해결하고자 작년 하반기에 봉완성시에만 지표를 연산하도록 하는 기능을 옵션으로 처리하였습니다.(관리>종합환경설정>기본환경 화면에서 '데이터 추가시에만 지표연산'에 체크하여 적용할 수 있습니다.) 2. 속도 처리 지연에 대한 일반적인 해결 방법 이미 알고 계신 내용으로 판단되지만, 다른 사용자 분들을 위해 추가로 올려 드립니다. 1) 차트의 갯수를 최소화 시켜서 뛰웁니다.(가상화면도 하나의 화면으로 인식하므로 여러개의 차트를 띄워서 사용하신다면 가상화면 보다는 다른 화면틀에 저장해서 사용하시기를 권해 드립니다.) 2) 참조차트로 띄우는 갯수를 최소화 합니다. 3) 차트의 조회건수를 최소화 합니다. 4) 한 화면에 표시되는 차트의 건수를 적게 사용합니다.(화면 확대 축소 버튼으로 봉간격을 넓게 하여 한 화면에 표시되는 봉수를 최대한 줄입니다.) 5) 색상이 많이 표시되는 지표를 최소화 시킵니다. 특히, 색상채우기 기능을 최소화하여 사용합니다. 6) 환경설정의 기본화면 설정에서 ''데이터 추가시에만 지표연산'에 체크하여 봉 완성시에만 지표가 연산되도록 설정해 놓습니다. 7) 틱차트가 아닌 분차트를 이용합니다.(틱차트의 경우는 모든 틱데이터를 처리해야 하기 때문에 위에 설명드린 동일가격에 연산을 처리하지 않는 기능을 적용할 수 없기 때문에 속도 저하의 큰 원인이 될 수 있습니다.) 3. 향후 업그레이드 검토 방향 1) 올려주신 내용 중에 64비트와 관련된 내용이 있는데, 64비트 지원은 메모리와 관련하여 필요한 부분이고 해결해야 할 내용이긴 하지만, 프로그램 처리 속도를 향상시키는 부분과는 상관이 없어서 이 부분은 검토 대상에서 제외될 것 같습니다. 2) 멀티코어 지원에 대해서도 언급해 주셨는데, 이 내용은 저희가 조금더 자세히 검증을 해 보겠습니다. 이 내용에 대해서 구조적인 문제가 있기는 하지만 그 보다는 화면이나 차트창마다 멀티코어 지원을 위해 분배 처리를 하는 과정에서 오히려 오버헤드가 발생되어 속도 향상이 되지 않을 수도 있기 때문에 여러 테스트를 거쳐 충분히 검증하고 개발 검토가 이루어져야 될 부분이라고 생각하고 있습니다. 3) 팩키징하여 데이터 처리 하는 부분에 대해서 좋은 아이디어를 올려 주셨는데, 이 부분도 충분히 검토를 하겠습니다. 저희가 가장 염려하는 것은 팩키징을 할때 실시간과 재조회시에 신호가 바뀌는 현상인데, 이런 현상이 발생되지 않게 하거나 최소화 하면서 효율적으로 패키징하는 방법의 아이디어를 내고 검토하겠습니다. 향후 처리 방안에 대해서는 개발 검토가 이루어지면 추가 답변을 올려 드리도록 하겠습니다. 추가 답변까지 1~2주 정도는 소요될 것 같습니다. 다시한번 좋은 의견 제시해 주신것에 감사드립니다. 즐거운 오후 되십시오. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

아름다운아침

2019-08-02 03:33:40

답변 감사합니다. 그리고 자세한 내용은 모르겠지만.. 프로그램내에서 어떤 버퍼역할을 하는 것들이나 메모리사용량등... 이런 수치 설정도 충분하게 잡혀있는지 검토 부탁드립니다. 저의 PC의 경우 무응답상태에서 몇번 메모리사용량을 살펴보았는데 늘 최대 48.6메가를 넘지 않더라구요. 이것이 프로그램과 관련이 있는지는 모르겠습니다. 나스닥 개장초에 여러개의 차트를 띄우고도 랙없이 광속으로 돌아가는 예스트레이더가 되는 날을 기대해 봅니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : 예스트레이더 속도 문제 답변드립니다. > 안녕하세요? 예스스탁입니다. 답변이 늦어져서 죄송합니다. 현재까지 진행된 내용은 데이타 처리가 지연되는 경우 데이터를 팩킹하는 구조로 작업을 하여 테스트를 진행해 왔습니다. 데이터 팩킹을 할 경우 먼저 언급드린 내용처럼 신호가 바뀌는 현상이 발생될 수 있는데, 이와 관련하여 저희가 다시 검토하는 과정에서 신호가 바뀌지 않으면서 팩킹을 할 수 있는 아이디어를 찾아서 현재 구현 중에 있습니다. 테스트 진행까지는 좀더 시간이 걸릴 것으로 생각됩니다. 완료 되면, 이 곳에 추가 답변으로 글을 올리도록 하겠습니다. 감사합니다. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도 문제 답변드립니다. > 예정기간이 지났는데 아직 답변이 없으셔서요. 진행상황에 대해 알고 싶습니다~ > 예스스탁 님이 쓴 글입니다. > 제목 : 예스트레이더 속도 문제 답변드립니다. > 안녕하세요? 예스스탁입니다. 해외선물 예스트레이더의 처리속도 문제와 이에 대한 해결 방안 아이디어를 제시해 주셨는데, 먼저 시세 처리 속도 문제로 사용에 불편을 드리게 된 점에 대해서 사과의 말씀을 드립니다. 그리고 이에 대한 아이디어를 제시해 주셔서 깊은 감사를 드립니다. 해외선물의 시세처리 속도에 대해서 저희 예스스탁도 오랫동안 고민해 오면서 랭귀지나 데이터처리 방법, 차팅 방법에 대해서 일부 기능을 개선시키기는 했지만 아직까지 해당 문제를 근본적으로 해결하지 못하고 있어서 고민스러운 부분이었습니다. 이번에 올려주신 내용으로 개발팀과 미팅을 하면서 다시한번 현 상황의 중요성에 대한 인식과 향후 프로그램 처리 속도 문제 해결을 위한 방향 설정의 계기가 되었습니다. 아래에서 처리속도 문제 해결을 위해 프로그램에서 처리한 내용과 일반적인 사용방법에서의 해결방법, 그리고 향후 예스스탁에서 검토하여 진행할 부분에 대해 말씀드리도록 하겠습니다. 1. 해외선물 프로그램 속도 문제 해결을 위해 처리된 내용 1) 차트에서 현재가가 직전 현재가와 동일한 경우 연산 및 차팅을 하지 않도록 처리되었습니다. 2) 랭귀지에서는 당일청산 때문에 당일 청산에 해당되는 시간 영역에서는 모든 데이터를 처리하도록 하였고 그 이외의 시간에는 거래량이나 거래대금 등 실시간으로 변하는 내용을 이용하는 경우를 제외하고 동일한 가격에 대해서는 연산을 처리하지 않도록 하였습니다. 3) 차트에서 지표가 많이 그려진 경우에 속도 저하가 발생되는 경우가 많아서 이를 해결하고자 작년 하반기에 봉완성시에만 지표를 연산하도록 하는 기능을 옵션으로 처리하였습니다.(관리>종합환경설정>기본환경 화면에서 '데이터 추가시에만 지표연산'에 체크하여 적용할 수 있습니다.) 2. 속도 처리 지연에 대한 일반적인 해결 방법 이미 알고 계신 내용으로 판단되지만, 다른 사용자 분들을 위해 추가로 올려 드립니다. 1) 차트의 갯수를 최소화 시켜서 뛰웁니다.(가상화면도 하나의 화면으로 인식하므로 여러개의 차트를 띄워서 사용하신다면 가상화면 보다는 다른 화면틀에 저장해서 사용하시기를 권해 드립니다.) 2) 참조차트로 띄우는 갯수를 최소화 합니다. 3) 차트의 조회건수를 최소화 합니다. 4) 한 화면에 표시되는 차트의 건수를 적게 사용합니다.(화면 확대 축소 버튼으로 봉간격을 넓게 하여 한 화면에 표시되는 봉수를 최대한 줄입니다.) 5) 색상이 많이 표시되는 지표를 최소화 시킵니다. 특히, 색상채우기 기능을 최소화하여 사용합니다. 6) 환경설정의 기본화면 설정에서 ''데이터 추가시에만 지표연산'에 체크하여 봉 완성시에만 지표가 연산되도록 설정해 놓습니다. 7) 틱차트가 아닌 분차트를 이용합니다.(틱차트의 경우는 모든 틱데이터를 처리해야 하기 때문에 위에 설명드린 동일가격에 연산을 처리하지 않는 기능을 적용할 수 없기 때문에 속도 저하의 큰 원인이 될 수 있습니다.) 3. 향후 업그레이드 검토 방향 1) 올려주신 내용 중에 64비트와 관련된 내용이 있는데, 64비트 지원은 메모리와 관련하여 필요한 부분이고 해결해야 할 내용이긴 하지만, 프로그램 처리 속도를 향상시키는 부분과는 상관이 없어서 이 부분은 검토 대상에서 제외될 것 같습니다. 2) 멀티코어 지원에 대해서도 언급해 주셨는데, 이 내용은 저희가 조금더 자세히 검증을 해 보겠습니다. 이 내용에 대해서 구조적인 문제가 있기는 하지만 그 보다는 화면이나 차트창마다 멀티코어 지원을 위해 분배 처리를 하는 과정에서 오히려 오버헤드가 발생되어 속도 향상이 되지 않을 수도 있기 때문에 여러 테스트를 거쳐 충분히 검증하고 개발 검토가 이루어져야 될 부분이라고 생각하고 있습니다. 3) 팩키징하여 데이터 처리 하는 부분에 대해서 좋은 아이디어를 올려 주셨는데, 이 부분도 충분히 검토를 하겠습니다. 저희가 가장 염려하는 것은 팩키징을 할때 실시간과 재조회시에 신호가 바뀌는 현상인데, 이런 현상이 발생되지 않게 하거나 최소화 하면서 효율적으로 패키징하는 방법의 아이디어를 내고 검토하겠습니다. 향후 처리 방안에 대해서는 개발 검토가 이루어지면 추가 답변을 올려 드리도록 하겠습니다. 추가 답변까지 1~2주 정도는 소요될 것 같습니다. 다시한번 좋은 의견 제시해 주신것에 감사드립니다. 즐거운 오후 되십시오. > 아름다운아침 님이 쓴 글입니다. > 제목 : Re : 예스트레이더 속도문제 > 추가 아이디어.. 분차트 차팅필터링 -분차트 최소 단위는 1분이니까 매분0초는 모두 차팅한다. -1초부터59초 사이에서 고점이나 저점이 새로 나오면 차팅한다 -1초부터 59초 사이에서 고저 사이라면 0.5초 단위로 차팅한다. -처리해야할 밀린 시세데이터 갯수가 적다면 모두 차팅한다 -처리해야할 밀린 시세데이터 갯수가 일정갯수 이상으로 밀리면 위 조건으로 필터링해서 차팅한다. 등등등... 차팅전에 시세를 구분해서 차팅적합성을 해주는 예스트레이더프로그램 로직을 만들어 추가해주세요~ 제발 좀... 예스트레이더는 정말 최고의 프로그램인데... 시세가 쏟아질땐 정말 무용지물입니다. ============================================= > 아름다운아침 님이 쓴 글입니다. > 제목 : 예스트레이더 속도문제 > 예스트레이더 속도개선에 관한 문제는 여전히 길을 못찾는 것같습니다. 회사의 입장을 정리해보면.. 64비트지원계획없다 멀티코어 지원은 구조적으로 불가능하다. 차트갯수를 줄여라 로직을 단순화해라 건수를 조금만 불러와라 프로그램옵션에서 데이터추가시에만 지표연산을 적용해라 좋은 기능의 프로그램을 만들어 놓고 결국 실전에서는 무용지물이 될수도 있는... 심지어 PC의 사양까지 높여봐도 여전히 뉴욕개장초 나스닥시세에는 처리지연이 걸리는 상황.. 그렇지만 분명히 답은 있을겁니다. 현재 예스트레이더 데이터 처리구조는 들어오는 모든 시세데이터를 버퍼에 담아두었다가 한개도 빠짐없이 순서대로 모두 처리하는 것같습니다. 한개의 시세데이터를 받고 사용자 지표 연산처리하고 차트에 그리고 다음시세 처리하고..이렇게 반복... 이러다가 당연히 CPU는 골뱅이 상태가 되고.. 결국 이런 구조가 차팅지연의 원인이 되는 것같은데.. 해결을 위한 아이디어는 여러가지가 있을겁니다. 예를들면...데이터에 시리얼과 시간, 처리시간등의 레코드를 추가하고 현재 시각과 처리시간을 비교해 일정수준이 넘어가면 다음 시간단위의 것을 처리하도록하는 로직을 적용한다면 현재 문제는 해결되지 않을까 생각합니다. 즉, 받은 데이타를 차팅하기 전에 이것이 처리해야 될 데이터인가 필터링해도 괜찮은 데이터인가를 구분하는 예스트레이더 프로그램로직이 필요한 상황으로 보입니다. 어쨌든 고가와 저가가 아닌 중간에서 왔다갔다하는 것들은 1초에 1~2개정도만 처리해도 문제는 엄청나게 빠른 느낌으로 개선될 것 같습니다. 처리해도 의미없는 데이타를 처리하느라 CPU자원을 낭비하지 않도록 하는것이 관건이겠죠. 의미없는 데이터를 필터링하는 것이 예스트레이더 개발팀의 숙제일듯하네요. 데이터구조 전문가를 찾아 꼭 이 과제를 해결해주시기 바랍니다.
프로필 이미지

토그

2019-10-15 07:44:38

기대는 안하시는게 좋을거 같습니다. 7년째 사용하는데 각자 방법을 찾는게 최선입니다. 수동매매할때와 시스템트레이딩할때의 차이를 제가 관찰해보면 속도저하의 주범은 plot함수입니다. 그외 알고리즘 연산들은 최적화만 제대로 했다면 속도저하가 크게 나는걸 못느꼈습니다.(참고로 저는 나스닥 거래가 주입니다) 제 알고리즘크기가 약 8000라인정도니까 결코 가볍지는 않은데요. 시스템에 돌릴때는 plot이 필요없어 내부 알고리즘만 돌리거든요. 그럴때는 딜레이 거의 없었습니다. 그런데 시그널 신호만드는 내부 연산없이 단순 plot만 그릴때는 미장초반에는 엄청나게 딜레이가 생기거든요. 제가 예전에 이런 문제점을 해결하기 위해 사용한 방법은 그냥 단순하게 하나의 차트에 하나의 컴퓨터사용하는 것이었습니다. 그리고 캔들수를 제한하구요. 즉, 예스랭귀지의 본연의 목적인 plot없이 시스템만 돌린다면 그럭저럭 큰 문제가 없지만 이걸 수동매매로 화면에 plot을 뿌려가면서 한다면 pc늘리는 것 이외에는 방법이 없을듯 합니다.