커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

수고많으십니다^^ 검색식 문의입니다 ===================================[지표] input : 기간(80); var : aa(0); aa = ema(c,기간); if aa > aa[1] Then { var1 = aa; plot1(var1,"상승",Red); } if aa < aa[1] Then { var2 = aa; plot2(var2,"하락",GRAY); } ================================== 위지표로 종목검색을 하고싶습니다 (n)봉 이상 이평선이 하락 추세 유지후 상승반전[이평선]하는 봉을 검색하고자합니다 그림파일첨부합니다 고맙습니다
프로필 이미지
비오
2019-11-07
216
글번호 133490
지표
답변완료

이평선이 특정 라인을 뚫고 지나가는 종목 검색

안녕하세요. 이전에 64492글에 이평선이 특정 선을 뚫고 지나가면 그 종목을검색해주는 코딩을 부탁하였는데요, 다름이아니라 (var1 > 0 and n일전종가_20 < var1)) 이 부분들의 해석이 안되어서그런데 주석으로 아래의 코딩 설명좀 부탁해도 될까요? Input : period1(20); var : maLine(0), n일전종가_20(0), n일전종가_10(0),n일전종가10(0), n일전종가20(0), n일전종가30(0); maLine = ma(c,period1); n일전종가_20 = c[1] - c[1]/20; # 어제 종가의 -20% n일전종가_10 = c[1] - c[1]/10; # 어제 종가의 -10% n일전종가10 = c[1] + c[1]/10; # 어제 종가의 +10% n일전종가20 = c[1] + c[1]/20; # 어제 종가의 +20% n일전종가30 = c[1] + c[1]/30; # 어제 종가의 +30% var1 = 0; if n일전종가_20 > maLine and (var1 == 0 or (var1 > 0 and n일전종가_20 < var1)) Then { var1 = n일전종가_20; } if n일전종가_10 > maLine and (var1 == 0 or (var1 > 0 and n일전종가_10 < var1)) Then { var1 = n일전종가_10; } if n일전종가10 > maLine and (var1 == 0 or (var1 > 0 and n일전종가10 < var1)) Then { var1 = n일전종가10; } if n일전종가20 > maLine and (var1 == 0 or (var1 > 0 and n일전종가20 < var1)) Then { var1 = n일전종가20; } if n일전종가30 > maLine and (var1 == 0 or (var1 > 0 and n일전종가30 < var1)) Then { var1 = n일전종가30; } if crossup(C,var1) Then find(1);
프로필 이미지
퀀트드래곤
2019-11-07
170
글번호 133485
종목검색
답변완료

수식 요청 드립니다.

* 전일 데이타 확인 해보니 데이타 차이가 있어 안되었습니다. * 요청 사항1 : 아래 수식에서 매매로직 요청 좀 드립니다. 무포지션 상태에서 매수 : VAR1 이 VAR2 를 3번째 상향돌파 하면 매수 매도 : VAR1 이 VAR2 를 3번째 하향돌파 하면 매도 입니다. →수시로 반복되도 &#44346;찮습니다. var : TL1(0),TL2(0),tx1(0),tx2(0); VAR1 = MA(C,2) ; VAR2 = MA(C,5) ; Plot1(VAR1,"1",RED,DEF,1) ; Plot2(VAR2,"1",BLUE,DEF,1) ; * 요청 사항2 : 아래 수식 에서 최대수익, 최대손실 표현좀 부탁 드립니다. var : TL(0),TX(0); if MarketPosition != 0 Then { if MarketPosition != MarketPosition[1] Then { TL = TL_New(sdate[1],stime[1],EntryPrice,sdate,stime,EntryPrice); tx = Text_New(sdate,stime,EntryPrice,NumToStr(PositionProfit(0),2)); } Else { TL_SetEnd(TL,sdate,stime,EntryPrice); Text_SetString(tx,NumToStr(PositionProfit(0),2)); Text_SetLocation(tx,sdate,stime,EntryPrice); } TL_SetSize(TL,1); if PositionProfit(0) > 0 Then { TL_SetColor(TL,RED); text_SetColor(Tx,RED); } else if PositionProfit(0) < 0 Then { TL_SetColor(TL,BLUE); text_SetColor(Tx,BLUE); } else { TL_SetColor(TL,BLACK); text_SetColor(Tx,BLACK); } } * 매번 많은 도움에 고맙습니다.
프로필 이미지
요타
2019-11-07
192
글번호 133484
시스템
답변완료

