커뮤니티

수식문의

프로필 이미지
하운드독
2021-05-22 15:19:44
1048
글번호 149242
답변완료
24시간 가동되는 코인시스템에 아래와같은 시스템 수식을 작성하고자 하는데 day(00시~24시) 기준이 아닌, 오전(00시~12시) 기준 '이평선스코어','노이즈','변동성' 를 표현하고자 하는데, 어려움이 있습니다. 예스스탁에서 작성에 도움을 받고자 합니다. 로직: 1.매수: 실시간종가> 당일시가 +전일 오전range *20일 평균 노이즈 -이평선 스코어 [오전기준으로 수정요]*** 3,5,10,20일 이평선위 에 있으면 각각 1점씩 ,총 4점 만점 -변동성:[오전기준으로 수정요]*** 일일변동성 = (전일고가(1) -전일저가)/ 금일시가*100; 변동성 = ma(일일변동성,5); -노이즈: [오전기준으로 수정요]*** 노이즈 = 1-abs(dayopen-dayclose)/(dayhigh-daylow); 투자비중: 타겟변동성/전일 오전 변동성 매도 :정오 -----작성한 수식[수정요]---- input: k변수 (0.7),손절선(10),TS수익률(30) ,TS감소율(20); var: 전일range(0),노이즈(0); var :일일변동성(0),변동성(0),투입금액(0); input: 총액(1000000000), 타겟변동성(2),가상화폐수(1) ; input : shortPeriod(3), midPeriod(5), longPeriod(10), long2Period(20),횡보비(1),청산시각(120000); var : Short(0), 삼이평위(false), 오이평위(false), 십이평위(false),이십이평위(false),이평스코어(0); #전일 오전 변동성****오전기준으로 수정 if stime >= 230000 then value1 = ma(volume,12)[1]; //전일23시봉의 거래량 12봉이평 value90 = Close[1]; if stime >= 230000 then value2 = ma(volume,12)[12]; ////전일12시봉의 거래량 12봉이평 value91 = Close [11]; #변동성타켓 (오전으로 수정할것) 일일변동성 = (dayhigh(1) -daylow(1))/ dayopen*100; 변동성 = ma(일일변동성,5); 투입금액= (타겟변동성*0.01/ 변동성)*총액/가상화폐수; 전일range= (DayHigh(1)-DayLow(1))* k변수 ; //전일range 돌파(오전으로 수정할것) 노이즈 = 1-abs(dayopen-dayclose)/(dayhigh-daylow); //노이즈 0.5 이하 #이평선 모멘텀스코어 ****오전기준으로 수정 삼이평위 = ( dayclose(1) - ma(dayclose(1), shortPeriod) ) > 0 ; 오이평위 = ( dayclose(1)-ma(dayclose(1), midPeriod) ) > 0 ; 십이평위 = ( dayclose(1) - ma(dayclose(1), longPeriod) ) > 0 ; 이십이평위 = ( dayclose(1) - ma(dayclose(1), long2Period) ) > 0 ; 이평스코어= (iff(삼이평위,1,0)+iff(오이평위,1,0)+iff(십이평위,1,0)+iff(이십이평위,1,0))/ 4 ; #매수 If (dayopen +전일range*ma(노이즈,20)) <= C && sdate != exitdate(1) //range( 변동성 돌파) Then buy("b",OnClose,def,Floor((투입금액*이평스코어)/c)); // 4점이며 100% 1점이면 25% #매도 if stime == 청산시각 Then exitlong("익일시가청산",AtMarket); SetStopLoss(손절선 , PercentStop); SetStopTrailing(TS감소율 ,TS수익률 ,PercentStop,0);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-05-24 10:06:06

