커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

하늘이여o 님에 의해서 삭제되었습니다.

프로필 이미지
하늘이여o
2017-07-23
0
글번호 111515
시스템
답변완료

함수 수식

mma(C, 50): index == 0 이면 C index == 1 이면 ma(C,2) ... index == 48 이면 ma(C,49) index >= 49 면 ma(C,50) 을 리턴시키고 싶은데, 잘 안됩니다. input: Price(Numeric), Period(Numeric); if (index+1) < Period then mma = ma(Price, index+1); else mma = ma(Price, Period); 이렇게 한 후에 지표로 var1 = mma(C, 50); Plot1(var1); 로 하니 결과가 그림처럼 나옵니다. 즉, index < 50 인 부분에도 나와야 하는데 왜 안나오는지 모르겠습니다. 원인 및 정정 부탁드립니다. 감사합니다.
프로필 이미지
에구머니
2017-07-23
206
글번호 111514
사용자 함수

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

프로필 이미지
앙이
2017-07-23
4
글번호 111513
사용자 함수
답변완료

보조 지표 그리기..

yesLanguage에서 yesGlobal의 보조 지표를 그리게 할 수 있나요? 예를 들어 "수치전환 수직선" yesLanguage에서 함수를 사용하여 매일 10시에 표시되게 할려고 합니다. 그래게 할 수 있다면 사용법이 나와있는 자료를 받고 싶습니다.
프로필 이미지
yes랭귀지
2017-07-23
177
글번호 111512
지표
답변완료

부탁드림니다

