커뮤니티

수식검토요

프로필 이미지
티끌
2013-09-17 09:17:51
243
글번호 67590
답변완료

첨부 이미지

<질문1> 아래와 같이 작성해 주신 갭스톡을 사용하는 중입니다 화면은 갭보정차트 1분봉을 주봉으로하고 2분봉을 data2로 사용합니다 그런데 그림의 노란박스에서 보듯이 SK05>SD05 조건인데도 SK05<SD05에 진입하는 경우가 발생했습니다 갭스톡 지표와 갭스톡사용자 함수(화면의 제일밑부분)를 비교해보니 화면상으로 상이하지만, 무엇때문인지는 잘모르겠습니다 검토부탁드립니다 SD05 = Gap_StoD(05,03,03); SK05 = Gap_StoK(05,03); Count01=CountIF((Side==-10 or Side==-05 or Side==-03) ,D2UDi4-D2UDi3+1); If Count01==0 and D2UDi4[1]!=D2UDi4[0] and PaDo>=-1 and SK05>SD05 and SK05[1]<SK05[0] Then {// Buy("B1",AtMarket); Ent1i=Index; } 지표와 사용자함수 #GAP_STOK input : Period(Numeric), Period1(Numeric); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; Gap_stoK = ema(fstK, Period1); #GAP_STOD input : Period(Numeric), Period1(Numeric), Period2(Numeric); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; stoK = ema(fstK, Period1); GAP_stoD = ema(StoK, Period2); ///////////////////////////////////////////////////////// #스토케스틱 갭보정 지표 input : Period(12), Period1(6), Period2(6); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; stoK = ema(fstK, Period1); stoD = ema(StoK, Period2); var1=50; If CrossUp(stoK,stoD)Then var1=60; If CrossDown(stoK,stoD)Then var1=40; plot1(stoK,"갭보정 %K"); plot2(stoD,"갭보정 %D"); plot3(Var1,"Cros"); PlotBaseLine1(10, "기준선1"); PlotBaseLine2(20, "기준선2"); //PlotBaseLine3(30, "기준선3"); //PlotBaseLine4(40, "기준선4"); //PlotBaseLine5(60, "기준선5"); //PlotBaseLine6(70, "기준선6"); PlotBaseLine7(80, "기준선7"); PlotBaseLine8(90, "기준선8"); <질문2> 진입이후 진입봉이 아니라 "진입2번째봉이 진입이후 최고가"일때 아래와 같이 하는것이 가능한지요? H[BarsSinceEntry-1]==Highest(H,BarsSinceEntry+1)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-09-17 09:32:58

안녕하세요 예스스탁입니다. 1. 각 수식의 기간값 확인하시기 바랍니다. 아래지표 적용해 보시면 2개의 값이 모두 같은 것을 확인하실 수 있습니다. 확인결과 값이 다르게 나오는 경우를 발견하지 못했습니다. input : Period(5), Period1(3), Period2(3); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; stoK = ema(fstK, Period1); stoD = ema(StoK, Period2); var1=50; If CrossUp(stoK,stoD)Then var1=60; If CrossDown(stoK,stoD)Then var1=40; var : Sd05(0),sk05(0); SK05 = Gap_StoK(Period,Period1); SD05 = Gap_StoD(Period,Period1,Period2); plot1(stoK,"갭보정 %K"); plot2(stoD,"갭보정 %D"); plot3(sk05); plot4(sd05); 2, 시스템 식에서 참조데이터를 사용한 경우 data1로 묶어주시고 변수선언에도 (0,data1)과 같이 처리해 주셔야 합니다. var : SD05(0,data1),SK05(0,data1); SD05 = data1(Gap_StoD(05,03,03)); SK05 = data1(Gap_StoK(05,03)); 즐거운 하루되세요 > 티끌 님이 쓴 글입니다. > 제목 : 수식검토요 > <질문1> 아래와 같이 작성해 주신 갭스톡을 사용하는 중입니다 화면은 갭보정차트 1분봉을 주봉으로하고 2분봉을 data2로 사용합니다 그런데 그림의 노란박스에서 보듯이 SK05>SD05 조건인데도 SK05<SD05에 진입하는 경우가 발생했습니다 갭스톡 지표와 갭스톡사용자 함수(화면의 제일밑부분)를 비교해보니 화면상으로 상이하지만, 무엇때문인지는 잘모르겠습니다 검토부탁드립니다 SD05 = Gap_StoD(05,03,03); SK05 = Gap_StoK(05,03); Count01=CountIF((Side==-10 or Side==-05 or Side==-03) ,D2UDi4-D2UDi3+1); If Count01==0 and D2UDi4[1]!=D2UDi4[0] and PaDo>=-1 and SK05>SD05 and SK05[1]<SK05[0] Then {// Buy("B1",AtMarket); Ent1i=Index; } 지표와 사용자함수 #GAP_STOK input : Period(Numeric), Period1(Numeric); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; Gap_stoK = ema(fstK, Period1); #GAP_STOD input : Period(Numeric), Period1(Numeric), Period2(Numeric); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; stoK = ema(fstK, Period1); GAP_stoD = ema(StoK, Period2); ///////////////////////////////////////////////////////// #스토케스틱 갭보정 지표 input : Period(12), Period1(6), Period2(6); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); var : stoLval(0), stoHval(0), fstK(0), stoK(0), stoD(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 stoLval = lowest(GL,Period); stoHval = highest(GH,Period); fstK = (GC-stoLval)/(stoHval-stoLval)*100; stoK = ema(fstK, Period1); stoD = ema(StoK, Period2); var1=50; If CrossUp(stoK,stoD)Then var1=60; If CrossDown(stoK,stoD)Then var1=40; plot1(stoK,"갭보정 %K"); plot2(stoD,"갭보정 %D"); plot3(Var1,"Cros"); PlotBaseLine1(10, "기준선1"); PlotBaseLine2(20, "기준선2"); //PlotBaseLine3(30, "기준선3"); //PlotBaseLine4(40, "기준선4"); //PlotBaseLine5(60, "기준선5"); //PlotBaseLine6(70, "기준선6"); PlotBaseLine7(80, "기준선7"); PlotBaseLine8(90, "기준선8"); <질문2> 진입이후 진입봉이 아니라 "진입2번째봉이 진입이후 최고가"일때 아래와 같이 하는것이 가능한지요? H[BarsSinceEntry-1]==Highest(H,BarsSinceEntry+1)