커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

함수 추가 부탁드립니다.

안녕하세요. 아래 수식을 14:00 이전에는 하루에 한방향으로는 한번만 진입할 수 있도록 함수 추가 부탁드립니다. (즉, 하루에 매수로 1번만 진입 청산, 매도로 1번만 진입 청산 가능) 감사합니다. input : p1(80), p2(20), p3(70), stoRange(20), chnnel(2); var : stoK(0), stoD(0), osill(0); stoK = StochasticsK(p1,p2); stoD = StochasticsD(p1,p2,p3); osill = stoK-stoD; if CrossUp(stoK, stoD) Then buy(); if CrossDown(stoK, stoD) Then sell(); if stoK > stoD && osill < stoRange && accumN(iff(osill>osill[2],1,1),3)== 3 Then buy(); if stoK < stoD && osill > -stoRange && accumN(iff(osill<osill[2],1,1),3)== 3 Then sell(); if stoK > stoD && C > dayOpen(1) + Chnnel Then buy(); if stoK < stoD && C < dayOpen(1) - Chnnel Then sell();
프로필 이미지
바둑이
2019-07-04
274
글번호 130038
사용자 함수
답변완료

문의 드립니다.

안녕하세요 수식 문의 드립니다. 1) 매수 : A 조건 만족후 당일 중 B 조건 만족이면 매수 매도 : C 조건 만족후 당일 중 D 조건 만족이면 매도 2) 매수 : A 조건 만족후 100봉 이내 B 조건 만족이면 매수 매도 : C 조건 만족후 100봉 이내 D 조건 만족이면 매도 3) 매수 : A 조건 만족후 3일 이후부터 B 조건 만족이면 매수 매도 : C 조건 만족후 3일 이후부터 D 조건 만족이면 매도 4) 매수 : A 조건 만족후 200봉 이후부터 B 조건 만족이면 매수 매도 : C 조건 만족후 200봉 이후부터 D 조건 만족이면 매도 수고하십시요.
프로필 이미지
초보자
2019-07-04
292
글번호 130037
시스템
답변완료

수식 변환 부탁 드립니다.

안녕하세요 ? 수고가 많으십니다. 기존 매매전략식을 예스트레이더 언어로 변환 부탁 드립니다. (전제사항) 매매시간 설정 1. 09:00 ~ 15:20까지만 매매, 진입이 있다면 무조건 강제청산 2. 09:00 ~ 익일 05:00까지매매하고 진입이 있다면 무조건 강제청산 R=highest(H,X) , R = Highest(H,기간) R = 20 일간 고가중 최고값 , 기간(X)= 20.(수치 가변 적용) S=lowest(L,X) , S = Lowest(L,기간) S = 20 일간 저가중 최저값 , 기간(X)= 20 . E = avg(c,MA) MA=5일 (이동평균) (수치 가변 적용) 매수진입, 매도청산 조건. crossUp( E,R(1)) MA=5일 , MA(이평5일)가 R 의 이전 종가를 상향돌파 하는 경우. 매도진입, 매수청산 조건. crossDown(E,S(1)) MA=5일 , MA(이평5일)가 S 의 이전 종가를 하향돌파 하는 경우. 익절 조건. 1. 진입가의 + 0.2% 시 익절 진입가가 +0.15% 도달후 10% 하락시 매도 2, 진입후 15틱 도달시 무조건 손익절 두가지 버전으로 부탁 드립니다
프로필 이미지
vlfaud3
2019-07-04
273
글번호 130036
시스템
답변완료

변동율, 최고변동율 수식 및 종목검색

1. 변동율 2 20캔들 동안 최고 변동율 3 최고변동율 돌파 종목검색식 부탁드립니다
프로필 이미지
팔보채
2019-07-04
281
글번호 130035
지표
답변완료

수식 여쭤봅니다~

