커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4689
글번호 230811
답변완료
수식 수정 부탁 드립니다.
/* 조건발생시 이전5개봉의 최고점 과 최저점을 저장했다가
크로스 발생시 이전 최고점과 최저점을 비교해서 진입 및 청산을 하려고 하는데 잘 안돼네요
수고 스럽지만 잘 부탁 합니다.^^
/*
1.매매조건
Bbu : 이평선 골든크로스 발생시 발생전 5개봉의 최저점을 Bbu 에 저장
Sse : 이평선 데드크로스 발생시 발생전 5개봉의 최고점을 Sse 에 저장.
매수진입 : Bbu > Bbu[1] 이전 골든크로스 발생시 보다 최저점이 높으면 매수
매수청산 : C < Bbu 최근 최저점 보다 종가가 낮으면 청산
매도진입 : Sse < Sbe[1] 이전 데드크로스 발생시 보다 최고점이 낮으면 매도
매도청산 : C > Sse 최근 최고점 보다 종가가 높으면 청산
*/
input : HP(5),LP(5);
var : HH(0),LL(0),Losscnt(0),Bbu(0),Sse(0);
value1 = ma(C,HP);
value2 = ma(C,LP);
value3 = lowest(L,5) ;
value4 = highest(H,5) ;
Bbu = 0 ;
Sse = 0 ;
if crossup(value1,value2) then
Bbu = value3 ;
if CrossDown(value1,value2) Then
Sse = value4 ;
if MarketPosition == 0 then {
if Bbu > Bbu[1] then
buy();
if Sse < Sbe[1] Then
sell();
}
if MarketPosition == 1 and C < Bbu Then
exitlong("매수청");
if MarketPosition == -1 and C > Sse Then
ExitShort("매도청");
2016-01-27
106
글번호 94854
답변완료
문의드립니다.
안녕하세요.
현재 모의투자를 하고 있는데 시스템 운영중(포지션거래)에 생긴 문제에 대해 문의드립니다.
1. 전일 종가 전에 sell 신호에 의해 매도포지션이 발생한 상태에서 종가(3:05)에 buy 예비신호가 나오는것을 보고 청산은 안된 상태로 장을 마쳤습니다.
그래서 익일(오늘) 장 시초가에 전일 buy 신호에 의해 청산과 매수진입이 동시에 일어날걸로 알고 기다렸는데 실행이 안되고 시장은 상승하는데 그대로 매도포지션이 유지되었습니다.
질문: buy(onclose) 신호는 신호 발생 다음봉 시가에 매도포지션이 있으면 청산과 동시에 매수가 일어나는걸로 알고있는데 종가에 발생한 신호의 경우는 다른것인가요?
만약 다르다면 이와같이 허수 진입을 피할 방법은 뭐가 있을까요.
2. 이렇게 유지된 매도포지션은 exitlong 신호가 나오자 매도포지션이 추가되었습니다.
질문: exitlong은 매수포지션에만 작용하고 매수포지션이 없으면 작용하지 않는것이 아닌가요?
이상 아직 모르는것이 많아서 질문 드렸습니다. 답변 주시면 감사하겠습니다.
2016-01-27
99
글번호 94851
답변완료
부탁합니다
1.매수청산
-매수진입후 entryprice+1을 반드시 터치하고 난이후 캔들중에 entryprice+1보다 작고
A선을 크로스다운시 매수청산
2.매도청산
-매도진입후 entryprice-1을 반드시 터치하고 난이후 캔들중에 entryprice-1보다 크고
B선을 크로스업시 매도청산
*터치는 종가기준이 아니고 터치만해도 유효하는것으로 합니다
*청산은 캔들종가청산입니다
2016-01-27
102
글번호 94850
답변완료
문의 드립니다 (46145번 재질문)
Input : Period(12), Period1(5),period2(5),disparity(10);
Var : value(0);
value = StochasticsK(Period,Period1);
If CrossUP(value, 50) Then{
var1 = 1;
var2 = L;
}
If CrossDown(value, 50) Then {
var1 = -1;
var2 = H;
}
if var1 == 1 Then
plot1(var1,"지표",RED);
if var1 == -1 Then
plot1(var1,"지표",blue);
.........................................................................
상기지표를 만들어 주셨는데....실행해 보니 화면에 전혀 나오지 않습니다.
시스템에서 매도신호가 나올때 해당캔들의 고점에서 파란색 수평선
시스템에서 매수신호가 나올때 해당캔들의 저점에서 빨간색 수평선이 나와야 하는데
화면에 아무것도 나오지 않고 있습니다.
참고로 예전에 같은 형식으로 rsi시스템식을 지표화 시켜 주신적이 있습니다.
Input : Period(14), LPercent(30), SPercent(70);
Var : value(0),T(0);
value = RSI(Period);
# 매수/매도청산
If T <= 0 and CrossUP(value, LPercent) Then
{
var1 = L;
T = 1;
}
# 매도/매수청산
If T >= 0 and CrossDown(value, SPercent) Then
{
var2 = H;
T = -1;
}
if T == 1 Then
plot1(var1,"지표",RED);
if T == -1 Then
plot1(var2,"지표",blue);
상기식처럼 화면에 나오게 해주세요
감사합니다
2016-01-27
104
글번호 94849
답변완료
수식문의합니다
수식 문의합니다
손절에 관한 수식인데요
내용은 아래사항입니다
예를들어
매수,매도 진입 후 손절이 되면, 같은 포지션 연속으로 진입이 안되는 수식을
만들고 싶습니다
매수 진입....손절이 되면....바로 다음신호시 매수진입 금지!!!!
매도 진입 가능
[손절된 포진션 연속으로 진입 안되게]
매수진입 후 손절되면 다음 신호는 [매도진입만 가능]--
매도진입 후 손절되면 다음 신호는 [매수진입만 가능]
매수---매수---매수 손절---매도 신호만 가능---매수진입 가능
이런식으로 입니다
제가 설면을 잘 드렸는지 모르겠네요
수고하세요~
2016-01-27
105
글번호 94843
답변완료
문의드립니다.
현재 사용하고 있는 지표에다가 시작시간(10:15)과 종료시간(17:05)을 넣고 싶습니다.
1
Value1 = dayhigh-DayLow;
plot1(dayhigh,"고점");
plot2(dayhigh-Value1*0.764,"당일 76.4");
plot3(dayhigh-Value1*0.618,"당일 61.8");
plot4(dayhigh-Value1*0.500,"당일 50.0");
plot5(dayhigh-Value1*0.382,"당일 38.2");
plot6(dayhigh-Value1*0.236,"당일 23.6");
plot7(DayLow,"저점");
Text_Delete(var1);
Text_Delete(var2);
Text_Delete(var3);
Text_Delete(var4);
Text_Delete(var5);
Text_Delete(var6);
Text_Delete(var7);
var1 = Text_New(sdate,stime,plot1,"당일고점 : " +NumToStr(plot1,2));
var2 = Text_New(sdate,stime,plot2,"당일 76.4 : " +NumToStr(plot2,2));
var3 = Text_New(sdate,stime,plot3,"당일 61.8 : " +NumToStr(plot3,2));
var4 = Text_New(sdate,stime,plot4,"당일 평균 : " +NumToStr(plot4,2));
var5 = Text_New(sdate,stime,plot5,"당일 38.2 : " +NumToStr(plot5,2));
var6 = Text_New(sdate,stime,plot6,"당일 23.6 : " +NumToStr(plot6,2));
var7 = Text_New(sdate,stime,plot7,"당일 저점 : " +NumToStr(plot7,2));
2
value1 = dayhigh(1);
value2 = daylow(1);
value3 = value1-value2;
Plot1(value1,"전일고점");
Plot2(value2,"전일저점");
Plot3(value1-value3*0.236,"전일23.6");
Plot4(value1-value3*0.382,"전일 38.2" );
plot5(value1-value3*0.500,"전일 평균" );
Plot6(value1-value3*0.618,"전일 61.8" );
plot7(value1-value3*0.764,"전일 76.4" );
plot8(value1+value3*0.236,"전일 +23.6");
plot9(value1+value3*0.382,"전일 +38.2");
plot10(value1+value3*0.618,"전일 +61.8");
plot11(value2-value3*0.236,"전일 -23.6");
plot12(value2-value3*0.382,"전일 -38.2");
plot13(value2-value3*0.618,"전일 -61.8");
Text_Delete(var1);
Text_Delete(var2);
Text_Delete(var3);
Text_Delete(var4);
Text_Delete(var5);
Text_Delete(var6);
Text_Delete(var7);
Text_Delete(Var8);
Text_Delete(Var9);
Text_Delete(Var10);
Text_Delete(var11);
Text_Delete(var12);
Text_Delete(var13);
var1 = Text_New(sdate,stime,plot1,"전일 고점 : " +NumToStr(plot1,2));
var2 = Text_New(sdate,stime,plot2,"전일 저점 : " +NumToStr(plot2,2));
var3 = Text_New(sdate,stime,plot3,"전일 23.6 : " +NumToStr(plot3,2));
var4 = Text_New(sdate,stime,plot4,"전일 38.2 : " +NumToStr(plot4,2));
var5 = Text_New(sdate,stime,plot5,"전일 평균 : " +NumToStr(plot5,2));
var6 = Text_New(sdate,stime,plot6,"전일 61.8 : " +NumToStr(plot6,2));
var7 = Text_New(sdate,stime,plot7,"전일 76.4 : " +NumToStr(plot7,2));
Var8 = Text_New(sdate,stime,plot8,"전일 +23.6 : " +NumToStr(plot8,2));
Var9 = Text_New(sdate,stime,plot9,"전일 +38.2 : " +NumToStr(plot9,2));
Var10 = Text_New(sdate,stime,plot10,"전일 +61.8 : " +NumToStr(plot10,2));
var11 = Text_New(sdate,stime,plot11,"전일 -23.6 : " +NumToStr(plot11,2));
var12 = Text_New(sdate,stime,plot12,"전일 -38.2 : " +NumToStr(plot12,2));
var13 = Text_New(sdate,stime,plot13,"전일 -61.8 : " +NumToStr(plot13,2));
3
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
Plot1(Pivot, "피봇포인트");
Plot2(R1, "1차저항");
Plot3(R2, "2차저항");
Plot4(S1, "1차지지");
Plot5(S2, "2차지지");
Text_Delete(var1);
Text_Delete(var2);
Text_Delete(var3);
Text_Delete(var4);
Text_Delete(var5);
var1 = Text_New(sdate,stime,Plot1,"피봇기준 : " +NumToStr(Plot1,2));
var2 = Text_New(sdate,stime,Plot2,"1차저항 : " +NumToStr(Plot2,2));
var3 = Text_New(sdate,stime,Plot3,"2차저항 : " +NumToStr(Plot3,2));
var4 = Text_New(sdate,stime,Plot4,"1차지지 : " +NumToStr(Plot4,2));
var5 = Text_New(sdate,stime,Plot5,"2자지지 : " +NumToStr(Plot5,2));
감사합니다.
2016-01-27
113
글번호 94842
답변완료
문의
안녕하세요
1분차트를 기준으로
매일 01:00~03:00 의 고가와 저가
03:00~06:00 의 고가와 저가
06:00~09:00 의 고가와 저가
... 이렇게 3시간마다 리셋되어 고가와 저가를 인디케이터로 나타내고싶습니다.
3시가 되면 1시~3시까지의 고가 저가는 다시 3시 00분의 고가 저가로 되어
3시 1분의 고가 저가로 6시까지 고가저가로 연결되는겁니다.
3시간마다 리셋되는게 포인트입니다.
2016-01-27
102
글번호 94839
답변완료
질문드립니다
질문드립니다
질문내용은 3가지입니다
var1 = accumn(upvol,dayindex+1);
1. var1의 전일동시간대비 비율을 지표로 표현하고자합니다
2. var1의 전일마지막값을 오늘 지표로 표현하고자합니다
3. var1의 전일최대값을 오늘 지표로 표현하고자합니다
2016-01-27
115
글번호 94838
답변완료
수식문의드려요
전일 문의했던 사항 중,
불가하다는 내용을 제외한 부분에 대한 답변이 없어 다시 질문 드립니다.
2. 진입 후, 수익 10% 이상 또는 손실 -10%이하 일 때, 청산
3. 진입 주문 후, 3분 동안 체결되지 않을 경우 주문 취소
4. 현재 수익률 값 조회
5. 진입 가격, 시간 조회
감사합니다~
2016-01-27
99
글번호 94836