커뮤니티

수식문의합니다~~

프로필 이미지
코퍼
2022-02-26 18:45:52
1159
글번호 156766
답변완료
수고하십니다. 1. 아래1 식에서 - 다시 돌려보아도 Bcnt, MarketPosition 이 메세지로그에서 0 발생, 이유가 무엇인지요? - 매수 연속3회 불가, 매도 연속3회 불가로 수식 수정 부탁드립니다. == 아래1 == Input : 청산P(15),청산L(15); var : SmaA(0),SmaB(0); SmaA = ma(C,5); SmaB = ma(C,20); var : Bcnt(0); if Bdate != Bdate[1] Then Bcnt = 0; if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then Bcnt+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then Bcnt = 0; //진입청산 if stime > 093500 and stime <163000 and Bcnt < 3 then { //매수 If MarketPosition == 0 and c > DayOpen and SmaA>SmaA[1] Then Buy("B"); If (c>(EntryPrice+청산P) or c <(EntryPrice-청산L)) and MarketPosition == 1 Then ExitLong("ELB"); //매도 If MarketPosition == 0 and c < DayOpen and SmaA<SmaA[1] Then Sell("S"); If (c<(EntryPrice-청산P) or c >(EntryPrice+청산L)) and MarketPosition == -1 Then ExitShort("ELS"); } 2. 아래2에서 조건문( if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then) 을 사용하는 이유가 무엇인지요? == 아래2 == 안녕하세요 예스스탁입니다. 1 H1이나 L1은 3봉전에 이평값을 저장하는 것이 맞습니다. H2와 L2는 직전 조건만족시의 가격입니다. L2 = L1[1]이라고 해서 4봉전의 이평가격이 아닙니다. L1[1]은 L1에 기존에(한봉전) 저장되어 있던 가격을 가져와 L2에 저장한다는 의미입니다. 즉 새롭게 저장해야 할 가격이 생기면 이전까지 저장되어 있던 값을 다른 변수로 옮긴다는 내용입니다. #스윙하이가 발생하면 if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then{ #H1에 Right봉전 이평값을 저장 H1 = mav[right]; #H2에는 H1의 한봉전까지 저장되어 있던 가격을 가져와 저장 H2 = H1[1]; if H1 < H2 and H2 > 0 Then sell(); } #스윙하이가 발생하면 if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 Then{ #L1에 Right봉전 이평값을 저장 L1 = mav[right]; #L2에 L1의 한봉전까지 저장되어 있던 가격을 가져와 저장 L2 = L1[1]; if L1 > L2 and L2 > 0 Then Buy(); } 3. 캔들이 10시30분 초과시는 c > 103000으로 작성하는데 이것을 105000으로 작성하거나 109000으로 작성하면 프로그램이 몇시로 인식하나요? 예스 덕분에 2번째 자동매매 실투 도전예정입니다. 항상 감사드립니다~~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-28 09:15:04

안녕하세요 예스스탁입니다. 1 Bcnt에 값저장하는 부분이 빠져있었습니다. 아래와 같이 수정하시면 됩니다. MarketPosition은 정상적으로 변경되고 있습니다. if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then Bcnt = Bcnt+1; 2 해당식은 고점이 낮아지면 매도, 저점이 상승하면 매수하는 내용입니다. SwingHigh/SwingLow는 고점/저점을 지정하기 위한 함수인데 고점이나 저점을 지정하는 다른 규칙이 있으시면 해당 내용을 구현해서 사용하시면 됩니다. if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then 이동평균이 지정한 봉수만큼(left) 상승하다 지정한 봉수만큼 하락(right)하면 고점값이 리턴되고 아니면 -1이 리됩니다. 현재봉에서 -1이 아니므로 고점이 발생했다는 의미입니다. 함수에 대한 자세한 내요은 도움말 참고하시기 바랍니다. 3 c는 봉의 종가입니다. c > 103000는 종가가 103,000원보다 크다라는 내용이지 10시30분이후라는 내용이 아닙니다. stime > 103000으로 비교하셔야 합니다. 시간에 109000이라는 값이 없습니다. 봉의 시간이 해당값 이후인것은 110000이므로 109000이면 stime > 110000으로 지정한 것과 같습니다. 즐거운 하루되세요 > 코퍼 님이 쓴 글입니다. > 제목 : 수식문의합니다~~ > 수고하십니다. 1. 아래1 식에서 - 다시 돌려보아도 Bcnt, MarketPosition 이 메세지로그에서 0 발생, 이유가 무엇인지요? - 매수 연속3회 불가, 매도 연속3회 불가로 수식 수정 부탁드립니다. == 아래1 == Input : 청산P(15),청산L(15); var : SmaA(0),SmaB(0); SmaA = ma(C,5); SmaB = ma(C,20); var : Bcnt(0); if Bdate != Bdate[1] Then Bcnt = 0; if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then Bcnt+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then Bcnt = 0; //진입청산 if stime > 093500 and stime <163000 and Bcnt < 3 then { //매수 If MarketPosition == 0 and c > DayOpen and SmaA>SmaA[1] Then Buy("B"); If (c>(EntryPrice+청산P) or c <(EntryPrice-청산L)) and MarketPosition == 1 Then ExitLong("ELB"); //매도 If MarketPosition == 0 and c < DayOpen and SmaA<SmaA[1] Then Sell("S"); If (c<(EntryPrice-청산P) or c >(EntryPrice+청산L)) and MarketPosition == -1 Then ExitShort("ELS"); } 2. 아래2에서 조건문( if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then) 을 사용하는 이유가 무엇인지요? == 아래2 == 안녕하세요 예스스탁입니다. 1 H1이나 L1은 3봉전에 이평값을 저장하는 것이 맞습니다. H2와 L2는 직전 조건만족시의 가격입니다. L2 = L1[1]이라고 해서 4봉전의 이평가격이 아닙니다. L1[1]은 L1에 기존에(한봉전) 저장되어 있던 가격을 가져와 L2에 저장한다는 의미입니다. 즉 새롭게 저장해야 할 가격이 생기면 이전까지 저장되어 있던 값을 다른 변수로 옮긴다는 내용입니다. #스윙하이가 발생하면 if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then{ #H1에 Right봉전 이평값을 저장 H1 = mav[right]; #H2에는 H1의 한봉전까지 저장되어 있던 가격을 가져와 저장 H2 = H1[1]; if H1 < H2 and H2 > 0 Then sell(); } #스윙하이가 발생하면 if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 Then{ #L1에 Right봉전 이평값을 저장 L1 = mav[right]; #L2에 L1의 한봉전까지 저장되어 있던 가격을 가져와 저장 L2 = L1[1]; if L1 > L2 and L2 > 0 Then Buy(); } 3. 캔들이 10시30분 초과시는 c > 103000으로 작성하는데 이것을 105000으로 작성하거나 109000으로 작성하면 프로그램이 몇시로 인식하나요? 예스 덕분에 2번째 자동매매 실투 도전예정입니다. 항상 감사드립니다~~