커뮤니티

매도와 동시에 매수 진입이 안됩니다.

프로필 이미지
푸앵카레
2024-01-11 03:28:23
840
글번호 175625
답변완료

첨부 이미지

처음 매도 신호에서 매도 주문이 나가서 보유중이다가 두번째 나오는 매수 신호에서 처음 나왔던 매도 포지션이 정리되고 주문이 끝났습니다. 제가 예상한것과 시스템 성능보고서에 나온것도 같은 내용이지만 두번째 나오는 매수 신호에서 매도포지션이 정리됨과 동시에 매수 포지션 주문이 나가는것이었습니다. 피라미딩은 허용안함 주문 시작 신호는 진입신호에 둔 상태였습니다. 피라미딩과 주문 시작 신호의 문제일까요? 아니면수식의 문제일까요? 수식은 아래와 같습니다. input : a(9), length(3),크기(15); var : truehighv(0),TrueLowv(0),TrueRangev(0),xatr(0),nLoss(0),src(0) ; var : xClose(0),xOpen(0),xHigh(0),xLow(0); var : xATRTrailingStop(0),poss(0), emav(0), ab(False), be(False),tx(0) ; var : dir(0) ; if index == 0 then { xOpen = open; xClose = (O+H+L+C)/4; xHigh = MaxList( high, xOpen, xClose); xLow = MinList( low, xOpen,xClose); } else { xClose = (O+H+L+C)/4; xOpen = (xOpen [1] + xClose [1])/2 ; xHigh = MaxList(High, xOpen, xClose) ; xLow = MinList(Low, xOpen, xClose) ; } //////// If xClose[1] > xHigh then TrueHighv = xClose[1]; else TrueHighv = xHigh; If xClose[1] < xLow then TrueLowv = xClose[1]; else TrueLowv = xLow; TrueRangev = TrueHighv - TrueLowv; xatr = ma(TrueRangev,length); nLoss = a * xatr ; ########## src = xClose ; xATRTrailingStop = 0.0 ; xATRTrailingStop = iff(src > xATRTrailingStop[1] and src[1] > xATRTrailingStop[1], max(xATRTrailingStop[1], src - nLoss), iff(src < xATRTrailingStop[1] and src[1] < xATRTrailingStop[1], min(xATRTrailingStop[1],src + nLoss), iff(src > xATRTrailingStop[1], src - nLoss, src + nLoss))); poss = 0 ; poss = iff(src[1] < xATRTrailingStop[1] and src > xATRTrailingStop[1], 1, iff(src[1] > xATRTrailingStop[1] and src < xATRTrailingStop[1], -1, poss[1])) ; emav = ema(src,1); if crossup(emav, xATRTrailingStop) Then ab = true ; Else ab = False; if crossup(xATRTrailingStop, emav) Then be = true ; Else be = False; //////////// dir = iff(src > xATRTrailingStop and ab == true , 1 ,iff( src < xATRTrailingStop and be == true , -1 , dir)); if dir == 1 and dir[1] == -1 Then { Buy(); } if dir == -1 and dir[1] == 1 Then { Sell(); }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2024-01-11 17:34:59

