커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7470
글번호 230811
답변완료
지표식 부탁드립니다.
안녕하세요?
제가 아래의 식을 메인챠트에 적용해서 사용하고 있습니다. 그런데보조지표식에도 적용을 해서 다이버전스를 확인하려고 하는데 실력이 짧아 만들지를 못하겠습니다.
아래의 Plot1과 Plot2를 StochasticsK선에 적용하는 지표식을 부탁드립니다.
그리고 작성된 보조지표식을 Data2에도 적용할 수 있도록 수정한 식도 같이 부탁드립니다.
감사합니다.
##피보나치되돌림##
Inputs: XAvgLen(9), HiLoLen(50), Retrace(0.382);
Vars: HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
plot1(Hretrace-((HiHi-LoLo)*0.612),"저점상승");
plot2(Lretrace+((HiHi-LoLo)*0.612),"고점하락");
2015-04-15
261
글번호 85060
답변완료
답변 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 부탁합니다.
>
안녕하세요
예스스탁입니다.
1번식은 한봉에 매수와 매도 한번씩 진입합니다.
매수나 매도중 하나만 진입하기 위해서는
수식에서 지정한 가격 터치시 진입은 atstop이나 atlimit타입을 사용하는데
모두 전봉에서 가격을 셋팅해 현재봉시세 조건만족시에 신호가 발생합니다.
그러므로 매수나 매도중 하나만 진입하기 위해서는 2개가 동시에 충족되지 않는 조건을 넣어야 합니다.
2번식은 시가가 직전봉 종가대비 같거나 높으면 매수쪽으로만
시가가 지전봉 종가대비 아래면 매도쪽으로만 진입이 발생하게 작성한 식입니다.
이용에 참고하시기 바랍니다.
1.
input : 시가대비틱수(5),손절틱수(10),익절틱수(20),최고수익대비하락틱수(10);
input : X(5),Y(10),A(5),B(5);
if MarketPosition <= 0 Then
buy("b",AtStop,NextBarOpen+PriceScale*시가대비틱수);
if MarketPosition >= 0 then
sell("s",AtStop,NextBarOpen-PriceScale*시가대비틱수);
if MarketPosition == 1 Then{
exitlong("btr1",AtStop,Highest(H,BarsSinceEntry)-PriceScale*최고수익대비하락틱수);
if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*x and highest(H,BarsSinceEntry) < EntryPrice+PriceScale*y Then
exitlong("btr2",AtStop,highest(H,BarsSinceEntry)-PriceScale*a);
if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*y Then
exitlong("btr3",AtStop,highest(H,BarsSinceEntry)-PriceScale*b);
}
if MarketPosition == -1 Then{
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*최고수익대비하락틱수);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*x and Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*y Then
ExitShort("str2",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*a);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*y Then
ExitShort("str3",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*b);
}
SetStopProfittarget(PriceScale*손절틱수,PointStop);
SetStopLoss(PriceScale*익절틱수,PointStop);
2번
input : 시가대비틱수(5),손절틱수(10),익절틱수(20),최고수익대비하락틱수(10);
input : X(5),Y(10),A(5),B(5);
if MarketPosition <= 0 and NextBarOpen >= C Then
buy("b",AtStop,NextBarOpen+PriceScale*시가대비틱수);
if MarketPosition >= 0 and NextBarOpen < C then
sell("s",AtStop,NextBarOpen-PriceScale*시가대비틱수);
if MarketPosition == 1 Then{
exitlong("btr1",AtStop,Highest(H,BarsSinceEntry)-PriceScale*최고수익대비하락틱수);
if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*x and highest(H,BarsSinceEntry) < EntryPrice+PriceScale*y Then
exitlong("btr2",AtStop,highest(H,BarsSinceEntry)-PriceScale*a);
if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*y Then
exitlong("btr3",AtStop,highest(H,BarsSinceEntry)-PriceScale*b);
}
if MarketPosition == -1 Then{
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*최고수익대비하락틱수);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*x and Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*y Then
ExitShort("str2",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*a);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*y Then
ExitShort("str3",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*b);
}
SetStopProfittarget(PriceScale*손절틱수,PointStop);
SetStopLoss(PriceScale*익절틱수,PointStop);
즐거운 하루되세요
> 재정적자유 님이 쓴 글입니다.
> 제목 : 수식 부탁합니다.
> 해외 선물 매매자 입니다.
수식 부탁드립니다.
괄호 안은 함수가 아니고 함수에 대한 설명 부분입니다.
매수 진입
봉 시가 대비 x 틱 상승 시 진입
+ 한 봉에서 1 번 만 진입
매수 청산 ( 아래 다섯가지 청산 방법중에 하나만 만족해도 청산 되게 해주십시요.)
익절 x 틱
손절 x 틱
진입 봉 종가 청산
진입 후 최고가 대비 x 틱 하락 시 청산
진입 후 x 틱 상승 후 a 틱 하락시 청산, y 틱 상승 후 b 틱 하락 시 청산..( y 가 x보다 절대값이 큰 숫자입니다.)
매도 진입
봉 시가 대비 x 틱 하락 시 진입
+ 한 봉에서 1 번 만 진입
매도 청산 ( 아래 다섯가지 청산 방법중에 하나만 만족해도 청산 되게 해주십시요.)
익절 x 틱
손절 x 틱
진입 봉 종가 청산
진입 후 최저가 대비 x 틱 상승 시 청산
진입 후 x 틱 하락 후 a 틱 상승 시 청산, y 틱 하락 후 b 틱 상승 시 청산.( x보다 y 가 절대값이 큰 숫자입니다.)
질문 하나
"수식에서 지정한 가격 터치시 진입은 atstop이나 atlimit타입을 사용하는데
모두 전봉에서 가격을 셋팅해 현재봉시세 조건만족시에 신호가 발생합니다"
위 글의 뜻은 "현재 봉 시가 대비 x 틱 상승시점",그러니까 그 즉시는 진입 못하고 x 봉 상승이라는 조건을 만족한 봉 다음봉 시가에 진입한다는 말인가요?
질문 둘
진입 조건에 추가 함수 한가지 부탁 합니다.
뭐냐면 x 틱 상승(하락)시 진입할 때 슬리피지가 너무 클 때는 진입 하지않게,이럴테면 "체결가가 시가 대비 x틱 상승(하락) 에서 슬리피지가 k틱 이내일때에만 진입한다." 라는 함수를 추가하는게 가능한지요?
가능하다면 함수를 1번식,2번식에 추가 부탁합니다.
질문 셋
"그러므로 매수나 매도중 하나만 진입하기 위해서는 2개가 동시에 충족되지 않는 조건을 넣어야 합니다."
위 글에서 "2개"는 무엇을 뜻하는지요?
질문 넷
"2번식은 시가가 직전봉 종가대비 같거나 높으면 매수쪽으로만
시가가 지전봉 종가대비 아래면 매도쪽으로만 진입이 발생하게 작성한 식입니다."
그럼 현재봉 시가가 직전봉 종가대비 같거나 높았는데 약간 상승하다가 현재봉 시가대비 x 틱이상 하락해도 매도 진입 안되는건가요?
그 반대인 경우에도 매수 진입 역시 안되는지요?
질문 다섯
답변해 주신 수식들의 각 함수들,그러니까 한줄 한줄 밑에 한글로 그뜻을 풀이 해주실수 있을런지요.
팝송 가사를 우리말로 번역 하듯이 말입니다.
제가 너무 초보라서 해독이 안되어서요.
공부하는데 큰 도움 될것같습니다.
꼭 좀 부탁드립니다.
질문 여섯
부탁드린 청산 방법이 5 가지 였는데 모두 다 표현 되어 있는지요?
질문 일곱
전략을 실행차트에 적용시킬때 차트에는 전략에 포함된 모든 지표가 띄워져 있어야 합니까?
질문 여덟
청산 함수 "진입 후 최고가 대비 X틱 하락시 청산" 에서 만약 진입시, 슬리피지 때문에 로직보다 더 높은 가격으로 진입했다면, "최고가" 계산할 때 기준을 체결가로 하나요,아님 슬리피지 무시하고 로직함수를 기준으로 하나요.
2015-04-14
249
글번호 85059
답변완료
수식 문의 드립니다.
안녕하세요.
지수가 고점갱신후 60분 이내에 고점갱신이 없다가, 60분 이후 고점갱신하면 매수
지수가 저점갱신후 60분 이내에 저점갱신이 없다가, 60분 이후 저점갱신하면 매도
수식 부탁드립니다.
2015-04-14
126
글번호 85058
답변완료
수식 문의 드립니다..
수식 검토바랍니다..
/////
var1 = ma(c,5);
var2 = ma(c,20);
var3 = ma(c,60);
if var2< var2[1] and var3 <var3[1] then{
if CrossDown(c,var1) Then{
sell("ss");
}
}
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*5 Then
ExitShort("SL1",AtStop,EntryPrice);
Else
ExitShort("sl2",AtStop,EntryPrice+PriceScale*4);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*8 and CrossUp( C , highest(max(c,O),2)[1]) Then
ExitShort("sx");
///////
>>>>>>매도가 나오자마자 청산신호가 바로뜨는데 검토붗탁드립니다...
2015-04-14
123
글번호 85057
텐푸로 님에 의해서 삭제되었습니다.
2015-04-14
0
글번호 85056
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2015-04-14
5
글번호 85055
답변완료
예스랭귀지에서 매수1호가, 매도1호가를 알수 없나요?
제가 예스랭귀지를 살펴보고 있는데 궁금한 점이 있어 문의드립니다.
예스랭귀지에서 코스피200 선물,옵션 종목들에서 매수1호가, 매도1호가의 호가 가격을 알수 있는지 궁금합니다.
예스랭귀지 편집기의 사전을 찾아보니 종가같은 경우는 close 라는 변수를 참조하면 종가를 알수 있는 것 같던데요.
사전창의 범주 탭에서 데이터란 범주내의 함수중에 Asks 라는 것이 매도잔량, Bids 가 매수잔량...이라고 나와있긴 하지만 특별히 매수1호가, 매도1호가를 특정하는 변수는 없는 거 같더군요.
예를들어, 코스피200선물 최근월물의 현재가가 263.00 이라고 가정했을 때, 매수1호가가 263.00, 매수2호가가 262.95, 매수3호가가 262.90...이렇게 되어있다면, 매도1호가는 263.05, 매도2호가는 263.10, 매수3호가는 263.15...이렇게 나가겠죠.
가령 현재 매수1호가가 263.00 인 상태에서 향후 매수1호가가 263.50이 되면 매도주문을 내도록 수식을 작성하고 싶다고 했을 때, 그것이 가능한지 궁금합니다.
매수1호가나 매도1호가를 특정할수 있는 변수가 예스랭귀지 내에 없다면 이런 수식은 작성할 수 없을 거 같은데요.
매수1호가와 매도1호가를 특정하여 수식을 작성할 수 있는 방법이 있는지 궁금합니다.
있다면 어떤 식으로 수식을 작성하면 되는지도 궁금하네요.
2015-04-14
158
글번호 85054
답변완료
60이평과 120이평 사이에 색깔을 입힐수 있나요?
1분봉 기준
60이평과 120이평 사이에 색을 바탕색과 달리 하고싶네요
2015-04-14
155
글번호 85043
답변완료
종목 연동에 관하여.
예를들어, elw종목이 수천개가 있잖아요. 그럼 그중에서 거래량 10000주이상된 종목을 자동으로 차트에 적용되서 매매가 되게하는건 안되나요?
주식과 elw를 매매할려고하는데, 좋은 알고리즘은 있으나 사람이 일일이 확인하고 집어넣는게 힘들어서 혹시 자동으로 찾아서 알아서 차트에 적용시키는건 없나 여쭈어봅니다.
수고하세요.
2015-04-14
153
글번호 85041