커뮤니티

주문 수량 설정

프로필 이미지
과일나라
2023-01-30 14:29:26
1112
글번호 218675
답변완료

첨부 이미지

안녕하세요 NH예스트레이더를 사용하고 있습니다. 주문 수량을 아래 화면에서 설정하여 사용하고 있는데요 전략당 1계약을 3계약으로 수정하여 주문을 넣으려고 '비용/수량' 부분의 거래수량을 1 -> 3으로 바꾸었더니 성과가 다르게 나와서 확인해 보았습니다. 예를 들어, 거래수량을 1로 저장하고 If MaxPositionProfit >= 1 Then ExitShort(); 실행했을 때와 거래수량을 3으로 놓고 실행했을때 청산 위치가 바뀌어 버립니다. 거래수량을 3으로 놓고 실행했을때 MaxPositionProfit이 0.35가 되면 실행되어 버립니다. MaxPositionProfit * 거래수량이 되어서요 이렇게 되면 수량을 설정에서 바꾸어버리면 위와 같이 계산되는 모든 함수들에 Currentcontracts를 모두 곱하여 다시 작성해야 하는 경우가 발생합니다. 이런경우 어떻게 해야 하는지확인부탁드립니다. 단순히 기존 전략은 두고 수량만 올리는 것인데 왜 프로그램까지 고쳐야 하는지 모르겠네요 원래대로라면 주문 수량을 어떻게 바꾸던 상관없이 맨 위화면의 오른쪽 화면과 같이 주문이 나와야 하는데 그렇지 않아서 문의 올립니다. OpenPositionProfit 함수도 주문 수량에 따라 다르게 주문이 발생하네요. ex. If Date <> Date[1] Then Sell(); If OpenPositionProfit >= 1 Then ExitShort(); SetStopEndofday(); 아래와 같이 테스트 시그널을 만들어서 차트에 전략을 적용시키고 비용/수량의 거래수량을 바꾸면 ExitShort의 신호위치가 다르게 나옵니다. 한번 해보시면 무슨의미이신지 확인 가능하십니다.
NH트레이더 (NH투자증권)
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2023-01-30 16:15:38

안녕하세요? 예스스탁입니다. MaxPositionProfit이나 OpenPositionProfit 함수는 수량을 반영하여 손익을 계산하는 함수입니다. 의도하신 대로 계약수 변경에 상관 없이 동일하게 신호를 발생시키려면 아래와 같이 사용하시면 될것 같습니다. If MaxPositionProfit/CurrentContracts >= 1 Then ExitShort(); 감사합니다. > 과일나라 님이 쓴 글입니다. > 제목 : 주문 수량 설정 > 안녕하세요 NH예스트레이더를 사용하고 있습니다. 주문 수량을 아래 화면에서 설정하여 사용하고 있는데요 전략당 1계약을 3계약으로 수정하여 주문을 넣으려고 '비용/수량' 부분의 거래수량을 1 -> 3으로 바꾸었더니 성과가 다르게 나와서 확인해 보았습니다. 예를 들어, 거래수량을 1로 저장하고 If MaxPositionProfit >= 1 Then ExitShort(); 실행했을 때와 거래수량을 3으로 놓고 실행했을때 청산 위치가 바뀌어 버립니다. 거래수량을 3으로 놓고 실행했을때 MaxPositionProfit이 0.35가 되면 실행되어 버립니다. MaxPositionProfit * 거래수량이 되어서요 이렇게 되면 수량을 설정에서 바꾸어버리면 위와 같이 계산되는 모든 함수들에 Currentcontracts를 모두 곱하여 다시 작성해야 하는 경우가 발생합니다. 이런경우 어떻게 해야 하는지확인부탁드립니다. 단순히 기존 전략은 두고 수량만 올리는 것인데 왜 프로그램까지 고쳐야 하는지 모르겠네요 원래대로라면 주문 수량을 어떻게 바꾸던 상관없이 맨 위화면의 오른쪽 화면과 같이 주문이 나와야 하는데 그렇지 않아서 문의 올립니다. OpenPositionProfit 함수도 주문 수량에 따라 다르게 주문이 발생하네요. ex. If Date <> Date[1] Then Sell(); If OpenPositionProfit >= 1 Then ExitShort(); SetStopEndofday(); 아래와 같이 테스트 시그널을 만들어서 차트에 전략을 적용시키고 비용/수량의 거래수량을 바꾸면 ExitShort의 신호위치가 다르게 나옵니다. 한번 해보시면 무슨의미이신지 확인 가능하십니다.
프로필 이미지

