커뮤니티

지표문의

프로필 이미지
성공예견
2020-05-26 08:45:58
2313
글번호 139198
답변완료
1.안녕하세요 아래의 지표를 구현하면 최근4개봉 점선이 생겨요. 이점선에서 4개점선만 이용한 고점(최근4개점선)들합 나누기 4 해서 수평선 하나 4개점선만 이용한 저점(최근4개점선)들합 나누기 4 해서 수평선 하나 그 다음 중간선, 이렇게 3개 수평선을 표현 한번 표현 한번 해보구 싶어요 input:N(4),multi(2),Period(63); Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0); Array:len[11](0),VBE_up[11](0),VBE_dn[11](0), up_chg[11](0),dn_chg[11](0),up_cor[11](0),dn_cor[11](0), fcstVBE_up[11](0),fcstVBE_dn[11](0); len[0] = 2; len[1] = 5; len[2] = 9; len[3] = 13; len[4] = 17; len[5] = 21; len[6] = 25; len[7] = 29; len[8] = 33; len[9] = 37; len[10] = 41; chng_rt = (C/C[1]-1); // 가격 변동률 ma_val = ma(chng_rt,len[N]); // 가격변동률의 평균 std_val = Std(chng_rt,len[N]); // 가격변동률의 표준편차 dn_rng = ma_val - (std_val * multi); up_rng = ma_val + (std_val * multi); rawVBE_up = C * (1 + up_rng); // 원시VBE rawVBE_dn = C * (1 + dn_rng); for j = 0 to N { VBE_up[j] = wma(rawVBE_up,len[j]); // 원시VBE를 가중이평으로 평활화 VBE_dn[j] = wma(rawVBE_dn,len[j]); if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; // VBE의 변동률 if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1]; } fcstVBE_up[N] = VBE_up[N]; fcstVBE_dn[N] = VBE_dn[N]; for j = N - 1 downto 0 { up_cor[j] = Correlation(up_chg[N], up_chg[j],Period); // 21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도 dn_cor[j] = Correlation(dn_chg[N], dn_chg[j],Period); fcstVBE_up[j] = fcstVBE_up[j+1] * (1+(up_chg[j]*up_cor[j])); // 이전값에 상관도와 변동률을 곱해서 계산 fcstVBE_dn[j] = fcstVBE_dn[j+1] * (1+(dn_chg[j]*dn_cor[j])); } Var:Size(4); plot1(fcstVBE_up[N],"상-N",RED,DEF,Size-1); // N봉 뒤로 이동 plot2(fcstVBE_dn[N],"하-N",BLUE,DEF,Size-1); // N봉 뒤로 이동 FixPlotShift(1,-N); FixPlotShift(2,-N); if LastBarOnChart then { // 마지막봉에서 아래 N봉만 추가로 출력 plot3(fcstVBE_up[0],"상0",RED,DEF,Size); if N > 1 then plot4(fcstVBE_up[1],"상-1",RED,DEF,Size); // 1봉 뒤로 이동 if N > 2 then plot5(fcstVBE_up[2],"상-2",RED,DEF,Size); // 2봉 뒤로 이동 if N > 3 then plot6(fcstVBE_up[3],"상-3",RED,DEF,Size); // 3봉 뒤로 이동 if N > 4 then plot7(fcstVBE_up[4],"상-4",RED,DEF,Size); // 4봉 뒤로 이동 if N > 5 then plot8(fcstVBE_up[5],"상-5",RED,DEF,Size); // 5봉 뒤로 이동 if N > 6 then plot9(fcstVBE_up[6],"상-6",RED,DEF,Size); // 6봉 뒤로 이동 if N > 7 then plot10(fcstVBE_up[7],"상-7",RED,DEF,Size); // 7봉 뒤로 이동 if N > 8 then plot11(fcstVBE_up[8],"상-8",RED,DEF,Size); // 8봉 뒤로 이동 plot12(fcstVBE_dn[0],"하0",BLUE,DEF,Size); if N > 1 then plot13(fcstVBE_dn[1],"하-1",BLUE,DEF,Size); // 1봉 뒤로 이동 if N > 2 then plot14(fcstVBE_dn[2],"하-2",BLUE,DEF,Size); // 2봉 뒤로 이동 if N > 3 then plot15(fcstVBE_dn[3],"하-3",BLUE,DEF,Size); // 3봉 뒤로 이동 if N > 4 then plot16(fcstVBE_dn[4],"하-4",BLUE,DEF,Size); // 4봉 뒤로 이동 if N > 5 then plot17(fcstVBE_dn[5],"하-5",BLUE,DEF,Size); // 5봉 뒤로 이동 if N > 6 then plot18(fcstVBE_dn[6],"하-6",BLUE,DEF,Size); // 6봉 뒤로 이동 if N > 7 then plot19(fcstVBE_dn[7],"하-7",BLUE,DEF,Size); // 7봉 뒤로 이동 if N > 8 then plot20(fcstVBE_dn[8],"하-8",BLUE,DEF,Size); // 8봉 뒤로 이동 FixPlotShift(4,-1); FixPlotShift(5,-2); FixPlotShift(6,-3); FixPlotShift(7,-4); FixPlotShift(8,-5); FixPlotShift(9,-6); FixPlotShift(10,-7); FixPlotShift(11,-8); FixPlotShift(13,-1); FixPlotShift(14,-2); FixPlotShift(15,-3); FixPlotShift(16,-4); FixPlotShift(17,-5); FixPlotShift(18,-6); FixPlotShift(19,-7); FixPlotShift(20,-8); } 2.그럼 수고하세요.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-05-26 14:05:01

