커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

검토 부탁드립니다.

진입 조건을 봐주십시요. -시초가가 전일 종가대비 -1~+5%이하이면, 피봇 기준선 +3틱에서 매수가 되어야 하는데... 시초가가 +1%인데도, 전일 종가를 하향할 때 매수가 되어버립니다. ========================= <진입조건> -진입시간 09:00~09:30 -진입 1일 1회로 제한(하루에 2번 진입 안되게) -주가는 시초가 대비 +4%이상 상승하지 않아야 함 -시초가가 전일 종가대비 -1%~+5%이하이면, "피봇기준선 +3틱"이하로 하락시, 이후 첫봉에 진입 -시초가가 전일 종가대비 +5%초과이면, 전일 종가보다 하락시, 이후 첫봉에 진입 var : cnt(0),count(0); Var : Pivot(0),R1(0),R2(0),S1(0),S2(0); var : xVol1(0),xvol2(0); Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3; R1 = 2*Pivot-DayLow(1); R2 = Pivot+DayHigh(1)-DayLow(1); S1 = 2*Pivot-DayHigh(1); S2 = Pivot-DayHigh(1)+DayLow(1); count = 0; for cnt = 0 to 20{ if EntryDate(cnt) == sdate Then count = count+1; } if stime >= 090000 and stime < 093000 and ExitDate(1) != sdate and dayhigh < dayopen*1.04 Then{ if dayopen >= DayClose(1)*0.99 and dayopen < DayClose(1)*1.05 Then buy("b1",AtStop,Pivot+PriceScale*3); if dayopen >= DayClose(1)*1.05 Then buy("b2",AtStop,DayClose(1)); } if MarketPosition == 1 Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then{ xvol1 = int(int(CurrentContracts*(1/3))/10)*10; xvol2 = int(int(CurrentContracts*(1/2))/10)*10; } Else{ xvol1 = int(CurrentContracts*(1/3)); xvol2 = int(CurrentContracts*(1/2)); } exitlong("bp1",atlimit,EntryPrice*1.06,"",Xvol1,1); exitlong("bp2",atlimit,EntryPrice*1.07,"",Xvol2,1); exitlong("bp3",atlimit,EntryPrice*1.08); if Highest(H,BarsSinceEntry) >= EntryPrice*1.05 Then exitlong("btr",AtStop,highest(H,BarsSinceEntry)-(highestSetStopEndofday(140000); (H,BarsSinceEntry)-EntryPrice)*0.3); exitlong("bl",AtStop,EntryPrice*0.955); if stime == 100000 and DayVolume >= DayVolume(1)*0.8 Then ExitLong("bx"); } SetStopEndofday(140000);
프로필 이미지
쌀사비팔
2015-01-18
158
글번호 82353
시스템
답변완료

