커뮤니티
문의 드립니다.
2026-10-26 21:39:11
37
글번호 233997
해외선물에서 고점과 저점 대비 0.5% 단위로 라인을 설정하는 지표를 만들고 싶습니다.
예를들면,
1) 고점 대비라인
나스닥의 당일 고점이 30,000 일 경우
① 고점 대비 -0.5% 자리인 28,500 에 가로선이 그어지고 "고점-0.5%" 라고 우측에 텍스트로 표시가 되게,
② -0.5% 단위로 최대 -4.0%까지 하나의 지표로 속성창을 만들어서,
③ 속성창에서는 0.4%든, 0.6%든 임의로 범위 조정도 가능하게 할 수있게,
④ 선의 유형(점선, 실선 등), 색깔, 두께도 변경할 수 있게,
⑤ 우측에 수치 표시여부 체크도 할 수 있게 속성창도 만들고 싶습니다.
(일반 5-20-60-120 이동평균선 속성창처럼 선들을 관리할 수 있게)
★⑥만일 나스닥의 당일 고점이 변경되면, 표시된 선들도 자동으로 끊김없이 자연스럽게 변경되게도 하고 싶습니다.
2) 저점 대비 라인
① 고점 대비 라인과는 반대로 +0.5% 단위로 +4.0%까지 선들을 표시하고 싶습니다.
그리고 위의 ②번부터 ⑥번까지의 기능도 포함시켜 사용하고 싶습니다.
수식 작성이 가능할까요?
답변 1
예스스탁 예스스탁 답변
2026-10-27 09:49:29
안녕하세요
예스스탁입니다.
요청하신 내용은 plot으로 지정해야 하는데
plot은 수식안에서 갯수를 유동적으로 가져갈수 없습니다.
고점대비/저점대비 최대 20개선이 출력가능하게 작성해 드립니다.
지정하신 %(0.5)와 맥스값(4.0) 안에서 포함되는 라인만 표시가 됩니다.
input : Per(0.5),maxv(4.0);
var : i(0),HH(0),LL(0);
Array : HTX[50](0),LTX[50](0);
if Per*1 <= maxv Then Plot1(DayHigh*(1-(per*1)/100),"고점-Per*1"); Else NoPlot(1);
if Per*2 <= maxv Then Plot2(DayHigh*(1-(per*2)/100),"고점-Per*2"); Else NoPlot(2);
if Per*3 <= maxv Then Plot3(DayHigh*(1-(per*3)/100),"고점-Per*3"); Else NoPlot(3);
if Per*4 <= maxv Then Plot4(DayHigh*(1-(per*4)/100),"고점-Per*4"); Else NoPlot(4);
if Per*5 <= maxv Then Plot5(DayHigh*(1-(per*5)/100),"고점-Per*5"); Else NoPlot(5);
if Per*6 <= maxv Then Plot6(DayHigh*(1-(per*6)/100),"고점-Per*6"); Else NoPlot(6);
if Per*7 <= maxv Then Plot7(DayHigh*(1-(per*7)/100),"고점-Per*7"); Else NoPlot(7);
if Per*8 <= maxv Then Plot8(DayHigh*(1-(per*8)/100),"고점-Per*8"); Else NoPlot(8);
if Per*9 <= maxv Then Plot9(DayHigh*(1-(per*9)/100),"고점-Per*9"); Else NoPlot(9);
if Per*10 <= maxv Then Plot10(DayHigh*(1-(per*10)/100),"고점-Per*10"); Else NoPlot(10);
if Per*11 <= maxv Then Plot11(DayHigh*(1-(per*11)/100),"고점-Per*11"); Else NoPlot(11);
if Per*12 <= maxv Then Plot12(DayHigh*(1-(per*12)/100),"고점-Per*12"); Else NoPlot(12);
if Per*13 <= maxv Then Plot13(DayHigh*(1-(per*13)/100),"고점-Per*13"); Else NoPlot(13);
if Per*14 <= maxv Then Plot14(DayHigh*(1-(per*14)/100),"고점-Per*14"); Else NoPlot(14);
if Per*15 <= maxv Then Plot15(DayHigh*(1-(per*15)/100),"고점-Per*15"); Else NoPlot(15);
if Per*16 <= maxv Then Plot16(DayHigh*(1-(per*16)/100),"고점-Per*16"); Else NoPlot(16);
if Per*17 <= maxv Then Plot17(DayHigh*(1-(per*17)/100),"고점-Per*17"); Else NoPlot(17);
if Per*18 <= maxv Then Plot18(DayHigh*(1-(per*18)/100),"고점-Per*18"); Else NoPlot(18);
if Per*19 <= maxv Then Plot19(DayHigh*(1-(per*19)/100),"고점-Per*19"); Else NoPlot(19);
if Per*20 <= maxv Then Plot20(DayHigh*(1-(per*20)/100),"고점-Per*20"); Else NoPlot(20);
if Per*1 <= maxv Then Plot21(DayLow*(1+(per*1)/100),"저점+Per*1"); Else NoPlot(21);
if Per*2 <= maxv Then Plot22(DayLow*(1+(per*2)/100),"저점+Per*2"); Else NoPlot(22);
if Per*3 <= maxv Then Plot23(DayLow*(1+(per*3)/100),"저점+Per*3"); Else NoPlot(23);
if Per*4 <= maxv Then Plot24(DayLow*(1+(per*4)/100),"저점+Per*4"); Else NoPlot(24);
if Per*5 <= maxv Then Plot25(DayLow*(1+(per*5)/100),"저점+Per*5"); Else NoPlot(23);
if Per*6 <= maxv Then Plot26(DayLow*(1+(per*6)/100),"저점+Per*6"); Else NoPlot(23);
if Per*7 <= maxv Then Plot27(DayLow*(1+(per*7)/100),"저점+Per*7"); Else NoPlot(23);
if Per*8 <= maxv Then Plot28(DayLow*(1+(per*8)/100),"저점+Per*8"); Else NoPlot(23);
if Per*9 <= maxv Then Plot29(DayLow*(1+(per*9)/100),"저점+Per*9"); Else NoPlot(23);
if Per*10 <= maxv Then Plot30(DayLow*(1+(per*10)/100),"저점+Per*10"); Else NoPlot(30);
if Per*11 <= maxv Then Plot31(DayLow*(1+(per*11)/100),"저점+Per*11"); Else NoPlot(31);
if Per*12 <= maxv Then Plot32(DayLow*(1+(per*12)/100),"저점+Per*12"); Else NoPlot(32);
if Per*13 <= maxv Then Plot33(DayLow*(1+(per*13)/100),"저점+Per*13"); Else NoPlot(33);
if Per*14 <= maxv Then Plot34(DayLow*(1+(per*14)/100),"저점+Per*14"); Else NoPlot(34);
if Per*15 <= maxv Then Plot35(DayLow*(1+(per*15)/100),"저점+Per*15"); Else NoPlot(35);
if Per*16 <= maxv Then Plot36(DayLow*(1+(per*16)/100),"저점+Per*16"); Else NoPlot(36);
if Per*17 <= maxv Then Plot37(DayLow*(1+(per*17)/100),"저점+Per*17"); Else NoPlot(37);
if Per*18 <= maxv Then Plot38(DayLow*(1+(per*18)/100),"저점+Per*18"); Else NoPlot(38);
if Per*19 <= maxv Then Plot39(DayLow*(1+(per*19)/100),"저점+Per*19"); Else NoPlot(39);
if Per*20 <= maxv Then Plot40(DayLow*(1+(per*20)/100),"저점+Per*20"); Else NoPlot(40);
For i = 1 to 49
{
if Per*i <= maxv Then
{
Text_Delete(HTX[i]);
HH = DayHigh*(1-(per*i)/100);
HTX[i] = Text_New(NextBarSdate,NextBarStime,HH,"고점-"+NumToStr(Per*i,2)+"%");
Text_SetStyle(HTX[i],0,1);
Text_Delete(LTX[i]);
LL = DayLow*(1+(per*i)/100);
LTX[i] = Text_New(NextBarSdate,NextBarStime,LL,"저점+"+NumToStr(Per*i,2)+"%");
Text_SetStyle(LTX[i],0,1);
}
}
즐거운 하루되세요