과일나라

2023-01-30 17:20:36

그럼 MaxPositionProfit / OpenPositionProfit 말고 영향을 받는 다른 함수들은 어떤것이 있나요? 위에 내용은 꼭 확인 좀 부탁드립니다. 그리고 If MaxPositionProfit/CurrentContracts >= 1 Then ExitShort(); 과같이 입력하면 Stop 주문으로 진입시 현재 봉의 CurrentContracts 가 0으로 계산되기 때문에 또 한줄이 추가되어서 IF CurrentContracts <> 0 Then 이라는 문장이 추가되어야 하네요 휴~ 계속 줄이 늘어나는데.... 예스를 사용하는 사람으로서 수량하나 바뀌는데 전략안쪽 부분을 모두 수정해야 한다는게 좀 부담스럽습니다. 맞는지 틀린지 전략마다 일일이 확인을 해야 해서... 이거 어떻게 수정이 안되나요? 왜 수량만 바뀌는데... 안쪽에 전략까지 수정을 해야 하는지...모르겠네요 *StopLoss는 SetStopLoss(1, PointStop); 위와 같이 처리할 경우 주문 수량이 1이면 1pt에서 Stop, 수량이 3이면 3pt에서 Stop 주문이 나갑니다. MaxpositionProfit을 참고해서 보면 3계약이면 StopLoss가 1/3해서 0.333이상 손실이면 청산이 나가야 하는거자나요? 이건또 왜 그 루틴을 타지 않는지... > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 주문 수량 설정 > 안녕하세요? 예스스탁입니다. MaxPositionProfit이나 OpenPositionProfit 함수는 수량을 반영하여 손익을 계산하는 함수입니다. 의도하신 대로 계약수 변경에 상관 없이 동일하게 신호를 발생시키려면 아래와 같이 사용하시면 될것 같습니다. If MaxPositionProfit/CurrentContracts >= 1 Then ExitShort(); 감사합니다. > 과일나라 님이 쓴 글입니다. > 제목 : 주문 수량 설정 > 안녕하세요 NH예스트레이더를 사용하고 있습니다. 주문 수량을 아래 화면에서 설정하여 사용하고 있는데요 전략당 1계약을 3계약으로 수정하여 주문을 넣으려고 '비용/수량' 부분의 거래수량을 1 -> 3으로 바꾸었더니 성과가 다르게 나와서 확인해 보았습니다. 예를 들어, 거래수량을 1로 저장하고 If MaxPositionProfit >= 1 Then ExitShort(); 실행했을 때와 거래수량을 3으로 놓고 실행했을때 청산 위치가 바뀌어 버립니다. 거래수량을 3으로 놓고 실행했을때 MaxPositionProfit이 0.35가 되면 실행되어 버립니다. MaxPositionProfit * 거래수량이 되어서요 이렇게 되면 수량을 설정에서 바꾸어버리면 위와 같이 계산되는 모든 함수들에 Currentcontracts를 모두 곱하여 다시 작성해야 하는 경우가 발생합니다. 이런경우 어떻게 해야 하는지확인부탁드립니다. 단순히 기존 전략은 두고 수량만 올리는 것인데 왜 프로그램까지 고쳐야 하는지 모르겠네요 원래대로라면 주문 수량을 어떻게 바꾸던 상관없이 맨 위화면의 오른쪽 화면과 같이 주문이 나와야 하는데 그렇지 않아서 문의 올립니다. OpenPositionProfit 함수도 주문 수량에 따라 다르게 주문이 발생하네요. ex. If Date <> Date[1] Then Sell(); If OpenPositionProfit >= 1 Then ExitShort(); SetStopEndofday(); 아래와 같이 테스트 시그널을 만들어서 차트에 전략을 적용시키고 비용/수량의 거래수량을 바꾸면 ExitShort의 신호위치가 다르게 나옵니다. 한번 해보시면 무슨의미이신지 확인 가능하십니다.