커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다.

안녕하세요? 아래는 진입식 입니다. 청산후 같은 방향으로 재진입 금지식 부탁 드립니다. if marketposition() == 0 then{ If value1 == 1 and value2 == 1 and value3 == 1 and value4 == 1 and value5 == 1 and dis6[10]<100 and C>O and stime < 145000 Then buy("매수8",AtLimit,C-pricescale*2); } 감사합니다.
프로필 이미지
회원
2014-01-26
143
글번호 71877
시스템

혼자뜨는별 님에 의해서 삭제되었습니다.

프로필 이미지
혼자뜨는별
2014-01-25
26
글번호 71876
지표
답변완료

문의드립니다

수고하십니다 당일거래(10시 시작) 및 당일청산으로 하고 싶고 1. 매수진입은 볼린저 밴드폭이 얇을때 진입하지 말고 과거 10개봉의 밴드폭의 평균값보다 2배 커지면서 현재가가 상단을 터치하면서 ADX 가 상승일때 진입하고 매수 청산은 ADX 가 하락할때 청산하도록 식을 부탁드립니다. 위와 같이 식을 부탁드립니다.. 항상 수고에 감사합니다..^^
프로필 이미지
머니사이언스
2014-01-27
127
글번호 71875
시스템
답변완료

꺼꾸로 해보고싶은데요

안녕하세요 예스스탁 운영자님 테스트중 마이너스 -105 pt 네요 아래식 에서 모든 시스템 전체를 꺼꾸로 작성하려는데요 제가 실력이 안되어 부탁드립니다 수정은 어떻게하면 되나요? 감사드립니다 input : N(5); var : unit(0); var : entry(0),sumPL(0),Win(0),unitPL(0),cnt(0),count(0); var : entry1(0),sumPL1(0),Win1(0),unitPL1(0); var : sumdayentry(0),sumdayUnitPL(0),sumdaySumPL(0),sumdayWin(0); Array : dayentry[30](0),daysumPL[30](0),dayWin[30](0),dayunitPL[30](0); if ema(c,20) > ema(c,60) then unit=2 ; else if ema(c,50) > ema(c,20) and ema(C,20) >ema(c,60) then unit=3 ; else unit=1; if crossup(c,ema(c,20)) then buy("b1",atmarket,def,unit); if crossdown(c,ema(c,20)) then sell("s1",atmarket,def,unit); if marketposition == 1 then exitlong("b1x",atstop,Highest(H,barsSinceEntry+1)-atr(20)*2); if marketposition == -1 then exitshort("s1x",atstop,lowest(L,barsSinceEntry+1)+atr(20)*2); if date > date[1]+30 Then{ entry = 0; UnitPL = 0; SumPL = 0; Win = 0; } if BarsSinceExit(1) == 1 Then{ entry = entry+1; unitPL = unitPL + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]); sumPL = sumPL + PositionProfit(1); if PositionProfit(1) > 0 Then Win = win+1; } if date != date[1] Then{ entry1 = entry[1]; UnitPL1 = UnitPL[1]; SumPL1 = SumPL[1]; Win1 = Win[1]; } if date != date[1] Then{ dayentry[0] = 0; dayUnitPL[0] = 0; daySumPL[0] = 0; dayWin[0] = 0; for count = 1 to 29{ dayentry[count] = dayentry[count-1][1]; dayUnitPL[count] = dayUnitPL[count-1][1]; daySumPL[count] = daySumPL[count-1][1]; dayWin[count] = dayWin[count-1][1]; } } if MarketPosition != MarketPosition[1] and MarketPosition[1] != 0 Then{ dayentry[0] = dayentry[0]+1; dayunitPL[0] = dayunitPL[0] + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]); daysumPL[0] = daysumPL[0] + PositionProfit(1); if PositionProfit(1) > 0 Then dayWin[0] = daywin[0]+1; } sumdayentry = 0; sumdayUnitPL = 0; sumdaySumPL = 0; sumdayWin = 0; for cnt = 1 to N { sumdayentry = sumdayentry+dayentry[cnt]; sumdayUnitPL = sumdayUnitPL+dayUnitPl[cnt]; sumdaySumPL = sumdaySumPL+daysumPL[cnt]; sumdayWin = sumdayWin+Daywin[cnt]; } MessageLog("월거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",entry1,unitPL1,sumPL1,Win1,Win1/entry1*100); MessageLog("N일거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",sumdayentry,sumdayunitPL,sumdaysumPL,sumdayWin,sumdayWin/sumdayentry*100);
프로필 이미지
회원
2014-01-25
209
글번호 71874
시스템
답변완료

