커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1710
글번호 230811
답변완료
수식의뢰
수고하십니다.
현재 종가가
직전봉부터 이전10봉의 최고가 대비 -20% 이상인 종목 검색식
일봉과 분봉용 따로 부탁합니다.
2021-04-03
835
글번호 147642
답변완료
문의 드립니다.
예스랭귀지에
1. 지표-검색-강조-시스템 다음에 종목검색이 없는데요, 어떻게 해야 하나요?
2. 종목검색 후 관심종목 등록하는 방법도 알고 싶습니다.
3. 관심종목에서 종목을 클릭하면 모든 차트에 반영되는 방법도 알려 주세요.
2021-04-03
723
글번호 147641
답변완료
부탁드립니다
$,아래식에서 plot선 2개를 추가로 출력요청 드립니다.
1,
plot1 (미장시작 첫봉의시가를 미장종료시까지 오른쪽그리기)
plot2 (미장시작봉부터 종가선을 시작점까지 왼쪽그리기하되 봉이갱신되면 이전봉
종가선은 삭제(결국 미장종료후 마지막봉 종가선 하나만 미장시작점까지
왼쪽그리기 유지됨)
*색채우기를 하고자 plot로 요청하니 도움 부탁드립니다.
input : USA시작(223000),USA종료(050000),USA굵기(0);
var : D1(0),T1(0),H1(0),L1(0),Tcond1(false);
var : D2(0),T2(0),H2(0),L2(0),Tcond2(false);
var : D3(0),T3(0),H3(0),L3(0),Tcond3(false);
var : ED1(0),ET1(0),ED2(0),ET2(0),ED3(0),ET3(0);
var : TL11(0),TL12(0),TL13(0),TL14(0);
var : TL111(0),TL121(0),TL131(0),TL141(0);
var : TL21(0),TL22(0),TL23(0),TL24(0);
var : TL211(0),TL221(0),TL231(0),TL241(0);
var : TL31(0),TL32(0),TL33(0),TL34(0);
var : TL311(0),TL321(0),TL331(0),TL341(0);
var : tx1(0),tx2(0),tx3(0);
var : tx11(0),tx21(0),tx31(0);
if time == USA종료 or (time > USA종료 and time[1] < USA종료) Then
Tcond3 = false;
if stime == USA시작 or (stime > USA시작 and stime[1] < USA시작) Then{
D3 = sdate;
T3 = stime;
H3 = H;
L3 = L;
Tcond3 = true;
if d3[1] > 0 and ED3 > 0 Then{
TL_Delete(TL311);
TL_Delete(TL321);
TL_Delete(TL331);
TL_Delete(TL341);
TL311 = TL_New(D3[1],T3[1],H3[1],ED3,ET3,H3[1]);
TL321 = TL_New(D3[1],T3[1],L3[1],ED3,ET3,L3[1]);
TL331 = TL_New(D3[1],T3[1],H3[1],D3[1],T3[1],L3[1]);
TL341 = TL_New(ED3,ET3,H3[1],ED3,ET3,L3[1]);
TL_SetColor(TL311,MAGENTA);
TL_SetColor(TL321,MAGENTA);
TL_SetColor(TL331,MAGENTA);
TL_SetColor(TL341,MAGENTA);
TL_SetSize(TL311,USA굵기);
TL_SetSize(TL321,USA굵기);
TL_SetSize(TL331,USA굵기);
TL_SetSize(TL341,USA굵기);
Text_Delete(tx31);
tx31 = Text_New(ED3,ET3,H3[1],NumToStr(H3[1]-L3[1],4));
Text_SetColor(tx31,MAGENTA);
}
}
if Tcond3 == true Then{
if H > H3 Then
H3 = H;
if L < L3 Then
L3 = L;
ED3 = sdate;
ET3 = stime;
TL_Delete(TL31);
TL_Delete(TL32);
TL_Delete(TL33);
TL_Delete(TL34);
TL31 = TL_New(D3,T3,H3,Sdate,stime,H3);
TL32 = TL_New(D3,T3,L3,Sdate,stime,L3);
TL33 = TL_New(D3,T3,H3,D3,T3,L3);
TL34 = TL_New(sdate,stime,H3,sdate,stime,L3);
TL_SetColor(TL31,MAGENTA);
TL_SetColor(TL32,MAGENTA);
TL_SetColor(TL33,MAGENTA);
TL_SetColor(TL34,MAGENTA);
TL_SetSize(TL311,USA굵기);
TL_SetSize(TL321,USA굵기);
TL_SetSize(TL331,USA굵기);
TL_SetSize(TL341,USA굵기);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,H3,NumToStr(H3-L3,4));
Text_SetColor(tx3,MAGENTA);
}
2, IFf (OO[0] > OO[1] ,MAGENTA,BLUE) 이 함수 로직을 OO[0]> OO[1] > CC[1]일때로
할때 함수로직 부탁드립니다.
$,고맙습니다.
2021-04-05
995
글번호 147638
답변완료
BarsSinceExit 는 StopTrailing 청산도 고려
BarsSinceExit 는 StopTrailing 청산도 고려되는지요?
직전 29봉 전에 청산이 StopTrailing 으로 진행되었다면
BarSinceExit(1) > 30 조건에 적용이 되는지 궁금합니다.
즉 Trailing 청산도 인식을 하는지요?
2021-04-03
933
글번호 147637
답변완료
문의드립니다.
기본적으로는 2계약씩 진입을 하는 기준에서 설명 부탁드립니다.
Buy("매도", DEF, DEF, 2);
Sell("매도", DEF, DEF, 2);
라고 되었을때 청산 전략을 아래와 같이 가져가고 싶습니다.
1 계약의 경우 65틱 목표 수익 이후부터 트레일링스탑이 가동되고, 최고 수익 목표대비 10% 하락시 청산(%가 아닌 틱으로 설정할 수 있는 옵션도 같이 제공부탁드립니다.)
나머지 잔여 1계약의 경우 185틱 목표 수익 이후부터 트레일링 스탑이 가동되고, 최고 수익 목표대비 25% 하락시 청산(%가 아닌 틱으로 설정할 수 있는 옵션도 같이 제공부탁드립니다.)
2021-04-03
888
글번호 147636
답변완료
문의드립니다
분봉 차트 상에서
마지막 역추세 매수 진입이 손실 청산 되었다면 그 후로 분봉이
20일 일봉 단순이동평균선을 돌파하든지 건드리는 조건이 성립되어야
새로운 매수 진입을 한다.
이 부분을 짜주시면 감사하겠습니다.
if PositionProfit(1) < 0 Then {
if highest(h,barssinceexit(1)) > 20일단순이동평균선 Then
Buy("손실후진입", AtLimit ,가격);
}
이렇게 짜봤는데 차트상에서는
highest(h,barssinceexit(1)) > 20일단순이동평균선
조건이 성립이 안되었는데도 막 진입하네요
barssinceexit 함수가 봉수 제한이 있는거 같기도 하고
도와주시면 감사하겠습니다.
2021-04-03
781
글번호 147635
답변완료
시스템식
안녕하세요
매수 매도 진입해서
손절식이 설명이 부족해서 그림으로 올려봅니다
설명을 하자면 매도시 -- 진입봉 고가기준 2번째 고가봉의 가격을 돌파하고
다시 내려오면 익절 10틱 정리
매수시 -- 진입봉 저가기준 2번째 저가봉의 가격을 이탈하고
다시 올라오면 익절 10틱 정리
그림좀 꼭 봐주시고요 설명이 부족해서 올려요
2021-04-02
915
글번호 147634
답변완료
수식 작성 부탁드립니다
1.
input : ntime(3),P(5);
var : S1(0),D1(0),TM(0),TF(0),OO(0),기준선(0),mav(0);
기준선 = (highest(H,26)+lowest(L,26))/2;
mav = ma(C,P);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
OO = O;
}
if OO > 기준선 and CrossUp(mav,OO) Then
Buy();
if OO < 기준선 and CrossDown(mav,OO) Then
Sell();
}
input : 손실틱(15);
var : 최소이익(30),손실범위(15);
최소이익 = PriceScale*30;
손실범위 = PriceScale*15;
SetStopTrailing(손실범위 , 최소이익 , PointStop);
/////////////////////////////////////////////////////////////////////
2.
input : StartTime(140000),EndTime(055000),xtime(055500);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
var : Tcond(false),S1(0),D1(0),TM(0);
if sDate != sDate[1] then
SetStopEndofday(xtime);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
}
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
var1 = Disparity(20);
Var2 = ma(C,300);
if Tcond == true Then
{
if 전환선 > 기준선 and crossup(전환선,선행스팬1) and var1 >= 99 Then
buy("b");
if MarketPosition == 1 then
{
if 전환선 < 기준선 and CrossDown(전환선,선행스팬2) and var1 >= 99 Then
exitlong("bx1");
if TM <= TM[BarsSinceEntry]+30 and CountIf(CrossUp(c,Var2),BarsSinceEntry) >= 1 Then
ExitLong("bx2",AtStop,EntryPrice);
if CrossDown(c,Var2) Then
ExitLong("bx3");
}
if 전환선 < 기준선 and CrossDown(전환선,선행스팬1) and var1 <= 100 Then
sell("s");
if MarketPosition == -1 then
{
if 전환선 > 기준선 and CrossUp(전환선,선행스팬2) and var1 <= 100 Then
ExitShort("sx1");
if TM <= TM[BarsSinceEntry]+30 and CountIf(CrossDown(c,Var2),BarsSinceEntry) >= 1 Then
ExitShort("sx2",AtStop,EntryPrice);
if CrossUp(c,Var2) Then
ExitShort("sx3");
}
}
///////////////////////////////////////////////////////////////////////////
3.
input : StartTime(160000),EndTime(055000),xtime(055500);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
var : Tcond(false);
if sDate != sDate[1] then
SetStopEndofday(xtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
}
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
var1 = Disparity(60);
if Tcond == true Then
{
if 전환선 > 기준선 and crossup(전환선,선행스팬1) and var1 >= 99 Then
buy("b");
if MarketPosition == 1 then
{
if 전환선 < 기준선 and CrossDown(전환선,선행스팬2) and var1 >= 99 Then
exitlong();
}
if 전환선 < 기준선 and CrossDown(전환선,선행스팬1) and var1 <= 1000 Then
sell("s");
if MarketPosition == -1 then
{
if 전환선 > 기준선 and CrossUp(전환선,선행스팬2) and var1 <= 1200 Then
ExitShort();
}
}
-----------------------------------------
위 3가지 수식어에 각각 청산방법변경후 수식어추가를 부탁 드립니다.
1. 청산방법 변경
buy > sell를 buy > exitlong , sell > buy를 sell > exitShort
2. 수식어 추가
1. 138 이평선 하단내에서 sell 청산만 가능
예외 :- 캔들이 138선 crossup일때 익절+35틱 손절-20틱
- 5~60선 골든크로스
2. 138 이평선 상단내에서 buy 청산만 가능
예외 :- 캔들이 138선 crossdown 일때 익절+35틱 손절20틱
- 5~60선 골든크로스
2021-04-04
1004
글번호 147633
캣피쉬 님에 의해서 삭제되었습니다.
2021-04-02
0
글번호 147632