안녕하세요 예스스탁입니다. 수식내용은 신호발생하는 용도일 뿐입니다. 리포트상 내용이 의도와 맞으시면 수정할 부분이 없습니다. 주문시작신호도 단지 자동매매하는 계좌의 실제 포지션과 차트 신호상의 포지션을 맞추기 위한 용도이므로 해당 부분은 사용자분이 판단하셔서 모든신호나 진입신호로 설정하셔야 하는 부분입니다. 아래 내용 참고해 보시기 바랍니다. 더 자세한 내용은 02-3453-1060으로 전화주시기 바랍니다. 1 피라미딩은 동일 진입신호가 반복해서 나오는 것을 말합니다. 현재 올리신 수식은 피라미딩이 가능한 수식이 아니며 피라미딩 설정과 관련이 없습니다. 2 매수조건이 만족하면 매수진입, 매도조건이 만족하면 매도진입하는 내용입니다. Buy와 sell은 진입함수로 신호상 매수진입(buy)이 발생한 상태에서 매도진입(sell)이 발생하면 매수포지션 청산과 매도진입신호가 같이 발생하고 신호상 매도진입(sell)이 발생한 상태에서 매수진입(buy)이 발생하면 매도포지션 청산과 매도진입신호가 같이 발생하게 됩니다. 위와 같이 포지션을 역으로 교체하는 전략을 스위칭 혹은 리버셜 전략이라고 하며 올리신 수식은 스위칭(리버셜) 전략입니다. 3 리버셜 전략은 신호에 따라 잔고 포지션을 반대로 가져가는 내용이므로 매도진입(수량은1)이 들어가 있는 상태에서 매수로 전환하려면 매도포지션을 청산하기 위해 매수1계약 매수로 포지션을 가지기 위해 매수1계약이 발생해 총 2계약이 주문되게 됩니다. 반대로 매수진입(수량은1)이 들어가 있는 상태에서 매도로 전환하려면 매도포지션을 청산하기 위해 매수도계약 매도 포지션을 가지기 위해 매도 1계약이 발생해 총 2계약이 주문되게 됩니다. 즉 올리신 수식은 스위칭(리버셜) 전략이고 신호가 매수포지션 상태와 매도포지션 상태를 번갈아 가면서 가지는 내용입니다. 그러므로 신호가 발생할 때 반대포지션 청산과 함께 진입방향 주문이 나가는 내용이 맞습니다. 4 주문시작신호에서 진입신호는 단지 시스템 적용 후 진입신호가 발생한 이후부터 주문을 집행한다는 설정입니다. 적용이후 첫번째 신호가 청산이면 해당 청산신호에 대한 주문은 건너뛰고 이후 진입신호 부터 계속 주문을 집행하게 됩니다. 모든신호는 적용 후 첫신호의 종류와 관계없이 무조건 주문을 집행합니다. 즐거운 하루되세요 > 푸앵카레 님이 쓴 글입니다. > 제목 : 매도와 동시에 매수 진입이 안됩니다. > 처음 매도 신호에서 매도 주문이 나가서 보유중이다가 두번째 나오는 매수 신호에서 처음 나왔던 매도 포지션이 정리되고 주문이 끝났습니다. 제가 예상한것과 시스템 성능보고서에 나온것도 같은 내용이지만 두번째 나오는 매수 신호에서 매도포지션이 정리됨과 동시에 매수 포지션 주문이 나가는것이었습니다. 피라미딩은 허용안함 주문 시작 신호는 진입신호에 둔 상태였습니다. 피라미딩과 주문 시작 신호의 문제일까요? 아니면수식의 문제일까요? 수식은 아래와 같습니다. input : a(9), length(3),크기(15); var : truehighv(0),TrueLowv(0),TrueRangev(0),xatr(0),nLoss(0),src(0) ; var : xClose(0),xOpen(0),xHigh(0),xLow(0); var : xATRTrailingStop(0),poss(0), emav(0), ab(False), be(False),tx(0) ; var : dir(0) ; if index == 0 then { xOpen = open; xClose = (O+H+L+C)/4; xHigh = MaxList( high, xOpen, xClose); xLow = MinList( low, xOpen,xClose); } else { xClose = (O+H+L+C)/4; xOpen = (xOpen [1] + xClose [1])/2 ; xHigh = MaxList(High, xOpen, xClose) ; xLow = MinList(Low, xOpen, xClose) ; } //////// If xClose[1] > xHigh then TrueHighv = xClose[1]; else TrueHighv = xHigh; If xClose[1] < xLow then TrueLowv = xClose[1]; else TrueLowv = xLow; TrueRangev = TrueHighv - TrueLowv; xatr = ma(TrueRangev,length); nLoss = a * xatr ; ########## src = xClose ; xATRTrailingStop = 0.0 ; xATRTrailingStop = iff(src > xATRTrailingStop[1] and src[1] > xATRTrailingStop[1], max(xATRTrailingStop[1], src - nLoss), iff(src < xATRTrailingStop[1] and src[1] < xATRTrailingStop[1], min(xATRTrailingStop[1],src + nLoss), iff(src > xATRTrailingStop[1], src - nLoss, src + nLoss))); poss = 0 ; poss = iff(src[1] < xATRTrailingStop[1] and src > xATRTrailingStop[1], 1, iff(src[1] > xATRTrailingStop[1] and src < xATRTrailingStop[1], -1, poss[1])) ; emav = ema(src,1); if crossup(emav, xATRTrailingStop) Then ab = true ; Else ab = False; if crossup(xATRTrailingStop, emav) Then be = true ; Else be = False; //////////// dir = iff(src > xATRTrailingStop and ab == true , 1 ,iff( src < xATRTrailingStop and be == true , -1 , dir)); if dir == 1 and dir[1] == -1 Then { Buy(); } if dir == -1 and dir[1] == 1 Then { Sell(); }
프로필 이미지

푸앵카레

2024-01-11 18:03:36

식은 정상적이란 이야기군요 1주 동일수량 진입이 혹시 스위칭이 안되는 이유일까요? 그것도 아니라면 스위칭이 되지 않는 이유가 뭘까요? 주문 시작 신호 문제도 아니고 피라미딩도 아니라면 도대체..... 마켓포지션 함수(?)으로 스위칭을 해결할순 없을까요?
프로필 이미지

예스스탁 예스스탁 답변

2024-01-12 09:48:32

> 푸앵카레 님이 쓴 글입니다. > 제목 : Re : Re : 매도와 동시에 매수 진입이 안됩니다. > 식은 정상적이란 이야기군요 1주 동일수량 진입이 혹시 스위칭이 안되는 이유일까요? 그것도 아니라면 스위칭이 되지 않는 이유가 뭘까요? 주문 시작 신호 문제도 아니고 피라미딩도 아니라면 도대체..... 마켓포지션 함수(?)으로 스위칭을 해결할순 없을까요?