커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 부탁드립니다.

안녕하세요 항상 많은 도움에 감사드립니다. 손절 익절 초기 설정은 손절(25틱)/익절(25틱) 입니다. (1) 진입후에 30분이 지나도 청산이 되지 않는 경우, 손절/익절을 각 각 10틱으로 변경하고, 그 이후에 30분이 지나도 청산이 되지 않으면 현재가에 청산한다. (2) 진입후에 20봉이 경과해도 청산이 되지 않는 경우, 손절/익절을 각 각 10틱으로 변경하고, 그 이후에 또 20봉이 경과해도 청산이 되지 않으면 현재가에 청산한다. 위 수식을 예스랭귀지와 예스스팟 두가지로 설정이 가능하다면 각 각 부탁드리겠습니다. 감사합니다.
프로필 이미지
워싱턴
2019-06-18
312
글번호 129557
시스템
답변완료

지표식

분봉에서 최근60개봉에서 최고값, 최저값을 나타내는 식을 구합니다 감사합니다
프로필 이미지
느림보
2019-06-18
293
글번호 129556
지표
답변완료

알려 주세요

이평이 고저선 2줄로 나오는 수식좀 알려 주세요
프로필 이미지
선물연구소
2019-06-18
306
글번호 129555
시스템
답변완료

부탁드립니다

언제나 감사를 드립니다 제가 아주 초보이면서 예스스탁 새내기 입니다 잘 부탁 드립니다
프로필 이미지
유로정복자
2019-06-19
290
글번호 129554
시스템
답변완료

검색식 부탁드립니다.

안녕하세요. 검색수식 좀 부탁드립니다. 수식에서는 반드시 input : ndate(20180908); 를 넣어서 특정 날짜 변수를 적용부탁드립니다. 현재봉부터 2봉전까지의 최저가를 aa라하고 3봉전부터 24봉전까지의 최저가를 bb라 하고 25봉전부터 47봉전까지의 최저가를 cc라하고 48봉전부터 95봉전까지의 최저가 를 dd라 하고 96봉전부터 143봉전까지의 최저가를 ee라 하고 144봉전부터 191봉전까지의 최저가를 ff라하고 192봉전부터 239봉전까지의 최저가를 gg라 한다면 bb<=aa 커야하고 최근 3봉동안의 평균 거래대금이 3억이상이면서 C[3]<cc and aa>cc 또는 C[3]>dd and aa<dd 또는 C[3]<ee and aa>ee 또는 C[3]>ff and aa<ff 또는 C[3]>gg and aa<gg 인 종목을 검색하는 수식 부탁드립니다. 이때 반드시 상장이후 봉이 239봉 이상 형성된 종목만 검색이 되고 그 이하 봉만 형성된 신규 종목은 검색이 안되는 현상이 없도록 신경써 주세요. (예전에 수식 작성때 그런 적이 있어서요) 예전에 59995 번과 비슷한 방식의 수식입니다. 예를 들어 상장된지 25봉이상이고 239봉이하인 종목도 위 수식이 만족하면 반드시 검색이 되어야 합니다. 잘 부탁드립니다.
프로필 이미지
강태공3
2019-06-18
347
글번호 129553
종목검색
답변완료

문의드립니다

Stochastics Slow 지표 지수로 수식 부탁드립니다
프로필 이미지
해피슈
2019-06-18
300
글번호 129550
지표
답변완료

안녕하세요

안녕하세요. 수고 많으십니다. 1) 아래수식 보완 부탁드립니다. 1 이동평균선이 중심선의 종가를 아래로 갈때는 중심선은 파랑색 선으로 표시하고. 1 이동평군선이 중심선의 종가를 위로 갈때는 중심선은 빨강색선 으로 표시 하고저 합니다 아래 수식을 적용해보았으나 잘 안되네요. var1 = ma(C,1 ); var2 = ma(C,20); Plot1(Sma1, "이동평균1"); Plot2(Sma2, "이동평균2"); plot3((HH+LL)/2,"중심값" ,iff(var1 > HH+LL, RED ,BLUE)); plot4(0,"하단값"); 2) 위수식 강조식이 가능한가요. 1 이동평균선이 중심선의 종가를 아래로 갈때는 캔들의 색이 파랑색 캔들로 표시하고. 1 이동평군선이 중심선의 종가를 위로 갈때는 캔들의 색이 빨강색 캔들로 표시가 가능 하시면 부탁 드립니다. 감사 합니다 수고 하세요
프로필 이미지
탐라
2019-06-19
314
글번호 129549
지표
답변완료

부탁합니다

주식캔들차트에서 시가대비 10%이상 또는 20%이상 오를때 단일가 거래로 스톱이되는데 캔들창에 9:00정시 시작가대비 10% 또는 20% 금액선이 수평으로 표기되면 매매하는데 도움이될거같읍니다. 부탁합니다 ***당일 변동성완화장치조건이 캔들차트에 라인으로 표시되면 좋겠습니다*** *** 2분봉 캔들 차트에 적용하려합니다***
프로필 이미지
만호
2019-06-18
319
글번호 129548
지표
답변완료

재문의

