커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

다시문의드립니다.

59194번 답을 적용했더니 차트 전체에 파랗게 나옵니다. 다시한번 살펴주시면 고맙겠습니다. 수고하세요/
프로필 이미지
해암
2018-08-31
148
글번호 121783
지표
답변완료

문의드립니다.

선물차트 기준으로 문의드립니다. 1. 가중이평240선과 티론레벨스 중간선(기간값240) 두선을 기준으로 아래는 파란색으로 가로로 색채우기를 하고 싶습니다. 이때 가중240선과 티론중간선의 두선 중에서 보다 위에 있는 선(어떤 때에는 가중선이 더 위에 있을때가 있고, 어떤 때에는 티론중간선이 더 위에 있을때가 있으므로)을 경계선으로 그 아래부분을 파란색으로 가로로 채우기를 하고자 합니다. <각 기간값은 수정 가능하게 부탁드립니다.> 항상 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2018-08-31
161
글번호 121774
지표
답변완료

최적화

당일 장 종료 후 최적화를 진행 할때, 당일의 최종적인 진입신호를 고정하고(위치와 포지션방향의 변경이 없이) 최적화가 진행 되도록 하려고 합니다. 현재의 수식 A 를 그에 맞도록 보완하여 주십시요. 또는, 위 방안이 아닌 다른 방안이 있으면 그에 대하여도 언급하여 주시면 감사하겠습니다. 수식 A if crossup(c,var1) then buy(); if crossdown(c,var1) then sell();
프로필 이미지
너무조아
2018-08-31
132
글번호 121773
시스템

앙이 님에 의해서 삭제되었습니다.

프로필 이미지
앙이
2018-08-31
5
글번호 121772
사용자 함수
답변완료

수식부탁드립니다.

1.키움수식입니다 변경부탁드립니다 매수신호 매도신호 S=sum(1); M5=ma(c,기간1,지수); 상전5=M5>M5(1) && M5(1)<M5(2); M2=ma(c,기간2); DC=valuewhen(1,crossdown(M5,M2),S); 상1=valuewhen(1,상전5,S); 상2=valuewhen(2,상전5,S); 상3=valuewhen(3,상전5,S); GC=valuewhen(1,crossup(M5,M2),S); 조건W=상3<DC && DC<상2 && 상2<상1 && 상1<GC; 조건W && !조건W(1) 2.수식변경부탁드립니다. 1)매수신호 a=avg(c,period); v1 = (highest(high, PeriodShort)+lowest(low, PeriodShort) + highest(high, PeriodMid) + lowest(low, PeriodMid))/4; v2 = (highest(high, PeriodLong) + lowest(low, PeriodLong))/2; crossup(a,v2) 2)매도신호 a=avg(c,period); v1 = (highest(high, PeriodShort)+lowest(low, PeriodShort) + highest(high, PeriodMid) + lowest(low, PeriodMid))/4; v2 = (highest(high, PeriodLong) + lowest(low, PeriodLong))/2; crossdown(a,v2)
프로필 이미지
장군777
2018-08-31
149
글번호 121770
시스템
답변완료

원래수식에 추가로 정배열/역배열 조건 추가 식 부탁해요~

