커뮤니티

87124 관련 재질문드립니다

프로필 이미지
샐리짱
2024-05-19 20:10:44
759
글번호 179681
답변완료
항상 수고가 많으십니다. 재질문드립니다 ----------------------------------------------------------------------- 87124 에서 제가 원하는 결과가 나오지 않아서 다시 질문드립니다. 이번에는 이렇게 해주시면 고맙겠습니다. 선물 가격은 8:45 부터 들어오지만 개인의 거래소 가격은 9:00 부터 들어오므로 9:00시 부터 11:00 까지에서 개인의 최고매수금액 - 최고매수금액일때 선물현재가 9:00시 부터 11:00 까지에서 개인의 2번째 최고매수금액- 2번째최고매수금액일때 선물현재가 9:00시 부터 11:00 까지에서 개인의 최고매도금액 - 최고매도금액일때 선물현재가 9:00시 부터 11:00 까지에서 개인의 2번째 최고매도금액 - 2번째최고매도금액일째 선물현재가 여기서 주의 할 점은 최고매도금액 < 2번째 최고매도금액 이며 최고매수금액 > 2번째최고 매수금액 이라는 점입니다. 제가 말씀드리는 2번째최고매도금액이라는 말과 2번째최고매수금액이라는 의미가 제가 의도하는 정확한 의미전달하기 위해서 수치로 예를 들어 보겠습니다. 100 -> 200 -> 300 -> 200 -> 300 -> 500 -> 350 -> 300 -> 400 -> 300 ^ ^ 최고매수금액 2번째최고매수금액 -100 -> -200 -> -300 -> -200 -> -300 -> -500 -> -350 -> -300 -> -400 -> -300 ^ ^ 최고매도금액 2번째최고매도금액 위와 같은 상황을 확인해야하니 신호는 11시 이후에 나오겠습니다. 즉, input : 당일최대진입횟수(1); var : T1(0), count(0); if Data1(DayIndex == 0) Then { 변수 초기화 ... T1 = TotalTrades; } if Data1(DayIndex > 0 and stime < 152000) Then { ~~~ ~~~ //------ 진입횟수제한식 ---------------------------------------------------- if MarketPosition == 0 Then { count = TotalTrades - T1; } Else { count = TotalTrades - T1 + 1; } //-------------------------------------------------------------------------- if stime >= 090000 and stime <= 110000 then { 상기 조건을 확인하는 전략식 } if count < 당일최대진입횟수 Then { if stime > 110000 then { if 최고매도금액일때 선물현재가 > 2번째최고매도금액일때 선물현재가 then { buy("b1") } if 최고매수금액일때 선물현재가 < 2번째최고매수금액일때 선물현재가 then { sell("b1") } } } // end of count < 당일최대진입횟수 } // end of 전략식 죄송하지만, 위 서식대로 수식을 부탁드리며, 상기 서식이 잘못되었다면 임의로 하셔도 괜찮습니다. 또한, 각 수식에 대한 주석도 첨부하여 주셨으면 고맙겠습니다. ------------------------------------------------------------------------------------ 감사합니다. 항상 좋은 일만 생기시길를 ~~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-05-20 14:15:15

안녕하세요 예스스탁입니다. input : 당일최대진입횟수(1); var : T1(0), count(0); var : b1(0,Data2),b2(0,Data2),bc1(0,Data2),bc2(0,Data2); var : s1(0,Data2),s2(0,Data2),sc1(0,Data2),sc2(0,Data2); if Data1(DayIndex == 0) Then { b1 = 0; b2 = 0; bc1 = 0; bc2 = 0; s1 = 0; s2 = 0; sc1 = 0; sc2 = 0; T1 = TotalTrades; } if Data1(DayIndex > 0 and stime < 152000) Then { ~~~ ~~~ //------ 진입횟수제한식 ---------------------------------------------------- if MarketPosition == 0 Then { count = TotalTrades - T1; } Else { count = TotalTrades - T1 + 1; } //-------------------------------------------------------------------------- //9시~11시 사이 if stime >= 090000 and stime <= 110000 then { #data2(c)가 양수일때 if Data2(c) > 0 Then { #b1이 0이거나(첫발생) #b1에 0보다 큰값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 b1보다 크면 if b1 == 0 or (b1 > 0 and Data2(c) > b1) Then { #b1에 Data2(c)저장 b1 = Data2(c); #bc1에 Data1(c)저장 bc1 = Data1(c); #새로운 Data2(c)의 최고가 발생했으므로 b2와 bc2에 b1과 bc1의 직전값을 저장해 #두번째 큰값으로 사용 #b2에 b1값을 이동 b2 = b1[1]; #bc2에 bc1의 값을 bc2 = bc1[1]; } Else #최고값 갱신이 아닐때 { #두번째 큰값이 갱신될 때 #b2가 0이거나(첫발생) #b2가 0보다 큰값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 b2보다 크면 if b2 == 0 or (b2 > 0 and Data2(c) > b2) Then { #b2에 Data2(c)저장 b2 = Data2(c); #bc2에 Data1(c)저장 bc2 = Data1(c); } } } #data2(c)가 음수일때 if Data2(c) < 0 Then { #b1이 0이거나(첫발생) #b1에 0보다 큰값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 b1보다 크면 if s1 == 0 or (s1 < 0 and Data2(c) < s1) Then { #s1에 Data2(c)저장 s1 = Data2(c); #sc1에 Data1(c)저장 sc1 = Data1(c); #새로운 Data2(c)의 최저가 발생했으므로 s2와 sc2에 s1과 sc1의 직전값을 저장해 #두번째 작은값으로 사용 #s2에 s1값을 이동 s2 = s1[1]; #bc2에 bc1의 값을 sc2 = sc1[1]; } Else #최저값 갱신이 아닐때 { #두번째 작은값이 갱신될 때 #s2가 0이거나(첫발생) #s2가 0보다 작은값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 s2보다 작으면 if s2 == 0 or (s2 < 0 and Data2(c) < s2) Then { #s2에 Data2(c)저장 s2 = Data2(c); #sc2에 Data1(c)저장 sc2 = Data1(c); } } } } if count < 당일최대진입횟수 Then { if stime > 110000 then { if b1 > 0 and b2 > 0 and bc1 > bc2 then { buy("b1"); } if s1 < 0 and s2 < 0 and sc1 < sc2 then { sell("s1"); } } } // end of count < 당일최대진입횟수 } // end of 전략식 즐거운 하루되세요 > 샐리짱 님이 쓴 글입니다. > 제목 : 87124 관련 재질문드립니다 > 항상 수고가 많으십니다. 재질문드립니다 ----------------------------------------------------------------------- 87124 에서 제가 원하는 결과가 나오지 않아서 다시 질문드립니다. 이번에는 이렇게 해주시면 고맙겠습니다. 선물 가격은 8:45 부터 들어오지만 개인의 거래소 가격은 9:00 부터 들어오므로 9:00시 부터 11:00 까지에서 개인의 최고매수금액 - 최고매수금액일때 선물현재가 9:00시 부터 11:00 까지에서 개인의 2번째 최고매수금액- 2번째최고매수금액일때 선물현재가 9:00시 부터 11:00 까지에서 개인의 최고매도금액 - 최고매도금액일때 선물현재가 9:00시 부터 11:00 까지에서 개인의 2번째 최고매도금액 - 2번째최고매도금액일째 선물현재가 여기서 주의 할 점은 최고매도금액 < 2번째 최고매도금액 이며 최고매수금액 > 2번째최고 매수금액 이라는 점입니다. 제가 말씀드리는 2번째최고매도금액이라는 말과 2번째최고매수금액이라는 의미가 제가 의도하는 정확한 의미전달하기 위해서 수치로 예를 들어 보겠습니다. 100 -> 200 -> 300 -> 200 -> 300 -> 500 -> 350 -> 300 -> 400 -> 300 ^ ^ 최고매수금액 2번째최고매수금액 -100 -> -200 -> -300 -> -200 -> -300 -> -500 -> -350 -> -300 -> -400 -> -300 ^ ^ 최고매도금액 2번째최고매도금액 위와 같은 상황을 확인해야하니 신호는 11시 이후에 나오겠습니다. 즉, input : 당일최대진입횟수(1); var : T1(0), count(0); if Data1(DayIndex == 0) Then { 변수 초기화 ... T1 = TotalTrades; } if Data1(DayIndex > 0 and stime < 152000) Then { ~~~ ~~~ //------ 진입횟수제한식 ---------------------------------------------------- if MarketPosition == 0 Then { count = TotalTrades - T1; } Else { count = TotalTrades - T1 + 1; } //-------------------------------------------------------------------------- if stime >= 090000 and stime <= 110000 then { 상기 조건을 확인하는 전략식 } if count < 당일최대진입횟수 Then { if stime > 110000 then { if 최고매도금액일때 선물현재가 > 2번째최고매도금액일때 선물현재가 then { buy("b1") } if 최고매수금액일때 선물현재가 < 2번째최고매수금액일때 선물현재가 then { sell("b1") } } } // end of count < 당일최대진입횟수 } // end of 전략식 죄송하지만, 위 서식대로 수식을 부탁드리며, 상기 서식이 잘못되었다면 임의로 하셔도 괜찮습니다. 또한, 각 수식에 대한 주석도 첨부하여 주셨으면 고맙겠습니다. ------------------------------------------------------------------------------------ 감사합니다. 항상 좋은 일만 생기시길를 ~~