커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
8162
글번호 230811
지표
답변완료

질문입니다.

선물분봉에서 거래를 하고자합니다. 먼저 다음과 같은 지표를 작성하였습니다. Input : P1(10), P2(20); Var1 = Ma(C, P1); Var2 = Ma(C, P2); Variable : maTestc1(0); If C == Var1 Then maTestc1 = 0; If C > Var1 Then maTestc1 = 1; If C < Var1 Then maTestc1 = -1; Variable : maTestc2(0); If C == Var2 Then maTestc2 = 0; If C > Var2 Then maTestc2 = 1; If C < Var2 Then maTestc2 = -1; Variable : maTest12(0); If Var1 == Var2 Then maTest12 = 0; If Var1 > Var2 Then maTest12 = 1; If Var1 < Var2 Then maTest12 = -1; Variable : maTestTotal(0); maTestTotal = maTestc1 + maTestc2 + maTest12; Plot1(maTestTotal, "y3maTest", BLACK); Plot2(0, "0", BLACK); Plot3(1.5, "1.5", RED); Plot4(3, "3", RED); Plot5(-1.5, "-1.5", BLUE); Plot6(-3, "-3", BLUE); 위 지표를 토대로 시스템을 작성하고자 합니다. maTestTotal값은 -3부터 +3까지 움직입니다. 전략은 maTestTotal값이 -3, -1.5, 0, +1.5, +3값을 통과할때 발생하게 하고 싶습니다. 예를들어 현재 포지션이 매도포지션이고, maTestTotal값이 현재 -3 이상이고 -1.5 미만에 존재할때, -1.5를 상향돌파하면 매수입니다. (전봉에서 maTestTotal값이 -1.5미만이거나 -1.5이고, 현재봉에서 -1.5 초과이면) -1.5를 상향돌파한 후 다시 maTestTotal값이 -3에 도달한다면 매도로 진입합니다. (maTestTotal값의 최소값은 -3입니다. 그러므로 -3에도달하면 매도진입) maTestTotal값이 계속상승하여 0선 넘어간다면, 이때 매도진입은 -1.5선을 하향돌파할때로 바뀌게 됩니다. maTestTotal값이 계속상승하여 +1.5를 넘어간다면, 매도진입은 0을 하향돌파할 때로 바뀌게 됩니다. 마찬가지로 maTestTotal값이 계속상승하여 최대값인 +3에 도달한다면, (maTestTotal값이 한번이라도 +3을 터치한 이후) 매도진입은 +1.5를 하향돌파할 때로 바뀌게 됩니다. 매도진입도 마찬가지입니다. 현재 포지션이 매수이고, maTestTotal값이 +3이하 +1.5초과상태에서 +1.5를 하향돌파하면 (전봉에서 maTestTotal값이 +1.5 초과이가나 +1.5이고, 현재봉에서 +1.5 미만이라면) 매도로 진입합니다. 이때 재매수는 maTestTotal값이 +3이 될때 발생합니다. (maTestTotal값의 최대값은 +3이기 때문) maTestTotal값이 하락하여 0 미만이된다면 재매수 진입은 maTestTotal값이 +1.5를 상향돌파할 때 일어납니다. (전봉에서 maTestTotal값이 +1.5 미만이거나 +1.5이고, 현재봉에서 +1.5 초과라면) maTestTotal값이 계속 하락하여 -1.5미만이된다면 재매수 진입은 maTestTotal값이 0을 상향돌파할 때 일어납니다. (전봉에서 maTestTotal값이 0 미만이거나 0이고, 현재봉에서 0 초과라면) maTestTotal값이 더 하락하여 -3 즉, 최소값에 도달을 하게 된다면, (maTestTotal값이 한번이라도 -3을 터치한 이후) 이때 재매수 진입은 maTestTotal값이 -1.5를 상향돌파할 때 일어납니다. (전봉에서 maTestTotal값이 -1.5 미만이거나 -1.5이고, 현재봉에서 -1.5 초과라면) 이와같은 매수와 매도조건이 maTestTotal값의 위치에따라 바뀌는 시스템을 만들고 싶습니다. 부탁은 저 지표를 사용해서 시스템을 만들고 싶습니다. (지표를 바로이용하여도 좋고, 위 지표를 함수화하여 사용하여도 좋습니다.) 예시로 부탁드리겠습니다. 감사합니다.
프로필 이미지
yanartas
2016-11-13
168
글번호 103936
시스템
답변완료

질문드립니다.