안녕하세요~ 수식에서 2차매수가 일어나지 않아 다시 문의 드립니다. 개별주식 1분봉 차트에서 적용하는 수식입니다. 1차매수는 오늘 시가에서 매수 2차매수는 전일종가 대비 -2% 에서 매수 입니다. 1분봉에서 적용중인데 오늘시가 매수는 잘일어나는데 1차매수후 하락하여 전일 일봉 종가 대비 -2% 도달시에 2차매수가 일어나지 않습니다. 감사합니다~ ps .피라미딩 - 다른신호만 허용으로 체크를 안해서 그럴까요? ---------------------------------- input : 금액(300000),매수1(60),매수2(40); var : trade(false); if bdate != date[1] Then trade = true; if MarketPosition == 0 and TotalTrades > TotalTrades[1] Then trade = false; if NextBarSdate != sdate and NextBarOpen >= c and NextBarOpen <= C*1.04 Then { buy("b1",AtMarket,DEF,Floor((금액*(매수1/100))/NextBarOpen)); buy("b2",Atlimit,NextBarOpen*0.98,Floor((금액*(매수2/100))/(NextBarOpen*0.98))); } if MarketPosition == 1 then { if trade == true and MaxEntries == 1 and stime >= 90000 and stime < 93000 and dayopen(0) >= DayClose(1) and dayopen(0) <= DayClose(1)*1.04 Then buy("b2.",Atlimit,dayopen(0)*0.98,Floor((금액*(매수2/100))/(dayopen(0)*0.98))); if countif(LatestExitName(0) == "bp1",BarsSinceEntry) < 1 Then ExitLong("bp1",atlimit,AvgEntryPrice*1.03,"",Floor(CurrentContracts*0.7),1); if countif(LatestExitName(0) == "bp1",BarsSinceEntry) < 1 Then ExitLong("bp2",atlimit,AvgEntryPrice*1.06,"",Floor(CurrentContracts*0.7),1); ExitLong("bp3",atlimit,AvgEntryPrice*1.09); if LatestExitName(0) == "bp1" or LatestExitName(0) == "bp2" then { ExitLong("bx",AtStop,highest(H,BarsSinceEntry)*0.98); } if countif(LatestExitName(0) == "bl1",BarsSinceEntry) < 1 Then ExitLong("bl1",AtStop,AvgEntryPrice*0.95,"",floor(CurrentContracts*0.5),1); ExitLong("bl2",AtStop,AvgEntryPrice*0.93); } SetStopEndofday(151800);
프로필 이미지
부자청년28
2019-07-04
276
글번호 130026
시스템
답변완료

문의

