커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

전략실행챠트

전략실행챠트 에서 글(Text)쓰기를 하고 컴퓨터를 다시 부팅해서 예스트레이더를 다시시작하면 기존에 글이 없어지는데 전략실행챠트에 저장하는 방법이 있나요? 감사합니다
프로필 이미지
대가들의매매
2014-10-23
164
글번호 79680
지표
답변완료

문의드립니다

간만에 들렸습니다 항상감사드립니다 현재 기존 매수매도식이있습니다 1)9시부터10시까지만 기준으로 한시간동안에 고점에서 저점으로 내려온 포인트가 1.5이하이면 추가 매도진입금지 10시이후 매도진입신호시 매도금지 2)9시부터10시까지만 기준으로 한시간동안에 저점에서 고점으로 올라온 포인트가 1.5이상이면 추가 매수진입금지 10시이후 매수진입신호시 매수금지 초보입니다 매수매도 진입수식만들어주시면 넣어서 이리저리수정하고있습니다 기존식에 넣을수있도록 부탁드립니다
프로필 이미지
황금시계
2014-10-23
167
글번호 79677
시스템
답변완료

(Line: -2 ) Syntax error : Unexpected end of input

function XX() { var EntryMoney; var EntryVol; var EntryMoney = Account.GetBalanceETCinfo(18);//계좌의 주문가능현금 var EntryVol = 0; //1주 단위일 경우 if (MarketData.tradeUnit == 1) { EntryVol = Math.floor(EntryMoney/MarketData.current); if (EntryVol > 0) { Account.OrderBuy(MarketData.code,EntryVol,MarketData.current,0); } } //10주 단위일 경우 if (MarketData.tradeUnit == 10) { EntryVol = Math.floor(Math.floor(Math.floor(EntryMoney/MarketData.current) / 10 )*10); if (EntryVol > 0) { Account.OrderBuy(MarketData.code,EntryVol,MarketData.current,0); } } 사용자 함수 (Line: -2 )에서 오류가 발생. Syntax error : Unexpected end of input 라고 나오는데 아무리 찾아봐도 끝처리 이상하게 한게 없거든요~~~ 그리고 Line이 -2라고 나오는데 어떻게 -마이너스가 나올수 있죠?? 이건 어디 줄을 보라는건지.....
프로필 이미지
클릭한번
2014-10-23
268
글번호 79676
사용자 함수
답변완료

수식변환

수고하십니다. 아래수식을 예스형식으로 변환부탁드립니다. VALUEWHEN(1,RSI(P10)>RSI(P10,1),ATR(2)) OR VALUEWHEN(2,RSI(P10)>RSI(P10,1),ATR(2)) OR VALUEWHEN(3,RSI(P10)>RSI(P10,1),ATR(2))
프로필 이미지
심홍
2014-10-23
167
글번호 79675
지표

심홍 님에 의해서 삭제되었습니다.

프로필 이미지
심홍
2014-10-23
0
글번호 79674
지표
답변완료

질문드립니다.

다음 문장을 코딩해 주셔요. "수익이 난 청산 후에는 신규 매수 금지"
프로필 이미지
미카엘
2014-10-22
146
글번호 79673
시스템
답변완료

문의

1.올려주신 식이 제대로 작동하지 않는것 같습니다. 점검한번 부탁드리고 주석을 달아주시면 제가 참고하겠습니다. 2.그리고 현재 신호의 상태가 10틱 이상 수익이고 5이평과 20이평이 반대가 되었을때 반대포지션진입될 수 있게 부탁드립니다. 즉 매수로 10틱 이상 수익 중 5이평 < 20이평 이면 매도 ================================== 안녕하세요 예스스탁입니다. if PositionProfit(1) <= 0 and PositionProfit(2) <= 0 and EntryDate(2) > 0 Then //EntryDate가 왜 필요한가요?? Condition3 = True; Else Condition3 = False; if 매수조건 Then{ if MarketPosition == 0 and Condition1 == false then //제 시스템은 항상 포지션이 있으므로 필요없는 라인..... buy(); if MarketPosition == 0 and Condition1 == true and (c >= ExitPrice(1)+PriceScale*3 or C <= ExitPrice(1)-PriceScale*3) then buy(); if MarketPosition == -1 and !(C >= EntryPrice and PositionProfit(1) <= 0 and EntryDate(1) > 0) then // 111 Sell(); // <== Buy(); 가 맞는거죠? if MarketPosition == -1 and C >= EntryPrice and PositionProfit(1) <= 0 and EntryDate(1) > 0 then // 222 111과 222의 차이점을 알려주세요 ExitShort(); //저는 청산이 없고 항상 포지션을 가지고 있어야합니다. 그럼 여기도 Buy(); 인거죠? } if 매도조건 Then{ if MarketPosition >= 0 and Condition1 == false then Sell(); if MarketPosition == 0 and Condition1 == true and (c >= ExitPrice(1)+PriceScale*3 or C <= ExitPrice(1)-PriceScale*3) then sell(); if MarketPosition == 1 and !(C <= EntryPrice and PositionProfit(1) <= 0 and EntryDate(1) > 0) then Sell(); if MarketPosition == 1 and C <= EntryPrice and PositionProfit(1) <= 0 and EntryDate(1) > 0 then ExitLong(); } 즐거운 하루되세요 > hjkang철인 님이 쓴 글입니다. > 제목 : 문의 > 앞전 매매 손실이 2회발생 시 손실로 마감된 가격을 저장하고.. 다음 신호의 가격이 손실로 마감된 가격의 +3틱 -3틱 이내의 가격에서는 진입되지 않도록 수식수정 부탁드립니다. (저는 매수, 매도, 매수, 매도.. 항상 포지션을 유지하고 있습니다.) if OpenPositionProfit<=0 Then //현재 진행 중인 거래가 손실이면 var8=c; //손실 마감 가격 저장 //기존 거래 손실이 2회 이면... if PositionProfit(1) <= 0 and PositionProfit(2) <= 0 Then Condition3 = True; Else Condition3 = False; if Condition3==True and MarketPosition==1 Then if abs(var8) >= abs(var8[1])+PriceScale*3 then Sell("S"); if Condition3==True and MarketPosition==-1 Then if abs(var8) >= abs(var8[1])+PriceScale*3 Then Buy("B");
프로필 이미지
hjkang철인
2014-10-23
205
글번호 79672
시스템

미수예스 님에 의해서 삭제되었습니다.

프로필 이미지
미수예스
2014-10-22
0
글번호 79671
시스템
답변완료

보유종목의 일부만 이익청산

안녕하십니까. 조금 수정하고 싶은 내용이 있습니다. 아래식은 목표이익 도달시 모두청산한후 다시 들어가도록 되어있습니다. 바꾸고 싶은 내용은, 목표이익 도달시 투자금액만큼의 수량을 남기고 청산하는 것입니다. 즉 목표익이 도달한 순간 최초금액(1000000)을 남기고 청산하고 이때의 가격이 최초진입된것으로 재설정되어 이후 재진입이 다시 시작되게 하는 것입니다. 손절금액에 도달시도 마찬가지로 최초금액(1000000)의 수량을 남기고 청산하고 이때의 가격이 최초진입된것으로 재설정되어 이후 재진입이 다시 시작되게 합니다. 요약하면, 시스템이 적용되면 최초진입후 항상 최초금액이상으로 진입되어있는 상태입니다. 감사합니다. ======================================================================= 1.고정금액 input : RateUp(0.5),RateDn(1.5),투자금액(1000000),Per(2.5),첫진입시각(90000),Profit(5),Loss(30); var : Vol1(0),vol2(0),vol3(0),Upval(0),Dnval(0); if CodeCategoryEx == 11 and BasePrice < 50000 Then{//주식 vol1 = int(int((투자금액)/C)/10)*10; vol2 = int(int((투자금액*RateUp)/C)/10)*10; vol3 = int(int((투자금액*RateDn)/C)/10)*10; } Else{ vol1 = int((투자금액)/C);//ETF vol2 = int((투자금액*RateUp)/C); vol3 = int((투자금액*RateDn)/C); } if MarketPosition == 0 and stime == 첫진입시각 Then{ buy("b",OnClose,def,vol1); UpVal = c; DnVal = c; } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "UpB" Then{ UpVal = LatestEntryPrice(0); } if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "DnB" Then{ DnVal = LatestEntryPrice(0); } buy("UpB",AtStop,UpVal*(1+(Per)/100),Vol2); buy("DnB",atlimit,DnVal*(1-(Per)/100),Vol3); ExitLong("BP",atlimit,AvgEntryPrice*(1+Profit/100)); ExitLong("BL",atlimit,AvgEntryPrice*(1+Loss/100)); } 2. 누적금액 input : 투자금액(2000000),Mult(0.5),Per(2.5),첫진입시각(90000),Profit(6),Loss(30); var : Mny1(0),Mny2(0),Mny3(0),Vol1(0),Vol2(0),Vol3(0),Upval(0),Dnval(0),UPcnt(0),Dncnt(0); if MarketPosition == 0 and stime == 첫진입시각 Then{ Mny3 = 투자금액+투자금액*Mult; if CodeCategoryEx == 11 and BasePrice < 50000 Then{ vol1 = int(int((투자금액)/C)/10)*10; vol2 = int(int((투자금액-투자금액*Mult)/C)/10)*10; vol3 = int(int((Mny3)/C)/10)*10; } Else{ vol1 = int((투자금액)/C); vol2 = int((투자금액-투자금액*Mult)/C); vol3 = int((Mny3)/C); } UpVal = c; DnVal = c; buy("b",OnClose,def,vol1); } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "UpB" Then{ UpVal = LatestEntryPrice(0); UPCnt = upcnt+1; if CodeCategoryEx == 11 and BasePrice < 50000 Then{ vol2 = int(int((투자금액-투자금액*Mult)/C)/10)*10; } Else{ vol2 = int((투자금액-투자금액*Mult)/C); } } if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "DnB" Then{ DnVal = LatestEntryPrice(0); DnCnt = Dncnt+1; Mny3 = Mny3+투자금액*Mult; if CodeCategoryEx == 11 and BasePrice < 50000 Then{ vol3 = int(int((Mny3)/C)/10)*10; } Else{ vol3 = int((Mny3)/C); } } buy("UpB",AtStop,UpVal*(1+(Per)/100),Vol2); buy("DnB",atlimit,DnVal*(1-(Per)/100),Vol3); ExitLong("BP",atlimit,AvgEntryPrice*(1+Profit/100)); ExitLong("BL",atlimit,AvgEntryPrice*(1+Loss/100)); } if MarketPosition != 0 Then{ Upcnt = 0; Dncnt = 0; }
프로필 이미지
미수예스
2014-10-22
209
글번호 79670
시스템