커뮤니티

특정시간대의 손실 초과 발생 시 진입제한

프로필 이미지
레비오사
2018-07-21 08:02:17
198
글번호 120773
답변완료
안녕하세요 크루드오일 거래하고 있습니다. 크루드오일 거래시간인 오전 07시~ 오전06시 사이에 30틱 이상 손해가 나면 진입을 하지 않는걸로 정하고싶은데 Inputs : 하루손실(30); var : NP(0),PreNP(0),dayPL(0); NP = NetProfit; if stime == 070000 or (stime > 070000 and stime[1] < 070000) Then{ PreNP = NP; } if stime >= 070000 or stime < 060000 Then{ dayPL = NP-PreNP; if dayPL/PriceScale > -PriceScale*하루손실 Then{ if 매수조건 Then buy("매수"); if 매도조건 Then sell("매도"); } } 이렇게 설정해두었습니다. 그런데 어떤 날은 손해가 30틱이 채 안되어도 진입을 안할 때가 있고 어떤 날은 30틱이 넘어도 진입을 할 때가 있네요. 어디를 수정하면 좋을지 답변 부탁드립니다 ^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-07-23 09:37:08

안녕하세요 예스스탁입니다. NetProfit은 청산완결된 거래로만 손익을 리턴합니다. 진행중인 포지션의 손익은 합산되지 않습니다. 아래와 같이 수정하시면 진행중인 포지션의 손익도 합산되고 매수진입조건이나 매도진입조건 충족시에 하루손실 이하이면 진입하고 하루손실 이상이면 청산하고 거래를 끝내게 됩니다. 또한 손익함수에는 시스템 트레이딩 설정창의 비용/수량탭에서 지정한 수수료와 슬리피지가 적용됩니다. 해당 설정을 0으로 하시면 수수료나 슬리피지는 포함하지 않고 진입청산 가격만으로 손익이 계산됩니다. Inputs : 하루손실(30); var : NP(0),PreNP(0),dayPL(0); NP = NetProfit+PositionProfit(0); if stime == 070000 or (stime > 070000 and stime[1] < 070000) Then{ PreNP = NP; } if stime >= 070000 or stime < 060000 Then { dayPL = NP-PreNP; if 매수조건 Then { if dayPL/PriceScale > -PriceScale*하루손실 Then buy("매수"); Else ExitShort(); } if 매도조건 Then { if dayPL/PriceScale > -PriceScale*하루손실 Then sell("매도"); Else ExitLong(); } } 즐거운 하루되세요 > 레비오사 님이 쓴 글입니다. > 제목 : 특정시간대의 손실 초과 발생 시 진입제한 > 안녕하세요 크루드오일 거래하고 있습니다. 크루드오일 거래시간인 오전 07시~ 오전06시 사이에 30틱 이상 손해가 나면 진입을 하지 않는걸로 정하고싶은데 Inputs : 하루손실(30); var : NP(0),PreNP(0),dayPL(0); NP = NetProfit; if stime == 070000 or (stime > 070000 and stime[1] < 070000) Then{ PreNP = NP; } if stime >= 070000 or stime < 060000 Then{ dayPL = NP-PreNP; if dayPL/PriceScale > -PriceScale*하루손실 Then{ if 매수조건 Then buy("매수"); if 매도조건 Then sell("매도"); } } 이렇게 설정해두었습니다. 그런데 어떤 날은 손해가 30틱이 채 안되어도 진입을 안할 때가 있고 어떤 날은 30틱이 넘어도 진입을 할 때가 있네요. 어디를 수정하면 좋을지 답변 부탁드립니다 ^^