커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7706
글번호 230811
답변완료
Accum(1)에 관하여
아래와 같이 두가지 경우를 디버깅해보았습니다
결과가 똑같이 나오던데요
예제 1
AA = Accum(1);
MessageLog("%f ",AA);
에제 2
AA = Accum(1);
AA = Accum(1);
MessageLog("%f ",AA);
아래 내용은 예스랭귀지에서 제공하는 Accum의 사용자 함수입니다
Inputs : Price(NumericSeries);
Var : Value_Accum(0);
if CurrentBar > 1 then
Value_Accum = Value_Accum + Price;
else
Value_Accum = Price;
Accum = Value_Accum;
이 내용만 보면 단순히 카운터 하는 것 같은데
그럼 Accum(1)을 두번호출하면 두배의 값이 증가해야하는 거아닌가요?
답변 부탁드립니다^^
2011-08-29
595
글번호 42266
답변완료
행복; 수식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
< 질문 1 >
지표식 작성 바랍니다
주기; 일봉
1일전 A 조건이고
3일전 B 조건이고
6일전 C 조건이고
8일전 D 조건일 때
지표식에 1을 표시하고자 합니다
< 질문 2 >
- Dayclose 와 closeD 와 C 의 차이는 무엇인가요?
사용하는 기준봉이 다른 것인가요?
- Dayclose(1)와 Dayclose[1]를 모두 사용할 수 있는지요?
어떠한 경우에 ( ) 을 사용하고
어떠한 경우에 [ ] 을 사용하는지요?
2011-08-29
588
글번호 42265
답변완료
문의드립니다.
안녕하세요.
30분봉에서 월봉의 시초가를 출력하고
이 시초가를 기준으로 아래 위로 5포인트 폭을 출력하고 싶습니다.
수고하세요.
2011-08-28
612
글번호 42264
답변완료
검색식 질문드립니다~
최근 1년간의 누적수익률이 높은 순서대로
상위 1000개 종목까지 검색할수 있도록 할수있는 수식이 가능할까요?..
코스피 코스닥 종목 상관없이 될수있으면 좋을것 같습니다..
2011-08-28
582
글번호 42263
답변완료
시스템식부탁드립니다
수고하십니다.
2시반이후에는 매수,매도 신호가 발생해도 시장가로도 체결이 안되는군요.이시간에 팔수있도록 시스템식을 만들어 주십시오.
감사합니다.
2011-08-28
617
글번호 42262
답변완료
간단한 질문.
var1 = abs(c-o) / h-l ;
var2 = abs(c-o) ;
var3 = h-l ;
var2 = abs(c-o) ;
var3 = h-l ;
var1 = var2 / var3 ;
1)
일봉 챠트에서 위식과 아래식 값이 틀립니다 왜 그런지요.
그리고 그리고 갭상일때 (if dayopen > dayhigh(1) 조건추가시)
var1의 값을 배열변수로 모두 저장해 주려면
어떻게 작성해야 하나요.
2) netprofit 함수를 사용시
당일 거래 값만 불러 오려면 어떻게 해야 하나요?
3) 현재 포지션이 있을때 ATR 추적 청산을 걸어 놨다면,,,
ATR 추적 청산되는 지점을 눈으로 보기위해 지표로 표시되게 하려면
어떻게 해야하는지요...
2011-08-29
678
글번호 42261
답변완료
부탁드립니다-------------
if MarketPosition == 1 Then {
ExitLong("수익", atlimit, entryPrice+PriceScale*이익);
exitlong("bxxxxx",atstop,entryPrice-PriceScale*손절);
}
if MarketPosition == 1 or var77 < var77[1] Then
aa = 999999;
#매도
if MarketPosition == 0 and stime < 150000 and Condition1 then {
if var77 <= var77[1]-전봉차 and CountIF(Bchan==Bchan[1],수평) == 수평 Then
bb = BCHAN - PriceScale*진입가;
sell("매도",atstop, bb);
}
LowV = Lowest(L,BarsSinceEntry);
if MarketPosition == -1 Then {
ExitShort("도익", atlimit, entryPrice-PriceScale*이익);
exitshort("sxxxxx",atstop,entryPrice+PriceScale*손절);
}
if MarketPosition == -1 or var77 > var77[1] Then
bb = 0.000001;
위에보면 매수익절의경우 익절가격에 매도호가가 없어도 익절한것으로 되는것같은데요
예를들어 231.50에 매수익절 일경우 231.50에 매도호가가있어야만 익절청산되게해주세요
매도 익절도 마찬가지로요
2011-08-28
583
글번호 42260
블랙홀999 님에 의해서 삭제되었습니다.
2011-08-28
36
글번호 42259
답변완료
문의드립니다
아래의 지표식은 일봉에서 월봉의 값을 불러온 내용입니다.
또한 비슷한 수식으로 일봉에서 주봉을 불러온 내용과 겹치는 부분이 있어
정확한 표기가 안되네요...(일봉에서 월봉 및 주봉의 내용을 불러옴)
아래의 수식을 일봉에서 아래 월봉의 수식과 다른표기로 주봉의 수식으로
변경을 해주시기 바랍니다.
(아래수식중 var7, value1,value2,value3 의 내용이 주봉의 수식과 중복이
되는것 같습니다)
input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60),
Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60);
var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0),cnt(0);
Var : Sum1(0), Counter1(0), CSum1(0),Wma1(0),SumSqrt1(0),Std1(0);
Var : Sum2(0), Counter2(0), CSum2(0),Wma2(0),SumSqrt2(0),Std2(0);
Var : Sum3(0), Counter3(0), CSum3(0),Wma3(0),SumSqrt3(0),Std3(0);
Var : Sum4(0), Counter4(0), CSum4(0),Wma4(0),SumSqrt4(0),Std4(0);
Var : Sum5(0), Counter5(0), CSum5(0),Wma5(0),SumSqrt5(0),Std5(0);
Var : Sum6(0), Counter6(0), CSum6(0),Wma6(0),SumSqrt6(0),Std6(0);
Array : HH[70](0),CC[70](0),LL[70](0);
if sdate > sdate[1]+30 Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 61{
HH[cnt] = HH[cnt-1][1];
CC[cnt] = CC[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;
CC[0] = C;
TCHAN1 = HH[1];
for cnt = 1 to LENGTH1 {
if HH[cnt] > TCHAN1 Then
TCHAN1 = HH[cnt];
}
TCHAN2 = HH[1];
for cnt = 1 to LENGTH2 {
if HH[cnt] > TCHAN2 Then
TCHAN2 = HH[cnt];
}
TCHAN3 = HH[1];
for cnt = 1 to LENGTH3 {
if HH[cnt] > TCHAN3 Then
TCHAN3 = HH[cnt];
}
TCHAN4 = HH[1];
for cnt = 1 to LENGTH4 {
if HH[cnt] > TCHAN4 Then
TCHAN4 = HH[cnt];
}
TCHAN5 = HH[1];
for cnt = 1 to LENGTH5 {
if HH[cnt] > TCHAN5 Then
TCHAN5 = HH[cnt];
}
TCHAN6 = HH[1];
for cnt = 1 to LENGTH6 {
if HH[cnt] > TCHAN6 Then
TCHAN6 = HH[cnt];
}
Sum1 = 0; CSum1 = 0;
For counter1 = 1 To Period1{
Sum1 = Sum1 + ((HH[counter1]+LL[counter1]+CC[counter1])/3) * (Period1 - (counter1-1));
CSum1 = CSum1 + Period1 - (counter1-1);
}
WMA1 = Sum1/CSum1;
SumSqrt1 = 0;
For Counter1 = 1 To Period1 {
SumSqrt1 = SumSqrt1 + (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1) * (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1);
}
Std1 = SquareRoot(SumSqrt1 / Period1);
Sum2 = 0; CSum2 = 0;
For counter2 = 1 To Period2{
Sum2 = Sum2 + ((HH[counter2]+LL[counter2]+CC[counter2])/3) * (Period2 - (counter2-1));
CSum2 = CSum2 + Period2 - (counter2-1);
}
WMA2 = Sum2/CSum2;
SumSqrt2 = 0;
For Counter2 = 1 To Period2 {
SumSqrt2 = SumSqrt2 + (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2) * (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2);
}
Std2 = SquareRoot(SumSqrt2 / Period2);
Sum3 = 0; CSum3 = 0;
For counter3 = 1 To Period3 {
Sum3 = Sum3 + ((HH[counter3]+LL[counter3]+CC[counter3])/3) * (Period3 - (counter3-1));
CSum3 = CSum3 + Period3 - (counter3-1);
}
WMA3 = Sum3/ CSum3;
SumSqrt3 = 0;
For Counter3 = 1 To Period3 {
SumSqrt3 = SumSqrt3 + (((HH[counter3]+LL[counter3]+CC[counter3])/3) - WMA3) * (((HH[counter3]+LL[counter3]+CC[counter3])/3) - WMA3);
}
Std3 = SquareRoot(SumSqrt3 / Period3);
Sum4 = 0;
CSum4 = 0;
For counter4 = 1 To Period4 {
Sum4 = Sum4 + ((HH[counter4]+LL[counter4]+CC[counter4])/3) * (Period4 - (counter4-1));
CSum4 = CSum4 + Period4 - (counter4-1);
}
WMA4 = Sum4/ CSum4;
SumSqrt4 = 0;
For Counter4 = 1 To Period4 {
SumSqrt4 = SumSqrt4 + (((HH[counter4]+LL[counter4]+CC[counter4])/3) - WMA4) * (((HH[counter4]+LL[counter4]+CC[counter4])/3) - WMA4);
}
Std4 = SquareRoot(SumSqrt4 / Period4);
Sum5 = 0;
CSum5 = 0;
For counter5 = 1 To Period5 {
Sum5 = Sum5 + ((HH[counter5]+LL[counter5]+CC[counter5])/3) * (Period5 - (counter5-1));
CSum5 = CSum5 + Period5 - (counter5-1);
}
WMA5 = Sum5/ CSum5;
SumSqrt5 = 0;
For Counter5 = 1 To Period5 {
SumSqrt5 = SumSqrt5 + (((HH[counter5]+LL[counter5]+CC[counter5])/3) - WMA5) * (((HH[counter5]+LL[counter5]+CC[counter5])/3) - WMA5);
}
Std5 = SquareRoot(SumSqrt5 / Period5);
Sum6 = 0;
CSum6 = 0;
For counter6 = 1 To Period6 {
Sum6 = Sum6 + ((HH[counter6]+LL[counter6]+CC[counter6])/3) * (Period6 - (counter6-1));
CSum6 = CSum6 + Period6 - (counter6-1);
}
WMA6 = Sum6/ CSum6;
SumSqrt6 = 0;
For Counter6 = 1 To Period6 {
SumSqrt6 = SumSqrt6 + (((HH[counter6]+LL[counter6]+CC[counter6])/3) - WMA6) * (((HH[counter6]+LL[counter6]+CC[counter6])/3) - WMA6);
}
Std6 = SquareRoot(SumSqrt6 / Period6);
var1 = wma1+(p1*STD1);
var2 = wma2+(p1*STD2);
var3 = wma3+(p1*STD3);
var4 = wma4+(p1*STD4);
var5 = wma5+(p1*STD5);
var6 = wma6+(p1*STD6);
var7 = (HH[0]+LL[0])/2; ##주봉 중간값
Value1 = Max((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3);
Value2 = Min((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3);
Value3 = (MAX(HH[1],HH[2])+Min(LL[1],LL[2])+CC[1])/3;
Plot1(TCHAN1, "pc3[1]");
Plot2(TCHAN2, "pc5[1]");
Plot3(TCHAN3, "pc10[1]");
Plot4(TCHAN4, "pc20[1]");
Plot5(TCHAN5, "pc40[1]");
Plot6(TCHAN6, "pc60[1]");
Plot7(var1, "bb3[1]");
Plot8(var2, "bb5[1]");
Plot9(var3, "bb10[1]");
Plot10(var4, "bb20[1]");
Plot11(var5, "bb40[1]");
Plot12(var6, "bb60[1]");
Plot13(Value1, "1");
Plot14(Value2, "2");
Plot15(Value3, "3");
2011-08-29
690
글번호 42258