커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6563
글번호 230811
답변완료
부탁드립니다.
아래 수식에서 색상이 변하고 3개봉은 건너뛰고 다음 진입구간에 신호나오면 진입하도록 부탁드리고요
매수진입시 봉하단에서 끝에서 진입하고 매도진입은 봉상단 끝에서 진입하게 할 수 있을까요? 안된다면 매수진입이 봉하단끝은 아니더라도 근사치라도 매도진입도 봉상단은 아니더라도 상단근처에서 진입하도록 부탁드립니다.
마지막으로 수식을 차트에 적용하고 경보 후 주문이나 자동주문을 설정하고 확인을 누르려하면 확인글씨를 클릭할수 없게됩니다. 방법이나 조치좀 부탁드립니다.
var1 = ma(c,9);
var2 = ma(C,18);
if MarketPosition == 0 and
var2[1]>var2[0] and
OPEN[0]>var1 and
OPEN[0]>CLOSE[0] Then
SELL();
if MarketPosition == 0 and
var2[1]<var2[0] and
OPEN[0]<var1 and
OPEN[0]<CLOSE[0] Then
BUY();
SetStopProfittarget(PriceScale*10,PointStop);
SetStopLoss(PriceScale*1,PointStop);
2015-06-27
165
글번호 87711
답변완료
Text_GetString() 함수를 문의합니다.
안녕하세요
초보라서 모르는 것이 많습니다.
var2=0;
for var1=0 to 9
{ Text_New(20150618, 0,1320000-var2,Text_GetString(var1));
messagelog(",%s",Text_GetString(var1));
print("test₩배열.csv",",%s",Text_GetString(var1));
var2 = var2 + 3000;
};
이렇게 작성하였으나 Text_GetString() 함수가 정확하게
작동하지 않는 것 같아서 문의를 드립니다.
어떻게 하면 숫자를 문자로 받을 수 있을른지요?
친절한 지도를 바랍니다.
좋은 하루 되세요!!
2015-06-27
151
글번호 87710
답변완료
데이터 확인요청
안녕하세요.
아래와 같이 지표를 debug 해보았을 때,
첫번째, messaglog에서 찍는 CLOSED(2)값과 두번째 messagelog에서 찍는 CLOSED(2)값이 다릅니다. 동일 봉에서 실행되는 지표이니 동일한 값을 가져와야 할 것 같은데
첫번째 messaglog에서 찍는 CLOSED(2)나 CLOSED(3)이나 모두 전일 종가를 가져오는 것 같습니다.
제 수식에 문제가 있는 지 확인 부탁드립니다.
VARS: CORR1(0), CORR2(0), CORR3(0);
VARS: NORM_VAL1(0), NORM_VAL2(0), NORM_VAL3(0);
VARS: NORM_VAL1_K(0), NORM_VAL2_K(0), NORM_VAL3_K(0);
VARS: SIGMA1(0), SIGMA2(0), SIGMA3(0);
VARS: MEAN1(0), MEAN2(0),MEAN3(0),V_MEAN(0);
VARS: S_NUM(0), T_NUM(0), NUM(0), TEMP_NUM(0),VOLUME_ADJ(0);
VARS: I(0), SUM(0), SUM_KOSPI(0), PRICE_MEAN(0), PRICE_MEAN1(0), PRICE_MEAN2(0);
S_NUM=1;
T_NUM=1;
TEMP_NUM=140;
V_MEAN=0;
NUM=1;
FOR I=1 TO TEMP_NUM
{
// MessageLog(" STIME[I]: %f sDate:%f, sDate[I]:%f", STIME[I], sDate, sDate[I]);
IF (STIME[I] == 090000 AND sDate[I] != sDate)
THEN T_NUM = I ;
ELSE IF (STIME[I] == 090000 AND sDate[I] == sDate )
THEN S_NUM = I + 1;
}
// MessageLog("NUM: %f", NUM);
NUM = T_NUM - S_NUM;
SIGMA1 = STD(Data1(C),NUM);
MEAN1 = MA(Data1(C),NUM);
NORM_VAL1 = (Data1(C)-MEAN1)/SIGMA1; //Data1
SIGMA2 = STD(Data1(V),NUM);
MEAN2 = MA(Data1(V),NUM);
NORM_VAL2 = (Data1(V)-MEAN2)/SIGMA2; //달러Data2
SUM=0;
SUM_KOSPI=0;
FOR I=S_NUM TO T_NUM
{
V_MEAN = V_MEAN + Data1(V[I]);
}
V_MEAN = V_MEAN /(T_NUM-S_NUM) ;
FOR I=S_NUM TO T_NUM
{
PRICE_MEAN1 = (DATA1(C[I])-CLOSED(2))/CLOSED(2);
PRICE_MEAN2 = (Data2(C[I])- Data2(CloseD(2)))/Data2(CloseD(2));
PRICE_MEAN=PRICE_MEAN1 - PRICE_MEAN2;
SUM = SUM + PRICE_MEAN/ NUM ;
SUM_KOSPI = SUM_KOSPI+PRICE_MEAN * (DATA1(V[I]))/V_MEAN/(T_NUM-S_NUM) ;
MessageLog("I: %f STIME[I] :%f SDATE[I]:%f PRICE_MEAN: %f, SUM:%f, DATA1(C[I]): %f, CLOSED(2):%f, Data2(C[I]):%f, Data2(CloseD(2)): %f", I,STIME[I], SDATE[I] , PRICE_MEAN, SUM, DATA1(C[I]), CLOSED(2),Data2(C[I]), Data2(CloseD(3)));
}
VOLUME_ADJ= SUM;
//PRICE_MEAN=(DATA1(C)-CLOSED(1))/CLOSED(1) - (Data2(C)- Data2(CloseD(1))/Data2(CloseD(1)) );
PRICE_MEAN1=(DATA1(C)-CLOSED(2))/CLOSED(2) ;
PRICE_MEAN2=(Data2(C)- Data2(CloseD(2)))/Data2(CloseD(2)) ;
PRICE_MEAN=PRICE_MEAN1 - PRICE_MEAN2;
MessageLog(" DATA1(C): %f, CLOSED(2):%f, CLOSED(1):%f, Data2(C):%f, Data2(CloseD(2)): %f, Data2(CloseD(1)): %f", DATA1(C), CLOSED(2), CLOSED(1), Data2(C), Data2(CloseD(2)), Data2(CloseD(1)));
PLOT1(PRICE_MEAN,"VOLUME_ADJ", RED);
PLOT2(SUM,"PRICE_MEAN", BLUE);
2015-06-26
162
글번호 87709
칠곡저격수 님에 의해서 삭제되었습니다.
2015-06-26
15
글번호 87708
칠곡저격수 님에 의해서 삭제되었습니다.
2015-06-26
14
글번호 87707
답변완료
엔벨롭
envelope 지표선을 직각으로도 표현이 가능한가요?
2015-06-26
160
글번호 87706
앙두 님에 의해서 삭제되었습니다.
2015-06-26
0
글번호 87705
답변완료
수식 질문드립니다.
아래의 수식을 만족시키는 수식이 궁금합니다.
주가가 해당월 시초가 및 5 이평선보다 위에 있고, 5이평선이 상승하고 있으면 매수진입,
주가각 해당월 시초가 및 5 이평선보다 밑에 있고, 5이평선이 하락하고 있으면 매도진입
2015-06-26
134
글번호 87704
답변완료
최근 도움받은 내용에서 추가 질문이 두가지 있습니다.
항상 수고 많으십니다.
최근 가이드 받아 진행한 코딩에서 추가 질문사항이 발생하여 도움을 요청드립니다.
-----------------------
1. 질문/답변내용
[질문]
20일선 하향이탈 100건을 배열에 담는다.
배열을 뒤져서 현재봉의 종가 또는 시가와 가장 근접한
봉의 위쪽, 봉의 아래쪽 값 두개를 찾아서 Plot으로 그려준다.
*** 추가 질문사항
-> Y축을 뒤집었을 때에도 Plot을 똑바로 뒤집을 수 있는 방법
: 예전에 비슷한 질문을 드렸을 때 일일시가 기준으로 뒤집었는데
이번 케이스에는 아닌것같고 해서 질문을 드립니다. ㅡㅡ;;;
[답변]
안녕하세요
예스스탁입니다.
Input: 일선1(5), 일선2(20);
Var: 종가변곡점2(0),Cnt(0), Cnt1(0), Cnt2(0), 상위값(0), 하위값(0),HH(0),LL(0);
Array: 변곡발생[100](0), upv[100](0),dnv[100](0);
var1 = ma(c,일선2);
// 100개의 20일선 하향이탈을 기록한다.
If (CrossDown(C, var1)) Then
{
변곡발생[0] = (O + C) / 2;
For Cnt = 1 To 99
{
변곡발생[Cnt] = 변곡발생[Cnt -1][1];
}
}
for cnt = 0 to 99{
if 변곡발생[cnt] >= C Then
upv[cnt] = 변곡발생[cnt];
Else
upv[cnt] = 99999999;
if 변곡발생[cnt] <= C Then
dnv[cnt] = 변곡발생[cnt];
Else
dnv[cnt] = 0;
}
HH = 99999999;
LL = 0;
for cnt = 0 to 99{
if upv[cnt] < HH Then
HH = upv[cnt];
if dnv[cnt] > LL Then
LL = dnv[cnt];
}
plot1(HH);
plot2(LL);
즐거운 하루되세요
2. 특정조건에서 진입금지를 설정하고자 하는데
ex. 일일저가와 일일고가의 차이가 100% 이상인 경우 진입금지 하지만
전일 종가에서 시초가가 100% 상승해서 시작하는 경우 이 경우에만 예외를 설정해서
쭉가게 하는 법입니다.
감사합니다.
행복한 하루되십시오~!!!
2015-06-26
173
글번호 87703