ATM연결-2단계 콜옵션차트를 이용합니다. 수식 내용에 전일 오픈가격을 참조하는 내용이 있습니다. 6월13일 진입시 참고한 전일 오픈가격은 차트상 12일 오픈가격 5.80을 참고하는 것인지요? ************************************************************************************ input : 목표가(4.65),거래횟수(1); var : Entry(0),T1(0); if Bdate != Bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 거래횟수 and DayOpen(1) > 목표가 and C < O then { if NextBarOpen > 목표가 Then sell("",AtStop,목표가); Else sell("",atlimit,목표가); }
프로필 이미지
목마와숙녀
2019-07-04
305
글번호 130024
시스템
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1 .기타 이 수식이요. 앞의 질문 2번 수식인데요. 본 수식은 해당 레인지 돌파하면 그 방향 진입하는 거고 수정 요청 드린 건 이전 진입이 수익이면 앞선 진입과 반대 방향 진입, 이전 진입이 손실이면 수식대로 진입하는 내용인데 실행해보니 그냥 이전이 수익이더라도 그 방향으로 가고 아니어도 그 방향으로 가는 것 같습니다. Inputs: InitMin(90); Variables: SessStartMin(0), TradeTime(0), SetHigh(0), SetLow(0), LongFlag(False), ShortFlag(False); #conversion of hour-based time to minute-based time SessStartMin = TimeToMinutes(90000); TradeTime = TimeToMinutes(sTime); input : 진입횟수(1),손절률(1),익절률(1); var : count(0),T1(0); input : 진입시간(90000),제한시간(150000),청산시간(153400),특정수익(3); var : Tcond(false),pl(0),ps(0); SetStopLoss(손절률,PercentStop); SetStopProfittarget(익절률,PercentStop); if (sdate != sdate[1] and stime >= 청산시간) or (sdate == sdate[1] and stime >= 청산시간 and stime[1] < 청산시간) then { Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) then { Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 제한시간) or (sdate == sdate[1] and stime >= 제한시간 and stime[1] < 제한시간) then { Tcond = false; } if MarketPosition == 0 Then count = TotalTrades-T1; Else count = TotalTrades-T1+1; if Count < 진입횟수 and Tcond == true then { #Setup - establishment of the initial range If TradeTime <= SessStartMin + InitMin Then { If Date <> Date[1] Then { SetHigh = High; SetLow = Low; LongFlag = True; ShortFlag = True; } Else { If High > SetHigh Then SetHigh = High; If Low < SetLow Then SetLow = Low; } } Else { #Entries once the initial period has ended if MarketPosition == 0 Then { pl = PositionProfit(1); ps = MarketPosition(1); } Else { pl = PositionProfit(0); ps = MarketPosition(0); } If LongFlag AND CrossUp( Close , SetHigh) Then { if pl <= 0 or (PL > 0 and ps != 1) Then Buy(); } If ShortFlag AND CrossDown(Close , SetLow) Then { if pl <= 0 or (pl > 0 and ps != -1) then Sell(); } } } #Long Protective Exit If MarketPosition == 1 Then { LongFlag = False; ExitLong("",atstop,SetLow ); ExitLong("BS",atlimit,EntryPrice+특정수익 ); } #Short Protective Exit If MarketPosition == -1 Then { ShortFlag = False; ExitShort("",atstop,SetHigh ); ExitShort("SB",atlimit,EntryPrice-특정수익 ); } input: TsValue(80); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 2. 궁금해서 그러는데요. 작성해주신 2번 전략은 정확히 어떻게 작동하는 건가요? 본 전략이랑 성과가 다르긴 한 것 같은데 차트만 봐서는 뭐가 다른지 잘 모르겠습니다. if pl <= 0 or (PL > 0 and ps != 1) Then Buy(); 여기로 이전 수익이랑 마켓 포지션 나누어 놓은 것 같기는 한데요. 정확히 어떻게 작동하는지 궁금합니다. 3. 앞선 질문의 3번 전략도요. 제가 보기엔 진입횟수도 적고 뭔가 제가 생각한 방향으로 안 나왔습니다. 첨부파일 2와 같은 것처럼 진입하게 하고 싶었거든요. 4. 1번 수식도 본수식(특정시간 인트라데이 돌파전략)의 매수 매도 조건을 만약 이전 수익이 특정 수익이상일 때 반대로 (원래 buy 수식이면 sell로, 그러니까 원래는 정방향 진입인데 특정 수익이 발생한 다음 매매에서는 역방향 진입)하는 거였는데 트레일링 스탑에만 있네요. 글로 어설프게 쓰다보니 설명을 잘 못하는 듯 합니다. 수식 도움 좀 부탁드립니다.
프로필 이미지
잡다백수
2019-07-04
324
글번호 130019
시스템
답변완료

검색식 부탁드립니다

항상 도움주셔서 감ㅅ합니다. 5분봉 저가가 우상사 우상향 하는 종목 검색이 가능 할까요?!
프로필 이미지
회원
2019-07-04
281
글번호 130018
검색
답변완료

산식검토

이렇게하면 양봉도 함께 검색되는 이유가 뭔지요? 음봉만 검색할수있게 부탁드립니다 If DayOpen(0)>DayClose(0) and DayClose(0)/DayClose(1)<0.90 Then Condition1 = true; Else Condition1 = false; if Condition1[n] == true Then find(1);
프로필 이미지
티끌
2019-07-04
293
글번호 130017
종목검색