**고가-다음파동의고가,저가-다음파동의저가,종가고-다음파동의종가고,종가저-다음파동의종가저 의수평라인을 추가해서 그리고 싶슴니다 1 장기파동(length(60))의 최고점(빨강색두깨3)-다음최고점까지연결,최저점(검정색 두께3)-다음파동의최저점연결 2 단기파동(length1(10))의 최고점(분홍색 두께1),최저점(청색 두께1)의 수평라인을 추가하고 3 장기파동(length(60))의 최고점종가선(빨강색두깨1),최저점종가선(검정색 두께1) 4 단기파동(length1(10))의 최고점종가선(분홍색 두께1),최저점종가선(청색 두께1)의 수평라인을 추가해서 그리고 싶슴니다. 5 그림참고는 52250번 그림과 동일 함니다 수식; Input:length(60); Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0); var : UpTL_chk(false),DnTL_chk(false); Array:valArr[20](0),barArr[20](0),turnPntArr[20](""); Input:length1(10); var:lastHiVal1(0),lastLoVal1(0),turnPntBit1(""),TL11(0),T(0),T1(0); var : H1(0),H2(0),L1(0),L2(0),H11(0),L11(0),H22(0),L22(0); Array:valArr1[20](0),barArr1[20](0),turnPntArr1[20](""); For j = 0 To 19 { 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 turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else If turnPntArr[1] == "Lo" Then turnPntBit = "Hi"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit == "Hi" or turnPntBit == "Lo" Then { If turnPntBit <> turnPntArr[1] Then { for j = 18 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,2); TL_SetColor(TL1,GREEN); # 진입 체크 TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); For j = 0 To 19 { barArr1[j] = barArr1[j] + 1; } Condition11 = Highest(H,length1) == H and lastHiVal1 <> H; Condition12 = Lowest(L,length1) == L and lastLoVal1 <> L; If Condition11 Then lastHiVal1 = H; If Condition12 Then lastLoVal1 = L; turnPntBit1 = ""; If Condition11 and Condition12 Then { If turnPntArr1[1] == "Hi" Then turnPntBit1 = "Lo"; Else If turnPntArr1[1] == "Lo" Then turnPntBit1 = "Hi"; } Else If Condition11 Then turnPntBit1 = "Hi"; Else If Condition12 Then turnPntBit1 = "Lo"; If turnPntBit1 == "Hi" or turnPntBit1 == "Lo" Then { If turnPntBit1 <> turnPntArr1[1] Then { for j = 18 downto 1 { valArr1[j+1] = valArr1[j]; barArr1[j+1] = barArr1[j]; turnPntArr1[j+1] = turnPntArr1[j]; } } If turnPntBit1 <> turnPntArr1[1] or (turnPntBit1 == turnPntArr1[1] and ((turnPntBit1 == "Hi" and valArr1[1] < H) or (turnPntBit1 == "Lo" and valArr1[1] > L))) Then { valArr1[1] = IFF(turnPntBit1 == "Hi",H,L); barArr1[1] = 0; turnPntArr1[1] = turnPntBit1; If turnPntArr1[1][1] <> turnPntArr1[1][0] Then TL11 = TL_New(sDate[barArr1[2]],sTime[barArr1[2]],valArr1[2],sDate[barArr1[1]],sTime[barArr1[1]],valArr1[1]); Else TL_SetEnd(TL11,sDate[barArr1[1]],sTime[barArr1[1]],valArr1[1]); } } TL_SetSize(TL11,4); TL_SetColor(TL11,GREEN);
프로필 이미지
수루지
2017-07-23
183
글번호 111511
지표
답변완료

수정

아래수식을 사용하는데 값이 키움과 다르게 나옵니다. 키움기준으로 아래수식 비교해서 수정할 부분 수정 부탁드립니다. input : Period(20170703),BarRio(0.01),Percent1(50); var : B(0),sumB(0),HH(0),LL(0),H2(0); B = IFF((C-O)/O>=BarRio or (C[1]*1.02<=H and C>=O) or (C[2]>O[2]*1.01 and C[1]>O[1]*1.01 and C>=O) , V, IFF((C-O)/O<=-BarRio or (C < O and C[1]*1.03 <= H) or (C[1]*0.99>=C and C < O) or (C[1]*0.97>=L and C < O) or (H[1]*0.97 > C and O>C),-V,0)); if sdate >= Period then{ sumB = sumB+B; if (sdate != sdate[1]) and (sdate == Period or (sdate > Period and sdate[1] < Period)) Then{ LL = sumB; HH = sumB; H2 = sumb-LL; } if sumB < LL Then LL = sumB; if sumB > HH Then HH = sumB; var1 = sumB-LL; var2 = HH-SumB; if var1 > H2 Then H2 = var1; var3 = H2*(Percent1/100); plot1(var1,"매수",RED); plot2(var3,"50%",YELLOW); } 키움에서 사용하는 수식 B = sum(if(C >= O*(1+A/100) or (C(1)*1.02<=H and C>=O) or (C(2)>O(2)*1.01 and C(1)>O(1)*1.01 and C>=O) , V, if(C <= O*(1-A/100) or (C < O and C(1)*1.03 <= H) or (C(1)*0.99>=C and C < O) or (C(1)*0.97>=L and C < O) or (H(1)*0.97 > C and O>C) , -V, 0))); D = valuewhen(1, date == 날짜 and date(1) != 날짜, B(1)); B - D E = B -D; F = highestsince(1, date == 날짜 and date(1) != 날짜, E); F/2
프로필 이미지
usaarmy
2017-07-23
137
글번호 111510
시스템
답변완료

안녕하세요?

안녕하세요? 분할청산 수식 문의 드립니다. 3계약을 진입한 상태에서 질문 드립니다. 잔고가 3계약일때 익절 +5틱(1계약) , +10틱(1계약) , +20틱(1계약) , 손절 -10틱(1계약), 손절 -15틱(1계약), 손절 -20틱(1계약) 잔고가 2계약일때 익절 +10틱(1계약) , +20틱(1계약) , 손절 -5틱(1계약) ,진입가(1계약) 잔고가 1계약일때 익절 +20틱(1계약) , 진입가(1계약) 매수,매도 청산식 부탁드립니다. 감사합니다.
프로필 이미지
상중하
2017-07-23
139
글번호 111509
시스템
답변완료

부탁 드립니다.

도움 주심에 경배로 감사 인사 드립니다. 질문1) 일시를 지정한 A,B,C, 세점을 연결한 선 등 첨부한 그림과 같이 부탁 드립니다. 질문2) 해선에서 p100으로 지정된 기간에 생성된 선이 길게 나타 날 경우 (당일을 초과하여 다음날로 연장될 경우) 06:00에는 정지하여 그선이 다음날(07:00 이후) 에는 나타나지 않게 가능 하겠는지요? (var13 != Hv3, var33 != hv3->를 사용하지 않는 수식으로) input : p100(30); var : HV1(0),HV2(0),HV3(0); var : HH1(0),HH2(0),HH3(0); var : LL1(0),LL2(0),LL3(0); HV1=NthHighest(1,v,p100); HV2=nthhighest(2,v,p100); HV3=nthhighest(3,v,p100); HH1=NthHighest(1,h,p100); HH2=nthhighest(2,h,p100); HH3=nthhighest(3,h,p100); LL1=NthLowest(1,L,P100); LL2=NTHLOWEST(2,L,P100); LL3=NTHLOWEST(3,L,P100); if Hv3 > 0 and v == Hv3 and ((Hh1 > 0 and h == Hh1) or (Hh2 > 0 and h == Hh2) or (Hh3 > 0 and h == Hh3)) Then{ Condition3 = true; var13 = H; } //if Condition3 == true and var13 != Hv3 Then // Condition3 = false; ######################################################### if Hv3 > 0 and v == Hv3 and ((LL1 > 0 and L == LL1) or (LL2 > 0 and L == LL2) or (LL3 > 0 and L == LL3)) Then{ Condition33 = true; var33 = L; } //if Condition33 == true and var33 != hv3 Then // Condition33 = false; ############################################ if Condition3 == true then{ plot3(var13,"H3",blue,def,0); } if Condition33 == true then{ plot33(var33,"L3",blue,def,0); }
프로필 이미지
yes
2017-07-23
200
글번호 111508
지표
답변완료

지표부탁드릴게요.

크루드오일 180분봉의 이평선 매매 --------------------------------------------------- 5,20,60일 이평선을 그린다. 60일이평선은 기울기를 색으로 표시한다. 1.추세선은 60이평의 기울기 색깔로 정한다. 빨강이면 매수기회포착 / 파랑이면 매도기회포착 대기중 2.추세선 기울기가 빨강선일때(매수기회포착) - 매수기회는 가격이 20일선 아래로 내려갔다가 20일선을 넘는 시점에 매수 돌파하는 시점에 점을 찍어주세요. (빨강) 소리 딸랑딸랑 넣어주세요. 3.추세선 기울기가 파랑선일때(매도기회포착) - 매도기회는 가격이 20일선 위로 갔다가 아래로 내려가는 바로 그지점에 매도 돌파하는 시점에 점을 찍어주세요. (파랑) 소리 딸랑딸랑 넣어주세요. 4.거래시간은 저녁9시~ 새벽2시까지 매매가능하게 해주세요. 5.저점으로 부터 봉의 꼭지가 6,7개 이면 위의 신호를 잡히지 않게해주세요. 6.손절은 50틱입니다. 익절200틱
프로필 이미지
알면다쳐
2017-07-22
206
글번호 111507
검색