커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2020-04-09 16:20:10
730
글번호 137769
답변완료
안녕하세요? 아래의 전략에 대해 스크립트 작성 요청드립니다. 안녕하세요? 아래 전략에 대해 스크립트 작성 요청드립니다. 적용하고자 하는 상품 : 항셍선물1분봉 전략: 1) 매수진입 조건: ABS(기준값) > ABS(힘의 균형대) 2) 매수청산 조건: 현재가 > 상대값 3) 매도진입 조건: ABS(기준값) < ABS(힘의 균형대) 4) 매도청산 조건: 현재가 < 상대값 5) 기타: 당일청산(15시 20분)으로 하루 1번 진입 * 기준값: (당일의 시가-전일의 시가) * 힘의균형대: 당일제외 과거 12영업일 동안 일별 (시가-시가[1]) 값의 최대값과 최소값을 제외한 10일의 평균값 *상대값: v1~v5까지 변수를 산출하여 내림차순 했을 경우 3번째 값 v1= 당일 시가에 v6을 더한 값 v2= 당일 시가에 v7을 뺀 값 v3= 전일 종가에 v8을 더한 값 v4= 전일 종가에 v9을 뺀 값 v5= 당일 시가 > 전일 종가이면 전일 종가에 v10을 더하고, 당일 시가 < 전일종가이면 전일 종가에 v10을 뺀 값 v6= 당일제외 과거 12영업일 동안 일별 (고가-시가) 값의 최대값과 최소값을 제외한 10일의 평균값 v7= 당일제외 과거 12영업일 동안 일별 (시가-저가) 값의 최대값과 최소값을 제외한 10일의 평균값 v8= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-고가) 값의 최대값과 최소값을 제외한 10일의 평균값 v9= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-저가) 값의 최대값과 최소값을 제외한 10일의 평균값 v10= 당일제외 과거 12영업일 동안 일별 (종가[1]-시가) 값의 최대값과 최소값을 제외한 절대값의 10일 의 평균값 하루의 계산을 가. T+1장과 T장을 하루로 계산하여 시가를 18:15로 산정 나. T장과 T+1장을 하루로 계산하여 시가를 10:15로 산정 가, 나 각각 스크립트 작성을 요청드립니다. 언제나 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-04-10 10:09:27

