커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

전환피보나치 하락 크기

input : 전환포인트(0.8); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),Trend1(0),ZigZagTL(0),TX(0),tx1(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),t(0),box1(0),box2(0); Plot1 (0); HPrice = H; LPrice = L; if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; trend1 = 0; t = 0; } Else { if Trend == 0 Then { if L < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; } if H > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; } } UpTrend = HPrice >= LV[0]+전환포인트; DownTrend = LPrice <= HV[0]-전환포인트; if trend <= 0 and UpTrend == true Then { trend = 1; trend1 = trend[1]; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); TL_SetColor(ZigZagTL,Gold); TL_SetSize(ZigZagTL,3); TX = Text_New(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,1); Text_SetColor(TX,Black); Text_SetSize(tx,30); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.33/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.67/100)); TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(LD[0],LT[0],var5,NextBarSdate,NextBarStime,var5); TL6 = TL_New(LD[0],LT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Magenta); TL_SetColor(TL4,Blue); TL_SetColor(TL5,Magenta); TL_SetColor(TL6,Orange); TL_SetColor(TL7,Magenta); TL_SetSize(TL7,1); box1 = Box_New(LD[0],LT[0],Var2,NextBarSdate,NextBarStime,Var3); Box_SetColor(box1,Yellow); Box_SetFill(box1,true,30); box2 = Box_New(LD[0],LT[0],Var5,NextBarSdate,NextBarStime,Var6); Box_SetColor(box2,Yellow); Box_SetFill(box2,true,30); t = t+1; if t == 1 Then { tx1 = Text_New(NextBarSdate,NextBarStime,LV[0]-0.13,"■"); Text_SetColor(tx1,Red); Text_SetSize(tx1,50); Text_SetStyle(tx1,1,2); } } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; trend1 = trend[1]; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); TL_SetColor(ZigZagTL,Gold); TL_SetSize(ZigZagTL,3); TX = Text_New(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,0); Text_SetColor(TX,Black); Text_SetSize(tx,30); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.33/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.67/100)); TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(HD[0],HT[0],var5,NextBarSdate,NextBarStime,var5); TL6 = TL_New(HD[0],HT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Magenta); TL_SetColor(TL4,Blue); TL_SetColor(TL5,Magenta); TL_SetColor(TL6,Orange); TL_SetColor(TL7,Magenta); TL_SetSize(TL7,1); box1 = Box_New(HD[0],HT[0],Var2,NextBarSdate,NextBarStime,Var3); Box_SetColor(box1,Yellow); Box_SetFill(box1,true,30); box2 = Box_New(HD[0],HT[0],Var5,NextBarSdate,NextBarStime,Var6); Box_SetColor(box2,Yellow); Box_SetFill(box2,true,30); t = t+1; if t == 1 Then { tx1 = Text_New(NextBarSdate,NextBarStime,HV[0]+0.13,"■"); Text_SetColor(tx1,Blue); Text_SetSize(tx1,50); Text_SetStyle(tx1,1,2); } } Else { if trend == 1 Then { if trend1 == 0 Then { LV[0] = DayLow; } if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.33/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.67/100)); TL_SetBegin(TL1,LD[0],LT[0],HV[0]); TL_SetBegin(TL2,LD[0],LT[0],Var2); TL_SetBegin(TL3,LD[0],LT[0],Var3); TL_SetBegin(TL4,LD[0],LT[0],Var4); TL_SetBegin(TL5,LD[0],LT[0],Var5); TL_SetBegin(TL6,LD[0],LT[0],Var6); TL_SetBegin(TL7,LD[0],LT[0],LV[0]); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,Var5); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,LV[0]); Box_SetBegin(Box1,LD[0],LT[0],Var2); Box_SetEnd(Box1,sDate,sTime,Var3); Box_SetBegin(Box2,LD[0],LT[0],Var5); Box_SetEnd(Box2,sDate,sTime,Var6); if t == 1 Then Text_SetLocation(tx1,sDate,sTime,LV[0]-0.13); } } if trend == -1 Then { if trend1 == 0 Then { HV[0] = DayHigh; } if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.33/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.67/100)); TL_SetBegin(TL1,HD[0],HT[0],HV[0]); TL_SetBegin(TL2,HD[0],HT[0],Var2); TL_SetBegin(TL3,HD[0],HT[0],Var3); TL_SetBegin(TL4,HD[0],HT[0],Var4); TL_SetBegin(TL5,HD[0],HT[0],Var5); TL_SetBegin(TL6,HD[0],HT[0],Var6); TL_SetBegin(TL7,HD[0],HT[0],LV[0]); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,Var5); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,LV[0]); Box_SetBegin(Box1,HD[0],HT[0],Var2); Box_SetEnd(Box1,sDate,sTime,Var3); Box_SetBegin(Box2,HD[0],HT[0],Var5); Box_SetEnd(Box2,sDate,sTime,Var6); if t == 1 Then Text_SetLocation(tx1,sDate,sTime,HV[0]+0.13); } } } } 하락추세선의 크기가 1.6p 되면, 봉 위에 네모 표시. 감사합니다.
프로필 이미지
고성
2024-06-18
1162
글번호 180720
지표
답변완료

