커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1379
글번호 230811
답변완료
부틱드립니다
수고하십니다
아래수식에서 시가선도 부탁드립니다
input : 분(30);
var : TT(0),TL(0);
TT=(stime/100)%100%분;
if ((stime >= 210000 and stime <= 240000 ) or (stime <= 050000)) and TT < TT[1] Then
{
TL = TL_New(sDate,sTime,Open,sDate,sTime,0);
TL_SetColor(TL,Black);
TL_SetSize(TL,5);
}
2024-09-04
747
글번호 183143
답변완료
수식 변환 부탁드립니다
수식1
A=EAvg(C, 20) > EAvg(C, 60) and Eavg(C, 60) > EAvg(C, 120);
ValueWhen(1, A(1) and Crossdown(EAvg(C, 20),
EAvg(C, 60)) and EAvg(C, 60) > EAvg(C, 120), EAvg(C, 120))
수식2
A=EAvg(C, 20) < EAvg(C, 60) and Eavg(C, 60) < EAvg(C, 120);
ValueWhen(1, A(1) and CrossUP(EAvg(C, 20),
EAvg(C, 60)) and EAvg(C, 60) < EAvg(C, 120), EAvg(C, 120))
위 수식을 변환 부탁드립니다
2024-09-04
882
글번호 183142
답변완료
기존 갭상승에 대한 질문에 대한 답변중 궁금한 점이 있어 문의드립니다.
답변 감사합니다.
그런데 이해되지 않는 부분이 있어 문의드립니다.
전 당일 첫 1분봉이 갭상승 할 경우 또 그 시작 가격이5일 이평선 위에 있거나
5일 이평선을 돌파할 때의 조건식을 만들고 싶었는데
종가로 하면은 모든게 해결되나요?
종가라는게 전날 장 마감시 가격을 말하는게 아닌가요?
어떻게 당일 첫 1분 봉의 종가라고 판단을 하는건가요?
그리고 종가까지 기다리는게 아니라 이평선을 돌파하는 순간을 찾고 싶습니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 갭상승 조건 수식 문의합니다.
>
안녕하세요
예스스탁입니다.
1
CrossUp(DayIndex(),MA5)에서 DayIndex()는 당일 봉번호입니다.
내용과 맞지 않아 일부수정했습니다.
첫봉에서 이평보다 위거나 상향돌파이므로 첫봉에서 종가가 이평보다 크다라고만 지정하시면 됩니다.
Input : p1(2), p2(3.5);
Var : MA5(0);
MA5 = Ma(C,5);
If sdate != sdate[1] and
DataCompress <= 2 and
DayOpen() >= DayClose(1)*(1+p1/100) and DayOpen() <= DayClose(1)*(1+p2/100) and
c > MA5 Then
Find(1);
2
기본종목검색식 각각에 대한 설명은 별도로 없습니다.
종목검색식의 이름이 기본적인 검색 내용입니다.
즐거운 하루되세요
> 슈퍼월급쟁이 님이 쓴 글입니다.
> 제목 : 갭상승 조건 수식 문의합니다.
> 갭상승이 2~3.5% 사이이고 첫봉(1분봉)이 5일 이평선 위에 있거나 5일 이평선을 돌파하는 것을 찾고 싶어서 작성해 보았습니다.
현재의 검색식이 맞을까요?
Input : p1(2), p2(3.5);
Var : MA5(0);
MA5 = Ma(C,5);
If DayIndex() == 0 and DataCompress <= 2 and DayOpen() >= DayClose(1)*(1+p1/100) and DayOpen() <= DayClose(1)*(1+p2/100) Then
If DayOpen() > MA5 and CrossUp(DayIndex(),MA5) Then
Find(1);
그리고 예스트레이더에 있는 기본 종목 검색에 대한 설명이 있는 메뉴얼이나 자료가 있을까요?
활용하고 싶은데 정확히 어떠한 조건인지를 확인하기 힘들어 문의드립니다.
2024-09-03
859
글번호 183141
답변완료
수식 부탁합니다
오전 7시부터 오전12시까지는 30포인트 스탑로스 손절되게하고,
오전12:01부터 다음날 05:50분까지는 50포인트 스탑로스 손절되게,
즉, 다른 시간대에서 다른 손절 수치로 손절되게 수식을 작성하고 싶습니다.
수식 작성 도와주세요.
2024-09-03
908
글번호 183140
답변완료
정배열
정배열에서
60이평 >120이평,
20이평<60이평 으로 변할 때 처음 캔들의 고가를 이은선 수식 부탁합니다
2024-09-03
822
글번호 183134
답변완료
수식문의?
선행2현재으로이동시킨라인
A=highest(high,shortPeriod)+lowest(low,shortPeriod)+highest(high,midPeriod)+lowest(low,midPeriod))/4;
선행2라인B=shift((highest(high,shortPeriod)+lowest(low,shortPeriod)+highest(high,midPeriod)+lowest(low,midPeriod))/4,midPeriod-1);
crossup(A,B)
키움신호수식인 위수식을 변환해서
선행2현재가격으로이동시킨라인이 선행2라인을 돌파하는 수식과
종목 검색식 부탁드립니다
감사합니다
2024-09-03
747
글번호 183133
답변완료
추가 문의드립니다
먼저 지난 문의 답변을 해주셔서 감사드립니다
알려주신 수식을 검색으로 적용을 해보고 싶은데요
FIND(1) 을 IF 문마다 여러번 작성하면 AND 관계로 검색이 되는건지 궁금합니다,
if TL_GetValue(TLH,sDate,stime) > 0 then
{
value1 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value1) Then CONDITION1= TRUE;
}
하나로 묶어서 하려고 이런식으로 논리형 변수로 TRUE 를 주고 마지막에
IF CONDITION1=TRUE AND CONDITION2=TRUE ... AND CONDITION4=TRUE THEN FIND (1) ; 으로 하니까 에러가 나오네요
그리고 검색식에 적용을 하면 당일에 해당되는것만 나오게 되는건가요??? 검색할때 봉은 500개로 적용했습니다.
예를들어 이평선 CROSSUP 한 조건을 검색하면 오늘 현재만 나오게 되고
COUNTIF 조건으로 5회 이상 이라고 하면 차트 전체를 대상으로 찾게 되나요??
일단 아래처럼 해봤습니다 조금 더 나은 방법이 있는지 궁금합니다
if TL_GetValue(TLH,sDate,stime) > 0 then
{
value1 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value1) Then Find(1);
}
if TL_GetValue(TLH1,sDate,stime) > 0 then
{
value2 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value2) Then Find(1);
}
if TL_GetValue(TLH2,sDate,stime) > 0 then
{
value3 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value3) Then Find(1);
}
if TL_GetValue(TLH3,sDate,stime) > 0 then
{
value4 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value4) Then Find(1);
}
아래는 수식 전체입니다
input : n(10);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TXn(0),txper(0),TXpaa(0),nline(0),tl2(0);
var : txx(0),TXper1(0);
var : hd(0),ht(0),hd1(0),ht1(0),hv(0),hv1(0), LD(0), LT(0), LV (0), LD1(0), LT1(0),LV1(0), TLL(0);
var: TLH(0),TLH1(0),TLH2(0),TLH3(0),TLH4(0);
if CountIf(H >= L*1.08,n) >= 1 Then
{
hh = 0;
hb = 0;
ll = 0;
lb = 0;
For cnt = 0 to n-1
{
if hh == 0 or (hh > 0 and h[cnt] > hh) Then
{
hh = h[cnt];
hb = cnt;
}
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
}
if hB < lB AND ll *1.4 >H and (hh != Var3 and ll != Var4) Then
{
hd = sDate[hb];
ht = sTime[hb];
hv = hh;
hd1 = hd[1];
ht1 = ht[1];
hv1 = hv[1];
if hv1 > 0 Then
{
TLH1 = TLH[1];
TLH2 = TLH1[1];
TLH3 = TLH2[1];
TLH4 = TLH3[1];
//이전 출력된 추세선 중 이전 4번째는 연장선 해제
TL_SetExtRight(TLH4,False);
TLH = TL_new(hd1,ht1,hv1,hd,ht,hv);
//추세선 연장선 적용
TL_SetExtRight(TLH,True);
TL_SetStylE(TLH,2);
IF (HV > HV1*0.9 AND HV < HV1*1.09) OR (HV1 > HV*0.9 AND HV1 <HV*1.09) TheN
TL_SetColoR(TLH,LightGreen);
}
LD = sDatE[LB];
LT = sTimE[LB];
LV = LL;
LD1 = LD[1];
LT1 = LT[1];
LV1 = LV[1];
IF LV1 > 0 TheN
{
TL_SetExtRighT(TLL,FalsE);
TLL= TL_NEW(LD1,LT1,LV1,LD,LT,LV);
TL_SetExtRighT(TLL,TRUE);
TL_SetStylE(TLL,3);
# TL_SetColoR(TLL,LightReD);
}
VAR3 = hh;
VAR4 = ll;
VAR1 = Index[lb];
VAR2 = VAR1[1];
#PLOT22(HH,"고가HH라인",YelloW);
if VAR2 > 0 Then
{
VAR5 = 0;
For cnt = Index-var1 to Index-var2
{
if Var5 == 0 or (Var5 > 0 and h[cnt] > Var5) Then
Var5 = h[cnt];
}
}
if var1 >= Var2 Then
{
TXper= text_new(sDate[lb],sTime[lb],ll,"★");
Text_SetStyle(txper,2,0);
Text_SetSizE(TXPER,18);
Text_SetColor(txper,MagentA);
TXpaa= text_new(sDate[HB],sTime[HB],HH,"★");
Text_SetStyle(TXPAA,2,0);
Text_SetSizE(TXPAA,15);
Text_SetColor(tXPAA,LightGreen);
}
}
}
If VAR5 > 0 Then
{
#plot35(VAR5,"INTER TL HH",Tomato);
# IF CrossUP(C,Var5) Then PLOT34(C,"CROSS구간고가",CyaN);
}
#PLOT11(VAR1,"IndeX",LightGreeN);
#PLOT12(IndeX,"IndeXHB",OrangE);
if TL_GetValue(TLH,sDate,stime) > 0 then
{
value1 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value1) Then FinD(1);
}
if TL_GetValue(TLH1,sDate,stime) > 0 then
{
value2 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value2) Then FinD(1);
}
if TL_GetValue(TLH2,sDate,stime) > 0 then
{
value3 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value3) Then Find(1);
}
if TL_GetValue(TLH3,sDate,stime) > 0 then
{
value4 = TL_GetValue(TLH,sDate,stime);
if CrossUp(c,Value4) Then Find(1);
}
2024-09-03
771
글번호 183132
답변완료
88926
88926 답변 감사드립니다
A B C가 동시에 만족하게 할려면 어떻게 해야 할까요? 다시한번 살펴봐 주시기 바랍니다^^
2024-09-03
717
글번호 183130
답변완료
검색식 부탁드립니다. 감사합니다.
아래 키움식을 예스 종목검색식으로 부탁드리겠습니다.
M20 = ma(C, 20);
M60 = ma(C, 60);
HH = HighestSince(1, Crossup(M20,M60), M20);
이평고점라인 = if ( M20 != HH && M20>M60, HH, 0);
Crossup(C,이평고점라인) && 이평고점라인 !=0
2024-09-03
857
글번호 183119