문의 드립니다`~

연결선물5분봉 에서 시초 10분후 1.선물은 외인이 기관과 개인보다 매수금액이 크고, 현물은 외인이 기관과 개인보다 매수금액이 크고, 콜옵션은 기관이 외인이나 개인보다 매수금액이 크면 매수신호발생 -기관 콜옵션 매수금액이 개인보다 작아지면 청산 2.선물은 외인이 기관과 개인보다 매도금액이 크고, 현물은 외인이 기관과 개인보다 매도금액이크고 풋옵션은 기관이 외인과 개인보매 매수금액이 크면 매도신호발생 -기관 풋옵션 매수금액이 개인보다작아지면 청산 ---가능할런지요?
프로필 이미지
회원
2015-01-18
159
글번호 82352
시스템
답변완료

Begin~End 구문 사용법 문의

문장 중에 Begin, end 로 일부구간을 제한하고 싶은데요 아래 문장에서 Exit long이 제대로 작동하지 않는 이유를 알고 싶습니다. 문장이 틀린 곳은 없는지요 If crossup(RSI(14),30) and MA(c,200) < C then Begin; Buy (); If entryprice > C then Exitlong(); End; If crossup(RSI(14),30) and MA(c,200) > C and highest(c,1000)*0.8 < C then Buy();
프로필 이미지
회원
2015-01-18
181
글번호 82351
시스템
답변완료

지표식수정부탁드립니다.

안녕하세요 수정부탁드립니다. 상승시 적색 하락시 청색 으로 수정부탁합니다. #==========================================# # 지표명 : 지그재그파동(변동률) # 작성자 : 수식지왕 # 블로그 : http://yahoosir.blog.me #==========================================# Input:chngRate(1); Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),TLL2(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); // 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가 For j = 0 To 9 { barArr[j] = barArr[j] + 1; } // 고점조건 = 현재 봉의 고가가 저점대비 변동률만큼 더한 값보다 위로 올라갔을 때; // 저점조건 = 현재 봉의 저가가 고점대비 변동률만큼 뺀 값보다 밑으로 빠졌을 때; // if 고점조건 만족하면 고점 갱신; // if 저점조건 만족하면 저점 갱신; Condition1 = Min(valArr[1],valArr[2]) * (1 + (chngRate/100)) < H and lastHiVal < H; Condition2 = Max(valArr[1],valArr[2]) * (1 - (chngRate/100)) > L and (lastLoVal > L || lastLoVal == 0); If Condition1 Then { lastHiVal = H; lastLoVal = 0; } If Condition2 Then { lastLoVal = L; lastHiVal = 0; } // 전환점구분 null값으로 초기화; turnPntBit = ""; // if 고점조건, 저점조건 동시 만족시 then // if 이전 고점,저점 범위를 모두 벗어났을 때 // 전환점구분 = 고저점; // else if 이전 고점을 갱신했다면 전환점구분 = 고점; // else if 이전 저점을 갱신했다면 전환점구분 = 저점; // else if 고점조건 만족하면 전환점구분 = 고점; // else if 저점조건 만족하면 전환점구분 = 저점; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; // if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과 If turnPntBit <> "" Then { // if 전환점구분이 고저점이면 then // 이전 파동은 연장시키고 아래에서 새로이 파동선을 추가토록 한다. If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; 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) or (turnPntBit == "Lo" and valArr[1] > L))) Then { // 값 배열에는 고점 또는 저점을 대입; // 봉개수 배열에는 0값 대입; // 전환점 배열에 전환점구분값을 대입; valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; // if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고; // else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장; 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,4); TL_SetColor(TL1,GREEN);
프로필 이미지
외국인
2015-01-18
207
글번호 82350
지표
답변완료

이렇게 만들면 신호가 제대로들어가나요

if value1 > value2 and value2 > value3 Then { con1=1 Else con1=0 } If value4 > 25 and value4 > value5 Then { con2=1 Else con2=0 } If con1+con2 == 2 Then { buy(); } If con1+con2 <= 1 Then { exitlong(); } 조건을 만족시에 con1 con2에 1값을 부여하고 아닐시 0을 부여해서 2개이상 조건만족시 바이포지션을 만약 만족못할시 포지션 청산을 하거나 무포로 가게하려고합니다. 조건이 되게 많아서 저런식으로 짜려고하는데 맞게하고잇나요?
프로필 이미지
고망고망
2015-01-18
175
글번호 82349
시스템

.

/.
프로필 이미지
hjkang철인
2015-01-18
117
글번호 82348
시스템
답변완료

문의합니다

1분봉에서 차트의 봉이 30개의 저가와 고가를 표시하고 이 저가와 고가 사이의 50%를 표시하고 저가가 고가보다 먼저 형성이 되었으면 150%와 200%를 표시하고 고가가 저가보다 먼저 형성이 되었으면 -150%(저가 밑으로 150%)와 -200%(저가 밑으로 200%)를 표시한다. 부탁합니다.
프로필 이미지
내가간다
2015-01-17
146
글번호 82347
지표
답변완료

문의드립니다.

배열을 보고 있는데 이해안가는 부분이 있습니다. 첨부파일에 있는 수식에서 Frame < Frame[1] 과 Hval[count-1][1]; 에서 뒤의 [1]은 왜 붙이는 건가요? Frame은 배열이아니고 Hval은 왜 뒤에 하나 더 붙는거죠?
프로필 이미지
카크산
2015-01-17
169
글번호 82346
지표
답변완료

문의드립니다.

항상 감사드립니다. 꾸벅(--)(__) 당일 선물 복합차트에 다음선들을 나타나게 하고 싶습니다. 1. 전일 주간선물 시.고.저.종가선 2. 전일 야간선물 시.고.저.종가선
프로필 이미지
예스매니아
2015-01-17
150
글번호 82345
지표