도움을 부탁드리겠습니다. 그림첨부

늘 도와주셔서 감사드립니다. 자력으로 해보려고 했는데...하아..아직 먼거 같습니다.. 한번만 더 도와주세요.. 수식은 전번에 도움을 얻은 부분입니다. 타주기로 , 몸통이 긴 양봉을 찾아서, 그 중심가격을 표시하고 몸통이 더 긴 양봉이 나오기 전에는 중심가격이 계속 표시되게 하려는 의도였습니다. 1. <최대몸통길이를 가진 양봉의 중심가격>을 첨부한 그림 파일에서는 24900원 정도가 직선으로 계속 표시되게 하고 싶었습니다. 이거보다 더 긴 몸통길이를 가진 양봉이 나오기 전까지는요.. 근데 분홍색값을 보시면 계속 증감이 있고 값도 몸통의 중심가라고 하기에는 표시된 값이 너무 낮습니다.. 며칠째 고민했는데 뭐가 문제인지 도저히 못찾겠습니다. 2. 타주기를 현재 시간으로 나눈 나머지를 구할때요, // 요부분 의미를 잘 모르겠습니다. 날짜가 바뀌는지점에서는 sTime 값이 0이 되는 것인가요 1440이 되는 것인가요 else 의미도요...대충 작동하는 방향은 느낌이 오는데 ..제대로 알고 싶습니다.. 설명좀 부탁드려도 될까요.. input : ntime(15),P(5); var : S1(0),D1(0),TM(0),TF(0),j(0),HR(0),HP(0),HM(0); Array : MinOpen[100](0),MinHigh[100](0),MinLow[100](0),MinClose[100](0), 몸통길이[100](0),몸통중심가격[100](0) ; var1 = ma(C,P); if bDate!= bDate[1] Then { S1 = TimeToMinutes(sTime); D1 = sDate; } if D1 > 0 then{ if sDate == D1 Then TM = TimeToMinutes(sTime)-S1; // 요부분 의미를 잘 모르겠습니다. Else // 요부분 의미를 잘 모르겠습니다. TM = TimeToMinutes(sTime)+1440-S1; // 요부분 의미를 잘 모르겠습니다. // TF = TimeToMinutes(stime)%ntime; // 요기는 TM%ntime이 되야 하는거죠?? TF = TM%ntime; // 이렇게 바꿔봤습니다.. if bDate != bDate[1] or (bDate == bdate[1] and TF < TF[1])Then { For j = 98 DownTo 0 { MinOpen[j+1] = MinOpen[j]; MinHigh[j+1] = MinHigh[j]; MinLow[j+1] = MinLow[j]; MinClose[j+1] = MinClose[j]; 몸통길이[j+1] = 몸통길이[j]; 몸통중심가격[j+1] = 몸통중심가격[j]; } MinOpen[0] = O; MinHigh[0] = H; MinLow[0] = L; } If MinHigh[0] > 0 and MinHigh[0] < H Then MinHigh[0] = H ; If MinLow[0] > 0 and MinLow[0] < L Then MinLow[0] = L ; MinClose[0] = C ; 몸통길이[0] = MinClose[0]-MinOpen[0] ; 몸통중심가격[0] = (MinClose[0]+MinOpen[0])/2; HR = 몸통길이[0]; HP = 몸통중심가격[0]; HM = var1; For j = 1 to 60 { if 몸통길이[j] > HR Then { HR = 몸통길이[j]; HP = 몸통중심가격[j]; HM = var1[j]; } } plot1(HR,"최대몸통길이"); plot2(HP,"최대몸통중심가"); plot3(HM,"최대몸통이평"); }
프로필 이미지
지스카드
2019-11-06
276
글번호 133483
지표
답변완료

부탁드립니다.