우선 1호가가 매수주문시 매수1호가로 주문하고, 매도시 매도1호가로 주문 상대 1호가가 매수주문시 매도1호가로 주문하고, 매도시 매수1호가로 주문 이렇다는 것을 알고 있는데.. 호가공백이 있다면.. 만약 잔량 가격 잔량 50 250.20 30 250.15 매도시 우선1호가, 매수시 상대1호가 ?? 0 250.10 0 250.05 20 매수시 우선1호가, 매도시 상대1호가 ?? 250.00 10 만약 호가판이 이렇다고 한다면.. 여기서 우선1호가는 매수시는 250.05이고, 매도시는 250.15 상대1호가는 매수시는 250.15이고, 매도시는 250.05 인가요? 즉, 매수매도 호가잔량이 존재하는 경우만 카운팅을 하는 건지 궁금합니다. 호가가 빈 경우는 우선이나 상대 매수매도 호가에서 빠지는 것인지요? 기본적인 질문이긴 하지만, 잘 이해가 가지 않아서 질문드립니다. 혹시 질문이 이해가 되지 않으시면, 이해 안되시는 부분 다시 한번 말씀해주세요.
프로필 이미지
절제9단
2016-11-13
170
글번호 103935
시스템
답변완료

질문입니다.

시스템에서 band%b에서 기준선인 상승중일 때 90을 돌파 후 하강 90을 돌파할 때 매도 신호와 하강에서 10을 돌파 후 10을 상승 할 때 매수 신호를 낼 수 있는 서식이 있을까요?
프로필 이미지
한짱
2016-11-13
178
글번호 103934
시스템
답변완료

수식질문

Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""), TL_Val1(0),TL_Val2(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2)); Text_SetStyle(Text1, 2, 1); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL2,BLUE); } } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2)); Text_SetStyle(Text1, 2, 0); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetColor(TL3,RED); } } } TL_SetSize(TL1,3); TL_SetColor(TL1,CYAN); TL_SetSize(TL2,2); TL_SetSize(TL3,2); TL_Val1 = 0; TL_Val2 = 0; If 고점[2,1] > 고점[1,1] and 고점[2,1] > 고점[3,1] Then { If 고점[1,2] < 저점[1,2] and 저점[3,1] < 저점[2,1] Then TL_Val1 = (저점[2,1]-저점[3,1])/(저점[2,2]-저점[3,2]) * (Index-저점[3,2])+저점[3,1]; If 저점[1,2] < 고점[1,2] and 저점[2,1] < 저점[1,1] Then TL_Val1 = (저점[1,1]-저점[2,1])/(저점[1,2]-저점[2,2]) * (Index-저점[2,2])+저점[2,1]; } If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] Then { If 저점[1,2] < 고점[1,2] and 고점[3,1] > 고점[2,1] Then TL_Val2 = (고점[2,1]-고점[3,1])/(고점[2,2]-고점[3,2]) * (Index-고점[3,2])+고점[3,1]; If 고점[1,2] < 저점[1,2] and 고점[2,1] > 고점[1,1] Then TL_Val2 = (고점[1,1]-고점[2,1])/(고점[1,2]-고점[2,2]) * (Index-고점[2,2])+고점[2,1]; } If TL_Val1 > 0 Then Plot1(TL_Val1,"추세선1",BLUE); //점그래프 If TL_Val2 > 0 Then Plot2(TL_Val2,"추세선2",RED); //점그래프 ------------------------------ 이것은 틱변폭 수식을 이렇게 주셔서 적용하였을 경우 사진처럼 적용되어 나온겁니다. 제가 궁금한것은 중간에 추세선으로 되어 형광색으로 저점과 고점을 연결해 주는 색상이 저점으로 내려갈 땐 파랑색으로 표시되고 저점에서 고점으로 올라 갈땐 빨간색으로 표시할 수 있는지.. 그리고 변폭이 저점에서 고점으로 한번에 가는데 혹시 중간에 변폭을 좀더 작은 마디로 끊을 수 있는지 확인부탁드립니다. 그리고 변폭이 바뀌는 부분에서 매도신호 매수신호를 넣을수 있는지도 부탁드립니다. 그리고 매수 매도신호 발생시 소리도 같이 넣을 수 있는지 확인부탁드립니다.
프로필 이미지
한짱
2016-11-12
245
글번호 103933
사용자 함수
답변완료

highest, lowest 문의

