커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7711
글번호 230811
답변완료
질문
분봉에서
장중에
이틀전과 어제의 단 이틀만의 최고가와 최저가의 값을 가지고
최고가-최저가 나누기 2 해서 이값을 상향돌파하면 다음봉 시가매수
하향돌파하면 다음봉 시가매도
만일 다음날 아침시가가 이값을 상향돌파하면 시가에 매수
다음날 아침시가가 이값을 하향돌파하면 시가에 매도 부탁드립니다
2011-07-15
649
글번호 40924
답변완료
행복; 수식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
보내주신 < 아래 > 의 답변 잘 받았습니다
배열변수를 배우게 되어 기쁨니다
근데
< 아래 > 의 답변 중에서
count 가 1 부터 2 가 아니고 1 부터 100 일 때를 대비하여
---------- -----------
input : P(20);
Var : count(0);
Array : Dis[101](0),emaDis[101](0); // 방 개수를 (100 + 1)로 하였습니다
// Dis[1] = Disparity(P);
// dis[2] = Disparity(P*2);
Dis[count] = Disparity(P*count); // 1 부터 100 까지를 대비하였습니다
// emaDis[1] = ema(Disparity(P),2);
// emadis[2] = ema(Disparity(P*2),2);
emaDis[count] = ema(Disparity(P*count),2); // 1 부터 100 까지를 대비하였습니다
Value5 = 0 ;
For Count = 1 To 100 // 1 부터 100 까지를 대비하였습니다
{
Value5 = Value5
/*A안*/ + Dis[count] * count
/*B안*/ + ( Dis[count] + Dis[count][1] ) * count
/*C안*/ + ma ( Dis[count], 2 ) * count
/*D안*/ + emaDis[count]* count
;
}
Plot5(Value5); // 20일 + 40일
로 하였더니
모두 0 (제로) 가 나옵니다
어떤 부분이 잘못 되었는지요?
============================< 아래 >============================
안녕하세요
예스스탁입니다.
다른 수식과 다르게 value의 for문을 보시면
값이 1부터 2까지 증가되게 되어 있습니다.
함수의 기간을 가변적으로 사용하시게 되면
최초에 함수에 할당된 메모리와 차이가 발생되어
깨지게 되므로 작성하신 식과 같이 이격도함수의 기간을
for문으로 가변적으로 가져가시면 안됩니다.
또하나는 ema의 기준값의 변경에 있습니다.
이동평균값과 같은 함수의 기준값을 변동적으로 하면
마찬가지 현상이 일어납니다.
함수의 기준값을 변경하시거나 기간등을 가변적으로
가져가실때는 배열변수등을 이용하해서
값을 변수에 할당하신후에 사용하셔야 합니다.
input : P(20);
Var : count(0);
Array : Dis[3](0),emaDis[3](0);
Dis[1] = Disparity(P);
dis[2] = Disparity(P*2);
emaDis[1] = ema(Disparity(P),2);
emadis[2] = ema(Disparity(P*2),2);
Value1 = 0 ;
For Count = 1 To 1
{
Value1 = Value1
/*A안*/ + Dis[count]* count
/*B안*/ + ( Dis[count] + Dis[count][1] ) * count
/*C안*/ + ma ( Dis[count], 2 ) * count
/*D안*/ + emaDis[count] * count
;
}
Plot1(Value1); // 20일
Value2 = 0 ;
For Count = 2 To 2
{
Value2 = Value2
/*A안*/ + Dis[count] * count
/*B안*/ + ( Dis[count] + Dis[count][1] ) * count
/*C안*/ + ma(Dis[count], 2 ) * count
/*D안*/ + emaDis[count] * count
;
}
Plot2(Value2); // 40일
Value3 = Value1 + Value2 ;
Plot3(Value3); // 20일 + 40일
For Count = 2 To 2
{
Value4 = Value1
/*A안*/ + Dis[count] * count
/*B안*/ + ( Dis[count] + Dis[count][1] ) * count
/*C안*/ + ma ( Dis[count], 2 ) * count
/*D안*/ + emaDis[count] * count
;
}
Plot4(Value4); // 20일 + 40일
Value5 = 0 ;
For Count = 1 To 2
{
Value5 = Value5
/*A안*/ + Dis[count] * count
/*B안*/ + ( Dis[count] + Dis[count][1] ) * count
/*C안*/ + ma ( Dis[count], 2 ) * count
/*D안*/ + emaDis[count]* count
;
}
Plot5(Value5); // 20일 + 40일
즐거운 하루되세요
> 행복한가방 님이 쓴 글입니다.
> 제목 : 행복; 수식 작성 바랍니다
>
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
< 아래 >의 수식은
for 문에 대한 수식입니다
value3, value4, value5 의 수치가 같이 나와야 하는데 차이가 납니다
Value1 ~ Value5 뒤에
/*A안*/ + Disparity ( 20 * count ) * count
/*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count
/*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count
/*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count
중에서 각각을 안을 별개로 하나씩 적용하였습니다
A안을 적용하면 value3 == value4 == value5 의 수치가 모두 같게 나오는데
B안을 적용하면 value3 == value4 != value5 으로 value5 만 다르게 나옵니다
C안을 적용해도 value3 == value4 != value5 으로 value5 만 다르게 나옵니다
D안을 적용해도 value3 == value4 != value5 으로 value5 만 다르게 나옵니다
for 문을 교과서적으로 활용하였지만 B안, C안, D안에서
value5 의 수치가 value3, value4 와 다르게 나옵니다
물론 value3 와 value4는 같은 수치가 나오고요~
제가 수식을 잘못 사용한 것인지 바로잡아 주시고
잘못된 이유가 있다면 알려주시기 바랍니다~
=================< 아래 >==========================
Var : count(0) ;
Value1 = 0 ;
For Count = 1 To 1
{
Value1 = Value1
/*A안*/ + Disparity ( 20 * count ) * count
/*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count
/*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count
/*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count
;
}
Plot1(Value1); // 20일
Value2 = 0 ;
For Count = 2 To 2
{
Value2 = Value2
/*A안*/ + Disparity ( 20 * count ) * count
/*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count
/*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count
/*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count
;
}
Plot2(Value2); // 40일
Value3 = Value1 + Value2 ;
Plot3(Value3); // 20일 + 40일
For Count = 2 To 2
{
Value4 = Value1
/*A안*/ + Disparity ( 20 * count ) * count
/*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count
/*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count
/*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count
;
}
Plot4(Value4); // 20일 + 40일
Value5 = 0 ;
For Count = 1 To 2
{
Value5 = Value5
/*A안*/ + Disparity ( 20 * count ) * count
/*B안*/ + ( Disparity ( 20 * count ) + Disparity ( 20 * count )[1] ) * count
/*C안*/ + ma ( Disparity ( 20 * count ), 2 ) * count
/*D안*/ + Ema ( Disparity ( 20 * count ), 2 ) * count
;
}
Plot5(Value5); // 20일 + 40일
2011-07-14
575
글번호 40923
러블리 님에 의해서 삭제되었습니다.
2011-07-14
21
글번호 40922
답변완료
1분 봉상에서 30분 및 일봉 LRS값 부탁드립니다.
수고하십니다.
1분 봉상에서 30분 및 일봉 LRS값 부탁드립니다.
참조종목을 사용하지않고 수식으로 부탁드립니다.
감사합니다.
2011-07-14
565
글번호 40921
답변완료
장중 추세분석 관련 질문
장중 추세분석 관련해서 코딩중인데요.
IF / Then / Else 사용하는데
else 가 문법상 잘못되었다는데..
왜 잘못되었는지 모르겠군요.
else 빼버리면 정상적으로 돌아가지만
그건 원하는 결과를 나타내지 못하구요.
부탁드려요.
수고하세요.
2011-07-14
683
글번호 40918
sjpapa 님에 의해서 삭제되었습니다.
2011-07-14
1
글번호 40917
답변완료
수식 부탁드립니다.
안녕하세요?
전일 양봉시 시초가 매수, 종가 청산,
전일 음봉시 시초가 매도, 종가 청산,
전일 종가 < 당일시초가 면 익일시초가 매수, 종가 청산
전일 종가 > 당일시초가 면 익일시초가 매도, 종가 청산
부탁드립니다.
2011-07-14
639
글번호 40912
답변완료
사용자 정의 함수 배열 여러개 넘길때.
// 정상 코드
Input : FirstWave[N]( NumericArrayRef );
Input : TrendPointIndex[N1](NumericArray), TrendPointValue[N2](NumericArray);
// 오류 발생 코드
Input : FirstWave[N]( NumericArrayRef );
Input : TrendPointIndex[N](NumericArray), TrendPointValue[N](NumericArray);
오류가 발생한 코드에서 배열 첨자 이름을 똑 같이 N이라고 줬는데
이 N이 의미하는 바가 무엇인가요?
정상인 코드에서 결국은 N, N1, N2라고 바꾸긴 했지만 이게 무엇을 의미하고 어떤 경우에 사용되는지
가르쳐주시면 감사하겠습니다.
수고하세요.
2011-07-14
661
글번호 40907
답변완료
거래건수와 봉완성에 대한 질문
[질문]
1. 봉주기를 1초로 설정을 한경우, 만약 9:30:01에 거래가 발생을 하지않는다면 봉은 완성이 되는지요?
2. 해당시간에 거래가 발생하지 않았을 경우 해당시간에 거래가 발생하지 않았다라는 것을 알수 있는 방법이 무엇인지 궁금합니다.
3. 그리고, 거래가 발생을 하지 않으면, upvol, downvol과 같은 거래량 변수가 현재값을 가져오는것이 아니라 이전봉의 값을 가져오는데요. 이전봉의 값이 아니라 거래가 없으면, upvol or downvol의 값을 0으로 가져올수는 없는지요?
4. upvol, downvol의 결과값도 해당봉이 완성된 마지막 거래의 거래량을 의미하는것인가요?
5. 첨부파일의 그림은 시간대별 upvol, downvol, data2(upvol), data2(downvol)의
값을 디버깅한 자료입니다. 궁금한점은 data2(upvol), data2(downvol)의 값이 모두 1입니다. 실제로 해당시간에 거래량을 확인한 결과, 모두 거래량이 100개 이상이었습니다.
왜 이렇게 값이 나오는지 답변을 부탁드립니다.
[디버깅 내용]
messagelog("upvol : %.0f, downvol : %.0f, Data2(upvol) : %.0f, Data2(downvol) : %.0f", upvol, downvol, data2(upvol), data2(downvol));
2011-07-14
653
글번호 40906