커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 수정 부탁드립니다.

색깔이 제대로 안나와요. var : S(0); Var1 = Data2(ma(v,50)); //거래량50 이평선 Var2 = Var1[0] - Var1[1]; // 오늘의 기울기 Var3 = Var1[1] - Var1[2]; // 어제의 기울기 If Var3 < 0 and Var2 > 0 Then S = 1; // 이평선 상승 If Var3 > 0 and Var2 < 0 Then S = -1; // 이평선 하락 Plot1(Var1,"거래양이평선",Iff(S==1, RED,BLACK));
프로필 이미지
매버릭
2021-01-17
1259
글번호 145507
지표
답변완료

국내주식입니다. 분할매수 분할매도 하는 수식 부탁드림니다~~~

1. 국내주식 ( 예 삼성전자) 2. 차트 10분봉 기준 매수 조건 가. 200봉 평균값이 우상향시 ---------- 1. 엔벨로프(20 ) 조건에서 중심선 보다 낮을때마다 봉종가 (10분봉) 현재가 10만원 매수 (분할 무한 매수 ) 2. 엔벨로프(20, 0.5)조건에서 지지선 보다 낮을때마다 봉 종가(10분봉) 현재가 15만원 매수 (분할 무한 매수 ) 3. 엔벨로프(20,1 )조건에서 지지선 보다 낮을때마다 봉 종가(10분봉) 현재가 20만원 매수 (분할 무한 매수 ) 4. 엔벨로프(20,2 )조건에서 지지선 보다 낮을때마다 봉 종가(10분봉) 현재가 25만원 매수 (분할 무한 매수 ) 5. 볼린저밴드(20,2)조건에서 하한선 보다 낮을때마다 봉 종가(10분봉) 현재가 25만원 매수 (분할 무한 매수 ) 6. 가) 조건에 부합하지 않아도 MFI(20) < 25 일때 봉 종가(10분봉) 현재가 30만원 매수 (분할 무한 매수) 6. 가) 조건에 부합하지 않아도 MFI(30) < 25 일때 봉 종가(10분봉) 현재가 40만원 매수 (분할 무한 매수) 7. 진입금액 총액은 1000만원까지로 제한 매수 청산 조건 가. 50봉평균값이 우상향 영역에서 매수청산하는 수식 반영 1.엔벨로프(20,0.5) 조건에서 저항선 보다 높을때마다 봉 종가(10분봉)현재가 10만원씩 매도 (분할 매도) 2.엔벨로프(20,1) 조건에서 저항선 보다 높을때마다 봉 종가(10분봉)현재가 15만원씩 매도 (분할 매도) 3.엔벨로프(20,1.5) 조건에서 저항선 보다 높을때마다 봉 종가(10분봉)현재가 20만원씩 매도 나.50봉 우하향 영역에서 매수청산하는 수식 반영 매수물량이 남아있는 경우 1. 엔벨로프(20) 기준선 보다 높을때 봉종가에 전량(잔량분) 매수청산 (일괄매도)
프로필 이미지
이형지
2021-01-17
1339
글번호 145506
시스템
답변완료

시스템 주문식 부탁 드립니다.

안녕하세요 관리자님 미리 답변에 감사 드립니다. 아래와 같은 내용에서 이평선 1번은 Red일때 이평선 2번이 Red, Blue, Red순서로 색상이 바뀌면 Buy하는 식을 부탁 드립니다. 이평선1양=False; 이평선1음=False; If DZwave2 > DZwave2[1] Then 이평선1양 = True ; If Dzwave2 < DZwave2[1] Then 이평선1음 = True ; 이평선2양=False; 이평선2음=False; If DZwave3 > DZwave3[1] Then 이평선2양 = True ; If DZwave3 < DZwave3[1] Then 이평선3음 = Ture ; If 이평선1양 Then 이평선1컬러 = RED ; Else 이평선1컬러 = BLUE ; If 이평선2양 Then 이평선2컬러 = RED ; Else 이평선2컬러 = BLUE ;
프로필 이미지
blueo
2021-01-17
1118
글번호 145505
시스템
답변완료

시스템식 부탁드립니다.

