커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 부탁드립니다.

이 수식은 거래량 터진 과거봉에 시가 고가 저가 종가에 수평 추세선 긋는 수식인대요.. 이 수식에서 과거봉의 갯수를 제가 지정할수가 있읍니다.이렇게 갯수를 지정하면 여기에 덧붙여서 거래량 터진 봉의 거래량이 몇주인지 오늘자 거래량 옆 오른쪽 빈공간에 1번거래량 몇주(숫자로표시 예를들어 상위1번 1,500) 2번 거래량 몇주 이렇게 표시되게 개선이 가능한지요...수고스럽지만 부탁드립니다. input : Price(10000), Per(10),N(5); var : cnt(0),cnt1(0),cnt2(0),cnt3(0),idx(0),color(0); var : SameO(0),SameH(0),SameL(0),SameC(0); Array : VV[50](0),OO[50](0),HH[50](0),LL[50](0),CC[50](0); Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0),ii[50](0); Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0); idx = idx+1; for cnt = 1 to 49{ VV[cnt] = 0; OO[cnt] = 0; HH[cnt] = 0; LL[cnt] = 0; CC[cnt] = 0; ii[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ TL_Delete(OTL[cnt1]); TL_Delete(HTL[cnt1]); TL_Delete(LTL[cnt1]); TL_Delete(CTL[cnt1]); Text_Delete(OTx[cnt1]); Text_Delete(HTx[cnt1]); Text_Delete(LTx[cnt1]); Text_Delete(CTx[cnt1]); Text_Delete(Tx[cnt1]); if cnt1 == 1 Then color = black; if cnt1 == 2 Then color = red; if cnt1 == 3 Then color = blue; if cnt1 == 4 Then color = GREEN; if cnt1 == 5 Then color = YELLOW; #차트 과거봉 전체 스캔 for cnt2 = 0 to idx { #Price대비 +- Per%안에 종가가 형성된 if !(L[cnt2] > Price*(1+Per/100) or H[cnt2] < Price*(1-Per/100)) and V[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then { VV[cnt1] = V[cnt2]; OO[cnt1] = O[cnt2]; HH[cnt1] = H[cnt2]; LL[cnt1] = L[cnt2]; CC[cnt1] = C[cnt2]; ii[cnt1] = cnt2; } } #동일값 체크 sameO = 0; sameH = 0; sameL = 0; sameC = 0; for cnt3 = 1 to N { if OO[cnt1] == OO[cnt3] or OO[cnt1] == HH[cnt3] or OO[cnt1] == LL[cnt3] or OO[cnt1] == CC[cnt3] Then SameO = SameO+1; if HH[cnt1] == OO[cnt3] or HH[cnt1] == HH[cnt3] or HH[cnt1] == LL[cnt3] or HH[cnt1] == CC[cnt3] Then SameH = SameH+1; if LL[cnt1] == OO[cnt3] or LL[cnt1] == HH[cnt3] or LL[cnt1] == LL[cnt3] or LL[cnt1] == CC[cnt3] Then SameL = SameL+1; if CC[cnt1] == OO[cnt3] or CC[cnt1] == HH[cnt3] or CC[cnt1] == LL[cnt3] or CC[cnt1] == CC[cnt3] Then SameC = SameC+1; } #시가선 if SameO == 1 then { if LastBarOnChart == 1 Then MessageLog("O %.2f",color); #시가선 추세선 출력 OTL[cnt1] = TL_New(Sdate[1],stime[1],OO[cnt1],sdate,stime,OO[cnt1]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); TL_SetColor(OTL[cnt1],color); #시가선값 텍스트 출력 OTx[cnt1] = Text_New(sdate,stime,OO[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(OO[cnt1],0)); Text_SetStyle(OTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameH == 1 then { #고가선 추세선 출력 HTL[cnt1] = TL_New(Sdate[1],stime[1],HH[cnt1],sdate,stime,HH[cnt1]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); TL_SetColor(HTL[cnt1],color); HTx[cnt1] = Text_New(sdate,stime,HH[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(HH[cnt1],0)); Text_SetStyle(HTx[cnt1],0,0); Text_SetColor(HTx[cnt1],color); } if SameL == 1 then { LTL[cnt1] = TL_New(Sdate[1],stime[1],LL[cnt1],sdate,stime,LL[cnt1]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); TL_SetColor(LTL[cnt1],color); LTx[cnt1] = Text_New(sdate,stime,LL[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(LL[cnt1],0)); Text_SetStyle(LTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameC == 1 then { CTL[cnt1] = TL_New(Sdate[1],stime[1],CC[cnt1],sdate,stime,CC[cnt1]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); TL_SetColor(CTL[cnt1],color); CTx[cnt1] = Text_New(sdate,stime,CC[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt1],0)); Text_SetStyle(CTx[cnt1],0,0); Text_SetColor(CTx[cnt1],color); } if CC[cnt1] > 0 then{ Tx[cnt1] = Text_New(sdate[ii[cnt1]],stime[ii[cnt1]],CC[cnt1],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); Text_SetColor(Tx[cnt1],color); Text_SetColor(Tx[cnt1],white); } }
프로필 이미지
앙이
2018-05-03
300
글번호 118659
지표
답변완료

수식작성을 부탁드립니다.

1.전봉의 종가가 20일선 상향돌파 후 다음봉의 종가가 20일선값보다 높고, rsi값이 전봉보다 높으면 매수 전봉의 종가가 20일선 하향돌파 후 다음봉의 종가가 20일선값보다 낮고, rsi값이 전봉보다 낮으면 매도 2. 전봉이 시초가대비 5% 상승했을때 다음봉은 전봉의 종가 도달시 1차매수, 종가대비 50% 하락시 2차매수, 종가대비 70%하락시 3차 매수 평단대비 5% 상승시 매도 전봉 종가대비 90% 하락시 매도 감사합니다.
프로필 이미지
에이드
2018-05-02
237
글번호 118658
시스템
답변완료

지표식부탁드립니다

안녕하세요 아래수식은 고저파동수식인데 이수식의 30틱차트에서의 움직임이 120틱차트에서 실현되도록 수식으로 수정부탁드립니다 감사합니다 Input:length(2),종가사용여부(0),파동선두께(5),수치표시(1),ADXP1(2),ADXP2(14); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),tl2(0),ADXV1(0),ADXV2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# ADXV1 = ADX(ADXP1); ADXV2 = ADX(ADXP2); HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==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 { 최종고가 = 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]); TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,CYAN); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,BLACK); } 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]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = 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]); TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,CYAN); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,BLACK); } 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]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; } if ((고[1,1]+ 저[1,1])/2) > ((고[1,1]+ 저[1,1])/2)[1] then plot1((고[1,1]+ 저[1,1])/2,"중앙",WHITE,def,iff(ADXV1>ADXV1[1],10,2)); if ((고[1,1]+ 저[1,1])/2) < ((고[1,1]+ 저[1,1])/2)[1] then plot1((고[1,1]+ 저[1,1])/2,"중앙",BLACK,def,iff(ADXV1>ADXV1[1],10,2));
프로필 이미지
bestkim
2018-05-02
221
글번호 118657
지표

크래프트 님에 의해서 삭제되었습니다.

프로필 이미지
크래프트
2018-05-02
19
글번호 118656
지표
답변완료

수고하십니다

###,다시한번 도전입니다 $,아래수식은 어느회원분 질문에 대한 답변수식입니다,조건만족시 파동추세선의 색상이 변경되는 내용입니다, 여기서 질문입니다, ㅡ,18시15분을 장시작~ 익일17시30분을 장마감 기준으로보고 전일의 파동추세선중에 가장큰 파동에 피봇등분선 수치를 출력하여 당일현재까지 오른쪽 그리기로 연장 하고싶습니다. (단,당일에 전일보다 큰파동이 출현시에는 갱신되는) #,잘 부탁드립니다~"꾸벅" Input : af(0.02), maxAF(0.2); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0); var : HH1(0),LL1(0),color(0); var1 = CSar(af,maxAF); if crossup(c,var1) Then { T = 1; HH = H; HH1 = HH[1]; HD = sdate; HT = stime; if HH > HH1 Then color = red; if LL > 0 Then { TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH); TL_SetSize(TL1,3); TL_SetColor(Tl1,color); } } if CrossDown(c,var1) Then { T = -1; LL = L; LL1 = LL[1]; LD = sdate; LT = stime; if LL < LL1 Then color = BLUE; if HH > 0 Then { TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL); TL_SetSize(TL2,3); TL_SetColor(Tl2,color); } } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; if HH > HH1 Then color = YELLOW; TL_SetEnd(TL1,HD,HT,HH); TL_SetSize(TL1,3); TL_SetColor(Tl1,color); } } if T == -1 then { if L < LL Then{ LL = L; LD = sdate; LT = stime; if LL < LL1 Then color = CYAN; TL_SetEnd(TL2,LD,LT,LL); TL_SetSize(TL2,3); TL_SetColor(Tl2,color); } } #,매번 감사합니다.
프로필 이미지
회원
2018-05-03
218
글번호 118655
지표

jba 님에 의해서 삭제되었습니다.

프로필 이미지
jba
2018-05-02
28
글번호 118654
강조
답변완료

수식 문의드립니다.

수고 많으십니다. 수식 부탁드립니다. 이동평균 200선 아래로 내려간 1)첫번째 캔들의 종가를 기준으로 2)아래로 N 틱 이상 내려간후 (N틱이상 갭 발생후) 다시 200선 위로 3)캔들이(종가가) 올라가면 이후 10개 갠들의 평균 가격이 200선 위에 있을경우 매수 이동평균 200선 위로 올라간 4)첫번째 캔들의 종가를 기준으로 5)위로 N 틱 이상 올라간후 (N틱이상 갭 발생후) 다시 200선 아래로 6)캔들의 종가가 내려가면 이후 10개 갠들의 평균 가격이 200선 아래에 있을경우 매도 1) ■ 표시와 가격 2) ●(-N틱) 표시와 가격 3) ★ 표시 4) ■ 표시와 가격 5) ●(-N틱) 표시와 가격 6) ★ 표시 포지션이 있을경우 손절 50틱 익절 50틱
프로필 이미지
라떼처럼
2018-05-06
209
글번호 118653
시스템

슬림 님에 의해서 삭제되었습니다.

프로필 이미지
슬림
2018-05-02
0
글번호 118652
시스템

2wnwn 님에 의해서 삭제되었습니다.

프로필 이미지
2wnwn
2018-05-03
9
글번호 118651
지표