커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식부탁합니다

그림처럼 a지점이 TL13 이기도 하고 TL12이기도 합니다 새로운TL13이 발생하든 아니든 한 변수로 리턴하고 싶습니다 1.저[1,1]과 저[2,1] 사이의 캔들 중 가장 큰 고가를 Pinkline 으로 리턴 가능할까요? 2.다른 방벙이 있다면 그 또한 부탁합니다. 3.답 좀.... if MarketPosition == 1 매수포지션 if MarketPosition == -1 매도포지션 if MarketPosition == 0 무포지션 if MarketPosition <= 0 ? if MarketPosition >= 0 ? 4.crossdown(mav5,mav20) and c<redline 이 조건이 하나의 캔들로 완성이 되면 작동이 안되는지요? 감사합니다~ input:length(6); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0),고점변곡(""),저점변곡(""); var : clr1(0),clr2(0),BE(0),SE(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(0==1,C,H); LL = IFF(0==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { T = 1; 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 1 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 0, 1); Text_SetColor(Text1,Red); } TL_SetSize(TL1,1); TL_SetColor(TL1,Gray); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 1 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { T = -1; 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 1 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 0, -1); Text_SetColor(Text1,Blue); } TL_SetSize(TL1,1); TL_SetColor(TL1,Gray); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 1 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; } if T == -1 and T[1] != -1 Then { TL12 = TL_New(고[2,3],고[2,4],고[2,1],sdate,stime,고[2,1]); TL_Delete(TL13); TL13 = TL_New(고[1,3],고[1,4],고[1,1],Sdate,Stime,고[1,1]); TL_SetExtRight(TL13,true); TL_SetSize(TL13,2); TL_SetColor(TL12,clr1); TL_SetSize(TL12,2); clr1 = Pink; TL_SetColor(TL13,Pink); } if T == 1 and T[1] != 1 Then { TL14= TL_New(저[2,3],저[2,4],저[2,1],sdate,stime,저[2,1]); TL_Delete(TL15); TL15= TL_New(저[1,3],저[1,4],저[1,1],sdate,stime,저[1,1]); TL_SetExtRight(TL15,true); TL_SetColor(TL14,clr2); TL_SetSize(TL14,2); clr2 = LightBlue; TL_SetColor(TL15,clr2); TL_SetSize(TL15,2); }
프로필 이미지
하늘거지
2022-12-11
980
글번호 164421
지표
답변완료

문의드립니다

특정일이후 5일간의 dayhigh 의 평균값 daylow 의 평균값을 구하는 식 부탁합니다 감사합니다
프로필 이미지
러블리
2022-12-08
1046
글번호 164420
지표
답변완료

문의드립니다

