커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7593
글번호 230811
답변완료
문의드립니다
배포버전 파일을 다른사람에게 기간을 정해서 보내면
혹시 수식을 해킹해서 볼 염려는 없는지 궁금합니다.
상대방이 받아서 저장하면 차트상단의 시스템적용에만 파일이 들어가있고
랭귀지편집기에는 안들어가니 괜찮은 것 같기는한데 혹시나해서
문의 드렸습니다.
그리고 ...
if Condition1 Then
value1 = 1;
if Condition2 Then
value1 = 0;
if value1 == 1 and (a) Then buy();
if Condition1 = ...
if Condition2 = ...
if Condition2 Then
value2 = 1;
if Condition1 Then
value2 = 0;
if value2 == 1 and (a) Then sell();
if Condition1 = ...
if Condition2 = ...
예를 들어서 이런조건일때 첫매수와 두번째 매도이후 첫매수조건 if Condition1 =
가 유지된상태에서 a 만 생성하니 재매수가 나옵니다
if Condition1 = 가 유지되는거 말고 다시 if Condition1 = 가 생성한 다음에
a 조건이 나와야만 재매수하려면
어떻게 해야 하는지 부탁 드립니다.
감사합니다
2013-01-08
293
글번호 57886
답변완료
수식 오류
이격도를 이용하여
아래 지표에서 그 값이 발생하는 지점에 점을 찍고
그 점의 값을 그대로 유지한채 수평으로
n봉간 늘려주는 수식을 추가하고자 문의드렸습니다.
그래서 아래와 같은 수식을 받았습니다만,
그림에서와 같이
그 점들이 봉의 저/고가에 찍혀버리네요.
제가 원한 건
값이 발생한 자리의 값을 그대로 유지한채 수평으로
점을 늘려주는 수식입니다.
input : n(1),n2(100),n3(100),n4(1),n5(100),n6(100),NN(5);
input : n봉(2000);
input : maP1(3),maP2(100),maP3(2),maP4(100);
var : ma1(0),ma2(0),ma3(0),ma4(0),ma11(0);
ma1 = ma(c,maP1);
ma2 = ma(c,maP2);
ma3 = ma(c,maP3);
ma4 = ma(c,maP4);
var1 = ma1/ma2*100;
var11 = ma3/ma4*100;
if var1[n] == lowest(var1,n2)[n] and var1 < n3 and
var1 > var1[1] and var1[1] < var1[2] Then
Condition1 = True;
Else
Condition1 = false;
if countif(Condition1==true,NN) >= 1 Then
plot1(L,"하단");
if var11[n4] == highest(var11,n5)[n4] and var11 > n6 and
var11 < var11[1] and var11[1] > var11[2] Then
Condition2 = True;
Else
Condition2 = false;
if countif(Condition2==true,NN) >= 1 Then
plot2(H,"상단");
2013-01-09
356
글번호 57885
답변완료
다시한번 문의드립니다.
안녕하세요
예스스탁입니다.
1분봉에 적용하시면 됩니다.
시초가에 주문을 내기 위해서는
전일 마지막봉에 if문을 만족시켜
다음날 첫시세 들어올때 주문이 발생시켜야만 합니다.
적용하신 종목의 거래가 없어 15시에 거래가 없으면
해당종목은 주문이 나가지 않습니다.
input : 투입금액(1000000);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else
UpLimit = (BP[0] * 1.15);
if CodeCategory() == 2 then {
if date >= 20030721 then {
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
}
else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
}
}
Else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else
상한가 = iff(up6>=5000, up5, up6);
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
#수량계산
if CodeCategory == 1 Then{
if BasePrice < 50000 Then
Var1 = int(int((투입금액*0.5)/C)/10)*10;
Else
Var1 = int((투입금액*0.5)/C);
}
if CodeCategory == 2 or CodeCategory == 8 Then
Var1 = int(투입금액/C);
#시가신호
if stime == 150000 and dayhigh >= 상한가 Then
buy("b1",AtMarket,def,var1);
#전일종가-3%
if MarketPosition == 1 Then
buy("b2",atlimit,DayClose(1)*0.97,var1);
#매도
if MarketPosition == 1 Then{
#시가신호만 발생했을때
if maxEntries == 1 Then{
exitlong("bx",AtStop,EntryPrice*0.9);
}
#추가매수도 된경우
if MaxEntries == 2 Then{
if CodeCategory == 1 and BasePrice < 50000 Then{
value1 = int(int(MaxContracts*0.5)/10)*10;
value2 = int(int(MaxContracts*0.25)/10)*10;
}
Else{
value1 = int(int(MaxContracts*0.5)/10)*10;
value2 = int(int(MaxContracts*0.25)/10)*10;
}
if countif(crossup(PositionProfit,투입금액*0.1),BarsSinceEntry) == 1 and crossup(PositionProfit,투입금액*0.1) Then
exitlong("bx1",OnClose,def,"",value1,1);
if countif(crossup(PositionProfit,투입금액*0.2),BarsSinceEntry) == 1 and crossup(PositionProfit,투입금액*0.2) Then
exitlong("bx2",OnClose,def,"",value2,1);
if countif(crossup(PositionProfit,투입금액*0.3),BarsSinceEntry) == 1 and crossup(PositionProfit,투입금액*0.3) Then
exitlong("bx3");
if CurrentContracts < MaxContracts Then
exitlong("bx4",AtStop,highest(H,BarsSinceEntry)*0.9);
}
}
전일 상한가친 종목에 대한 매매방법에 대해서 다음과 같이 코딩해 주셨는데요
1분봉상에서 시뮬레이션이 안되서 다시한번 문의 드립니다.
코딩 점검 부탁드립니다.
2013-01-07
348
글번호 57884
안전 님에 의해서 삭제되었습니다.
2013-01-07
11
글번호 57868
답변완료
수식부탁합니다.
매수진입식 2가지 부탁합니다.
1.일봉에서 스토캐스틱 5의 GC에서 매수하되
직전봉 10개 구간에서 전일저가 대비 당일저가가 2% 이상 급락한 흔적이 있은후
(=즉,10개의 봉중 연속된 2개의 봉에서 한번이라도 2%이상의 급락흔적이 있어야 함)
나타난 스톡 5의 GC시만 매수하는 식
2.일봉상 일목균형표에서
ⓐ봉이 "처음으로" 구름층을 상향돌파하고
ⓑ시가와 종가가 모두 구름층 위에 있어야 하며
ⓒ양봉인 경우만 매수
이때 봉이 처음으로 구름층을 상향돌파한다는 것은 봉이 갭으로 돌파한 경우도 포함해야 함.
미리 감사하옵고 부탁드립니다.
2013-01-07
281
글번호 57867
답변완료
체결량 관련
항상 신속하고 상세하게 답변 주셔서 많은 도움이 되고 있습니다.
감사합니다.
선물 분봉에 적용하고자 합니다.
건당 매수 체결 물량이 20개 상인 건수가
봉당 10개를 초과하면 매수
반대로 매도 체결량이 건당 20개 넘는 건이
봉당 10 초과하면 매도하는
시스템 식 부탁드립니다.
2013-01-07
313
글번호 57866
회원 님에 의해서 삭제되었습니다.
2013-01-07
8
글번호 57865
답변완료
수식 문의
이격도를 이용하여 아래와 같은 지표을 만들었습니다.
그런데,
아래 지표에서 그 값이 발생하는 지점에
점을 찍고 그 점을 n봉간 늘려주는 수식을 추가하고 싶습니다.
잘 안되네요.
부탁좀 드리겠습니다.
^^
input : n(1),n2(100),n3(100),n4(1),n5(100),n6(100);
input : n봉(2000);
input : maP1(3),maP2(100),maP3(2),maP4(100);
var : ma1(0),ma2(0),ma3(0),ma4(0),ma11(0);
ma1 = ma(c,maP1);
ma2 = ma(c,maP2);
ma3 = ma(c,maP3);
ma4 = ma(c,maP4);
var1 = ma1/ma2*100;
var11 = ma3/ma4*100;
if var1[n] == lowest(var1,n2)[n] and var1 < n3 and
var1 > var1[1] and var1[1] < var1[2] Then
plot1(L,"하단");
if var11[n4] == highest(var11,n5)[n4] and var11 > n6 and
var11 < var11[1] and var11[1] > var11[2] Then
plot2(H,"상단");
2013-01-07
284
글번호 57862
답변완료
문의드립니다
어제의 마지막 신호는 그것으로 끝내고,
오늘 아침부터 새로이 신호를 발생시키고 싶은데
어떻게 해야 하나요?
즉 어제 마지막 신호가 상승 신호였어도
오늘 아침부터 조건에 부합하기만 하면
상승 신호가 나오게 할 수 있는지요?
2013-01-07
284
글번호 57861