커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

If 조건 사용법

아래와 같은 조건도 가능한가요? 5틱 손실이면 2수익시 매수청산 If MarketPosition == 1 and PositionProfit <= PriceScale*(-5) Then { If OpenPositionProfit >= PriceScale*2 Then ExitLong("EL"); }
프로필 이미지
후따오
2015-11-18
162
글번호 92525
시스템
답변완료

문의드립니다...

년봉에서 이동평균선 정배열 10일선.20일선30일선 정배열을 찾고 싶습니다.. 정배열이 계속 유지되면 종목이 검색되게 해주세요 감사합니다..
프로필 이미지
하람푸름마음
2015-11-18
174
글번호 92520
종목검색
답변완료

문의드립니다

아래수식은 45063번 질문에 답해주신거 입니다 실행해보니 지표가 나오지 않습니다 plot1 를사용하니 지표가 나오지 않습니다 1-3=값이 2에+하여 지표가직선으로 나와야합니다 확인검도 부탁드립니다 Input:barCnt(5); Var:j(0),turnPntBit(""),TL1(0),TL2(0),TL3(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); // 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가 For j = 0 To 9 { barArr[j] = barArr[j] + 1; } // 고점조건 = 5-1-5에서 가운데 고가가 좌측 5봉과 우측 5봉 고가보다 높다 // 저점조건 = 5-1-5에서 가운데 저가가 좌측 5봉과 우측 5봉 저가보다 낮다 Condition1 = Highest(H,barCnt)[barCnt+1] <= H[barCnt] and H[barCnt] > Highest(H,barCnt); Condition2 = Lowest(L,barCnt)[barCnt+1] >= L[barCnt] and L[barCnt] < Lowest(L,barCnt); // 전환점구분 null값으로 초기화; // if 고점조건, 저점조건 동시 만족시 then // if 이전 고점,저점 범위를 모두 벗어났을 때 // 전환점구분 = 고저점; // else if 이전 고점을 갱신했다면 전환점구분 = 고점; // else if 이전 저점을 갱신했다면 전환점구분 = 저점; // else if 전환점배열의 현재(배열상 1번째)값이 고점이면 전환점구분 = 저점; // else if 전환점배열의 현재 값이 저점이면 전환점구분 = 고점; // else if 고점조건 만족하면 전환점구분 = 고점; // else if 저점조건 만족하면 전환전구분 = 저점; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H[barCnt] and Min(valArr[1],valArr[2]) > L[barCnt] Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H[barCnt] Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L[barCnt] Then turnPntBit = "Lo"; Else 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 전환점구분에 값이 있을 때만 아래 실행, 없으면 통과 If turnPntBit <> "" Then { // if 전환점구분이 고저점이면 then // 이전 파동은 연장시키고 아래에서 새로이 파동선을 추가토록 한다. If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H[barCnt],L[barCnt]); barArr[1] = barCnt; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } // if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then // 배열값들을 이전값으로 Move; 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 전환점구분이 바뀌었거나 또는 // (전환점구분은 안바뀌었는데 // (이전 고점보다 높은 고점이 발생했거나 또는 // 이전 저점보다 낮은 저점이 발생했으면)) then If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H[barCnt]) or (turnPntBit == "Lo" and valArr[1] > L[barCnt]))) Then { // 값 배열에는 고점 또는 저점을 대입; // 봉개수 배열에는 입력변수의 봉개수 대입; // 전환점 배열에 전환점구분값을 대입; valArr[1] = IFF(turnPntBit == "Hi",H[barCnt],L[barCnt]); barArr[1] = barCnt; turnPntArr[1] = turnPntBit; // if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고; // else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장; If turnPntArr[1][1] <> turnPntArr[1][0] and valArr[3] > 0 Then{ TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2], sDate[barArr[1]],sTime[barArr[1]],valArr[1]); TL2 = TL1[1]; TL3 = TL2[1]; if turnPntArr[1][0] == "Hi" and valArr[1] > valArr[3] Then{ TL_SetEnd(TL2,TL_GetEndDate(TL2),TL_GetEndTime(TL2),TL_GetEndVal(TL2)+abs(valArr[1]-valArr[3])); TL_SetBegin(TL1,TL_GetBeginDate(TL1),TL_GetBeginTime(TL1),TL_GetEndVal(TL2)); } if turnPntArr[1][0] == "Lo" and valArr[1] < valArr[3] Then{ TL_SetEnd(TL2,TL_GetEndDate(TL2),TL_GetEndTime(TL2),TL_GetEndVal(TL2)-abs(valArr[1]-valArr[3])); TL_SetBegin(TL1,TL_GetBeginDate(TL1),TL_GetBeginTime(TL1),TL_GetEndVal(TL2)); } } Else TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } TL_SetSize(TL1,2); TL_SetColor(TL1,GREEN); plot1(TL1); plot2(TL2); plot3(TL3);
프로필 이미지
파파리리
2015-11-18
195
글번호 92516
지표
답변완료