RSI를 기본으로 하는 수식입니다.(매수-청산,매도-청산) 기본봉은 30분봉으로 운영하고 성능보고서로 확인하면 상당히 결과가 않좋더군요.. 그래서 한가지 더 조건을 추가하고 싶어요... 도와주시면 감사 아래식은 30분봉으로 운영하나 추가조건은 일봉상 정배열/역배열을 넣고 싶어요.. (1) 정배열 (5일봉>20일봉>60일봉) (2) 역배열( 5일봉<20일봉<60일봉) (3) 혼재 상황 a. 매수-매수청산식에서 + 역배열시 신규 매수 금지 ( 정배열,혼재상황에서 매수) b. 매도-매도청산식에서 + 정배열 신규 매수 금지 ( 역배열 혼재상황 매도) 기존 수식 var1 = RSI(14); if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b1",OnClose,def,1); if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b2",OnClose,def,2); if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and (MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then buy("b3",OnClose,def,3); if MarketPosition == 1 and var1 >= 70 Then exitlong("bx"); if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s1",OnClose,def,1); if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s2",OnClose,def,2); if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and (MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then Sell("s3",OnClose,def,3); if MarketPosition == -1 and var1 < 50 Then ExitShort("sx");
프로필 이미지
이형지
2018-08-31
171
글번호 121769
시스템
답변완료

전략수정 및 안되는부분 수정.

안녕하세요? 한가지 전략추가와 안되는부분 수정 및 질문 드립니다. 답변받은 전략과 수식 아래쪽에 있습니다. 참고바랍니다. 1. 질문 : X가 무엇을 말하며 D.high와D.low와의 변동폭은 어디 있는지요? 2. 전략추가 : 아래 진입조건에서 1번 2번에 대해서 수정하고 싶습니다. 3가지 다른 변수를 집어넣어서 예를들어 1틱 혹은 2틱 혹은 3틱일시 진입 이렇게. Day high 에서 (외부변수,틱) or (외부변수,틱) or (외부변수,틱) 음봉매도 Day low 에서 (외부변수,틱) or (외부변수,틱) or (외부변수,틱) 양봉매수 3. 안되는부분 : 성능보고서에 집어넣어서 볼려고하니 먹통이 됩니다. 아무것도 안뜹니다. ======================================================================================== * 진입조건 1. Day high 에서 (외부변수,틱) 음봉매도 2. Day low 에서 (외부변수,틱) 양봉매수 - 틱차트 조건 - 음봉매도 진입시 음봉고점과 Day high 와의 간격이 (외부변수,틱) 이내 - 양봉매수 진입시 양봉저점과 Day low 와의 간격이 (외부변수,틱) 이내 3. 장시작후 day high와 day low사이가 (외부변수)틱 이상 벌어진후 조건봉나오면 진입 * 청산조건 1. 손절 (외부변수,틱) 2. 익절 (외부변수,틱) ======================================================================================== input : N(5),profit(10),loss(10),x(10),양봉틱수(5),음봉틱수(5); var1 = DayHigh-daylow; if C > O and L <= DayLow(0)+PriceScale*n and var1 >= x*PriceScale and abs(C-O) == 양봉틱수 Then buy(); if C < O and H >= DayHigh(0)-PriceScale*n and var1 >= x*PriceScale and abs(C-O) == 음봉틱수 Then sell(); SetStopProfittarget(profit*PriceScale,PointStop); SetStopLoss(loss*PriceScale,PointStop);
프로필 이미지
대구어린울프
2018-08-31
141
글번호 121768
시스템
답변완료

종가매매 수식 수정 부탁드립니다.

1번 수식 매수포지션의 경우 두번째 진입부터는 평단가보다 낮은 음봉종가에 매수진입 2번 수식 매도포지션의 경우 두번째 진입부터는 평단가보다 높은 양봉종가에 매도진입 으로 수정 부탁드립니다. - 아 래 - 1. input : V1(100),X1(100); if stime == 151000 then { if C < O and MaxEntries < 10 Then buy("b",OnClose,def,V1); if MarketPosition == 1 and C > O and C >= AvgEntryPrice*1.03 Then ExitLong("bx",OnClose,def,"",X1,2); } 2 input : V1(100),X1(100); if stime == 151000 then { if C > O Then sell("s",OnClose,def,V1); if MarketPosition == -1 and C < O and C <= AvgEntryPrice*0.97 Then ExitShort("sx",OnClose,def,"",X1,2); }
프로필 이미지
승부사1
2018-08-31
136
글번호 121767
시스템
답변완료

59172대한 추가 질문입니다

수식 정말 고맙습니다 공부가 많이 되고 있습니다 궁금한건 장대 봉이 발생하여 3계약이 전부 청산되었는데 다시 장대 봉 발생한(청산이 이루어진 캔들에서) 곳에서 바로 매수주문이 다시 들어갔는데 전부 청산된 뒤에는 다음 봉에서 조건이 이루어졌을때만 진입이 되게 하려면 어떻게 해야될까요? 물론 청산이 이루어진 봉 다음 봉에 조건이 안맞으면 진입이 안되야되겠죠~ 수식 부탁합니다. 미리 감사드려요 안녕하세요 예스스탁입니다. Var : p1(20),p2(150); Var : sto1(20),sto2(5),sto3(5); var : ma1(0),ma2(0),stok(0),stod(0); ma1 = ma(C,P1); ma2 = ma(C,P2); stok = StochasticsK(sto1,sto2); stod = StochasticsD(sto1,sto2,sto3); condition1 = ma1 > ma2 and stok > stod; condition2 = ma1 < ma2 and stok < stod; if stime >= 100000 or stime <050000 then { if condition1 == true and condition1[1] == false then { if MarketPosition == 0 or (MarketPosition == -1 and (C > dayopen or C >= EntryPrice+PriceScale*20)) then buy("매수",OnClose,def,3); } if condition2 == true and condition2[1] == false then { if MarketPosition == 0 or (MarketPosition == 1 and (C < dayopen or C <= EntryPrice-PriceScale*20)) then sell("매도",OnClose,def,3); } } if MarketPosition == 1 then { ExitLong("bp1",atlimit,EntryPrice+PriceScale*20,"",1,1); ExitLong("bp2",atlimit,EntryPrice+PriceScale*40,"",1,1); ExitLong("bp3",atlimit,EntryPrice+PriceScale*60,"",1,1); if CurrentContracts == MaxContracts Then ExitLong("bl1",AtStop,EntryPrice-PriceScale*20); else ExitLong("bl2",AtStop,EntryPrice+PriceScale*5); } if MarketPosition == -1 then { ExitShort("sp1",atlimit,EntryPrice-PriceScale*20,"",1,1); ExitShort("sp2",atlimit,EntryPrice-PriceScale*40,"",1,1); ExitShort("sp3",atlimit,EntryPrice-PriceScale*60,"",1,1); if CurrentContracts == MaxContracts Then ExitShort("sl1",AtStop,EntryPrice+PriceScale*20); else ExitShort("sl2",AtStop,EntryPrice-PriceScale*5); } if stime == 050000 then { exitlong(); exitshort(); } 즐거운 하루되세요 > 초짜79 님이 쓴 글입니다. > 제목 : 59140 질문 다시 부탁합니다! > 대입을 해도 잘 안되서 다시 문의 합니다 현재 쓰고 있는 수식입니다 여기에 아래내용을 같이 적용을 시키려면 어떻게 해야될까요? 예를들어 아래수식대로 시가위에서 매수진입신호(condition1)가 나온 뒤에 매도진입신호(condition2)가 나오는 조건이 되어도 진입가격보다 가격이 낮지 않거나 시가보다 가격이 작지 않을경우는 매도 신호는 안나왔으면 좋겠구요 매도신호가 나오려면 시가보다 가격이 작아졌졌거나 진입가격보다 20틱아래있을때 매도조건(cindition2)이 충족되면 매도 신호(손절및 매도진입)가 나왔으면 좋겠습니다 (*진입한 계약이 없을경우에는 시가 밑에서도 매수신호가 나오고 시가 위에서도 매도신호가 나오도록 해주세요) 진입할때 3계약진입하고 20틱에서 1계약청산 40틱에서 1계약청산 60틱에서 1계약청산하고 1계약도 청산이 안됐을때 진입가격에서 20틱이하로 내려가면 손절하고 1계약이라도 청산된 뒤 남은은계약이 있을때는 진입가격보다 5틱위에서 전부청산되는 수식부탁합니다. 그리고 추가해서 20일선이 150일선을 상향크로스하고 스토캐스틱이 기준선 20을 상향돌파하거나 기준선 80을 상향돌파할때 "매수" 그 반대일땐 "매도" 아래수식에 대입해서 부탁합니다 Var : p1(20),p2(150); Var : sto1(20),sto2(5),sto3(5); condition1 = ma1 > ma2 and stok > stod condition2 = ma1 < ma2 and stok < stod if stime >= 100000 or stime <050000 then{ if condition1 == true and condition1[1] == false then buy("매수"); if condition2 == true and condition2[1] == false then sell("매도"); } if stime == 050000 then{ exitlong(); exitshort(); }
프로필 이미지
초짜79
2018-08-30
126
글번호 121766
시스템