안녕하세요. 1. 해외선물 10분봉 피라미딩 매매를 하고 싶습니다. 아래와 같이 코딩 되어 있을 경우 if MarketPosition == 0 Then Buy("b",AtLimit,DayOpen-PriceScale*10,1); if MarketPosition == 1 Then { if MaxEntries < 10 Then Buy("bb",AtLimit,DayOpen-(PriceScale*10)*(MaxEntries+1),1); } if MarketPosition == 0 Then sell("s",AtLimit,DayOpen+PriceScale*10,1); if MarketPosition == -1 Then { if MaxEntries < 10 Then sell("ss",AtLimit,DayOpen+(PriceScale*10)*(MaxEntries+1),1); } SetStopProfittarget(PriceScale*10,PointStop); 시스템 설정은 파리미딩의 경우 모든진입신호 허용으로 설정하면 되는 것으로 알고 있습니다. 만약에 당일 매수 포지션이 모두 청산되지 않는 경우 익일 아침에 다시 시스템 운영시 첫진입신호가 매도가 나오면 기존에 가지고 있던 매수 포지션이 청산 되는건가요? 아니면 기존 매수 포지션은 유지되고 신규 매도 포지션이 발생하는건가요? 위 2가지 경우가 아니라면 매수포지션이 청산되기 까지는 신규 포지션 진입이 안되는 건가요? 2. 실제 시스템 운영시 계좌에 전일 매수 포지션이 있는 경우 당일 시스템을 재 운영하면 전일의 매수 포지션이 남아 있음을 인식하고 계속 이어서 매매가 되는 건가요? 3. 만일 전일 매수 포지션을 장 마감전 수기로 청산하였다고 가정할 경우 시스템은 매수 포지션을 유지하고 있는 것으로 인식하여 신규 포지션 진입이 안되는 것 아닌가요?(위와 같이 코딩하였을 경우) 설명 좀 부탁드립니다. 4. 위와 같이 코딩했을 경우 첫번째 포지션 진입이 매도였는데 만약이 가격이 계속 상승하여 가지고 있던 매도 포지션이 하나도 청산되지 않은 경우 [스탑로스가 없는 경우] 전일 포지션은 놔두고 당일 시가 기준으로 다시 매매를 할수 있는 방법은 없는건가요? 만약에 방법이 있다면 시스템수식 부탁드립니다. 6. 문자랑 숫자를 더하는 수식 수정 부탁드립니다. if MaxEntries < 10 and 이펑5 < 이평10 then Sell("S"+NumToStr(maxentries),AtLimit,이평5,1) ; 위와 같이 코딩시 에러가 납니다. 진입계약수를 매도명으로 사용하여 아래와 같이 매도명을 나타내고 싶습니다. 한계약 매도시 "s1" 두계약 매도시 "s2" 세계약 매도시 "s3" 위 수식 수정 부탁드립니다. 감사합니다.
프로필 이미지
양치기
2021-01-17
1285
글번호 145504
시스템
답변완료

수식 수정,추가 부탁드립니다.

안녕하세요? 아래수식에서 일부 수정및 추가 부탁드립니다. 수정) 정배열에서 매수, 역배열에서 매도 로 되어있는데, 이것을 정배열에서 매도, 역배열에서 매수 로 바꾸고싶습니다. 추가) 1. 정배열에서 매도진입후 골든크로스 발생시 청산 2. 역배열에서 매수진입후 데드크로스 발생시 청산 3. 1번과2번의 골든/데드크로스에 청산 또는 기존설정되어있는 익/손절에 먼저 도달하는것에 청산. 이후 다음신호발생전까지 재진입x 감사합니다. input : b기준선(0.05),s기준선(0.95),n(3),P1(5),P2(20); var : entry(0); if Bdate != Bdate[1] Then entry = 0; var1 = C%1; var2 = C%1; value1 = ma(C,P1); value2 = ma(C,P2); if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if entry < n Then { if MarketPosition == 0 and C > O and b기준선 == var1 and value1 < Value2 then Buy(); if MarketPosition == 0 and C < O and s기준선 == Var2 and value1 > Value2 then Sell(); } input : 익절틱수(50),손절틱수(50); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
대구어린울프
2021-01-16
1199
글번호 145503
시스템
답변완료

문의

