커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6180
글번호 230811
답변완료
추가문의 드립니다
봬내주신 자료 잘 받아보았고 테스트를 해봤는데 결과가 이상해서
프로그램을 좀 살펴 보았습니다. 전문가는 아니지만.....
그런데 데이터 2,3,4에서 종가가 파라보릭에 연동되게 되어있더군요
제가 원하는것은 데이터 2,3,4는 단순히 이평이 모두 상승일때와 모두 하강일때만을 판단합니다.
그리고 맨 아래에 있는 수식을 보시면 파라보릭에서 고점이 나오면 다음 고점이 나올때까지 계속 수평으로 선을 그리게 되어있습니다. 저점도 마찬가지고요.
데이터 2,3,4의 이평이 모두 우상향일때 종가가 이 고점라인을 돌파하면 매수하고 상승하다가 새로운 고점이 생기면(즉 종가가 하락하여 파라보릭이평을 건드리면) 청산하는 것입니다.
그리고 하락도 마찬가지로 데이터 2,3,4의 이평이 모두 하락하고 저점수평라인을 돌파하면 매도 하고 새로운 저가가 생성되면(종가가 상승하여 파라보릭 이평은 건드리면) 청산합니다.
여기에 하나만 더 추가할것은 진입후 종가에서 0.5포인트 하락하면 새로운 고점이 만들어 지지 않았더라도 손절하고 나오게 해주시면 감사하겠습니다.
매수 매도 양쪽모두 ...
안녕하세요
예스스탁입니다.
문의하신 내용은 4개의 데이터를 이용해야 합니다.
일반적으로 가장짧은 주기의 데이터가 기본차트로 나머지는 참조데이터로 추가하고
이용하셔야 합니다.
틱봉이 있으므로
틱봉차트에 1분,3분,5분을 참조데이터로 순차적으로 추가하고 아래식 적용하시면 됩니다.
기본차트 : 틱
data1 : 1분
data2 : 3분
data3 : 5분
input : P(5),af(0.02),maxaf(0.2);
var : Bcond(false,data1),Scond(false,data1);
var : mav2(0,data2),sar2(0,data2),T2(0,data2),V2(0,data2);
var : mav3(0,data3),sar3(0,data3),T3(0,data3),V3(0,data3);
var : mav4(0,data4),sar4(0,data4),T4(0,data4),V4(0,data4);
var : sar1(0,data1),T1(0,data1),V1(0,data1);
mav2 = data2(ma(C,P));
mav3 = data3(ma(C,P));
mav4 = data4(ma(C,P));
sar1 = data1(sar(af,maxaf));
sar2 = data2(sar(af,maxaf));
sar3 = data3(sar(af,maxaf));
sar4 = data4(sar(af,maxaf));
if data1(crossup(c,sar1)) Then{
T1 = 1;
V1 = sar1;
}
if data1(CrossDown(c,sar1)) Then{
T1 = -1;
V1 = sar1;
}
if data2(crossup(c,sar2)) Then{
T2 = 1;
V2 = sar2;
}
if data2(CrossDown(c,sar2)) Then{
T2 = -1;
V2 = sar2;
}
if data3(crossup(c,sar3)) Then{
T3 = 1;
V3 = sar3;
}
if data3(CrossDown(c,sar3)) Then{
T3 = -1;
V3 = sar3;
}
if data4(crossup(c,sar4)) Then{
T4 = 1;
V4 = sar4;
}
if data4(CrossDown(c,sar4)) Then{
T4 = -1;
V4 = sar4;
}
bcond = mav2 > mav2[1] and mav3 > mav3[1] and mav4 > mav4[1] and
T2 == 1 and data2(c) > V2 and T3 == 1 and data3(c) < V3 and T4 == 1 and data4(c) > V4;
scond = mav2 < mav2[1] and mav3 < mav3[1] and mav4 < mav4[1] and
T2 == -1 and data2(c) < V2 and T3 == -1 and data3(c) < V3 and T4 == -1 and data4(c) < V4;
if MarketPosition <= 0 and Bcond == true and Bcond[1] == false Then
buy();
if MarketPosition == 1 and T1 == -1 and data1(C) < sar1 Then
exitlong();
if MarketPosition >= 0 and Scond == true and Scond[1] == false Then
sell();
if MarketPosition == -1 and T1 == 1 and data1(C) > sar1 Then
ExitShort();
즐거운 하루되세요
> 에헤라디야 님이 쓴 글입니다.
> 제목 : 추가문의 드립니다.
>
안녕하세요
현재 예스스탁의 도움으로 아래와 같이 파라보릭 고저라인을 틱봉에서 사용하고 있습니다.
이것을 이용해서 data1은 1분봉, data2는 3분봉, data3는 5분봉으로 해서
1분봉과 3분봉, 그리고 5분봉 모두 5이평선이 (+)이고 파라보릭 고점을 돌파하면 매수,
그리고 틱봉상 하락하여 파라보릭이평을 돌파하면 청산.
그리고 하락시에도 똑같이 1분, 3분, 5분봉의 5이평선이 하락이고 파라보릭 저점을 깨면 진입,
상승해서 파라보릭이평을 돌파하면 청산하는 시스템을 부탁드립니다.
Input : af(0.02), maxAF(0.2);
var1 = SAR(af,maxAF);
if crossup(c,var1) Then
value1 = var1;
if CrossDown(c,var1) Then
value1 = var1;
if var1 > C Then
Plot1(value1, "SAR",BLUE);
Else
Plot1(value1, "SAR",RED);
2018-02-01
216
글번호 116257
답변완료
수식 추가 부탁드립니다.
안녕하세요~
아래 수식에서 2가지 and 조건을 추가 하고 싶습니다.
매수 :
1. and로 추가 매수 매도세 잔량비가 매수가 높을때를
2. and로 추가 직전의 거래량 합보다 신호 때 거래량 합이 더 플러스 될 때
단, 선물 전일 종가 기준 5포인트 이상 올랐을 때 매수 진입 없게
청산:
1. 매수 매도 잔량비가 매도가 높아질때
2. 매수 거래량합이 많던게 매도 거래량 합이 많아 질 때
하나라도 어긋나면 청산
---------
매도 :
1. and 로 추가 매수 매도세 잔량비가 매도가 높을때를
2. and 로 추가 직전의 거래량 합보다 신호 때 거래량 합이 더 마이너스 될 때
단, 선물 전일 종가 기준 5포인트 이상 내렸을 때 매도 진입 없게
청산:
1. 매수 매도 잔량비가 매수가 높아질때
2. 매도 거래량합이 많던게 매수 거래량 합이 많아 질 때
하나라도 어긋나면 청산
감사합니다!
Input : Period(20), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if Bdate != bdate[1] Then
var1 = 0;
if C > O Then
var1 = var1+v;
if C < O Then
var1 = var1-v;
if var1 > 2000 and CrossDown(c,bbdn) Then
buy();
if MarketPosition == 1 and var1 < 2000 Then
exitlong();
if var1 < -2000 and CrossUp(c,bbup) Then
sell();
if MarketPosition == -1 and var1 > -2000 Then
ExitShort();
SetStopEndofday(153400);
2018-02-01
178
글번호 116256
답변완료
뒤로 밀려 다시문의 합니다
Input:length(10),최근만(1);
Var:TL1(0),TL2(0),TL3(0),Slope(0),TL_NewBit(0); // 1:NewLine 2:SetEndLine
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
var : VV(0),diff(0);
var : TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0);
var : TL31(0),TL32(0),TL33(0),TL34(0),TL35(0),TL36(0);
Value1 = HiLoLineZigZag(length,0,고,저,TL_NewBit); //사용자함수 바로 가기
If Value1 == 1 Then {
If TL_NewBit == 1 Then TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If TL_NewBit == 2 Then TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
Else If Value1 == -1 Then {
If TL_NewBit == 1 Then TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If TL_NewBit == 2 Then TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
If Value1 == 1 and TL_NewBit == 1 Then {
Slope = (저[1,1]-저[2,1])/(저[1,2]-저[2,2]);
If 최근만 > 0 Then {
TL_Delete(TL3);
TL_Delete(TL31);
TL_Delete(TL32);
TL_Delete(TL33);
TL_Delete(TL34);
TL_Delete(TL35);
TL_Delete(TL36);
}
TL2 = TL_New(저[2,3],저[2,4],저[2,1],sDate,sTime,Slope*(Index-저[2,2])+저[2,1]);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL2,1);
VV = Slope*(저[1,2]-저[2,2])+저[2,1];
diff = abs(저[2,1] - 저[1,1]);
TL21 = TL_New(저[1,3],저[1,4],VV-diff*1,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*1);
TL22 = TL_New(저[1,3],저[1,4],VV-diff*2,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*2);
TL23 = TL_New(저[1,3],저[1,4],VV-diff*3,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*3);
TL24 = TL_New(저[1,3],저[1,4],VV+diff*1,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*1);
TL25 = TL_New(저[1,3],저[1,4],VV+diff*2,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*2);
TL26 = TL_New(저[1,3],저[1,4],VV+diff*3,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*3);
TL_SetColor(TL21,BLUE); TL_SetSize(TL21,1);
TL_SetColor(TL22,RED); TL_SetSize(TL22,1);
TL_SetColor(TL23,RED); TL_SetSize(TL23,1);
TL_SetColor(TL24,BLUE); TL_SetSize(TL24,1);
TL_SetColor(TL25,RED); TL_SetSize(TL25,1);
TL_SetColor(TL26,red); TL_SetSize(TL26,1);
}
If Value1 == 1 and TL_NewBit <> 1 Then {
TL_SetEnd(TL2,sDate,sTime,Slope*(Index-저[2,2])+저[2,1]);
TL_SetEnd(TL21,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*1);
TL_SetEnd(TL22,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*2);
TL_SetEnd(TL23,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*3);
TL_SetEnd(TL24,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*1);
TL_SetEnd(TL25,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*2);
TL_SetEnd(TL26,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*3);
}
If Value1 == -1 and TL_NewBit == 1 Then {
Slope = (고[1,1]-고[2,1])/(고[1,2]-고[2,2]);
If 최근만 > 0 Then {
TL_Delete(TL2);
TL_Delete(TL21);
TL_Delete(TL22);
TL_Delete(TL23);
TL_Delete(TL24);
TL_Delete(TL25);
TL_Delete(TL26);
}
TL3 = TL_New(고[2,3],고[2,4],고[2,1],sDate,sTime,Slope*(Index-고[2,2])+고[2,1]);
TL_SetColor(TL3,RED);
TL_SetSize(TL3,1);
VV = Slope*(고[1,2]-고[2,2])+고[2,1];
diff = abs(고[2,1]-고[1,1]);
TL31 = TL_New(고[1,3],고[1,4],VV+diff*1,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*1);
TL32 = TL_New(고[1,3],고[1,4],VV+diff*2,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*2);
TL33 = TL_New(고[1,3],고[1,4],VV+diff*3,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*3);
TL34 = TL_New(고[1,3],고[1,4],VV-diff*1,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*1);
TL35 = TL_New(고[1,3],고[1,4],VV-diff*2,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*2);
TL36 = TL_New(고[1,3],고[1,4],VV-diff*3,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*3);
TL_SetColor(TL31,RED); TL_SetSize(TL31,1);
TL_SetColor(TL32,BLUE); TL_SetSize(TL32,1);
TL_SetColor(TL33,BLUE); TL_SetSize(TL33,1);
TL_SetColor(TL34,RED); TL_SetSize(TL34,1);
TL_SetColor(TL35,BLUE); TL_SetSize(TL35,1);
TL_SetColor(TL36,BLUE); TL_SetSize(TL36,1);
}
If Value1 == -1 and TL_NewBit <> -1 Then {
TL_SetEnd(TL3,sDate,sTime,Slope*(Index-고[2,2])+고[2,1]);
TL_SetEnd(TL31,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*1);
TL_SetEnd(TL32,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*2);
TL_SetEnd(TL33,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*3);
TL_SetEnd(TL34,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*1);
TL_SetEnd(TL35,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*2);
TL_SetEnd(TL36,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*3);
}
TL2와 TL24 = TL_New(고[2,3],고[2,4],고[2,1],sDate,sTime,Slope*(Index-고[2,2])+고[2,1]);
TL3와 TL31 = TL_New(저[2,3],저[2,4],저[2,1],sDate,sTime,Slope*(Index-저[2,2])+저[2,1]);
대체할수 있는데
각각 diff 값이... 원하는 값이 출력하지 못합니다,,수고스럽지만 부탁합니다
꼭,,TL31.32등 값이 고[1,3]이아닌 고[2.3]부터 시작해도 상관없구요 채널식의 그림입니다..
몇날을 해봐도 오차값이 있어서 못하겠습니다. 이것만 부탁 할께요 수고하세요
2018-02-01
201
글번호 116252
답변완료
수식부탁합니다
수고에 항상 감사한 마음을 가지고 있습니다.
아래의 두가지 조건 수식을 부탁드립니다.
1. 장시작후 분봉상 당일첫봉후 5봉이내 전일고가를 돌파하고 시가를 깨지 않은 종목
검색식 부탁합니다.
2. 전일10% 이내 상승하고 당일 장시작후 분봉상 2봉이내 이내 가격상승률이 10% 이내종목
검색식부탁합니다.
감사합니다
2018-02-02
204
글번호 116239
잡다백수 님에 의해서 삭제되었습니다.
2018-02-01
5
글번호 116237
답변완료
수식 요청드립니다.
1) 5분봉에서 5번째 봉이나 10번째 봉 시가 기준으로 매일 당일의
퍼센트 차트를 그리고 싶습니다.
2)스토케스틱 차트에 매일 시가 기준으로 계속해서 스톡케스틱의 기간을 봉마다에서 늘려서
지표를 그리고 싶습니다. 시가 부터 진행되는 봉가지의 최고와 최저를 알아서 스톡케스틱 지표를
표현하고 싶습니다.
감사합니다.
2018-02-01
185
글번호 116236
답변완료
수식 변경 희망합니다.
안녕하세요
아래 수식에서
0 위일때 빨강선
0 아래일때 파랑선
0 기준선 회색
당일 시초가부터로 수정 부탁드립니다.
#초기화시점
if Bdate != bdate[1] Then
var1 = 0;
if C > O Then
var1 = var1+v;
if C < O Then
var1 = var1-v;
plot1(var1);
PlotBaseLine1(0, "기준선");
2018-01-31
180
글번호 116235
답변완료
수식 신청합니다.
안녕하세요.
[첫번째] 시스템 매매
매수 두가지 조건 맞을 때
1. 아래 수식에서 +1000 위일 때
#초기화시점
if Bdate != bdate[1] Then
var1 = 0;
if C > O Then
var1 = var1+v;
if C < O Then
var1 = var1-v;
plot1(var1);
PlotBaseLine1(0, "기준선");
2.볼린저 밴드 기본식 **하단 터치시
매수 청산
위 수식 1000 아래로 내려왔을 때
매도 두가지 조건 맞을 때
1. 아래 수식에서 -1000 아래 일 때
#초기화시점
if Bdate != bdate[1] Then
var1 = 0;
if C > O Then
var1 = var1+v;
if C < O Then
var1 = var1-v;
plot1(var1);
PlotBaseLine1(0, "기준선");
2.볼린저 밴드 기본식 **상단 터치시
매도 청산
위 수식 -1000 이상으로 올라 갔을 때
**동시호가 1분전 모든 포지션 청산 청산
-------------
[두번째] 시스템 매매
파라볼릭으로 변경입니다.
매수 두가지 조건 맞을 때
1. 아래 수식에서 +1000 위일 때
#초기화시점
if Bdate != bdate[1] Then
var1 = 0;
if C > O Then
var1 = var1+v;
if C < O Then
var1 = var1-v;
plot1(var1);
PlotBaseLine1(0, "기준선");
2.파라볼릭 종가 상승 신호 시작
매수 청산
두가지 조건 중 한가지 조건 깨졌을 때
매도 두가지 조건 맞을 때
1. 아래 수식에서 -1000 아래 일 때
#초기화시점
if Bdate != bdate[1] Then
var1 = 0;
if C > O Then
var1 = var1+v;
if C < O Then
var1 = var1-v;
plot1(var1);
PlotBaseLine1(0, "기준선");
2.파라볼릭 종가 하락 신호 시작
매도 청산
두가지 조건 중 한가지 조건 깨졌을 때
**동시호가 1분전 모든 포지션 청산 청산
----------------
[세번째] 시스템 매매
매수 두가지 조건 맞을 때
1.당일 시초가부터
양봉 거래량의 합이 음봉 거래량의 합보다 10% 이상 많을 때
2.파라볼릭 종가 상승 신호 시작
매수 청산
두가지 조건 중 한가지 조건 깨졌을 때
매도 두가지 조건 맞을 때
1.당일 시초가부터
음봉 거래량의 합이 양봉 거래량의 합보다 10% 이상 많을 때
2.파라볼릭 종가 하락 신호 시작
매도 청산
두가지 조건 중 한가지 조건 깨졌을 때
**동시호가 1분전 모든 포지션 청산 청산
----------------
감사합니다.
2018-02-01
214
글번호 116234
답변완료
수식문의 드려요(오버나이트)
매번 좋은 정보 감사드립니다.
특정시간(예를 들면 15:00)에 수식에 따라 진입을 한 후 수식에 청산 신호가 나와도 청산을 하지 않고 다음날 09:00 이후 청산하는 식을 만들고 싶습니다.
예를 들면 400분 주기로 RSI 수식을 이용해 15:00 이후 진입해서 청산되지 않고 다음날 아침 09:00 청산 되는 수식 부탁드립니다.
오버나이트로 수익을 계산 해보고자 합니다.
2018-01-31
181
글번호 116233