청산 식만 보내면 알 수가 없군요 .. 주로 매수 추적, 매수 손익 분기 등등 이런것으로 청산 하려 하는데 대부분 스탑스트레일잉 또는 스파이크 청산2로만 나오네요 뭐가 잘 못 되었을 까요 ? input:최소변화폭(5); var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(1),하락(-1),Sum(0),CSum(0); array:고[10](0),저[10](0),렌코[500](0); if index == 0 then { 벽돌크기 = 최소변화폭; 고[0] = C; 저[0] = C; 렌코[0] = C; } #==========================================# # 렌코 계산 #==========================================# if 방향 == 0 then { if 저[0] - 벽돌크기 >= C then { 벽돌개수 = int((저[0]-C)/벽돌크기); 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 방향 = 하락; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } else if 고[0] + 벽돌크기 <= C then { 벽돌개수 = int((C-고[0])/벽돌크기); 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 방향 = 상승; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } } else if 방향 == 하락 then { if 저[0] - 벽돌크기 >= C then { 벽돌개수 = int((저[0]-C)/벽돌크기); 저[0] = 저[0] - 벽돌크기 * 벽돌개수; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } if 저[0] + 2*벽돌크기 <= C then { for j = 8 downto 0 { 고[j+1] = 고[j]; } 방향 = 상승; 벽돌개수 = int((C-저[0])/벽돌크기); 고[0] = 저[0] + 벽돌크기 * 벽돌개수; for j = 499 downto (벽돌개수-1) { 렌코[j] = 렌코[j-(벽돌개수-1)]; } 렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기; if 벽돌개수 > 2 then { for j = 벽돌개수 - 3 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } } } else if 방향 == 상승 then { if 고[0] + 벽돌크기 <= C then { 벽돌개수 = int((C-고[0])/벽돌크기); 고[0] = 고[0] + 벽돌크기 * 벽돌개수; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } if 고[0] - 3*벽돌크기 >= C then { for j = 8 downto 0 { 저[j+1] = 저[j]; } 방향 = 하락; 벽돌개수 = int((고[0]-C)/벽돌크기); 저[0] = 고[0] - 벽돌크기 * 벽돌개수; for j = 499 downto (벽돌개수-1) { 렌코[j] = 렌코[j-(벽돌개수-1)]; } 렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기; if 벽돌개수 > 2 then { for j = 벽돌개수 - 3 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } } } if 방향==상승 and 방향[1]==하락 then Buy(); if 방향==하락 and 방향[1]==상승 then Sell(); Input : BuyATRP(46),SellATRP(6),BuyATRS1(2.5),BuyATRS2(4.0),BuyATRS3(4.0),SellATRS1(3.5),SellATRS2(6.0),SellATRS3(6.0); Input : BuyStoploss(12), SellStoploss(6), BuyTrailing(5), BuyFloor(20), SellTrailing(5),SellFloor(8.5); Input:break(1.9),level(0.3),big(8),sbreak(1.9),slevel(0.3),sbig(8); var:진입후최고가(0),진입후최저가(0); If MarketPosition == 1 Then { 진입후최고가 = Highest(H,BarsSinceEntry + 1); ExitLong("매수추적",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS1); ExitLong("매수변동성",AtStop,C - ATR(BuyATRP) * BuyATRS2); If 진입후최고가 >= Entryprice + ATR(BuyATRP) * break Then { ExitLong("매수손익분기",AtStop,Entryprice + ATR(BuyATRP) * level); ExitLong("매수추적1",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS3); } If 진입후최고가 >= Entryprice + ATR(BuyATRP) * big Then { ExitLong("매수초과수익",AtStop,Lowest(L,3)); } SetStopLoss(BuyStoploss, PointStop); SetStopTrailing(BuyTrailing,BuyFloor,PointStop); } If MarketPosition == -1 Then { 진입후최저가 = Lowest(L,BarsSinceEntry + 1); ExitShort("매도추적",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS1); ExitShort("매도변동성",AtStop,C + ATR(SellATRP) * SellATRS2); If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbreak Then { ExitShort("매도손익분기",AtStop,Entryprice - ATR(SellATRP) * slevel); ExitShort("매도추적1",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS3); } If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbig Then { ExitShort("매도초과수익",AtStop,Highest(H,3)); } SetStopLoss(SellStoploss, PointStop); SetStopTrailing(SellTrailing,SellFloor,PointStop); } If MarketPosition == 0 Then { // 無포일 때 손절 설정을 clear 해야 만 오류가 안 생김 SetStopLoss(0, PointStop); SetStopTrailing(0, 0, PointStop); } If MarketPosition == 1 Then ExitLong("스파이크청산-1", AtLimit, C + ATR(20) * 7); // 상승돌파 시 매수청산 If MarketPosition == -1 Then Exitshort("스파이크청산+1", AtLimit, C - ATR(20) * 7); // 상승돌파 시 매도청산 Var:SpikeHigh(0), spikelow(0); If MarketPosition == 0 Then { // 무포지션일때 SpikeHigh = 10; // 초기화 Spikelow = 10; // 초기화 Condition1 = false; } If MarketPosition == 1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 H > C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = H; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If SpikeHigh < H then SpikeHigh = H; // 신규 고점 나오면 갱신 ExitLong("스파이크청산-2", AtStop, SpikeHigh - ATR(20) * 2); //추적청산처럼 꼭지 찍고 내려올 때 } } If MarketPosition == -1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 L < C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = L; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If Spikelow > H then SpikeHigh = L; // 신규 고점 나오면 갱신 Exitshort("스파이크low청산-2", AtStop, Spikelow + ATR(20) * 2); } }
프로필 이미지
구다이전설
2019-06-18
308
글번호 129547
시스템