수고많으십니다. 아직 초보라서~ highest 와 lowest 를 이용하여 고점과 저점 채널을 첨부와 같이 만들었습니다 input : p(20); var1 = (highest(c,p)); var2 = (lowest(c,p)); var3 = (highest(c,p))-(lowest(c,p)); if var1 > var1[1] Then value1 = 1; if var1 < var1[1] Then value1 = -1; if value1 == 1 Then plot1(Var1,"고점",white); Else plot1(Var1,"고점",black); ~~~ 이런식으로 지표는 만들었는데 이 지표를 시스템식으로 만들려고 하는데요? if C < var1[1] and c < var[2] and c < var[3] then sell(); if C > var2[1] and c > var[2] and c > var[3]then buy(); 종가가 앞선 고점이나 저점보다 크다작다. 결과는 매수 매도 신호가 발생이 않되네요. 제가 원하는 시스템은 아래와 같이 if crossup(c, var1) Then var11=index; if index >= var11+10 and crossdown(c, var1) Then sell("매도"); 위의 수식은 채널 상단 터치후 10개봉동안 신고점이 발생되지 않고 종가가 고점을 다운시 매도 하는 수식으로 알고 있은데 시스템에서 수량(10개봉 또는 그보다 많은 봉)을 수정해도 시스템에 반영이 않되네요^^ 첨부된 그림과 같이 로직을 짜고 싶습니다.(고점 매도/저점 매수) 1. 상단채널 터치후 일정봉(n) 동안 고점(상한채널)을 형성하지 못 할 경우 매도 2. 상단채널 터치후 일정봉(n) 상단채널을 새로이 형성시 그 상단을 var1에 저장 3. var1보다 큰 상단채널 형성시 var2에 저장 ....var(n) 4. var(n)이 낮아 질 경우 매도하는 시스템 입니다.(즉 var(n) < var2 < var1) 요점은 새로이 형성된 고점과 저점(채널상/하단)을 기억해서 앞선 고점(채널상단) 보다 낮아질 경우 매도 앞선 저점(하단채널)보다 높아질 경우 매수하는 시스템 입니다. 감사합니다.
프로필 이미지
고저중
2016-11-14
281
글번호 103932
시스템
답변완료

Yeslanguage에서 지표검색이 안되요

지인으로부터 지표파일을 받았는데 차트에서는 지표검색에 파일명이 떠서 구현을 할 수가있는데 예스렝귀지에서 파일열기에 지표가 없습니다. 내컴퓨터 파일에 들어가서 보니 이 지표들은 다른 지표와 다르게 형식이 YIN이 아니라 YEIN이던데 이것때문인가요? 이걸 예스렝귀지에서 열려면 어떻게 해야하나요?
프로필 이미지
갑부파일럿
2016-11-12
187
글번호 103931
지표
답변완료

수식수정

var : WeekC(0),WeekC1(0),weekO(0); var : MonthC(0),MonthC1(0),MonthO(0); if DayOfWeek(sdate) < DayOfWeek(sdate) Then{ WeekC1 = WeekC[1]; WeekO = O; } WeekC = C; if date > date[1]+30 Then{ MonthC1 = MonthC[1]; MonthO = O; } MonthC = C; plot1(DayClose(1),"전일종가"); plot2(DayOpen(0),"당일시가"); plot3(WeekC,"당주종가"); if WeekC1 > 0 Then plot4(WeekC1,"전주종가"); if weekO > 0 Then plot10(weekO,"전주시가"); if MonthO > 0 Then plot5(MonthO,"당월시가"); if WeekC1 > 0 Then plot6(MonthC1,"전월종가"); 위식에서 전주시가 까지는 분봉상나오는데 전주 종가 월시가종가는 4시간분봉해도 안나오네요
프로필 이미지
렉쳐
2016-11-12
188
글번호 103930
지표
답변완료

문의드립니다