지표 값의 숫치 표시

항상 신속하고 상세하게 답변 주셔서 많은 도움을 받고 있습니다. 감사합니다. 혹시 전략 차트 한쪽에 (상단 또는 하단 또는 차트의 중간 등) 어떤 지표의 값을 (예를 들면 시가, 중심가, 전일고가 등) 수치로 표시할 수 있을까요? 차트로 구현할 수 있지만 화면을 많이 차지 하여 가능하지 여부를 여쭈어 봅니다. (DDE 말구요!) 부탁드립니다.
프로필 이미지
스퍼트시커
2015-11-18
177
글번호 92511
지표
답변완료

부탁 드립니다.

항상 도움 주셔서 감사 드립니다. 번거럽게 해서 송구 스럽습니다. 대륙별 지표 관련 마지막 질문 입니다. 수식1,2,3을 합성하여 그림과 같이 한개의 지표로 가능 하겠는지요? 수식1) 아시아장 input : 시작일(20151117),시작시간(080000); input : 종료일(20151117),종료시간(153000); var : cond(false); if sdate == 시작일 and (stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간)) then Cond = true; if sdate == 종료일 and (time == 종료시간 or (time > 종료시간 and time[1] < 종료시간)) then Cond = false; if sdate > 종료일 then Cond = false; if cond == true then{ var1 = var1+(IFF(C>=O,V,0)); var2 = var2+(ifF(C<O,V,0)); VAR3 = VAR1 - VAR2; plot10(var3,"var3"); PlotBaseLine1(0,"0"); } 수식2) 유럽장 input : 시작일(20151117),시작시간(153000); input : 종료일(20151117),종료시간(213000); var : cond(false); if sdate == 시작일 and (stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간)) then Cond = true; if sdate == 종료일 and (time == 종료시간 or (time > 종료시간 and time[1] < 종료시간)) then Cond = false; if sdate > 종료일 then Cond = false; if cond == true then{ var1 = var1+(IFF(C>=O,V,0)); var2 = var2+(ifF(C<O,V,0)); VAR3 = VAR1 - VAR2; plot10(var3,"var3"); PlotBaseLine1(0,"0"); } 수식3)미국장 input : 시작일(20151116),시작시간(213000); input : 종료일(20151117),종료시간(070000); var : cond(false); if sdate == 시작일 and (stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간)) then Cond = true; if sdate == 종료일 and (time == 종료시간 or (time > 종료시간 and time[1] < 종료시간)) then Cond = false; if sdate > 종료일 then Cond = false; if cond == true then{ var1 = var1+(IFF(C>=O,V,0)); var2 = var2+(ifF(C<O,V,0)); VAR3 = VAR1 - VAR2; plot10(var3,"var3"); PlotBaseLine1(0,"0"); } 참고 수식) input: p1(14); input : 아시아시작(081000),아시아종료(153000); input : 유럽시작(153000),유럽종료(213000); input : 미국시작(213000),미국종료(070000); var : Tcond1(false),Tcond2(false),Tcond3(false); var : V1(0),V2(0),V3(0); Var1 =rsi(p1); If stime == 아시아시작 or (stime > 아시아시작 and stime[1] < 아시아시작) Then { Tcond1 = true; V1 = Var1; } If stime == 아시아종료 or (stime > 아시아종료 and stime[1] < 아시아종료) Then { Tcond1 = false; } If stime == 유럽시작 or (stime > 유럽시작 and stime[1] < 유럽시작) Then { Tcond2 = true; V2 = Var1; } If stime == 유럽종료 or (stime > 유럽종료 and stime[1] < 유럽종료) Then { Tcond2 = false; } If stime == 미국시작 or (stime > 미국시작 and stime[1] < 미국시작) Then { Tcond3 = true; V3 = Var1; } If stime == 미국종료 or (stime > 미국종료 and stime[1] < 미국종료) Then { Tcond3 = false; } plot1(var1,"updn");//속성에서 그래프종류는 선그래프 if Tcond1 == true Then plot2(V1,"아시아기준");//속성에서 그래프종류는 일자그래프 if Tcond2 == true Then plot3(V2,"유럽기준");//속성에서 그래프종류는 일자그래프 if Tcond3 == true Then plot4(V3,"미국기준");//속성에서 그래프종류는 일자그래프 plotbaseline2(50,"50");
프로필 이미지
yes
2015-11-18
239
글번호 92507
지표
답변완료

