커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8141
글번호 230811
답변완료
문의드립니다.
강조에 표기를 원합니다.
일목균형표에서 후행스팬이 일목균형표의 기준선을 상향 돌파시 "IL=BUY"
일목균형표에서 후행스팬이 일목균형표의 기준선을 하향 돌파시 "IL=SELL"
그리고, 5일선이 일목의 기준선 상향 돌파시 "5=BUY"
5일선이 일목의 기준선 하양 돌파시 " 5=SELL"
그리고 5일선이 볼린져밴드의 하행선을 하향으로 돌파시 "5=BSELL"
그리고 5일선이 볼린져밴드의 상행선을 하향으로 돌파시 "5=BUSELL"
그리고 5일선이 볼린져밴드의 하행선 터치하고 상향으로 돌파시 "5=BBUY"
이렇게 표기하는 수식 부탁 드립니다.
수고하세요.
2020-04-08
1014
글번호 137674
답변완료
dayindex=0,1,2,..일때 주문진입신호명을 b0, b1,b2... 으로 표시방법?
항상 도움주셔서 감사드립니다.
dayindex=0 일때 buy 함수에서 주문진입신호명을 "b0"
dayindex=1 일때 buy 함수에서 "b1"
dayindex=2 일때 buy 함수에서 "b2"
dayindex=3 일때 buy 함수에서 "b3"
:
:
으로 표시하고 싶습니다. dayindex값을 간단한 text함수로 바꿔주는 방법이 있을까요?
2020-04-07
946
글번호 137673
답변완료
수식 수정 부탁드립니다.
var : Condition1(false),Condition2(false),Condition3(false);
if MarketPosition == 0 then
{
if NextBarSdate != sdate Then
{
buy("시가매수",AtMarket,dayopen,1);
}
}
Else If MarketPosition == 1 Then
{
#시가 대비 -1% 하락시 -3% 까지 1주씩 매수
if dayopen *0.99 >= c and Condition1 == False then
{
Condition1 = True;
buy("1% 하락 매수",atlimit,dayopen *0.99,1);
}
else if dayopen *0.98 >= c and Condition1 == false then
{
Condition2 = True;
buy("2% 하락 매수",atlimit,dayopen *0.98,1);
}
else if dayopen *0.97 >= c and Condition3 == false then
{
Condition3 = True;
buy("3% 하락 매수",atlimit,dayopen *0.97,1);
}
}
시가 매수후
시가에서 -3%까지 -1%하락할때마다 1주씩 매수를 해야되는데
시가 매수는 되는데 시가에서 하락할때마다 매수는 안되네요;
(Condition 들은 같은 가격에서 재매수 금지를 위해 넣었습니다
이걸 뺀다고 해도 가격 하락시에 매수는 되지 않네요;)
문법상 오류는 없는거 같은데 어떤 문제때문인가요?
2020-04-07
928
글번호 137672
답변완료
지표식 문의드립니다
안녕하세요 관리자님!!
보내주신 아래서식은 잘쓰고 있습니다..
아래의 식은 장중발생하는 (고가+저가)/2의 값을 표현하는건데 이를 응용하여 ntime 중 발생하는 (고가+신고가)/2, (저가+신저가)/2 의 값을 구현하고 싶습니다.
도와주세요!!!
- 아래 -
input : P(20),Dv(6),ntime(60);
var : cnt(0),S1(0),D1(0),TM(0),TF(0),hh(0),ll(0),mm(0);
var1 = BollBandUp(P,dv);
var2 = BollBandDown(P,dv);
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)%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
hh = h;
ll = l;
}
if h > hh Then
hh = h;
if l < ll Then
ll = l;
mm = (hh+ll)/2;
if mm != mm[1] Then
{
value1 = var1;
value2 = var2;
}
plot1(value1,"상한");
plot2(value2,"하한");
}
2020-04-07
880
글번호 137671
수색대대 님에 의해서 삭제되었습니다.
2020-04-07
1
글번호 137669
답변완료
지표문의
1.안녕하세요
아래는 CSar지표인데요.
수평연장선이 고가지점, 저가지점 대비 2등분으로 표시 되는데 3등분으로 보구 싶어요.
지표 수정 좀해 주세요.
아울러 등분 나누는 방법두 좀 알려주세요.
input : af(0.02), maxAF(0.2),추세선두께(5),추세선색1(RED),추세선색2(BLUE),연장선두께(2),연장선색(blue);
input : 텍스트출력(1);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0);
var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0);
var : TL1(0),TL2(0),cnt(0),count(0);
var : TL3(0),TL4(0),TL5(0),TL6(0),tx1(0),tx2(0),tx11(0),tx22(0);
Var : TL11(0),TL22(0);
var1 = CSar(af,maxAF);
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
HH1 = HH[1];
HD1 = HD[1];
HT1 = HT[1];
if LL > 0 Then
{
TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
TL3 = TL_new(HD[1],HT[1],HH[1],sdate,stime,HH[1]);
TL4 = TL_new(HD[1],HT[1],(HH[1]+LL)/2,sdate,stime,(HH[1]+LL)/2);
TL5 = TL_new(HD[1],HT[1],LL,sdate,stime,LL);
TL6 = TL_new(HD[1],HT[1],HH[1]+(HH[1]-LL[1])/2,sdate,stime,HH[1]+(HH[1]-LL)/2);
//추세선 오른쪽 연장설정
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
TL_SetExtRight(TL6,true);
if 텍스트출력 == 1 then
{
Tx11 = Text_New(HD1,HT1,HH1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(HH1,2));
Text_SetStyle(tx11,2,1);
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
}
}
TL11 = TL_New(HD1,HT1,HH1,HD,HT,HH);
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
LL1 = LL[1];
LD1 = LD[1];
LT1 = LT[1];
if HH > 0 Then
{
TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
TL3 = TL_new(LD[1],LT[1],HH,sdate,stime,HH);
TL4 = TL_new(LD[1],LT[1],(HH+LL[1])/2,sdate,stime,(HH+LL[1])/2);
TL5 = TL_new(LD[1],LT[1],LL[1],sdate,stime,LL[1]);
TL6 = TL_new(LD[1],LT[1],LL[1]-(HH-LL[1])/2,sdate,stime,LL[1]-(HH-LL[1])/2);
//추세선 오른쪽 연장설정
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
TL_SetExtRight(TL6,true);
if 텍스트출력 == 1 then
{
Tx22 = Text_New(LD1,LT1,LL1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(LL1,2));
Text_SetStyle(tx22,2,0);
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
}
}
TL22 = TL_New(LD1,LT1,LL1,LD,LT,LL);
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
TL_SetEnd(TL1,HD,HT,HH);
TL_SetEnd(TL11,HD,HT,HH);
if 텍스트출력 == 1 then
{
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
}
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
TL_SetEnd(TL2,LD,LT,LL);
TL_SetEnd(TL22,LD,LT,LL);
if 텍스트출력 == 1 then
{
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
}
}
}
#추세선 두께, 색상
TL_SetSize(TL1,추세선두께);
TL_SetSize(TL11,추세선두께);
TL_SetSize(TL2,추세선두께);
TL_SetSize(TL22,추세선두께);
TL_SetColor(TL1,추세선색1);
TL_SetColor(TL11,추세선색1);
TL_SetColor(TL2,추세선색2);
TL_SetColor(TL22,추세선색2);
#연장선 두께, 색상
TL_SetSize(TL3,연장선두께);
TL_SetSize(TL4,연장선두께);
TL_SetSize(TL5,연장선두께);
TL_SetSize(TL6,연장선두께);
TL_SetColor(TL3,연장선색);
TL_SetColor(TL4,연장선색);
TL_SetColor(TL5,연장선색);
TL_SetColor(TL6,연장선색);
3.그럼 수고하셍세요
2020-04-07
873
글번호 137668
답변완료
질문드립니다
input : tick(300),P(15);
var : S1(0),D1(0),TM(0),TF(0),idx(0),bars(0);
var : cnt(0),sum1(0),mav1(0);
Array : C1[100](0);
bars = floor(tick/BarInterval);
if Bdate != Bdate[1] Then
{
idx = 0;
D1 = sdate;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%bars;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P] > 0 then{
sum1 = 0;
for cnt = 0 to P-1{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
plot1(mav1);
}
}
위 수식으로 만들어진 선에
15이평선이 닿았을 때,
음성신호가 한번만 나오게 하고 싶습니다.
가능할까요?
2020-04-07
741
글번호 137667
2wnwn 님에 의해서 삭제되었습니다.
2020-04-07
11
글번호 137666
답변완료
문의드립니다.
inputs: ATRLength(100), ATRMult(5), Strength(100);
vars: strend(0),st(0);
st = SuperTrend(ATRLength, ATRMult, Strength, strend);
Plot1(st+atr(ATRLength)*ATRMult,"Up",iff(strend == 1,red,blue));
Plot2(st-atr(ATRLength)*ATRMult,"Down",iff(strend == 1,red,blue));
Plot3(st,"SuperTrend",iff(strend == 1,red,blue));
안녕하세요
상기 지표를 컴파일하려고 하는데
4번째 줄, 6열에서 선언되지 않은 이름 'SuperTrend'이(가) 사용되었습니다
라는 문구가 뜨고 있습니다.
어떻게 수정해야 검증할 수 있을지 문의드립니다. 감사합니다.
2020-04-07
701
글번호 137665