커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1465
글번호 230811
답변완료
수식부탁드립니다^^
총자산 1,000만원으로 가정하고 15분봉 기준으로 주식을 거래를 하고 싶습니다.
1. 매수기준 : 최고점(Day0)이후 3거래일(Day3) 내에 하락%도달시 매수진행
최고점대비 -5%에 1차매수는 총자산대비 10%
, -10%에 2차매수는 총자산대비 20%
, -15%에 3차매수는 총자산대비 30%
(최고점은 일봉상 20일간 최고점으로 부탁드립니다-> 최대가능일자는 몇일까지가능한가요?)
예시) 최고점 10,000원 가정시
-5%인 9,500원에서 1차매수 (매수가 9,500원에 총자산 10%인 100만원 매수)
-10%인 9,000원에서 2차매수 (매수가 9,000원에 총자산 20%인 200만원 매수)
-15%인 8,500원에서 3차매수 (매수가 8,500원에 총자산 30%인 300만원 매수)
변수처리 : 매수거래일(Day3), 하락-% 비율(-5,-10,-15), 진입금액(총자산대비 10%, 20%, 30%)은 변수처리해서 시뮬레이션 가능하도록 부탁드립니다.
2. 반등청산기준 : 최고점과 최저점에서 20%반등시 1차 청산 (매수잔량의 50%청산),
최고점과 최저점에서 30%반등시 2차 청산 (매수잔량의 50%청산)
예시) 3차까지 매수된 후 저점갱신하여 최저점 8,000원을 찍고 반등가정시
최고점(10,000원)과 최저점(8,000원)에서 반등폭 20%인 8,400원에서 1차청산 (매수잔량 50%청산)
최고점(10,000원)과 최저점(8,000원)에서 반등폭 30%인 8,600원에서 1차청산 (매수잔량 50%청산)
※ 변수처리 : 반등폭(20%, 30%)과 청산비율(50%)는 변수처리해서 시뮬레이션 가능하도록 부탁드립니다.
3. 시간청산 (위 청산기준으로 청산이 안되고 시간만 흐를 경우)
1차, 2차, 3차 상관없이 최종 체결된 시간기준으로 2일(ExitDay2) 지나면 50% 청산
1차, 2차, 3차 상관없이 최종 체결된 시간기준으로 3일(ExitDay3) 지나면 전량청산 청산
예시) 2차(-10%)까지 체결후 3차 체결없이 2일 지나면 50% 청산
2차(-10%)까지 체결후 3차 체결없이 3일 지나면 전량청산
예시) 2차(-10%)까지 체결후 3차 체결없이 2일 지나면 50% 청산
그런데 추가하락해서 3차(-15%) 체결됨
-> 3차체결후 위 반등청산기준으로 청산되면 문제없지만 청산안되고 다시 시간만 흐를 경우
이때부터 다시 날짜카운팅
3차(-15%)까지 체결되서 다시 2일이 지나면 50% 청산
3차(-15%)까지 체결되서 3일이 지나면 전량청산
※ 변수처리 : ExitDay, 청산비율(50%)는 변수처리 부탁드립니다.
4. 손절로직 : 2.반등청산과 3.시간청산 기준에 못미치고 급락한 경우
3차매수가 대비 -10%에서 전량청산
예시) 3차매수가(8,500원)보다 -10% 더 하락한 7,500원에서 전량 손절처리
※ 변수처리 : 손절 -%는 변수처리 부탁드립니다.
그리고 위 수식을 전체종목에 시뮬레이션돌리고 싶은데, 어떻게하면 가능할까요?
예스트레이더 or 예스스팟으로 가능한지 궁금하네요.
예스트레이더로 할 경우 종목차트에 하나하나 다 적용시켜야할거같은데.. 한번에 돌릴수있는 방법이 궁금합니다.
만약 가능하다면 제가 참고할수있는 레퍼런스가 있을까요??
노고에 감사드리며, 답변 부탁드리겠습니다. 좋은하루되십시요^^
2024-01-14
741
글번호 175726
답변완료
85353관련
85353의 수식 잘 받았읍니다. 감사감사합니다.
조건을 아래와 같이 줄여서 수정할 경우의 수식을 요청드립니다.
그리고 85353에 추가질문 있읍니다.
1.20봉이내에 전일종가대비 25%이상 상승한 장대양봉발생 (D일)
(not 20봉전)
2.0봉전 거래량이 D일 이후 최소거래량이면서 그 최소거래량이
D일 또는 D+1일 거래량 중 큰 것의 5%이하
2024-01-14
650
글번호 175725
답변완료
시스템식 부탁드립니다.
항상 도움주셔서 감사합니다.
종목 : 해외선물
아래시스템식에서 매수, 매도 진입이후 18시간이 지나면
청산하고 싶습니다.
시스템식 변형 부탁드립니다.
input : pt(10),sl(15);
input : p1(10),p2(20);
var : vol(1); // 진입수량
var : line1(0),line2(0) ;
var : etime(0) ;
line1 = ma(c,p1) ;
line2 = ma(c,p2) ;
value1 = pt/PointValue; //$로 익절
value2 = sl/PointValue; //$로 손절
if MarketPosition == 0 and crossup(line1,line2) Then
{
Buy("b",OnClose,Def,vol);
etime = sTime+180000 ;
}
if MarketPosition == 0 and CrossDown(line1,line2) Then
{
Sell("s",OnClose,Def,vol);
etime = sTime+180000 ;
}
If stime == etime Then
ExitLong("bx");
ExitShort("sx");
##### 스탑로스 #####
SetStopProfittarget(value1*PriceScale,PointStop);
SetStopLoss(Value2*PriceScale,PointStop);
감사합니다.
2024-01-14
715
글번호 175724
답변완료
부탁드립니다.
안녕하세요?
여러모로 도와주셔서 진심으로 감사드립니다.
아래 수식에서 다음내용을 검토해주십시요
1) 2일선시작라인 기준으로 상하 "전일종가-+당일시가" 데이터가 다르게 나타납니다.
2) 데이터가 2일선시작라인과 겹쳐표기됩니다. 상하 1라인 블랭크를 두었으면합니다.
3) 데이터가 많은날 당일캔들과 겹쳐서 나타납니다. 데이터가 전일 15:15분에 나타났으면 좋겠습니다.
4) "2일시작값+3.0" 데이터를 2일시작라인 상하로 추가해주세요.
늘 부탁만드려 죄송합니다.
오늘도 좋은하루 되시길 기원합니다.
================
input : p(2),pt1(0.05),pt2(0.05);
input : 굵기1(5),R1(255),G1(0),B1(0);
input : 굵기2(5),R2(255),G2(0),B2(0);
input : 굵기3(5),R3(255),G3(0),B3(0);
input : 굵기4(5),R4(255),G4(0),B4(0);
input : 굵기5(5),R5(255),G5(0),B5(0);
var : cnt(0),sum(0),mav(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
var : tx1(0),tx2(0),tx3(0);
sum = DayOpen(0);
if P >= 2 Then
{
For cnt = 1 to P-1
{
sum = sum + DayClose(cnt);
}
}
mav = sum/P;
if Index == 0 or (sTime >= 150000 and sTime[1] < 150000) Then
{
var1 = sDate;
Var2 = stime;
}
if Bdate != Bdate[1] Then
{
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,mav,sDate,sTime,mav);
TL2 = TL_New(var1,Var2,mav+pt1,sDate,sTime,mav+pt1);
TL3 = TL_New(var1,Var2,mav-pt2,sDate,sTime,mav-pt1);
TL4 = TL_New(var1,Var2,mav+pt2,sDate,sTime,mav+pt2);
TL5 = TL_New(var1,Var2,mav-pt2,sDate,sTime,mav-pt2);
TL_SetColor(TL1,RGB(R1,G1,B1));
TL_SetColor(TL2,RGB(R2,G2,B2));
TL_SetColor(TL3,RGB(R3,G3,B3));
TL_SetColor(TL4,RGB(R4,G4,B4));
TL_SetColor(TL5,RGB(R5,G5,B5));
TL_SetSize(TL1, 굵기1);
TL_SetSize(TL2, 굵기2);
TL_SetSize(TL3, 굵기3);
TL_SetSize(TL4, 굵기4);
TL_SetSize(TL5, 굵기5);
if DayOpen > mav Then
{
tx1 = text_new(sDate,sTime,mav,NumToStr(mav+1.5,2)+NewLine+NewLine);
Text_SetStyle(tx1,0,1);
Text_SetColor(tx1,Red);
tx2 = text_new(sDate,sTime,mav,NumToStr(DayOpen-mav,2)+NewLine);
Text_SetStyle(tx2,0,1);
Text_SetColor(tx2,Magenta);
tx3 = text_new(sDate,sTime,mav,NumToStr(DayOpen-DayClose*(1),2));
Text_SetStyle(tx3,0,1);
Text_SetColor(tx3,Black);
}
Else
{
tx1 = text_new(sDate,sTime,mav,NumToStr(DayOpen-DayClose*(1),2));
Text_SetStyle(tx1,0,0);
Text_SetColor(tx1,Black);
tx2 = text_new(sDate,sTime,mav,NewLine+NumToStr(mav-DayOpen,2));
Text_SetStyle(tx2,0,0);
Text_SetColor(tx2,Magenta);
tx3 = text_new(sDate,sTime,mav,NewLine+NewLine+NumToStr(mav-1.5,2));
Text_SetStyle(tx3,0,0);
Text_SetColor(tx3,Blue);
}
}
}
Else
{
if sTime < 150000 Then
{
TL_SetBegin(TL1,var1,Var2,mav);
TL_SetEnd(TL1,sDate,sTime,mav);
TL_SetBegin(TL2,var1,Var2,mav+pt1);
TL_SetEnd(TL2,sDate,sTime,mav+pt1);
TL_SetBegin(TL3,var1,Var2,mav-pt1);
TL_SetEnd(TL3,sDate,sTime,mav-pt1);
TL_SetBegin(TL4,var1,Var2,mav+pt2);
TL_SetEnd(TL4,sDate,sTime,mav+pt2);
TL_SetBegin(TL5,var1,Var2,mav-pt2);
TL_SetEnd(TL5,sDate,sTime,mav-pt2);
}
}
2024-01-14
727
글번호 175723
답변완료
부탁드립니다.
안녕하세요?
아래 지표에서 Text1~5 의 "시,고,저,종,중"을 추세선 앞에 표기되도록 부탁드립니다.
미리 감사드리며 즐거운 휴일 보내시길 바랍니다.
=============================
input : 색1(lgreen),색2(RED),색3(BLUE),색4(black),색5(Cyan);
input : 조정값(0.05);
var : tl1(0),tl2(0),tl3(0),tl4(0),TL5(0);
var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0);
if Bdate != Bdate[1] Then
{
var1 = O;
var2 = H;
var3 = L;
var4 = C;
Var5 = (Var2+Var3)/2;
TL1 = TL_New(sDate[1],153000,var1+조정값,sDate,sTime,var1+조정값);
TL2 = TL_New(sDate[1],153000,var2+조정값,sDate,sTime,var2+조정값);
TL3 = TL_New(sDate[1],153000,var3+조정값,sDate,sTime,var3+조정값);
TL4 = TL_New(sDate[1],153000,var4+조정값,sDate,sTime,var4+조정값);
TL5 = TL_New(sDate[1],153000,var5+조정값,sDate,sTime,var5+조정값);
#추세선색
TL_SetColor(TL1,색1);
TL_SetColor(TL2,색2);
TL_SetColor(TL3,색3);
TL_SetColor(TL4,색4);
TL_SetColor(TL5,색5);
#추세선 굵기
TL_SetSize(TL1,1);
TL_SetSize(TL2,2);
TL_SetSize(TL3,3);
TL_SetSize(TL4,2);
TL_SetSize(TL5,3);
tx1 = text_new(sDate,sTime,var1,"시");
tx2 = text_new(sDate,sTime,var2,"고");
tx3 = text_new(sDate,sTime,var3,"저");
tx4 = text_new(sDate,sTime,var4,"종");
tx5 = text_new(sDate,sTime,var5,"중");
Text_SetStyle(tx1,0,2);
Text_SetStyle(tx2,0,1);
Text_SetStyle(tx3,0,0);
Text_SetStyle(tx4,0,2);
Text_SetStyle(tx5,0,2);
#글자색
Text_SetColor(tx1,색1);
Text_SetColor(tx2,색2);
Text_SetColor(tx3,색3);
Text_SetColor(tx4,색4);
Text_SetColor(tx5,색5);
}
if sTime < 90100 Then
{
TL_SetEnd(TL1,sDate,sTime,var1+조정값);
TL_SetEnd(TL2,sDate,sTime,var2+조정값);
TL_SetEnd(TL3,sDate,sTime,var3+조정값);
TL_SetEnd(TL4,sDate,sTime,var4+조정값);
TL_SetEnd(TL5,sDate,sTime,var5+조정값);
Text_SetLocation(tx1,sDate,sTime,var1);
Text_SetLocation(tx2,sDate,sTime,var2);
Text_SetLocation(tx3,sDate,sTime,var3);
Text_SetLocation(tx4,sDate,sTime,var4);
Text_SetLocation(tx5,sDate,sTime,var5);
}
2024-01-14
1181
글번호 175722
답변완료
선물 최우선 호가의 잔량 (또는 건수)의 제공
수고하십니다 .선물 최우선 호가의 잔량(또는 건수)만을 제공받을 수 있습니까?
2024-01-14
953
글번호 175721
답변완료
수식문의
N봉최고값 N봉최저값을 수평으로 선을 만들려고 합니다
고생하세요
2024-01-14
860
글번호 175720
답변완료
문의드립니다
안녕하세요?
아래지표를 가지고 조건문을 만들어 제가사용하고있는 씨스템식에 추가적용하고져
질문드립니다
원하는조건문: 그림에그려넣은 빨간색 타원영역에서 매수신호가발생하여도 매수안한다
파란색 타원영역에서 매도신호가발생하여도 매도안한다
(신호발생봉의 종가와시가가 각영역안에 위치함을원합니다)
감사합니다
Input : Period(20), Percent(2);
var : center(0),UPline(0),DNline(0),T(0);
center = ma(C, Period);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
if center > center[1] Then
T = 1;
if center < center[1] Then
T = -1;
if T == 1 then{
Plot1(center, "중앙선",Red);
Plot2(UPline, "EnvelopeUp",Red);
Plot3(Dnline, "EnvelopeDown",Red);
}
else{
Plot1(center, "중앙선",Blue);
Plot2(UPline, "EnvelopeUp",Blue);
Plot3(Dnline, "EnvelopeDown",Blue);
}
2024-01-14
780
글번호 175719
답변완료
지표 질문입니다
음봉 이후 양봉이 연속되다가 음봉이 출현하는 경우
음봉 사이 양봉 연속되는 구간내 양봉들 가운데 최고가와 최저가를 표시한다
양봉 이후 음봉이 연속되다가 양봉이 출현하는 경우
양봉 사이 음봉 연속되는 구간내 음봉들 가운데 최고가와 최저가를 표시한다
감사합니다
2024-01-14
984
글번호 175718