매번 감사드립니다. 수식 수정좀 부탁드립니다. 아래식은 지정한 날짜,시간 이후 tt==0 가 되면 매매가 정지되는 수식입니다. 예) 진입(B1■,B1) --> 청산(심볼0) 이면 매매 정지 이 수식을 진입이 B1■, B2■, S1■, S2■인 경우 BB(-40)보다 크면 (청산심볼-40) 이면 매매가 정지하는 식으로 수정하고 싶습니다. BB(-100): 진입이 B1■, B2■, S1■, S2■인 경우 BB(-100)보다 크면(청산심볼-100) 이면 매매 정지 예) BB(-40) 진입(B1■) --> 청산(심볼-40) 이면 매매 정지 진입(B1) --> 청산(심볼-40) 이면 매매 지속 BB(-100) 진입(B1■) --> 청산(심볼-100) 이면 매매 정지 진입(B1) --> 청산(심볼-100) 이면 매매 지속 input : 시작날짜(20191001), 시작시간(170000); Input: AA(-120), BB(-40); Input : 손절(10),익절(10),익절하락(3); input : P1(30), P2(120), p3(240); input : StartTime(090000),EndTime(050000); var : tx(0),X(false),Tcond(false),tt(0); var : Tcond1(false); var1 = ma(C, P1); var2 = ma(C, P2); var3 = ma(C, P3); ######## 진입제한 if sdate >= 시작날짜 and stime >= 시작시간 Then Tcond1 = true; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then { Tcond = true; } if (sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then { Tcond = false; } ## 진입 if Tcond1 == true and Tcond == true and X == false then { if Tcond == true and marketposition == 0 and crossup(var1,var2) Then { if Condition1 == true and tt <= BB then buy("B1■"); Else buy("B1"); } if Tcond == true and marketposition == 0 and crossdown(var1,var2) Then { if Condition1 == true and tt <= BB then sell("S1■"); Else sell("S1"); } if Tcond == true and marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then { if Condition1 == true and tt <= BB then buy("B2■"); Else buy("B2"); } if Tcond == true and marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then { if Condition1 == true and tt <= BB then sell("S2■"); Else sell("S2"); } ## 청산 if MarketPosition == 1 then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if MarketPosition == -1 Then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if ((sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then { if MarketPosition == 1 Then { ExitLong("BE6"); } if MarketPosition == -1 Then { ExitShort("SE6"); } } if TotalTrades > TotalTrades[1] then { if IsExitName("StopLoss",1) == true then { tt = tt - 40; if tt >= 0 Then { tt = 0; Condition1 = false; } if tt > AA then { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); } else { Condition1 = true; tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★"); Text_SetSize(tx,20); } } if IsExitName("StopTrailing",1) == true then { tt = tt + 30; if tt >= 0 Then { tt = 0; X = true; Condition1 = false; } if Condition1 == true and tt >= BB then Condition1 = false; tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); Text_Setstyle(tx,2,2); //Text_SetSize 폰트 사이즈 //Text_Setstyle 좌우상하 정렬 } } }
프로필 이미지
라떼처럼
2019-11-06
195
글번호 133481
시스템

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

프로필 이미지
파워
2019-11-06
17
글번호 133480
종목검색
답변완료

수식 문의