안녕하세요 예스스탁입니다. input : 기준시간(101500); var : cnt(0),entry(0); var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0),sum6(0); var : v1(0),v2(0),v3(0),v4(0),v5(0),v6(0),v7(0),v8(0),v9(0),v10(0); var : h1(0),l1(0); var : h2(0),l2(0); var : h3(0),l3(0); var : h4(0),l4(0); var : h5(0),l5(0); var : h6(0),l6(0); Array : DO[20](0),DH[20](0),DL[20](0),DC[20](0); if (sdate != sdate[1] and stime >= 기준시간) or (sdate == sdate[1] and stime >= 기준시간 and stime[1] < 기준시간) Then { DO[0] = O; DH[0] = H; DL[0] = L; for cnt = 1 to 19 { DO[cnt] = DO[cnt-1][1]; DH[cnt] = DH[cnt-1][1]; DL[cnt] = DL[cnt-1][1]; DC[cnt] = DC[cnt-1][1]; } entry = 0; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; DC[0] = C; if H > DH[0] Then DH[0] = H; if L < DL[0] Then DL[0] = L; if DO[12] > 0 then { sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; sum6 = 0; h1 = 0; l1 = 0; h2 = 0; l2 = 0; h3 = 0; l3 = 0; h4 = 0; l4 = 0; h5 = 0; l5 = 0; h6 = 0; l6 = 0; for cnt = 1 to 12 { sum1 = sum1 + (DH[cnt]-DO[cnt]); sum2 = sum2 + (DO[cnt]-DL[cnt]); sum3 = sum3 + abs(DC[cnt+1]-DH[cnt]); sum4 = sum4 + abs(DC[cnt+1]-DL[cnt]); sum5 = sum5 + abs(DC[cnt+1]-DO[cnt]); sum6 = sum6 + abs(DO[cnt]-DO[cnt+1]); if h1 == 0 or (h1 > 0 and DH[cnt]-DO[cnt] > h1) then h1 = DH[cnt]-DO[cnt]; if l1 == 0 or (l1 > 0 and DH[cnt]-DO[cnt] < l1) then l1 = DH[cnt]-DO[cnt]; if h2 == 0 or (h2 > 0 and DO[cnt]-DL[cnt] > h2) then h2 = DO[cnt]-DL[cnt]; if l2 == 0 or (l2 > 0 and DO[cnt]-DL[cnt] < l2) then l2 = DO[cnt]-DL[cnt]; if h3 == 0 or (h3 > 0 and abs(DC[cnt+1]-DH[cnt]) > h3) then h3 = abs(DC[cnt+1]-DH[cnt]); if l3 == 0 or (l3 > 0 and abs(DC[cnt+1]-DH[cnt]) < l3) then l3 = abs(DC[cnt+1]-DH[cnt]); if h4 == 0 or (h4 > 0 and abs(DC[cnt+1]-DL[cnt]) > h4) then h4 = abs(DC[cnt+1]-DL[cnt]); if l4 == 0 or (l4 > 0 and abs(DC[cnt+1]-DL[cnt]) < l4) then l4 = abs(DC[cnt+1]-DL[cnt]); if h5 == 0 or (h5 > 0 and DC[cnt+1]-DO[cnt] > h5) then h5 = DC[cnt+1]-DO[cnt]; if l5 == 0 or (l5 > 0 and DC[cnt+1]-DO[cnt] < l5) then l5 = DC[cnt+1]-DO[cnt]; if h6 == 0 or (h6 > 0 and DO[cnt]-DO[cnt+1] > h5) then h6 = DO[cnt]-DO[cnt+1]; if l6 == 0 or (l6 > 0 and DO[cnt]-DO[cnt+1] < l5) then l6 = DO[cnt]-DO[cnt+1]; } v6 = (sum1-h1-l1)/10; v7 = (sum2-h2-l2)/10; v8 = (sum3-h3-l3)/10; v9 = (sum4-h4-l4)/10; v10 = (sum5-h5-l5)/10; value1 = NthMaxList(3,DO[0]+v6,DO[0]-v7,DC[1]+v8,DC[1]-v9,iff(DO[0]>DC[1],DC[1]+v10,DC[1]-v10)); var1 = DO[0]-DO[1]; var2 = sum6-h6-l6; if entry < 1 and MarketPosition <= 0 and abs(var1) > abs(var2) Then buy(); if MarketPosition == 1 and c > value1 Then exitlong(); if entry < 1 and MarketPosition >= 0 and abs(var1) < abs(var2) Then sell(); if MarketPosition == -1 and c < value1 Then ExitShort(); } if sdate != sdate[1] Then SetStopEndofday(152000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래의 전략에 대해 스크립트 작성 요청드립니다. 안녕하세요? 아래 전략에 대해 스크립트 작성 요청드립니다. 적용하고자 하는 상품 : 항셍선물1분봉 전략: 1) 매수진입 조건: ABS(기준값) > ABS(힘의 균형대) 2) 매수청산 조건: 현재가 > 상대값 3) 매도진입 조건: ABS(기준값) < ABS(힘의 균형대) 4) 매도청산 조건: 현재가 < 상대값 5) 기타: 당일청산(15시 20분)으로 하루 1번 진입 * 기준값: (당일의 시가-전일의 시가) * 힘의균형대: 당일제외 과거 12영업일 동안 일별 (시가-시가[1]) 값의 최대값과 최소값을 제외한 10일의 평균값 *상대값: v1~v5까지 변수를 산출하여 내림차순 했을 경우 3번째 값 v1= 당일 시가에 v6을 더한 값 v2= 당일 시가에 v7을 뺀 값 v3= 전일 종가에 v8을 더한 값 v4= 전일 종가에 v9을 뺀 값 v5= 당일 시가 > 전일 종가이면 전일 종가에 v10을 더하고, 당일 시가 < 전일종가이면 전일 종가에 v10을 뺀 값 v6= 당일제외 과거 12영업일 동안 일별 (고가-시가) 값의 최대값과 최소값을 제외한 10일의 평균값 v7= 당일제외 과거 12영업일 동안 일별 (시가-저가) 값의 최대값과 최소값을 제외한 10일의 평균값 v8= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-고가) 값의 최대값과 최소값을 제외한 10일의 평균값 v9= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-저가) 값의 최대값과 최소값을 제외한 10일의 평균값 v10= 당일제외 과거 12영업일 동안 일별 (종가[1]-시가) 값의 최대값과 최소값을 제외한 절대값의 10일 의 평균값 하루의 계산을 가. T+1장과 T장을 하루로 계산하여 시가를 18:15로 산정 나. T장과 T+1장을 하루로 계산하여 시가를 10:15로 산정 가, 나 각각 스크립트 작성을 요청드립니다. 언제나 감사드립니다.