문의 드립니다.

input: p20(20); var: bdy(0), mid(0), hb(0); bdy=abs(c-0); mid=(h+l)/2; hb=highest(bdy,p20); if hb == bdy then var1=mid; plot1(var1[1], "중심값"); 반대 되는 수식을 문의 드립니다. 대칭 되는 수식입니다. 수고 하세요
프로필 이미지
와라바다
2015-11-18
164
글번호 92503
지표
답변완료

시스템성능보고서

복수의 매수(예 b1.......b10) 및 매도(예 S1......S10 )의 진입 조건이 설정된 시스템식을 일봉차트에 적용하는경우 실제 주문과 신호가 여러차례 발생 하고 그에 따라 성능보고서 상에도 동일하게 표시되고 있습니다. 그런데 다시 부팅을 하게 되면 기 발생 하였던 여러차례의 신호 발생내역이 대부분 삭제되고 한 두개 또는 서너개 정도의 신호발생 내역만 차트와 성능보고서 상에 나타납니다. 이때에 잔존하는 신호와 삭제되는 신호는 각기 어떠한 원인으로 달리 나타나는 것인가요? 기 발생한 모든 거래내역이 성능보고서와 차트상에서 재 부팅 후에도 삭제되지 아니하고 실제 발생한 내역과 동일하게 나타 날 수 있도록 하려면 시스템식의 작성을 어떻게 하여야 합니까?
프로필 이미지
너무조아
2015-11-18
167
글번호 92500
시스템

세발낚지 님에 의해서 삭제되었습니다.

프로필 이미지
세발낚지
2015-11-17
0
글번호 92499
지표
답변완료

글번호 45050 재질문

안녕하세요? 글번호 45050번 재질문합니다. 기존에 요청드렸던 함수에 매수신호와 매도신호를 바꾸고자 합니다. 그런데 답신 주신 함수를 돌려보면 전혀 다른 신호가 발생됩니다. 기존 시나리오에 매수를 매도로 매수청산을 매도청산으로 매도를 매수로 매도청산을 매수청산으로 바꾸고 싶은데 기술적으로 의도하지 않은 또 다른 함수가 생성되버리는 이유가 왜 일까요?
프로필 이미지
통큰베팅
2015-11-17
154
글번호 92498
시스템