수식 답변 고맙습니다. 첨부파일은 아래수식 시뮬레이션 결과입니다 1분차트 data2 kp외국인순매수금액 data3 kp기관계순매수금액 문제점은 시작시간을 10시로 했을 경우 9시01분에 진입하는 경우들이 생깁니다. 수식 살펴주세요. 항상 고맙습니다. ********************************************************************************** 안녕하세요 예스스탁입니다. input : b1(28),b2(28),X1(28),X2(28),ER(8),EF(8),CR(8),CF(8),거래횟수(20),시작시간(090000) ; var : T1(0,Data1),entry(0,Data1),LL(0,Data1),EH(0,Data1),E1(0,Data1),H1(0,Data1),i1(0,Data1),S1(0,Data1),L1(0,Data1),V1(0,Data1); var : sum(0,Data1); sum = Data2(c)+data3(c); if Data2((sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간)) Then { T1 = TotalTrades; E1 = 0; LL = sum; } if data2(stime >= 시작시간) then { if sum < LL Then LL = sum; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then { if E1 == 0 and sum >= LL+data2(PriceScale)*B1 and sum[1] < LL+data2(PriceScale)*B1 Then { E1 = 1; H1 = sum; i1 = data2(index); V1 = LL; //시작점 종가 } if E1 == 1 and data2(index > i1) then { if sum > H1 Then H1 = sum; #저가가 시작봉종가보다 클때만 눌림체크 if sum >= V1 and sum <= H1-data2(PriceScale)*ER Then { E1 = 2; i1 = data2(index); S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and sum < V1 Then { E1 = 0; LL = L; } if E1 == 2 and data2(index) > i1 and sum >= S1+data2(PriceScale)*EF Then { buy("b1"); } } if TotalTrades > TotalTrades[1] Then { E1 = 0; LL = sum; } if sum < LL Then LL = sum; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then { if E1 == 0 and sum >= LL+data2(PriceScale)*B2 and sum[1] < LL+data2(PriceScale)*B2 Then{ E1 = 1; H1 = sum; i1 = data2(index); V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then { if sum > H1 Then H1 = sum; #저가가 시작봉종가보다 클때만 눌림체크 if sum >= V1 and sum <= H1-data2(PriceScale)*ER Then { E1 = 2; i1 = Data2(index); S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and sum < V1 Then { E1 = 0; LL = sum; } if E1 == 2 and data2(index) > i1 and sum >= S1+data2(PriceScale)*EF Then { buy("b2"); } } if MarketPosition == 1 Then { if entry >= 1 then { if CurrentContracts > CurrentContracts[1] Then { EH = sum; E1 = 0; } if sum > EH Then { EH = sum; E1 = 0; } if E1 == 0 and sum <= EH-data2(PriceScale)*X1 Then { E1 = 1; L1 = sum; i1 = index; } if E1 == 1 and data2(index) > i1 Then { if sum < L1 Then L1 = sum; if H >= L1+PriceScale*CR Then { E1 = 2; I1 = data2(index); S1 = L1; } } if E1 == 2 and data2(index) > i1 and sum <= S1-data2(PriceScale)*CF Then { exitlong("bx1"); E1 = 0; } } } if MarketPosition == 1 Then { if entry >= 1 then { if CurrentContracts > CurrentContracts[1] Then { EH = sum; E1 = 0; } if sum > EH Then { EH = sum; E1 = 0; } if E1 == 0 and C <= EH-data2(PriceScale)*X2 Then { E1 = 1; L1 = sum; i1 = data2(index); } if E1 == 1 and data2(index) > i1 Then { if sum < L1 Then L1 = sum; if H >= L1+data2(PriceScale)*CR Then { E1 = 2; I1 = data2(index); S1 = L1; } } if E1 == 2 and data2(index) > i1 and sum <= S1-data2(PriceScale)*CF Then { exitlong("bx2"); E1 = 0; } } } } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 문의1 > 아래수식은 주차트에 사용하는 buy 수식입니다. 1. 보조차트2와 보조차트3을 이용해서 양합을 구합니다. var : sum(0,Data1); sum = Data2(c)+data3(c); 2. 구한 양합을 아래 수식에 따라 진입과 청산에 사용하고 싶습니다.
프로필 이미지
좌오비우오비
2021-01-16
1253
글번호 145502
시스템
답변완료

문의드립니다

1.믿꼬리가 몸통보다 두배긴 망치형 2.윗 꼬리가 몸통보다 두배긴 역망치 3.양봉도지형 4.음봉도지형 위 내용을 어떻게 수식을 작성하나요
프로필 이미지
몽고메리
2021-01-16
1130
글번호 145501
시스템
답변완료

수식 문의 드립니다.

ShortEntryCondition = 진입조건; if(ShortEntryCondition == true) then begin if(MarketPosition == 0) then Sell("ShortStop" , AtStop, 진입가격, NumberOfShares); end; end; 위와 같이 진입조건이 성립시 예비신호가 나오고, 진입가격이 됐을 때 진입하는 전략을 사용하려고 합니다. 제가 궁금한 것은 진입조건이 일단 성립하고 나서 해당봉에서만 주문이 나가는 것이 아닌 n봉 동안 주문이 나갈수있도록 하고 싶습니다.가령 3봉 전에 진입조건이 성립했더라도 현재 봉에 가격에 도달하면 주문이 나갈수 있게하고 싶은데 수식을 추가해주세요
프로필 이미지
오전만트레이딩
2021-01-15
1142
글번호 145500
시스템
답변완료

문의드립니다

진입은 두계약으로 macd가 시그널선을 상향돌파 매수 하향돌파 매도 청산은 두계약 따로하고 싶은데 이게 잘 안되네요 첫번째 청산은 진입하고 50틱에 도달하면 청산하고 두번째는 150틱에 청산하되 만약 150틱에 도달 못하면 첫번재 청산후 최고점에서 40프로 다운되면 하고싶거든요. 예를 들면 첫번째 50틱에 청산되고 150틱 도달하면 150틱에 청산하고 150틱 도달못하고 100틱까지 갔다가 60틱으로 내려오면 청산되게 하고 싶습니다. 매도도 같습니다
프로필 이미지
오케마컴
2021-01-15
974
글번호 145499
시스템