문의 드립니다

해외선물 매매입니다. 매매시간 : 07:00~익일 06:00 전일 전체 하락폭을 100% 라고 가정하고 그 하락폭의 60%가 당일 나왔을때 매수후 그전 최고점에 청산이나 마감시간인 익일 06시 청산의 수식어입니다.
프로필 이미지
푸른
2024-06-18
832
글번호 180719
시스템
답변완료

수식요청

안녕하세요 DATE 1 2분봉 이평60선 DATE 2 30분봅 이평 20선 매수 DATE2 30분봉이평 20선 위에있는상태에서 DATE1 2분봉이평 60선 상향돌파시 매수 매도 매수반대 청산 손절 2분봉 60선 상.하향시
프로필 이미지
아트정
2024-06-18
699
글번호 180718
시스템
답변완료

문의드립니다.

1. 최근 20봉에서 가장 큰 거래량이 터지면서 2. 최근 10개봉의 최고가를 돌파하면서 3. 볼린저밴드 상단선을 종가로 뚫었을 때 매수 그 반대로는 매도인 시스템 매매식을 부탁드립니다. 청산은 진입봉의 시가를 5틱 이상 뚫었을 때 입니다.
프로필 이미지
카르마다
2024-06-18
780
글번호 180717
시스템
답변완료

수식 문의 드립니다

매수: Volume RSI(9) 가 60 상향시 매수 매도 : Volume RSI(9) 가 60 하향시 매도
프로필 이미지
회원
2024-06-17
895
글번호 180716
시스템
답변완료

[함수] valueWhen(2) 구현방법부탁 드립니다.

안녕하세요.. 키움의 아래와 같은 수식을 예스에서 사용할려면 어떻게 해야 될까요?? <키움수식> A= c==o and c<h; valuewhen(2,A,avg(c,20))
프로필 이미지
장병록
2024-06-17
1103
글번호 180715
검색
답변완료

검색식 부탁 드려요

1. band width (18,2) 가 침체(0.1)이하에서, 2연속 상승추세 일때 종목 검색식 부탁드려요. 과열 0.9 침체 0.1 2.스토캐스틱 슬로우 골든크로스 종목 검색 부탁드려요. (수식1 이 수식2 를 골든크로스) 수식1 > Slow %K 12,5 Stochasticsslow(sto1,sto2) 수식2 > Slow %D 5 eavg(Stochasticsslow(sto1,sto2),sto3) Sto 1 12 Sto 2 5 Sto 3 5 과열 80 침체 20
프로필 이미지
일지매7
2024-06-18
1102
글번호 180714
종목검색
답변완료

두가지 질문드립니다.

1. if MarketPosition == 1 and IsEntryName("b3") == true and MaxContracts == 1 Then { if c > value1 and stm1 > stm2 Then Buy("b4",OnClosE,DeF,1); } 위 식에서 오류가 나서 아래와 같이 중괄호를 변경해도 계속 오류입니다. 확인부탁드립니다. if MarketPosition == 1 and IsEntryName("b3") == true and MaxContracts == 1 Then { if c > value1 and stm1 > stm2 Then { Buy("b4",OnClosE,DeF,1); } } 2. { Buy("b4",OnClosE,DeF,진입수량1); ExitLong("bx4",AtStop,L); } ExitLong("bx5",AtStop,L[BarsSinceEntry]); 위의 식 중 ExitLong("bx4",AtStop,L); 은 중복된 의미라서 빼도 되는가요?
프로필 이미지
산수유
2024-06-17
1040
글번호 180713
시스템

산수유 님에 의해서 삭제되었습니다.

프로필 이미지
산수유
2024-06-17
0
글번호 180712
시스템