커뮤니티

안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~

프로필 이미지
열심청년
2020-12-30 01:40:31
938
글번호 144990
답변완료
안녕하세요! 수식을 작성하고 시뮬을 돌리다가 문제점이 몇몇 발생되어 이렇게 문의를 드리게 됐습니다~ 현재 피라미딩을 구현하기위해 (1번 ~ 4번) 매 회 매수 서식에 별도의 카운트변수를 선언하여 +1을 하고 있습니다. 이때 if문을 통과했으니 buy주문이 들어가고 +1이 됐을텐데 카운트만 늘어나고 매수는 안되어 있어서 간혹 회차를 넘어가서 1번 2번 이렇게가 아닌 1번 3번 이런식으로 매수가 되어 있더라구요. 크로스업 또는 다운함수를 사용해서 그런가해서 C[1] < 기준선 and C > 기준선 이렇게 넣었는데도 결과는 같았습니다. 주문예약어로 OnClose, AtMarket, AtStop, AtLimit 전부 다 사용해봤는데도 안되더라구요. (AtStop, AtLimit의 경우는 c+PriceScale*3 이렇게 작성했습니다.) 시장가로 매수는 프로그래밍상 어려울거라 생각되는데 무조건 매수가 되게는 보장 못 하지만 그래도 최대한 가장 무조건에 가까운 방법은 OnClose 인지 궁금합니다. 이게 아니면 if 문 내에 카운트를 세는 함수를 +1을 하는게 아니라 if문이 끝나면 바로 아래에 if latestEntryName == 매수1(또는 매수2 ...) then Cnt = Cnt + 1; 이런식으로 작성을 해야하는지 제 머리로는 이게 한계네요ㅠㅠ 혹시 위의 수식과 같은 최근매수 또는 몇번째 매수했을때의 매수명이 아닌 매수명만으로 포지션이 있는지 없는지를 확인하는 방법이 있을까요? 도움말을 암만 찾아봐도 이거에 대해선 답을 얻진 못했습니다. 슬리피지보다 더 큰 오류를 범하는게 정해진 수식이 진행 중에 매수 또는 매도가 안되었을 때 진짜 답이 없더라구요 ㅠㅠ 사람이 손매매해버리면 또 복잡해지고 ㅠㅠ 슬리피지가 얼마든 상관없습니다 그냥 매수할타이밍에 매수를 무조건 그리고 매도할 타이밍에 매도를 무조건 할 수 있도록 도움 부탁드립니다 ㅠㅠ 그리고 간혹 ETF 상품으로 시뮬을 돌릴때 1분봉기준으로 차트상에 봉이 없다던지 메시지박스로 디버깅을할때 동일 시간이 두줄이 나온다던지 이런 오류가 있던데 실 매매에서는 이런일이 발생되는일은 없겠죠? (예) 차트 상에서 09:01 봉 다음 09:03 으로 보여짐 -> 09:02 봉이 안보임 메시지 박스에서 2020.01.09.09:01 다음 줄이 동일한 2020.01.09.09:01 이고 그 다음줄이 2020.01.09.09:03 으로 보여짐 마지막으로 차트를 실행했을때 속성에서 "수정주가"라는 게 있는데 이는 어떤 역활을 하는 옵션인건지 궁금하고 체크를 하고 안하고 차이가 궁금합니다!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-12-30 13:36:39

