커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8144
글번호 230811
답변완료
신호가 전혀 발생하지 않는데요?
*62203에서 문의드린대로 작성해주신 수식을 적용해보니
진입이 전혀 이루어지지 않습니다..ㅠㅠ
2019-04-23
293
글번호 128043
답변완료
문의합니다.
아래는 스톡 수식입니다
이 지표로 매일 매일 장 시작 부터 적용될수 있도록 부탁드립니다.
input : 분(10),Sto1(10),Sto2(5),Sto3(5);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0), Hv(0), LV(0), FK(0), SK(0), SD(0);
var : Ep1(0), EP2(0), JISU(0), DINDEX(0), PreSK(0), PreSD(0);
Array : HH[50](0),LL[50](0);
Ep1 = 2/(sto2+1);
Ep2 = 2/(sto3+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TimeToMinutes(stime)%분;
if bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) or stime == 154500 Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[sto1-1] > 0 and LL[sto1-1] > 0 then
{
if bdate != bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) or stime == 154500 Then{
DINDEX = DINDEX+1;
PreSK = SK[1];
PreSD = SD[1];
}
Hv = HH[0];
LV = LL[0];
for cnt = 0 to sto1-1 {
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
FK = (C-LV)/(HV-LV)*100;
if DINDEX <= 1 then
{
SK = FK;
SD = SK;
}
else
{
SK = FK * EP1 + PreSK * (1-EP1);
SD = SK * EP2 + PreSD * (1-EP2);
}
if SK > SD Then
{
value1 = 1;
value2 = -1;
}
Else
{
value1 = -1;
value2 = 1;
}
plot1(value1);
plot2(value2);
}
}
2019-04-23
327
글번호 128042
답변완료
다시 정리 해서 올려드려요 항상 신경써주셔서 감사합니다
당일 매수 당일 청산하는 시스템이며
시스템 진입신호는
시스템1호 아이디어는 - 전일종가대비 하락해서 5%이상 하락하구 추적해서 적정%에 매수하는 시스템입니다
시스템 2호 아이디어는 - 금일 시가대비 하락해서 5%이상 하락하구 추적해서 적정%에 매수하는 시스템입니다
시스템1호.전일 종가대비 저점이 5%이상 하락시 트레일링으로 추적해서 바닦에서 2%상승시 매수 3%상승시 피라미딩 매수 입니다
시스템2호. 금일 시가대비 저점이 5%이상 하락시 트레일링으로 추적해서 바닦에서 2%상승시 매수 3%상승시 피라미딩 매수 입니다
----------------------------------------------------------------------------------------------
감시신호는
감시1신호는
전일 종가대비 3%하락시 감시1발생
전일 종가대바 5%하락시 감시2발생
전일 종가대비 7%하락시 감시3발생 입니다
감시2신호는
전일 시가대비 3%하락시 감시1발생
전일 시가대바 5%하락시 감시2발생
전일 시가대비 7%하락시 감시3발생 입니다
신경써주셔서 감사합니다
2019-04-23
302
글번호 128035
답변완료
질문드립니다.
a,b,c라는 진입조건이 순서대로 피라미딩으로 진입합니다.
원하는식은 아래와같습니다.
a라는 진입조건에서 10% 수익발생시 a라는 진입물량의 80%를 청산하고싶습니다.
b라는 진입조건에서 10% 수익발생시 b라는 진입물량의 80%를 청산하고싶습니다.
c라는 진입조건에서 10% 수익발생시 c라는 진입물량의 80%를 청산하고싶습니다.
위 조건을 구현해보기위해 이렇게 짜보았었습니다.
If MarketPosition == 1 Then{
If LatestEntryName(0) == "a" Then
ExitLong("개별청",AtLimit,LatestEntryPrice(0)*1.05,"a",Floor(CurrentContracts*0.8),1);}
위와같이 짜보았는데 50% 청산이 제대로 안나가네요. 물량의 50%만 팔아야하는데 전부팔아버리거나 1주를 남기고 99.8%가량의 물량을 청산해버립니다.
위 조건은 선물이 아니라 주식에서 실행하였습니다.
피라미딩 조건은 다른진입신호만 허용으로 체크해놓았는데 피라미딩이 문제인건지... 당최 이해가안가네요.
2. 진입 평균가에서 5%수익시 50% 청산식인데 이것역시 제대로 안나가네요. 모든물량을 팔아버리는 수준입니다.
if MarketPosition == 1 Then{
Exitlong("반청",AtLimit,EntryPrice*1.05,"",Floor(CurrentContracts*0.5),1);
}
2019-04-23
302
글번호 128034
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
가격이 n틱 이상 올랐을 때만 본절청산식 쓰려면요.
아래 수식 맞나요?
input:
최소가격상승틱(10),
본절비용틱(2);
If marketPosition == 1 Then
{
if H > EntryPrice + 최소가격상승틱 * PriceScale then
{
청산틱 = EntryPrice + 본절비용틱(2) * PriceScale;
}
exitlong("bx1",atlimit,청산틱);
}
2019-04-23
285
글번호 128033
답변완료
항셍관련지표6
안녕하세요 관리자님!!
번거롭게 자꾸 질의드려서 대단히 죄송합니다.
아래서식은 관리자님이 보내주신 수식인데 요일별로 계산될수있게 수정 부탁드립니다.
- 아 래 -
input : P(520);
var : HH(0),LL(0),ww(0),cnt(0);
var : sum(0),mav(0),sumsqrt(0),stdv(0);
Array : RR[600](-9999999);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
HH = H;
LL = L;
RR[0] = HH-LL;
for cnt = 1 to 599
{
RR[cnt] = RR[cnt-1][1];
}
}
if stime >= 101500 and stime < 110000 Then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
RR[0] = HH-LL;
}
if RR[p] != -9999999 then
{
sum = 0;
for cnt = 0 to P-1
{
sum = sum + RR[cnt];
}
mav = sum/P;
SumSqrt = 0;
For cnt = 0 To P - 1
{
SumSqrt = SumSqrt + (RR[cnt]-mav)^2;
}
Stdv = SquareRoot(SumSqrt / P);
plot1(mav);
plot2(mav+stdv*2);
plot3(mav+stdv*1);
plot4(mav-stdv*1);
plot5(mav-stdv*2);
}
2019-04-22
311
글번호 128032
답변완료
수식문의드립니다
1번
키움조건식 예스로 변경부탁드립니다
Sto=stochasticsslow(sto1,sto2);
StoS=eavg(Sto,sto3);
S=sum(1);
G1=valuewhen(1,crossup(Sto,Stos),Sto);
G1s=valuewhen(1,crossup(Sto,Stos),S);
G2=valuewhen(2,crossup(Sto,Stos),Sto);
G2s=valuewhen(2,crossup(Sto,Stos),s);
조건=G1>G2 && G1s>G2s && G1>50 && G2<50;
조건 && !조건(1)
sto1 5
sto2 3
sto3 3
2번
캔들 최근 30봉이내에서 7봉~10봉내 캔들이
20봉~25봉 캔들 종가 보다 높으면 매수신호 나오게 가능할까요?
항상 감사드립니다
2019-04-22
338
글번호 128031
답변완료
문의
1
if (sdate != sdate[1] and stime >= 101500) or
(sdate != sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
var1 = O;
var2 = TimeToMinutes(101500);
Condition1 = false;
Condition2 = false;
}
if TimeToMinutes(stime) <= var2+5 then
{
if H >= var1+20 Then
Condition1 = true;
if L <= var1-20 Then
Condition1 = true;
}
if Condition1 == true then
{
plot1(var1+20);
plot2(var1+40);
plot3(var1+60);
}
if Condition2 == true then
{
plot3(var1-20);
plot4(var1-40);
plot5(var1-60);
}
이수식에서 오전10시15분 시가가 더해져야되는데 안되어서 그런지 단순하게 20.40.60이렇게 나옵니다, 예를들면 10시15분 첫번째 오전장이 시작햇을때 시가가 21000이라면 21000+20인 21020, 시가+40인 경우는 ,21040이런식으로 나와야 되는데 그냥 단순하게 20,40,60이런식으로 나오니 교정부탁드립니다
2019-04-22
272
글번호 128030
답변완료
항셍관련지표5
안녕하세요 관리자님
아래의 보내주신 수식 잘받았습니다.
다름이 아니오라 이를 조금 변형하여 요일별로 10:15~11:00까지의 움직임의 평균변동폭, 평균변동폭+표준편차, 평균변동폭+(2*표준편차)를 구하여 지표로 표현하고 싶습니다.
꼭 요일별로 부탁드립니다.
수정부탁드립니다.
- 아 래 -
input : P(520);
var : HH(0),LL(0),ww(0),cnt(0);
var : sum(0),mav(0),sumsqrt(0),stdv(0);
Array : RR[600](-9999999);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
HH = H;
LL = L;
RR[0] = HH-LL;
for cnt = 1 to 599
{
RR[cnt] = RR[cnt-1][1];
}
}
if stime >= 101500 and stime < 110000 Then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
RR[0] = HH-LL;
}
if RR[p] != -9999999 then
{
sum = 0;
for cnt = 0 to P-1
{
sum = sum + RR[cnt];
}
mav = sum/P;
SumSqrt = 0;
For cnt = 0 To P - 1
{
SumSqrt = SumSqrt + (RR[cnt]-mav)^2;
}
Stdv = SquareRoot(SumSqrt / P);
plot1(mav);
plot2(mav+stdv*2);
plot3(mav+stdv*1);
plot4(mav-stdv*1);
plot5(mav-stdv*2);
}
2019-04-22
314
글번호 128029