커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2020-04-02 11:07:39
566
글번호 137430
답변완료
안녕하세요? 함수요청드립니다. 상품의 주기: 크루드 오일 5분봉 매수: 힘의 균형대 돌파 완성 익봉 시가에 진입 매도: 힘의 균형대 이탈 완성 익봉 시가에 진입 16시(써머타임 해지시 17시)를 기준으로 16시(써머타임 해지시 17시) 이전에 진입기준으로 최대 1번만 생성하고, 다시 16시(써머타임 해지시 17시) 이후에 진입기준으로 최대 1번만 생성하되 3시 30분(써머타임 해지시 4시 30분에 강제청산) 힘의 균형대는 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일 의 평균값
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-04-02 15:12:30

안녕하세요 예스스탁입니다. var : cnt(0); var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(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 : Summer(False); var : S1(0),S2(0),E1(0),E2(0),OpenTime(0),entry(0); if sdate != sdate[1] Then { S1 = Floor(sdate/10000)*10000+0300; E1 = Floor(sdate/10000)*10000+1100; var1 = 0; var2 = 0; for cnt = 1 to 31 { if DayOfWeek(S1+cnt) == 0 Then { var1 = var1+1; if var1 == 2 then { S2 = S1+cnt; } } if DayOfWeek(E1+cnt) == 0 and cnt <= 31 Then { var2 = var2+1; if var2 == 1 then { E2 = E1+cnt; } } } Summer = sdate > S2 And sdate < E2; if Summer == true then OpenTime = 160000; Else OpenTime = 170000; } sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; h1 = 0; l1 = 0; for cnt = 1 to 12 { sum1 = sum1 + (DayHigh(cnt)-dayopen(cnt)); sum2 = sum2 + (DayOpen(cnt)-DayLow(cnt)); sum3 = sum3 + abs(DayClose(cnt+1)-DayHigh(cnt)); sum4 = sum4 + abs(DayClose(cnt+1)-DayLow(cnt)); sum5 = sum5 + abs(DayClose(cnt+1)-dayopen(cnt)); if h1 == 0 or (h1 > 0 and DayHigh(cnt)-dayopen(cnt) > h1) then h1 = DayHigh(cnt)-dayopen(cnt); if l1 == 0 or (l1 > 0 and DayHigh(cnt)-dayopen(cnt) < l1) then l1 = DayHigh(cnt)-dayopen(cnt); if h2 == 0 or (h2 > 0 and DayOpen(cnt)-DayLow(cnt) > h2) then h2 = DayOpen(cnt)-DayLow(cnt); if l2 == 0 or (l2 > 0 and DayOpen(cnt)-DayLow(cnt) < l2) then l2 = DayOpen(cnt)-DayLow(cnt); if h3 == 0 or (h3 > 0 and abs(DayClose(cnt+1)-DayHigh(cnt)) > h3) then h3 = abs(DayClose(cnt+1)-DayHigh(cnt)); if l3 == 0 or (l3 > 0 and abs(DayClose(cnt+1)-DayHigh(cnt)) < l3) then l3 = abs(DayClose(cnt+1)-DayHigh(cnt)); if h4 == 0 or (h4 > 0 and abs(DayClose(cnt+1)-DayLow(cnt)) > h4) then h4 = abs(DayClose(cnt+1)-DayLow(cnt)); if l4 == 0 or (l4 > 0 and abs(DayClose(cnt+1)-DayLow(cnt)) < l4) then l4 = abs(DayClose(cnt+1)-DayLow(cnt)); if h5 == 0 or (h5 > 0 and abs(DayClose(cnt+1)-dayopen(cnt)) > h5) then h5 = abs(DayClose(cnt+1)-dayopen(cnt)); if l5 == 0 or (l5 > 0 and abs(DayClose(cnt+1)-dayopen(cnt)) < l5) then l5 = abs(DayClose(cnt+1)-dayopen(cnt)); } 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; if bdate != bdate[1] Then { entry = 0; SetStopEndofday(0); } if (sdate != sdate[1] and stime >= OpenTime) or (sdate == sdate[1] and stime >= OpenTime and stime[1] < OpenTime) Then entry = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; value1 = NthMaxList(3,dayopen+v6,dayopen-v7,DayClose(1)+v8,DayVolume(1)-v9,iff(dayopen>DayClose(1),DayClose(1)+v10,DayClose(1)-v10)); if entry < 1 then { if crossup(c,value1) Then buy("b",AtMarket); if CrossDown(c,value1) Then sell("s",AtMarket); } if sdate != sdate[1] Then SetStopEndofday(033000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 함수요청드립니다. 상품의 주기: 크루드 오일 5분봉 매수: 힘의 균형대 돌파 완성 익봉 시가에 진입 매도: 힘의 균형대 이탈 완성 익봉 시가에 진입 16시(써머타임 해지시 17시)를 기준으로 16시(써머타임 해지시 17시) 이전에 진입기준으로 최대 1번만 생성하고, 다시 16시(써머타임 해지시 17시) 이후에 진입기준으로 최대 1번만 생성하되 3시 30분(써머타임 해지시 4시 30분에 강제청산) 힘의 균형대는 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일 의 평균값