1. Input:length(12),per1(23.7),per2(38.2),per3(50.0),Per4(61.8),per5(74.6); Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),diff(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,length) == H and lastHiVal <> H; Condition2 = Lowest(L,length) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; // if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과 If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2], sDate[barArr[1]],sTime[barArr[1]],valArr[1]); Else TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } TL_SetSize(TL1,4); TL_SetColor(TL1,GREEN); if turnPntArr[1] != turnPntArr[1][1] and barArr[3] > 0 Then{ if turnPntArr[2] == "Hi" then{ value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[3]],sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]); value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]],sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]); diff = abs(L[barArr[3]]-H[barArr[4]]); value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per1/100)); value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per2/100)); value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per3/100)); value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per4/100)); value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per5/100)); TL_SetColor(value1,RED); TL_SetColor(value2,RED); TL_SetColor(value3,RED); TL_SetColor(value4,RED); TL_SetColor(value5,RED); TL_SetColor(value6,RED); TL_SetColor(value7,RED); } Else{ value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[3]],sdate[barArr[2]],stime[barArr[2]],H[barArr[3]]); value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]],sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]); diff = abs(L[barArr[4]]-H[barArr[3]]); value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per1/100)); value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per2/100)); value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per3/100)); value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per4/100)); value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per5/100)); TL_SetColor(value1,blue); TL_SetColor(value2,blue); TL_SetColor(value3,blue); TL_SetColor(value4,blue); TL_SetColor(value5,blue); TL_SetColor(value6,blue); TL_SetColor(value7,blue); } } TL_Delete(value11); TL_Delete(value12); TL_Delete(value13); TL_Delete(value14); TL_Delete(value15); TL_Delete(value16); TL_Delete(value17); TL_Delete(value21); TL_Delete(value22); TL_Delete(value23); TL_Delete(value24); TL_Delete(value25); TL_Delete(value26); TL_Delete(value27); if turnPntArr[1] == "Hi" then{ value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]); value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]); diff = abs(L[barArr[3]]-H[barArr[2]]); value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100)); value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100)); value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100)); value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100)); value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100)); TL_SetColor(value11,red); TL_SetColor(value12,red); TL_SetColor(value13,red); TL_SetColor(value14,red); TL_SetColor(value15,red); TL_SetColor(value16,red); TL_SetColor(value17,red); value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[1]],sdate,stime,H[barArr[1]]); value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]],sdate,stime,L[barArr[2]]); diff = abs(L[barArr[2]]-H[barArr[1]]); value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per1/100),sdate,stime,L[barArr[2]]+diff*(per1/100)); value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per2/100),sdate,stime,L[barArr[2]]+diff*(per2/100)); value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per3/100),sdate,stime,L[barArr[2]]+diff*(per3/100)); value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per4/100),sdate,stime,L[barArr[2]]+diff*(per4/100)); value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per5/100),sdate,stime,L[barArr[2]]+diff*(per5/100)); TL_SetColor(value21,blue); TL_SetColor(value22,blue); TL_SetColor(value23,blue); TL_SetColor(value24,blue); TL_SetColor(value25,blue); TL_SetColor(value26,blue); TL_SetColor(value27,blue); } Else{ value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]); value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]); diff = abs(L[barArr[3]]-H[barArr[2]]); value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per1/100)); value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per2/100)); value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per3/100)); value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per4/100)); value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per5/100)); TL_SetColor(value11,blue); TL_SetColor(value12,blue); TL_SetColor(value13,blue); TL_SetColor(value14,blue); TL_SetColor(value15,blue); TL_SetColor(value16,blue); TL_SetColor(value17,blue); value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[1]],sdate,stime,L[barArr[1]]); value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]],sdate,stime,H[barArr[2]]); diff = abs(L[barArr[1]]-H[barArr[2]]); value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100),sdate,stime,H[barArr[2]]-diff*(per1/100)); value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100),sdate,stime,H[barArr[2]]-diff*(per2/100)); value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100),sdate,stime,H[barArr[2]]-diff*(per3/100)); value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100),sdate,stime,H[barArr[2]]-diff*(per4/100)); value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100),sdate,stime,H[barArr[2]]-diff*(per5/100)); TL_SetColor(value21,red); TL_SetColor(value22,red); TL_SetColor(value23,red); TL_SetColor(value24,red); TL_SetColor(value25,red); TL_SetColor(value26,red); TL_SetColor(value27,red); } 위 지표상 문의하나 드리겠습니다 선굻기를 조절하고 싶어서 문의를드립니다 혹시 외부수정에 선을 따로 조절하게 할수있으면 따로좀 부탁드리겠습니다 선이 너무얇아서 조금더 뚜렷하게 보이고싶어서 문의드립니다
프로필 이미지
곽민수
2016-11-14
202
글번호 103929
지표
답변완료

질문입니다.

일전에 틱데이터에서 현재시각으로부터 전거래일의 현재시각까지 봉의 갯수를 카운트하는 지표를 질문드린적이 있습니다. 그 답변이 이렇습니다. Var : S1(0), S2(0), TM(0), T(0); Var : idx(0), idx1(0); Var : cnt(0), count(0); If Bdate != Bdate[1] Then { S1 = TimeToMinutes(sTime); S2 = sTime; idx = 0; idx1 = idx[1]; } If S1 > 0 Then { idx = idx + 1; If sTime >= S2 Then TM = TimeToMinutes(sTime) - S1; Else TM = TimeToMinutes(sTime) + 1440 - S1; } If idx1 > 0 Then { count = 0; For cnt = idx To idx + idx1 { If Bdate[cnt] < Bdate and TM[cnt] <= TM Then { count = cnt; cnt = idx + idx1 + 10; } } Plot1(count, "yNnum", BLACK); } 여기서 추가질문을 드리고자 합니다. 위 수식은 당거래일의 현재시각으로부터 전거래일의 현재시각까지의 봉의 갯수를 측정하는 지표인데, 추가적으로 당거래일의 현재시각으로부터 X거래일 전 현재시각까지의 봉의 갯수를 카운트하는 수식을 알고자합니다. 예시로부탁드리며, 예시 코딩에 간단한 주석을 달아주시면 감사하겠습니다. 감사합니다.
프로필 이미지
yanartas
2016-11-11
181
글번호 103928
지표