안녕하세요 예스스탁입니다. 1 올려주신 내용만으로는 정확한 답변이 가능하지 않습니다. 수식 내용과 피라미딩 설정상태를 알아야 합니다. if조건이 만족했는데 카운트만 증가하고 매수가 되지 않았다면 피라미딩이 다른진입신호만 허용으로 설정된 상태라면 다른진입신호만허용은 각 진입별로 1회만 진입되므로 해당 진입이 이미 진입된 상태이면 카운트만 증가하고 buy는 실행되지 있습니다. 또한 신호타입을 atstop이나 atlimit을 사용하면 if조건만족하고 가격을 셋팅하고 다음봉에서 가격조건만족하면 신호가 발생하므로 카운트는 if조건이 만족해 1이 증가하지만 다음봉에서 가격조건이 만족하지 않아 신호가 발생하지 않을수 있습니다. 일반적 피라미딩시에 누적횟수를 제어하실 떄는 아래와 같이 조건을 지정해 주시면 됩니다. 첫진입이거나 포지션 진행중에는 최대 누적이 4회까지만 진입한다는 조건입니다. if 매수진입조건 Then { if MarketPosition <= 0 or (MarketPosition ==1 and MaxEntries < 4) Then Buy("b1"); } if 매도진입조건 Then { if MarketPosition >= 0 or (MarketPosition == -1 and MaxEntries < 4) Then Sell("s1"); } 2 OnClose, AtMarket, AtStop, AtLimit 은 신호타입입니다. OnClose는 완성봉종가를 리포트의 가격으로 사용하고 atmarket은 완성봉다음봉의 시가를 리포트의 가격으로 사용하고 atstop과 atlimit은 완성봉에서 가격셋팅해서 다음봉에서 가격조건 충족시 즉시 신호가 나오는 타입니다. 해당 타입은 주문가격과는 관계가 없습니다. 실제주문가격은 설정창에 지정한 가격으로 발생합니다. 설정창에서 시장가로 지정하셔야 합니다. 3 거래가 없으면 중간에 봉이 없을수 있습니다. 메세지로그는 차트의 과거봉에는 봉완성시당 1번, 실시간 봉에서는 조건만족시마다 출력되므로 동일시간이 여러번 표시될수 있습니다. 4 수정주가는 해당종목에서 유/무상증자나 액면분할 등이 있는 경우 가격괴리가 생기는데 이를 보정해서 차트에 봉을 보기 위함입니다. 5 추가로 문의하실 내용이 있으시면 02-3453-1060으로 전화주시기 바랍니다. 새해 좋은일만 가득하시기 바랍니다. > 열심청년 님이 쓴 글입니다. > 제목 : 안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~ > 안녕하세요! 수식을 작성하고 시뮬을 돌리다가 문제점이 몇몇 발생되어 이렇게 문의를 드리게 됐습니다~ 현재 피라미딩을 구현하기위해 (1번 ~ 4번) 매 회 매수 서식에 별도의 카운트변수를 선언하여 +1을 하고 있습니다. 이때 if문을 통과했으니 buy주문이 들어가고 +1이 됐을텐데 카운트만 늘어나고 매수는 안되어 있어서 간혹 회차를 넘어가서 1번 2번 이렇게가 아닌 1번 3번 이런식으로 매수가 되어 있더라구요. 크로스업 또는 다운함수를 사용해서 그런가해서 C[1] < 기준선 and C > 기준선 이렇게 넣었는데도 결과는 같았습니다. 주문예약어로 OnClose, AtMarket, AtStop, AtLimit 전부 다 사용해봤는데도 안되더라구요. (AtStop, AtLimit의 경우는 c+PriceScale*3 이렇게 작성했습니다.) 시장가로 매수는 프로그래밍상 어려울거라 생각되는데 무조건 매수가 되게는 보장 못 하지만 그래도 최대한 가장 무조건에 가까운 방법은 OnClose 인지 궁금합니다. 이게 아니면 if 문 내에 카운트를 세는 함수를 +1을 하는게 아니라 if문이 끝나면 바로 아래에 if latestEntryName == 매수1(또는 매수2 ...) then Cnt = Cnt + 1; 이런식으로 작성을 해야하는지 제 머리로는 이게 한계네요ㅠㅠ 혹시 위의 수식과 같은 최근매수 또는 몇번째 매수했을때의 매수명이 아닌 매수명만으로 포지션이 있는지 없는지를 확인하는 방법이 있을까요? 도움말을 암만 찾아봐도 이거에 대해선 답을 얻진 못했습니다. 슬리피지보다 더 큰 오류를 범하는게 정해진 수식이 진행 중에 매수 또는 매도가 안되었을 때 진짜 답이 없더라구요 ㅠㅠ 사람이 손매매해버리면 또 복잡해지고 ㅠㅠ 슬리피지가 얼마든 상관없습니다 그냥 매수할타이밍에 매수를 무조건 그리고 매도할 타이밍에 매도를 무조건 할 수 있도록 도움 부탁드립니다 ㅠㅠ 그리고 간혹 ETF 상품으로 시뮬을 돌릴때 1분봉기준으로 차트상에 봉이 없다던지 메시지박스로 디버깅을할때 동일 시간이 두줄이 나온다던지 이런 오류가 있던데 실 매매에서는 이런일이 발생되는일은 없겠죠? (예) 차트 상에서 09:01 봉 다음 09:03 으로 보여짐 -> 09:02 봉이 안보임 메시지 박스에서 2020.01.09.09:01 다음 줄이 동일한 2020.01.09.09:01 이고 그 다음줄이 2020.01.09.09:03 으로 보여짐 마지막으로 차트를 실행했을때 속성에서 "수정주가"라는 게 있는데 이는 어떤 역활을 하는 옵션인건지 궁금하고 체크를 하고 안하고 차이가 궁금합니다!