안녕하세요 예스스탁입니다. 마지막 미완성봉의 값이 포함되어 있는 내용이라 수평선으로 그릴수는 없습니다. 매봉 그떄의 평균값들을 그리게 됩니다. input:N(4),multi(2),Period(63); Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0); Array:len[11](0),VBE_up[11](0),VBE_dn[11](0), up_chg[11](0),dn_chg[11](0),up_cor[11](0),dn_cor[11](0), fcstVBE_up[11](0),fcstVBE_dn[11](0); len[0] = 2; len[1] = 5; len[2] = 9; len[3] = 13; len[4] = 17; len[5] = 21; len[6] = 25; len[7] = 29; len[8] = 33; len[9] = 37; len[10] = 41; chng_rt = (C/C[1]-1); // 가격 변동률 ma_val = ma(chng_rt,len[N]); // 가격변동률의 평균 std_val = Std(chng_rt,len[N]); // 가격변동률의 표준편차 dn_rng = ma_val - (std_val * multi); up_rng = ma_val + (std_val * multi); rawVBE_up = C * (1 + up_rng); // 원시VBE rawVBE_dn = C * (1 + dn_rng); for j = 0 to N { VBE_up[j] = wma(rawVBE_up,len[j]); // 원시VBE를 가중이평으로 평활화 VBE_dn[j] = wma(rawVBE_dn,len[j]); if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; // VBE의 변동률 if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1]; } fcstVBE_up[N] = VBE_up[N]; fcstVBE_dn[N] = VBE_dn[N]; for j = N - 1 downto 0 { up_cor[j] = Correlation(up_chg[N], up_chg[j],Period); // 21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도 dn_cor[j] = Correlation(dn_chg[N], dn_chg[j],Period); fcstVBE_up[j] = fcstVBE_up[j+1] * (1+(up_chg[j]*up_cor[j])); // 이전값에 상관도와 변동률을 곱해서 계산 fcstVBE_dn[j] = fcstVBE_dn[j+1] * (1+(dn_chg[j]*dn_cor[j])); } Var:Size(4); plot1(fcstVBE_up[N],"상-N",RED,DEF,Size-1); // N봉 뒤로 이동 plot2(fcstVBE_dn[N],"하-N",BLUE,DEF,Size-1); // N봉 뒤로 이동 FixPlotShift(1,-N); FixPlotShift(2,-N); if LastBarOnChart then { // 마지막봉에서 아래 N봉만 추가로 출력 plot3(fcstVBE_up[0],"상0",RED,DEF,Size); if N > 1 then plot4(fcstVBE_up[1],"상-1",RED,DEF,Size); // 1봉 뒤로 이동 if N > 2 then plot5(fcstVBE_up[2],"상-2",RED,DEF,Size); // 2봉 뒤로 이동 if N > 3 then plot6(fcstVBE_up[3],"상-3",RED,DEF,Size); // 3봉 뒤로 이동 if N > 4 then plot7(fcstVBE_up[4],"상-4",RED,DEF,Size); // 4봉 뒤로 이동 if N > 5 then plot8(fcstVBE_up[5],"상-5",RED,DEF,Size); // 5봉 뒤로 이동 if N > 6 then plot9(fcstVBE_up[6],"상-6",RED,DEF,Size); // 6봉 뒤로 이동 if N > 7 then plot10(fcstVBE_up[7],"상-7",RED,DEF,Size); // 7봉 뒤로 이동 if N > 8 then plot11(fcstVBE_up[8],"상-8",RED,DEF,Size); // 8봉 뒤로 이동 plot12(fcstVBE_dn[0],"하0",BLUE,DEF,Size); if N > 1 then plot13(fcstVBE_dn[1],"하-1",BLUE,DEF,Size); // 1봉 뒤로 이동 if N > 2 then plot14(fcstVBE_dn[2],"하-2",BLUE,DEF,Size); // 2봉 뒤로 이동 if N > 3 then plot15(fcstVBE_dn[3],"하-3",BLUE,DEF,Size); // 3봉 뒤로 이동 if N > 4 then plot16(fcstVBE_dn[4],"하-4",BLUE,DEF,Size); // 4봉 뒤로 이동 if N > 5 then plot17(fcstVBE_dn[5],"하-5",BLUE,DEF,Size); // 5봉 뒤로 이동 if N > 6 then plot18(fcstVBE_dn[6],"하-6",BLUE,DEF,Size); // 6봉 뒤로 이동 if N > 7 then plot19(fcstVBE_dn[7],"하-7",BLUE,DEF,Size); // 7봉 뒤로 이동 if N > 8 then plot20(fcstVBE_dn[8],"하-8",BLUE,DEF,Size); // 8봉 뒤로 이동 FixPlotShift(4,-1); FixPlotShift(5,-2); FixPlotShift(6,-3); FixPlotShift(7,-4); FixPlotShift(8,-5); FixPlotShift(9,-6); FixPlotShift(10,-7); FixPlotShift(11,-8); FixPlotShift(13,-1); FixPlotShift(14,-2); FixPlotShift(15,-3); FixPlotShift(16,-4); FixPlotShift(17,-5); FixPlotShift(18,-6); FixPlotShift(19,-7); FixPlotShift(20,-8); } var : cnt(0),cum1(0),cum2(0); var : avg1(0),avg2(0); cum1 = 0; cum2 = 0; for cnt = 0 to N-1 { cum1 = cum1 + fcstVBE_up[0]; cum2 = cum2 + fcstVBE_dn[0]; } avg1 = cum1/N; avg2 = cum2/N; plot77(avg1); plot88(avg2); plot99((avg1+avg2)/2); 즐거운 하루되세요 > 성공예견 님이 쓴 글입니다. > 제목 : 지표문의 > 1.안녕하세요 아래의 지표를 구현하면 최근4개봉 점선이 생겨요. 이점선에서 4개점선만 이용한 고점(최근4개점선)들합 나누기 4 해서 수평선 하나 4개점선만 이용한 저점(최근4개점선)들합 나누기 4 해서 수평선 하나 그 다음 중간선, 이렇게 3개 수평선을 표현 한번 표현 한번 해보구 싶어요 input:N(4),multi(2),Period(63); Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0); Array:len[11](0),VBE_up[11](0),VBE_dn[11](0), up_chg[11](0),dn_chg[11](0),up_cor[11](0),dn_cor[11](0), fcstVBE_up[11](0),fcstVBE_dn[11](0); len[0] = 2; len[1] = 5; len[2] = 9; len[3] = 13; len[4] = 17; len[5] = 21; len[6] = 25; len[7] = 29; len[8] = 33; len[9] = 37; len[10] = 41; chng_rt = (C/C[1]-1); // 가격 변동률 ma_val = ma(chng_rt,len[N]); // 가격변동률의 평균 std_val = Std(chng_rt,len[N]); // 가격변동률의 표준편차 dn_rng = ma_val - (std_val * multi); up_rng = ma_val + (std_val * multi); rawVBE_up = C * (1 + up_rng); // 원시VBE rawVBE_dn = C * (1 + dn_rng); for j = 0 to N { VBE_up[j] = wma(rawVBE_up,len[j]); // 원시VBE를 가중이평으로 평활화 VBE_dn[j] = wma(rawVBE_dn,len[j]); if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; // VBE의 변동률 if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1]; } fcstVBE_up[N] = VBE_up[N]; fcstVBE_dn[N] = VBE_dn[N]; for j = N - 1 downto 0 { up_cor[j] = Correlation(up_chg[N], up_chg[j],Period); // 21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도 dn_cor[j] = Correlation(dn_chg[N], dn_chg[j],Period); fcstVBE_up[j] = fcstVBE_up[j+1] * (1+(up_chg[j]*up_cor[j])); // 이전값에 상관도와 변동률을 곱해서 계산 fcstVBE_dn[j] = fcstVBE_dn[j+1] * (1+(dn_chg[j]*dn_cor[j])); } Var:Size(4); plot1(fcstVBE_up[N],"상-N",RED,DEF,Size-1); // N봉 뒤로 이동 plot2(fcstVBE_dn[N],"하-N",BLUE,DEF,Size-1); // N봉 뒤로 이동 FixPlotShift(1,-N); FixPlotShift(2,-N); if LastBarOnChart then { // 마지막봉에서 아래 N봉만 추가로 출력 plot3(fcstVBE_up[0],"상0",RED,DEF,Size); if N > 1 then plot4(fcstVBE_up[1],"상-1",RED,DEF,Size); // 1봉 뒤로 이동 if N > 2 then plot5(fcstVBE_up[2],"상-2",RED,DEF,Size); // 2봉 뒤로 이동 if N > 3 then plot6(fcstVBE_up[3],"상-3",RED,DEF,Size); // 3봉 뒤로 이동 if N > 4 then plot7(fcstVBE_up[4],"상-4",RED,DEF,Size); // 4봉 뒤로 이동 if N > 5 then plot8(fcstVBE_up[5],"상-5",RED,DEF,Size); // 5봉 뒤로 이동 if N > 6 then plot9(fcstVBE_up[6],"상-6",RED,DEF,Size); // 6봉 뒤로 이동 if N > 7 then plot10(fcstVBE_up[7],"상-7",RED,DEF,Size); // 7봉 뒤로 이동 if N > 8 then plot11(fcstVBE_up[8],"상-8",RED,DEF,Size); // 8봉 뒤로 이동 plot12(fcstVBE_dn[0],"하0",BLUE,DEF,Size); if N > 1 then plot13(fcstVBE_dn[1],"하-1",BLUE,DEF,Size); // 1봉 뒤로 이동 if N > 2 then plot14(fcstVBE_dn[2],"하-2",BLUE,DEF,Size); // 2봉 뒤로 이동 if N > 3 then plot15(fcstVBE_dn[3],"하-3",BLUE,DEF,Size); // 3봉 뒤로 이동 if N > 4 then plot16(fcstVBE_dn[4],"하-4",BLUE,DEF,Size); // 4봉 뒤로 이동 if N > 5 then plot17(fcstVBE_dn[5],"하-5",BLUE,DEF,Size); // 5봉 뒤로 이동 if N > 6 then plot18(fcstVBE_dn[6],"하-6",BLUE,DEF,Size); // 6봉 뒤로 이동 if N > 7 then plot19(fcstVBE_dn[7],"하-7",BLUE,DEF,Size); // 7봉 뒤로 이동 if N > 8 then plot20(fcstVBE_dn[8],"하-8",BLUE,DEF,Size); // 8봉 뒤로 이동 FixPlotShift(4,-1); FixPlotShift(5,-2); FixPlotShift(6,-3); FixPlotShift(7,-4); FixPlotShift(8,-5); FixPlotShift(9,-6); FixPlotShift(10,-7); FixPlotShift(11,-8); FixPlotShift(13,-1); FixPlotShift(14,-2); FixPlotShift(15,-3); FixPlotShift(16,-4); FixPlotShift(17,-5); FixPlotShift(18,-6); FixPlotShift(19,-7); FixPlotShift(20,-8); } 2.그럼 수고하세요.