커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7894
글번호 230811
답변완료
안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
안녕하세요!
참조데이터 사용에 대해 궁금한게 있어 문의글을 남깁니다.
현재 길이를 다르게한 참조데이터를 사용해서 트레이딩을 진행중에 있는데요.
많이 혼동이 되는 부분이 있습니다.
예를 들어 A1와 B1, 그리고 C1 라는 변수를 선언을 하였는데
A는 직접적으로 DATA2를 사용하는 변수 이기 때문에
선언식에도 A1(0, DATA2)로 선언하고,
대입식에도 A1 = DATA2(MA(C, 20)); 이렇게 하고 있는데
문제는 B1와 C1의 경우
B1는 현재 데이터와 비교하는 변수이기 때문에 DATA1과 DATA2의 결과값을 같이 저장하고
C1는 C1 = C1 + A1; 처럼 FOR문을 사용할때 DATA2를 사용하는
A를 계속 더해주는 변수입니다.
이처럼 B1와 C1의 경우도 선언할때 DATA2를 지정해야하는지요?
그리고 사용할때
B1 = C(DATA1 종가) + DATA2(A1);
C1 = C1 + DATA2(A1);
이런식으로 DATA2를 참조하는 변수를 사용할 때 마다 이렇게 표기를
해야하는건지 궁금합니다!
2021-04-13
893
글번호 147954
답변완료
문의
당일고점에서 1포인트 이하 내려오면
캔들은 음봉이면서 거래량은 앞봉보다 더큰 캔들 고저점에 횡선이 나오게 해주시고 ,다음봉부터 다시 그런현상이 생기면 앞봉의 선은 없애주고 새캔들에 고저점에 선이 나오게 부탁드립니다.고점에서 1포인트 내려오게 하는것은 나중에 조정할수 잇도록 변수로 해서 부탁드립니다.
2021-04-13
781
글번호 147953
답변완료
문의 드립니다.
문의 드립니다.
매수 : 고가가 3% 이상인봉 발생시 매수(1차)
매수 : 고가가 3% 이상인봉 발생후 첫번째 봉의 시가가 3% 이상인봉의 종가보다 낮을시 시가에 매수(2차)
청산 : 매수한 고가가 3% 이상인봉의 종가 도달 시 청산
청산 : 09시 30분 청산
2021-04-12
775
글번호 147952
답변완료
시스템식부탁드립니다
[시스템 내용]
1. 최초매수 - 20이평-60이평 데드크로스 발생시 최초100주 매수합니다.
매수청산 - 직전 집입 또는 청산 거래가격의 4% 상승시 10주씩 분할청산 합니다.
추가매수 - 직전 집입 또는 청산 가격의 3% 하락시 10주씩 추가매수 합니다.
2. 보유수량이 모두 청산 되면 다시 20이평 60이평 데드크로스 발생시 100주매수 다시 10주씩 분할 매수매도를 반복하는 시스템을 만들고 싶습니다.
즐거운 하루 되세요~~
2021-04-12
905
글번호 147951
2wnwn 님에 의해서 삭제되었습니다.
2021-04-12
8
글번호 147950
답변완료
수식확인 요청
수식을 수정해 주셨는데, 신호가 전혀 잡히지 않아, 첫번째 매수에 있는 LatestEntryPrice(0)*0.98 식을 삭제하고 했더니 매수가 잡히긴 했으나, 두번째 매수부터는 전혀 진행되지 않았습니다...
그리고 매도는 RSI 80이상일시 50프로 매도후에, 나머지는 파라볼릭 sar 매도점이 나오면 바로 올매도 하는식으로 바꾸고 싶습니다.
Input : 투자금액(10000000),RSIP(14), P1(5), P2(25), P3(100), 시작일(20210407),시작시간(073000);
var : value(0),e(0),x(0),count(0),Vma(0), Tcond(false);
var : Rsiv(0),vv(0), Entry(0), mav1(0);
var1 = ma(C,p1);
var2 = ma(C,p2);
var3 = ma(C,p3);
var4 = sar(0.02,0.2);
mav1 = ma(C,30);
Rsiv = RSI(RSIP);
if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then
Tcond = true;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
count = count+1;
if sdate >= 시작일 and stime >= 시작시간 Then
Tcond = true;
if Tcond == true then
{
if crossup(c,var4) Then
Entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if MarketPosition == 0 and Entry < 1 and var1 > var2 and Rsiv < 60 and C > var4 Then
buy("b1",OnClose,DEF,Floor((투자금액*0.1)/min(NextBarOpen,LatestEntryPrice(0)*0.98)));
if MarketPosition == 0 and MaxEntries == 1 Then
buy("b2",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.1)/min(NextBarOpen,LatestEntryPrice(0)*0.98)));
if MarketPosition == 0 and MaxEntries == 2 Then
buy("b3",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.2)/min(NextBarOpen,LatestEntryPrice(0)*0.98)));
if MarketPosition == 0 and MaxEntries == 3 Then
buy("b4",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.2)/min(NextBarOpen,LatestEntryPrice(0)*0.98)));
if MarketPosition == 0 and MaxEntries == 4 Then
buy("b5",atlimit,LatestEntryPrice(0)*0.98,Floor((투자금액*0.4)/min(NextBarOpen,LatestEntryPrice(0)*0.98)));
if MarketPosition == 1 and Rsiv > 55 and var1 > var2 and var2 > var3 and C < var4 Then
exitlong("s");
}
2021-04-12
740
글번호 147949
답변완료
71823 재문의 답변 바랍니다
감사합니다
2021-04-12
804
글번호 147947
답변완료
수식 질문드립니다.
아래 식에서 익절이나,손절, exit 후에는 condi 를 0으로 바꿀 방법이 있을지 궁금합니다.
부탁드립니다.
감사합니다 !!
-----------------------------
if sDate != sDate[1] Then
{
condi = 0;
condi = condi[0];
}
if average((c2+c3),20)>way Then
condi = 1;
if average((c2+c3),20)<-way Then
condi = -1;
if Data1(sTime >= 90000 and sTime < value3 and entry < aptny)and (Tcond == true) Then
{
if condi== 1 and CrossDown(c,ma(c,60))
then
Sell();
if condi == -1 and CrossUp(c,ma(c,60))
then
Buy() ;
}
SetStopEndofday(EndTime);
SetStopProfittarget(익절,PointStop);
SetStoploss(손절,PointStop);
2021-04-12
894
글번호 147946
답변완료
다시 한 번 여쭤 봅니다.
input : 연속봉수(4);
var : 양(False),음(False),S(-1);
양=C>O;
음=C<O;
if 음[1] == true and 양 == true Then
{
S = 0;
}
Else
{
if S >= 0 Then
S = S+1;
}
if S >= 연속봉수 && 양[1] == true && 음 == true Then
var1 = O;
Plot1(var1);
71910 에 답변 감사 합니다.
죄송 합니다. 또 하나 더 이 수식에서
여기를 돌파한 (당일) 검색 할 수 있는 검색식도 부탁 드립니다.
부탁 드립니다.
2021-04-13
677
글번호 147945