커뮤니티

수식 점검 부탁드립니다.

프로필 이미지
승부사1
2018-08-08 20:43:48
176
글번호 121235
답변완료

첨부 이미지

아래의 수식을 사용하고 있습니다. 오늘 아이리버와 로보스타 두 종목에서 예상했던 시그널이 나오지 않아서 수식에 잘못된 부분이 있는지 점검해 주시면 감사하겠습니다. 아이리버 전일종가와 시가가 같았으며 초반 상승후 하락하였다가 전일종가를 돌파하는 시점에서 매수 시그널이 발생하지 않았습니다. 로보스타 전일종가와 시가가 같았으며 초반 하락후 상승하여 전일종가를 돌파하는 시점에서 매수 시그널이 발생하지 않았습니다. 이왕에 봐 주시는거 몇가지 더 질문 드리겠습니다. 시초가가 전일종가보다 높고 전일종가보다 당일저가가 높을때 시가돌파시 매수 시초가가 전일종가보다 높고 전일종가보다 당일저가가 낮되 전일저가보다 높을때 전일종가돌파시 매수 시초가가 전일종가보다 낮을때 하락후 시가돌파시 매수 이 부분도 한번 봐주시면 감사하겠습니다. - 아 래 - input : 날짜 (20180808); if date != date[1] Then Condition1 = false; if Condition1 == false and sdate == 날짜 and dayindex > 0 and dayopen > DayClose(1) and dayopen < DayClose(1)*1.07 and daylow > dayclose(1) and CrossUp(C,DayOpen) Then{ Condition1 = true; Buy("매수1",OnClose,def,Floor(C)); } if Condition1 == false and sdate == 날짜 and dayindex > 0 and dayOpen > DayClose(1) and dayOpen < DayClose(1)*1.07 and daylow < dayclose(1) and Daylow > Daylow(1) and CrossUp(C,DayClose(1)) Then{ Condition1 = true; Buy("매수2",OnClose,def,Floor(C)); } if Condition1 == false and sdate == 날짜 and dayindex > 0 and dayopen < DayClose(1) and Daylow > Daylow(1) and CrossUp(C,DayOpen) Then{ Condition1 = true; Buy("매수3",OnClose,def,Floor(C)); } if NextBarSdate == 날짜 and NextBarSdate != sdate and NextBarOpen == C and Daylow > Daylow(1) and CrossUp(C,DayOpen) Then{ Buy("매수4",OnClose,def,Floor(C)); } if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("수익",Atlimit,EntryPrice*1.06); if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("매도",AtStop,highest(H,BarsSinceEntry)*0.97); if MarketPosition == 1 Then ExitLong("손절",AtStop,highest(H,BarsSinceEntry)*0.96);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-08-09 10:53:01

안녕하세요 예스스탁입니다. 아래 내용 참고하셔서 수정보완하시기 바랍니다. 1. 매수1,매수2,매수3 위 3개의 매수진입은 조건에 충족되지 않습니다. 시초가가 전일종가보다 크거나 작아야만 조건충족됩니다. 2. 매수4 작성하신 매수4 수식은 일간 마지막봉 완성시(다음날 시초가 수신)를 기준으로 조건판단해 첫봉의 시초가에 신호가 발생하는 수식입니다. 시초가 제외하고는 모든 조건이 완성봉인 일간마지막봉에서 판단합니다. if문은 봉완성시(다음봉시가)기준입니다. 봉완성이 다음봉시가 수신될때 이므로 NextBarOpen으로 다음봉시가가 제공됩니다. 일간 마지막봉에서 당일저가가 전일저가보다 크고 일간 마지막봉에서 종가가 그날 시초가를 돌파했어야 신호가 발생합니다. 또한 NextBarOpen은 onclose타입과 사용하지 않습니다. 다음봉시가를 확인하고 진입하는 것이므로 봉완성시 다음봉시가에 신호를 발생시키는 atmarket이나 봉완성시 가격조건을 셋팅해 다음봉에서 가격비교해 신호발생하는 atstop,atlimit과 같이 사용하셔야 합니다. 그러므로 매수4의 신호타입은 atmarket이 되어야 합니다. Buy("매수4",AtMarket,def,Floor(C)); 즐거운 하루되세요 > 승부사1 님이 쓴 글입니다. > 제목 : 수식 점검 부탁드립니다. > 아래의 수식을 사용하고 있습니다. 오늘 아이리버와 로보스타 두 종목에서 예상했던 시그널이 나오지 않아서 수식에 잘못된 부분이 있는지 점검해 주시면 감사하겠습니다. 아이리버 전일종가와 시가가 같았으며 초반 상승후 하락하였다가 전일종가를 돌파하는 시점에서 매수 시그널이 발생하지 않았습니다. 로보스타 전일종가와 시가가 같았으며 초반 하락후 상승하여 전일종가를 돌파하는 시점에서 매수 시그널이 발생하지 않았습니다. 이왕에 봐 주시는거 몇가지 더 질문 드리겠습니다. 시초가가 전일종가보다 높고 전일종가보다 당일저가가 높을때 시가돌파시 매수 시초가가 전일종가보다 높고 전일종가보다 당일저가가 낮되 전일저가보다 높을때 전일종가돌파시 매수 시초가가 전일종가보다 낮을때 하락후 시가돌파시 매수 이 부분도 한번 봐주시면 감사하겠습니다. - 아 래 - input : 날짜 (20180808); if date != date[1] Then Condition1 = false; if Condition1 == false and sdate == 날짜 and dayindex > 0 and dayopen > DayClose(1) and dayopen < DayClose(1)*1.07 and daylow > dayclose(1) and CrossUp(C,DayOpen) Then{ Condition1 = true; Buy("매수1",OnClose,def,Floor(C)); } if Condition1 == false and sdate == 날짜 and dayindex > 0 and dayOpen > DayClose(1) and dayOpen < DayClose(1)*1.07 and daylow < dayclose(1) and Daylow > Daylow(1) and CrossUp(C,DayClose(1)) Then{ Condition1 = true; Buy("매수2",OnClose,def,Floor(C)); } if Condition1 == false and sdate == 날짜 and dayindex > 0 and dayopen < DayClose(1) and Daylow > Daylow(1) and CrossUp(C,DayOpen) Then{ Condition1 = true; Buy("매수3",OnClose,def,Floor(C)); } if NextBarSdate == 날짜 and NextBarSdate != sdate and NextBarOpen == C and Daylow > Daylow(1) and CrossUp(C,DayOpen) Then{ Buy("매수4",OnClose,def,Floor(C)); } if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("수익",Atlimit,EntryPrice*1.06); if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("매도",AtStop,highest(H,BarsSinceEntry)*0.97); if MarketPosition == 1 Then ExitLong("손절",AtStop,highest(H,BarsSinceEntry)*0.96);