안녕하세요 예스스탁입니다. input: k변수 (0.7),손절선(10),TS수익률(30) ,TS감소율(20); input : 총액(1000000000), 타겟변동성(2),가상화폐수(1) ; input : 시작시간(000000),청산시각(120000); input : shortPeriod(3), midPeriod(5), longPeriod(10), long2Period(20),Vperiod(12),n1(1),n2(12),노이즈Period(20), 횡보비(1); var: 전일range(0),노이즈(0); var :일일변동성(0),변동성(0),투입금액(0); var : Short(0), 삼이평위(false), 오이평위(false), 십이평위(false),이십이평위(false),이평스코어(0); var : Tcond(false),cnt(0); var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0),sum6(0),sum7(0),sum8(0); var : mav4(0),mav5(0),mav6(0),mav7(0),mav8(0); Array : OO[50](0),HH[50](0),LL[50](0),CC[50](0),vv[50](0); if (sdate != sdate[1] and stime >= 청산시각) or (sdate == sdate[1] and stime >= 청산시각 and stime[1] < 청산시각) Then { Tcond = False; if MarketPosition == 1 Then exitlong("익일시가청산",AtMarket); } if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { Tcond = true; OO[0] = O; HH[0] = H; LL[0] = L; VV[0] = 0; For cnt = 1 to 49 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; VV[cnt] = VV[cnt-1][1]; } } if Tcond ==true Then { if HH[0] > 0 and H > HH[0] Then HH[0] = H; if LL[0] > 0 and L < LL[0] Then Ll[0] = L; CC[0] = C; VV[0 ] = VV[0]+V; if OO[max(shortperiod,midPeriod,longPeriod,long2Period,VPeriod+n1,VPeriod+n2,노이즈Period)] > 0 Then { sum1 = 0; sum2 = 0; For cnt = 0 to Vperiod-1 { sum1 = sum1 + VV[cnt+n1]; sum2 = sum2 + VV[cnt+n2]; } value1 = sum1/Vperiod; Value2 = sum2/Vperiod; value90 = CC[1]; value91 = CC[11]; 일일변동성 = (HH[1]-LL[1])/OO[0]*100; sum3 = 0; For cnt = 0 to 4 { sum3 = sum3 + (HH[cnt]-LL[cnt]); } 변동성 = sum3/5; 투입금액= (타겟변동성*0.01/ 변동성)*총액/가상화폐수; 전일range= (HH[1]-LL[1])* k변수 ; //전일range 돌파(오전으로 수정할것) 노이즈 = 1-abs(OO[0]-CC[0])/(HH[0]-LL[0]); //노이즈 0.5 이하 sum4 = 0; sum5 = 0; sum6 = 0; sum7 = 0; For cnt = 0 to max(shortperiod,midPeriod,longPeriod,long2Period) { if cnt < shortPeriod Then sum4 = sum4 + CC[cnt]; if cnt < midPeriod Then sum5 = sum5 + CC[cnt]; if cnt < longPeriod Then sum6 = sum6 + CC[cnt]; if cnt < long2Period Then sum7 = sum7+ CC[cnt]; } mav4 = sum4/shortPeriod; mav5 = sum5/midPeriod; mav6 = sum6/longPeriod; mav7 = sum7/long2Period; 삼이평위 = (CC[1] - mav4 ) > 0 ; 오이평위 = (CC[1] - mav5 ) > 0 ; 십이평위 = (CC[1] - mav6) > 0 ; 이십이평위 = (CC[1] - mav7) > 0 ; 이평스코어= (iff(삼이평위,1,0)+iff(오이평위,1,0)+iff(십이평위,1,0)+iff(이십이평위,1,0))/ 4 ; sum8 = 0; For cnt = 0 to 노이즈Period-1 { sum8 = sum8 + (1-abs(OO[cnt]-CC[cnt])/(HH[cnt]-LL[cnt])); } mav8 = sum8/노이즈Period; #매수 If (OO[0] +(HH[1]-LL[1])*mav8) <= C && sdate != exitdate(1) //range( 변동성 돌파) Then buy("b",OnClose,def,Floor((투입금액*이평스코어)/c)); // 4점이며 100% 1점이면 25% } } SetStopLoss(손절선 , PercentStop); SetStopTrailing(TS감소율 ,TS수익률 ,PercentStop,0); 즐거운 하루되세요 > 하운드독 님이 쓴 글입니다. > 제목 : 수식문의 > 24시간 가동되는 코인시스템에 아래와같은 시스템 수식을 작성하고자 하는데 day(00시~24시) 기준이 아닌, 오전(00시~12시) 기준 '이평선스코어','노이즈','변동성' 를 표현하고자 하는데, 어려움이 있습니다. 예스스탁에서 작성에 도움을 받고자 합니다. 로직: 1.매수: 실시간종가> 당일시가 +전일 오전range *20일 평균 노이즈 -이평선 스코어 [오전기준으로 수정요]*** 3,5,10,20일 이평선위 에 있으면 각각 1점씩 ,총 4점 만점 -변동성:[오전기준으로 수정요]*** 일일변동성 = (전일고가(1) -전일저가)/ 금일시가*100; 변동성 = ma(일일변동성,5); -노이즈: [오전기준으로 수정요]*** 노이즈 = 1-abs(dayopen-dayclose)/(dayhigh-daylow); 투자비중: 타겟변동성/전일 오전 변동성 매도 :정오 -----작성한 수식[수정요]---- input: k변수 (0.7),손절선(10),TS수익률(30) ,TS감소율(20); var: 전일range(0),노이즈(0); var :일일변동성(0),변동성(0),투입금액(0); input: 총액(1000000000), 타겟변동성(2),가상화폐수(1) ; input : shortPeriod(3), midPeriod(5), longPeriod(10), long2Period(20),횡보비(1),청산시각(120000); var : Short(0), 삼이평위(false), 오이평위(false), 십이평위(false),이십이평위(false),이평스코어(0); #전일 오전 변동성****오전기준으로 수정 if stime >= 230000 then value1 = ma(volume,12)[1]; //전일23시봉의 거래량 12봉이평 value90 = Close[1]; if stime >= 230000 then value2 = ma(volume,12)[12]; ////전일12시봉의 거래량 12봉이평 value91 = Close [11]; #변동성타켓 (오전으로 수정할것) 일일변동성 = (dayhigh(1) -daylow(1))/ dayopen*100; 변동성 = ma(일일변동성,5); 투입금액= (타겟변동성*0.01/ 변동성)*총액/가상화폐수; 전일range= (DayHigh(1)-DayLow(1))* k변수 ; //전일range 돌파(오전으로 수정할것) 노이즈 = 1-abs(dayopen-dayclose)/(dayhigh-daylow); //노이즈 0.5 이하 #이평선 모멘텀스코어 ****오전기준으로 수정 삼이평위 = ( dayclose(1) - ma(dayclose(1), shortPeriod) ) > 0 ; 오이평위 = ( dayclose(1)-ma(dayclose(1), midPeriod) ) > 0 ; 십이평위 = ( dayclose(1) - ma(dayclose(1), longPeriod) ) > 0 ; 이십이평위 = ( dayclose(1) - ma(dayclose(1), long2Period) ) > 0 ; 이평스코어= (iff(삼이평위,1,0)+iff(오이평위,1,0)+iff(십이평위,1,0)+iff(이십이평위,1,0))/ 4 ; #매수 If (dayopen +전일range*ma(노이즈,20)) <= C && sdate != exitdate(1) //range( 변동성 돌파) Then buy("b",OnClose,def,Floor((투입금액*이평스코어)/c)); // 4점이며 100% 1점이면 25% #매도 if stime == 청산시각 Then exitlong("익일시가청산",AtMarket); SetStopLoss(손절선 , PercentStop); SetStopTrailing(TS감소율 ,TS수익률 ,PercentStop,0);