커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1676
글번호 230811
답변완료
지표 질문입니다
var1=DayHigh(1)-DayLow(1);
var2=DayOpen+var1;
Var3=DayClose(1)+var1;
Var4=DayLow+var1;
var5=DayOpen-var1;
Var6=DayClose(1)-var1;
Var7=DayHigh-var1;
var2,var3,var4 가운데 가장 높은 값(a)과 두번째 높은 값(b)의 대칭 상승값(a+(a-b))표시
var5,var6,var7 가운데 가장 낮은 값(c)과 두번때 낮은 값(d)의 대칭 하락값(c-(d-c))표시
감사합니다
2022-02-18
1149
글번호 156440
답변완료
문의 드립니다,..
늘 감사합니다..
다름이 아니오라 자동 매매를 할려고 합니다
그림과 같이 설정할려고 하는데 수식 도움 부탁 드립니다.
- 3분봉 기준
*매수 : 이전봉의 고가를 돌파하고 2틱 이상이면 매수
*매도 : 이전봉의 저가를 돌파하고 2틱 이상이면 매도
늘 행복한 날들이 가득 하시길 바랍니다...
2022-02-18
1144
글번호 156435
답변완료
수식 문의드립니다
안녕하세요? 왕초보 탱구리입니다.
가입하고 개발자님을 항상 존경하며 수식공부를 하다가 막히는 부분이 있어 질문을 드립니다.
바쁘신 와중에도 잠시만 봐주시면 정말 감사드리겠습니다.
제가 만든 코인 수식입니다. 부끄럽네요ㅜㅜ
작동은 잘 하는데 맞게 된건지 한번 살펴봐주세요.
기준선 돌파 이런 식입니다.
그런데 수익이 안나와서 식을 좀 수정해 보려고하는데 막히네용....ㅜㅜ
<제가 만든식>
Input: shortperiod(12), longperiod(24), sig(9);
var: value(0), signal(0);
Signal = Ema(value, sig);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
If value > 0 and CrossUp(value, signal) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell ();
}
If value > 0 and CrossDown(value, signal) Then
{
Sell();
}
위 식을 첨부파일1 그림처럼 수정을 해보려고요.
ps. 복리를 추라하려고 넣었더니 BUY값이 이미 지정되었습니다. 라고 뜨네요(바이가 두번들어간게 수식이 잘못되었나요?) 복리추가도 같이 좀 봐주세욤.
input : 원금(100000),시작일(20200829),시작시간(90000);
var : Tcond(False),수량(0);
if sDate == 시작일 and sTime >= 시작시간 Then
Tcond = true;
수량 = IntPortion((원금+NetProfit())/C)+ FracPortion((원금+NetProfit())/C);
if Tcond == true Then
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy("매수",Atmarket,DEF,수량);
}
If value > 0 and CrossUp(value, signal) Then
{
Buy("매수",Atmarket,DEF,수량);
}
(바이가 두번 지정되었다고 나와서 아... 수식이 잘못되었구나 생각이 듬요.)
바쁘신 와중에 읽어주셔서 너무너무 감사드려용~~^^
2022-02-19
961
글번호 156433
lbh1119 님에 의해서 삭제되었습니다.
2022-02-18
231
글번호 156425
답변완료
수식작성 부탁드립니다
항상 도움주셔서 감사드립니다~
아래의 수식에
진입신호가 발생하면,
지정한 익절이나 손절에 도달하면 표시되는 텍스트 출력이 아니라,
매수진입과함께 곧바로
익절가(35틱) 및 손절가(35틱)를
표시할수 있는수식 부탁드립니다
그리고,출력되는 텍스트에 색상,글씨두께,위치조정을 할수있는
수식도같이부탁드립니다.
1. onclose타입일 경우
input : 소숫점자리수(0);
if MarketPosition <= 0 and 매수진입조건 then
{
buy("b");
Text_New(sdate,stime,H+PriceScale*2,NumToStr(C,소숫점자리수));
}
2. atmeket 타입일 경우
input : 소숫점자리수(0);
if MarketPosition <= 0 and 매수진입조건 then
{
buy("b",atmarket);
Text_New(sdate,stime,H+PriceScale*2,NumToStr(NextBarOpen,소숫점자리수));
}
수고하세요
2022-02-18
1149
글번호 156424
답변완료
지표 수식(QA 75978번 지표3)의 추가 검토 부탁드립니다.
담당자님, 안녕하세요.
(Q&A 75978번에 대한 추가 질의입니다.)
지난번 Q&A 75978번에서 담당자님께서 검토해서 수정해 주신 수식을 잘 활용하고 있습니다.
그런데, 지표3의 시스템 산출 결과가 제가 의도했던 것과는 다른 결과가 산출됩니다.
<지표3>은 일자별로 절대값(종가-시가) 값이 가장 큰 30분봉 중에서 상위 3개의 30분봉을 선택하고
그 봉에 해당하는 각각의 '(종가+시가)/2'를 계산하여 그 값을 당일(D)에 수평선 라인으로 표시하는 것입니다.
제가 실제 데이터로 검증해보니까 예를 들면,
1) 2022.02.04와 2021.07.05의 경우 상위 1, 2번째 값은 정확한 값을 산출했지만
상위 3번째에 대해서는 3번째 값 대신에 상위 4번째에 해당하는 값을 산출합니다.
2) 2020.03.27의 경우에는 데이터로 계산한 수치와 전혀 다른 값을 산출합니다.
제가 수기 계산해서 검토한 내용을 엑셀 파일로 첨부하였고
시뮬레이션 차트에서 실행한 결과(산출된 수치)를 화면 캡쳐하여
엑셀파일에 같이 첨부하였습니다. 참고하시기 바랍니다.
엑셀에서 그림 파일이 안열리는 거 가아서 그림파일도 따로 첨부합니다.
<지표3>에 대해서 질의 내용과 다른 결과가 도출되는 점에 대해 검토해주시고
다시 한번 수정해 주실 것을 부탁드립니다.
담당자님을 계속 번거롭게 해드려 죄송합니다.
제 나름으로는 의미 있게 생각하는 지표라 계속 연구하고 있는 중이라 그렇습니다.
수정해서 작성해 주시는 것에 미리 감사드립니다.
(담당자님의 편의를 위하여
Q&A 75978번에서 담당자님께서 수정해서 작성해주신 답변내용 중
<지표3> 부분만 발췌해서 아래에 기재하였습니다.)
==============================================
==============================================
작성자 : 예스스탁 작성일 : 2022-02-17 오전 9:58:08 조회수 : 7
지표 Re : 지표 수식(지표2와 지표3)의 검토 부탁드립니다
안녕하세요
예스스탁입니다.
평균값저장이 최고차이발생봉까지만 대상으로 저장되게 되어 있었습니다.
1번식과 같은 경우는 관계없지만 2번과 3번과 같이 시종의 중간값을 저장할때
그이후시간의 종가가 반영되지 않았었습니다.
1~3번식 모두 수정해 드립니다.
(<지표1, 2> 수식은 기재생략)
3
input : 타주기분(30),n(10);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),OO(0),CC(0);
var : ii(0),i1(0),i2(0),tempmax(0),tempi(0);
Array : R1[50](0),M1[50](0);
Array : tempR1[50](0),tempM1[50](0),NTHVALUE[50](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
for cnt = 1 to 49
{
R1[cnt] = R1[cnt-1][1];
M1[cnt] = M1[cnt-1][1];
}
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
OO = O;
CC = C;
Condition1 = False;
if Bdate != Bdate[1] Then
{
R1[0] = 0;
M1[0] = 0;
}
}
CC = C;
if abs(OO-CC) > R1[0] Then
{
R1[0] = abs(OO-CC);
Condition1 = true;
}
if Condition1 == true Then
M1[0] = (OO+CC)/2;
if M1[n] > 0 Then
{
for ii = 0 to 49
{
tempR1[ii] = R1[ii];
tempM1[ii] = M1[ii];
}
For i1 = 1 to n
{
tempmax = -1;
For i2 = 1 to n
{
if (tempR1[i2] >= tempmax ) then
{
tempmax = tempR1[i2];
tempi = i2;
}
}
NTHVALUE[i1] = tempM1[tempi];
tempR1[tempi] = -1;
}
Plot1(NTHVALUE[1]);
Plot2(NTHVALUE[2]);
Plot3(NTHVALUE[3]);
}
}
2022-02-18
1411
글번호 156423
답변완료
넘 어려워서 질문좀요 ㅠ
수식에 맞는 상황인데 왜 안사지는건가요 ?
수식은 If (DayHigh(1) - DayLow(1)) < (DayHigh(0) - DayLow(0)) and (ma(v,5) > ma(v,20) )Then
{
Buy();
}
이고 사진에 빨간표시 첨부했습니다
2022-02-18
1182
글번호 156422
답변완료
문의 드립니다.
제가 원하는 지표를 과거 게시판에서 찾았는데요
아래 소스 인데요
input : P(75),N(5);
var1 = ma(c,P);
plot1(var1,"이평");
plot2(var1+PriceScale*N,"이평+N틱");
plot3(var1-PriceScale*N,"이평-N틱");
이거
이평선 끝부분에 숫자 나오게 할 수 있는 방법이 필요합니다.
옵션에서 마지막 지표값을 표시하기 체크 하면 되는데
문제는 캔들 실시간 가격이 마지막 지표값을 가려서 대응하기 너무 불편해서
차트상에 이평선 맨 오른쪽 끝에 지표값을 따로 표시 하는것이 보기 편할것 같아서요.
이 원본 소스에 추가 수정 가능할까요?
감사합니다!
2022-02-18
1188
글번호 156421
답변완료
또 문의드려서 죄송해요 ㅠㅠ
1. 추세선을 연결해서 오른쪽 확장을 하고
이걸 돌파할때 진입하는 걸 만들고 싶은데요.
만들어서 해봤더니 안되는거 같은데....
혹시 원래 안되는 건가요? ㅠㅠ
원래 안되는 거면 가능한 수식 좀 부탁드려도 될까요?
if 하락추세 then
TL1 = TL_New(10일전 최고가, 3일전 최고가);
TL_SetExtRight(TL1,True);
if CrossUp(C,TL1) then Buy();
2. plot을 생성했다가 지우고 조건을 벗어나면 지우고 싶어요.
if C < 돌파지점 then
{Plot1(돌파지점 ,"돌파지점 ",RED);}
else { Plot1 삭제; }
이런식으로 가능할까요?
2022-02-17
1102
글번호 156420