안녕하세요. 아래 기존의 조건식에 일부 수식을 변경하고자 문의드립니다. var1 = (highest(H,5)+lowest(L,5))/2; var2 = (highest(H,10)+lowest(L,10))/2; var3 = (highest(H,20)+lowest(L,20))/2; if C >= 5000 and C <= 30000 And countif(C > O and H >= O*1.05,15) >= 1 and ma(v,5)[1] >= 100000 and (var1 == var2 or var2 == var3 or var1 == var3) Then find(1); 변경 사항 1. ((var1 == var2) AND (주가가 var1 보다 크고 주가가 var1 값에 5% 이내 접근) AND (5% 이내 접근이 당일은 1번째 혹은 2번째 접근 and 일봉상 7봉이내에서 1번째, 2번 째, 3번째 접근인 경우만)) 2. ((var2 == var3) AND (주가가 var2 보다 크고 주가가 var2 값에 5% 이내 접근) AND (5% 이내 접근이 당일은 1번째 혹은 2번째 접근 and 일봉상 7봉이내에서 1번째, 2번 째, 3번째 접근인 경우만)) 3. ((var3 == var1) AND (주가가 var3 보다 크고 주가가 var3 값에 5% 이내 접근) AND (5% 이내 접근이 당일은 1번째 혹은 2번째 접근 and 일봉상 7봉이내에서 1번째, 2번 째, 3번째 접근인 경우만)) 위 기존의 수식에서 마지막 부분 (var1 == var2 or var2 == var3 or var1 == var3) 대신 변경 사항 (1 OR 2 OR 3)으로 바꾸고 싶습니다. 첨언 : 1. 당일 5%이내 접근이 여러 번 있을 수 있으므로 3번째 이후의 접근은 제외. 2. "일봉상 7봉이내에서 1번째, 2번째, 3번째 접근인 경우"란 일봉상 7봉 이내의 누적 접근이 3회이하인 경우만 검색하고 4회 이상은 제외. 3. 수식화가 불가능한 것이 있으면 제외하고 가능한 것만 해주세요 ^^ 부탁드립니다. 감사합니다.
프로필 이미지
목우도
2019-11-07
166
글번호 133479
검색
답변완료

문의드립니다

안녕하세요. 몇개 문의드려요 100틱 200틱 기준. 1) 100틱 차트에서 a > b 일때 매수인데, 이 조건이 만족한 봉에서 만약 200틱 캔들이 완성이면 바로 매수고, 200틱 캔들이 아직 진행중이면 100틱에서 다음캔들이 도지 또는 양봉이면 매수하는 수식 100틱 500틱 기준. 2) 100틱 차트에서 a > b 일때 매수인데, 이 조건이 만족한 봉에서 만약 500틱 캔들이 아직 진행중이면 500틱 봉이 완성됐을때 100틱에서 조건이 만족하면 진입하는 수식 가능할까요? 3) 지표문의. 100틱 캔들 2개를 묶어서 1개의 박스로 표현하는 지표를 본것같은데 가능하다면 부탁드릴게요. 눈에 잘보이게 부탁드려요 4) 시스템수식 추가로 하나 더 여쭤볼게요 일목에서 기준선 - 전환선, 차이가 7틱 이하는 어떻게 표현하나요? 혹시 설명 달아주시면 정말 감사하겠습니다 즐거운 하루 보내세요. 수고하세요~
프로필 이미지
국산3
2019-11-07
204
글번호 133478
시스템
답변완료

검색식 좀 부탁드립니다.

안녕하세요? 작성해봐도 잘 안되기에 부탁 좀 드립니다. 일목균형표 지표중에 선행1과 선행2로 종목검색하고 싶은데... 조건이 앞으로 25일 이동한 선행1,선행2가 아니라 제자리(0봉) 기준으로 입니다. 그 상태에서 조건1) 선행1 돌파 조건2) 선행1>선행2 일때 선행1 돌파 두가지 입니다..검색식을 부탁드립니다. 편집창가서 -25로 입력해서 구름대를 제자리에 놓고 보는데 그 방법 말고 딴방법은 없나요? 변수를 조정한다던지... 구름대 당기는 방법도 좀 알려 주시면 감사하겠습니다. 그리고 좀 자세히 풀어서 알려 주시면 차후에 응용도 해보고 싶습니다. 참고로 value1 = highest(H,9)+lowest(L,9); value2 = highest(H,26)+lowest(L,26); value3 = highest(H,52)+lowest(L,52); If CrossUp(C,max((value1/2+value2/2)/2, value3/2)) Then { if C==C[1] Then value4 = 0.001; Else value4 = (C-C[1])/C[1]*100; } Else value4 = 0; Find(value4); 구름대 상향돌파 검색식을 복사해서 응용해 봤는데 뭐가 잘못 되었나 돌파 시점이 안나오고 그냥 구름대 위에 있는건 다 나오더라구여...어디가 잘못된 걸까요? 도움 주시면 감사하겠습니다.
프로필 이미지
sinic
2019-11-06
240
글번호 133477
종목검색