지표 에서 시스템으로

안녕하세요 운영자님 제가 실력이안되어 미안해요 지표식 에서 시스템식으로 서로 교차 식 부탁합니다 input : Len(10); var1 = (high+low)/2; var2 = highest(var1,Len); var3 = lowest(var1,Len); if var2-var3 == 0 Then var2 = var3+0.001; if CurrentBar >= 1 Then{ var4 = 0.5*2*((var1-var3)/(var2-var3)-0.5)+0.5*var4[1]; if var4 > 0.999 Then var4 = 0.999; if var4 < -0.999 Then var4 = -0.999; var5 = 0.5*log((1+var4)/(1-var4))+0.5*var5[1]; } plot1(var5,"fisher"); plot2(var5[1],"signal");
프로필 이미지
회원
2014-01-25
163
글번호 71873
시스템
답변완료

검색식 부탁합니다

DMI지표. DMI가 DIPLUS를 상향돌파. ADX지표. ADX > -DI. +DI > -DI. +DI > ADX > -DI. ADX우상향. Chaikin,s Oscillator 이 0선이상. 9일간 평균 거래량이 15만주이상. 9일간 평균거래대금이 15억원이상. 오늘의 봉이 양봉.
프로필 이미지
ho2350
2014-01-25
141
글번호 71872
종목검색
답변완료

질문있습니다.

atstp은 지정된 가격이하이면 매도하라는 의미입니다. a가 100이라면 b가 2라면 100터치시 진입하게 되고 102에 청산합니다. 이때 102라는 가격은 100보다 크므로 바로 또 매도진입하게 됩니다. if L > a then sell ("매도1",ATSTOP,a); if H < a then sell ("매도2",ATSTOP,a); setStopProfitTarget (b,Pointstop); 와 같이 작성하여 진입은 가격이 a라는 가격이상에 있다가 밑으로 터치하거나 가격이 a보다 아래에 있다가 위로 터치하는 경우만 발생하게 작성하셔야 합니다. 아래로 터치할때만 염두에 두시면 매도2는 삭제하시면 됩니다. ---------------------------------------- 위와 같은 글을 발견하였는데요, 시초가+0.5과 시초가-0.5 이렇게 두개를 기준으로 잡아서 그 사이에 있을 때는 샀다 팔았다 하면서 시초가에서 익절하고 그 사이를 벗어나서 위로가면 매수진입 아래로 가면 매도진입하는 하나의 식을 만들고 싶어서 아래와 만들어봤는데 잘 안되는군요. 수정 좀 부틱드립니다. input : b(0); if L > DayOpen+0.5 then sell ("매도1",ATSTOP,DayOpen+0.5); if H < DayOpen+0.5 then sell ("매도2",ATSTOP,DayOpen+0.5); if H > dayOpen - 0.5 then Buy ("매수1",ATSTOP,dayOpen - 0.5); if L < dayOpen - 0.5 then Buy ("매수2",ATSTOP,dayOpen - 0.5); if MarketPosition ==1 Then { exitlong("매수익절",Atlimit,DayOpen,"매수2",1,1); } if MarketPosition ==-1 Then { exitshort("매도익절",Atlimit, DayOpen,"매도1",1,1); } SetStopProfitTarget(b,Pointstop); SetStopEndofDay(150400); 친절한 답변에 미리 감사드립니다.
프로필 이미지
회원
2014-01-26
122
글번호 71871
시스템

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2014-01-25
12
글번호 71870
지표
답변완료

문의드립니다

아래식에서 추가하고 싶은부분이있어서 문의드립니다 if L > highest(H,5)[1] Then 거래량을 알고 싶은데요 highest(H,5)[1] 에서부터 현재봉 까지 거래수량을 알고 싶습니다
프로필 이미지
처음처럼22
2014-01-25
128
글번호 71869
지표