indicator("Nadaraya-Watson Envelope [LuxAlgo]",overlay=true,max_bars_back=1000,max_lines_count=500,max_labels_count=500) length = input.float(500,'Window Size',maxval=500,minval=0) h = input.float(8.,'Bandwidth') mult = input.float(3.) src = input.source(close,'Source') up_col = input.color(#39ff14,'Colors',inline='col') dn_col = input.color(#ff1100,'',inline='col') disclaimer = input(false, 'Hide Disclaimer') //---- n = bar_index var k = 2 var upper = array.new_line(0) var lower = array.new_line(0) lset(l,x1,y1,x2,y2,col)=> line.set_xy1(l,x1,y1) line.set_xy2(l,x2,y2) line.set_color(l,col) line.set_width(l,2) if barstate.isfirst for i = 0 to length/k-1 array.push(upper,line.new(na,na,na,na)) array.push(lower,line.new(na,na,na,na)) //---- line up = na line dn = na //---- cross_up = 0. cross_dn = 0. if barstate.islast y = array.new_float(0) sum_e = 0. for i = 0 to length-1 sum = 0. sumw = 0. for j = 0 to length-1 w = math.exp(-(math.pow(i-j,2)/(h*h*2))) sum += src[j]*w sumw += w y2 = sum/sumw sum_e += math.abs(src[i] - y2) array.push(y,y2) mae = sum_e/length*mult for i = 1 to length-1 y2 = array.get(y,i) y1 = array.get(y,i-1) up := array.get(upper,i/k) dn := array.get(lower,i/k) lset(up,n-i+1,y1 + mae,n-i,y2 + mae,up_col) lset(dn,n-i+1,y1 - mae,n-i,y2 - mae,dn_col) if src[i] > y1 + mae and src[i+1] < y1 + mae label.new(n-i,src[i],'▼',color=#00000000,style=label.style_label_down,textcolor=dn_col,textalign=text.align_center) if src[i] < y1 - mae and src[i+1] > y1 - mae label.new(n-i,src[i],'▲',color=#00000000,style=label.style_label_up,textcolor=up_col,textalign=text.align_center) cross_up := array.get(y,0) + mae cross_dn := array.get(y,0) - mae alertcondition(ta.crossover(src,cross_up),'Down','Down') alertcondition(ta.crossunder(src,cross_dn),'Up','Up') //---- var tb = table.new(position.top_right, 1, 1 , bgcolor = #35202b) if barstate.isfirst and not disclaimer table.cell(tb, 0, 0, 'Nadaraya-Watson Envelope [LUX] Repaints' , text_size = size.small , text_color = #cc2f3c) 위수식을(엔벨로프) 예스트레이드수식의로 변경부탁드립니다 미리감사드립니다~~
프로필 이미지
장군
2022-12-07
1320
글번호 164419
지표
답변완료

피라미딩2

buy1 , buy2 , buy3 3개의 포지션을 시간 간격으로 개별진입시, 아래의 함수들은 3개포지션의 평균가 평단가로 관리되나요? 아니면 자동으로 3개의 포지션이 각각 개별관리되나요? SetStopProfittarget(익절,PointStop); SetStoploss(손절,PointStop); SetStopTrailing(손실범위 , 최소이익 , PointStop);
프로필 이미지
캣피쉬
2022-12-07
1046
글번호 164418
시스템
답변완료

피라미딩

피라미딩이 된다고 들었는데, 선물1분봉 기준, 10:00 에 양봉이면 매수, 1pt 익절/1pt 손절 / 최소이익 0.5pt/손실범위 0.3pt 11:00 에 양봉이면 매수, 1.2pt 익절/1.2pt 손절 / 최소이익 0.6pt/손실범위 0.4pt 2개 포지션 개별 관리되는 수식 예제 좀 부탁드립니다. 감사합니다.
프로필 이미지
캣피쉬
2022-12-07
1119
글번호 164417
시스템
답변완료

손익절

안녕하세요 가령 매수진입후 매수포지션상태에서 수익이 100틱 이상 수익 종가봉이후 다음봉에서 data2(c)의 현재가가 매수진입 당시의 data2(c)현재가 보다 2배이하이면 청산 진입싯점data2(c) < 수익100틱이상싯점data2(c)*2 ===> 청산 수고하세요
프로필 이미지
달마7
2022-12-07
1112
글번호 164416
시스템
답변완료

종목 검색식 부탁 드립니다.

안녕 하십니까 종목검색 부탁드립니다. M = BBandsUP(30, 1.8); LL = Lowest(M, 기간); HH = Highest(M, 기간); NL = Valuewhen(1, M<LL(1),M); Valuewhen(1,BarsSince(M<LL(1))==(기간-k),NL); CrossUp(C,NL) 기간 5 k 2 항상 도움주셔서 감사합니다.
프로필 이미지
칼이쓰마빡가
2022-12-07
1211
글번호 164408
종목검색
답변완료

시뮬레이션과 실제매매차이

수고많으십니다.진입조건 봉완성시점에 진입하고 청산은 setstoptrailng(1%,4%),SetStopLoss (3%)를 사용하는데요, 실전은 2%~5% 정도 수익을 내고 청산됬는데, 시뮬레이션 성능보고서상 거래내역에는 막 20%,30%수익 실현한 것으로 나옵니다. 과거년도 시뮬레이션한 차트도 자세히 보니 stoploss는 숫자값으로 봉 중간에 표시도되고 청산되는 데, setstoptrailng 청산신호는 예외없이 봉의 꼬리에 신호표지가 마킹되고, 성능보고서 거래내역도 그 값으로 나옵니다.setstoptrailng 시뮬레이션은 완성봉의 최고점 대비 1%하락시 수익청산된 것으로 계산되서 결과적으로 엄청나게 과다계상 됩니다. setstoptrailng 적용하는 시뮬레이션은 수익과다계상 무용지물인 것인지 다른 구현방법이 있는 것인지 답변 부탁드립니다. 감사합니다.
프로필 이미지
피카2
2022-12-07
1066
글번호 164399
시스템
답변완료

DMI 강조/검색

안녕하세요. DMI의 cross up/down을 차트에 표시할 수 있는 강조나 검색식 문의드립니다. 기존의 증권사 HTS처럼 차트에 화살표로 표현하고 싶습니다. DMI는 지난번 알려주신 아래식을 활용하고 있습니다. value1 = Ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/ Ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; value2 = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; ADXv = Ema(abs(value1-value2)/(value1+value2),period)*100;
프로필 이미지
루루르
2022-12-07
1204
글번호 164398
강조