커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3755
글번호 230811
답변완료
수식문의드려요
키움수식입니다
예스로 표현 부탁드립니다
일정기간동안의 이평고점저점라인
수식1 %기간%이평(%봉수%봉내)고점
M=ma(c,기간,종류);
HH=Highest(M, 봉수);
valuewhen(1, HH>HH(1), HH)
수식2 저점
M=ma(c,기간,종류);
LL=Lowest(M, 봉수);
valuewhen(1, LL<LL(1),LL)
설정
기간 20
종류 단순
봉수 20
2019-06-14
338
글번호 129443
답변완료
수식문의드립니다
1. [지표문의] 콜옵션 개인순매수금액 과 풋옵션개인순매수금액을 더해서 선차트를 만들수 있을까요~~
2. 차트 아래에 거래량대신 매수거래량, 매도거래량을 각각 구분해서 나타낼수 있는지도 궁금합니다.
2019-06-13
303
글번호 129441
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2019-06-13
3
글번호 129440
답변완료
함수 추가 부탁드립니다.
안녕하세요.
아래수식에 해외선물 당일 오후1시부터 다음날 오전6시까지만 매매적용 설정 부탁드립니다.
감사합니다.
Inputs: Length(10), ATRs(1.5), Pval(0.05);
Variables: KUpper(0), BuySetup(False), BuyBase(0);
KUpper = KeltnerChannel(Close, Length, ATRs);
Condition1 = Crossup(Close, KUpper);
If MarketPosition() == 1 OR Close < MA(close, Length) Then
BuySetup = False;
Else
If Condition1 Then Begin
BuySetup = True;
BuyBase = High;
End;
If BuySetup Then
Buy ("Kltr", AtStop, BuyBase + Pval);
2019-06-13
309
글번호 129439
스누피독 님에 의해서 삭제되었습니다.
2019-06-13
4
글번호 129438
답변완료
문의드립니다
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 071500 and stime[1] < 071500) Then
{
var1 = o;
var2 = h;
var3 = l;
}
if var2 > 0 and h > var2 Then
var2 = h;
if var3 > 0 and l < var3 Then
var3 = l;
var4 = (var2+var3)/2;
if var1 > 0 then
{
plot1(var1);
Text_Delete(value1);
value1 = Text_New(sdate,stime,var1,"시가: "+NumToStr(var1,2));
}
if var2 > 0 then
{
plot2(var2);
Text_Delete(value2);
value2 = Text_New(sdate,stime,var2,"고가 : "+NumToStr(var2,2));
}
if var3 > 0 then
{
plot3(var3);
Text_Delete(value3);
value3 = Text_New(sdate,stime,var3,"저가 : "+NumToStr(var3,2));
}
if var4 > 0 then
{
plot4(var4);
Text_Delete(value4);
value4 = Text_New(sdate,stime,var4,"중심 : "+NumToStr(var4,2));
}
위수식에서 시가+10틱 시가-10틱 수평선으로 나오게하고십습니다 ,부탁드립니다 미리감사드립니다
2019-06-13
308
글번호 129433
답변완료
만은것을 부탁드려 죄송합니다
선생님 아래 시스템 고맙습니다
이것을 최적화 하니
최적화가 되지 않고 고정됩니다
제가 무엇을 잘 못하는지 모르겠습니다
최적화 되도록 확인 부탁드립니다
Input : length(10),종가사용여부(0),수치표시(1),표시(0);
input : 추세두께(2),추세상승색(red),추세하락색(blue);
input : 고점연결두께(2),고점연결색상(RED);
input : 저점연결두께(2),저점연결색상(blue);
input : p1(5),P2(20);
input : 손절틱수(50),익절틱수(50);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL11(0),TL12(0),T(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
T = 1;
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세상승색);
if 저[1,1] > 저[2,1] Then
{
if 표시 == 0 Then
TL_Delete(TL11);
TL11 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]);
TL_SetExtRight(TL11,true);
TL_SetColor(TL11,저점연결색상);
TL_SetSize(TL11,저점연결두께);
}
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
Text_SetStyle(Text1, 2, 1);
}
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
T = -1;
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세하락색);
if 고[1,1] < 고[2,1] Then
{
if 표시 == 0 Then
TL_Delete(TL12);
TL12 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]);
TL_SetExtRight(TL12,true);
TL_SetColor(TL12,고점연결색상);
TL_SetSize(TL12,고점연결두께);
}
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
Text_SetStyle(Text1, 2, 0);
}
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
}
}
최종꼭지점 = "저점";
}
var1 = ma(c,P1);
var2 = ma(C,P2);
if T == -1 and abs(저[1,1]-저[2,1]) <= PriceScale*10 and
C > O and crossup(c,var1) Then
buy("b",AtMarket);
if MarketPosition == 1 Then
{
ExitLong("bx1",AtStop,저[2,1]-PriceScale*1);
if CrossDown(c,var2) Then
exitlong("bx2",AtMarket);
}
if T == 1 and abs(고[1,1]-고[2,1]) <= PriceScale*10 and
C < O and CrossDown(c,var1) Then
sell("s",AtMarket);
if MarketPosition == -1 Then
{
ExitShort("sx1",AtStop,고[2,1]-PriceScale*1);
if CrossUp(c,var2) Then
ExitShort("sx2",AtMarket);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
2019-06-13
296
글번호 129429
답변완료
다시 질문 드립니다~
1. 이전 게시물에 답변해주신함수 SetStopProfittarget는 실제 거래 에서 사용가능한지요?
2. 매수한 가격에서 3% 떨어졌을때 Stop Loss 설정하는 함수 부탁드려요(탭에서 하는거 말구요).
---
안녕하세요
예스스탁입니다.
1
var : entry(0);
if bdate != bdate[1] Then
entry = 0;
if MarketPosition(0) != 0 and MarketPosition(0) != MarketPosition(0)[1] Then
entry = entry+1;
if entry < 1 then
{
진입수식
}
2
SetStopProfittarget(10,PointStop);
즐거운 하루되세요
> 에이치 님이 쓴 글입니다.
> 제목 : 수식 문의드려요
> 1. 하루에 한번만 매수/매도 하도록 설정하는 함수
2. 매수한 가격보다 10원 올랐을때 매도하도록 하는 함수
부탁드려요
2019-06-13
309
글번호 129428
답변완료
부탁드림니다.
Stochastics(12,5,5)
현재봉포함 과거3개봉안에서 클로즈업 우상향
스토캐스틱지수가 50이하인상태.
True Strength index(4,8,6,0,10)
현재봉포함 과거3개봉안에서 클로즈업 우상향
True Strength index지수가 30이하인상태.
ATR(14,9)
현재봉포함 과거4개봉안에서 우하나 수평에서 우상향으로 전환 변곡점형성,
우상향인 상태.
거래량
120개봉 평균거래량대비 2배이상.
120개봉 대비 최고거래량
캔들
현재가가 양봉
전봉대비 2%이상
2019-06-13
348
글번호 129427