커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1750
글번호 230811
답변완료
수식 문의 합니다.
안녕하세요.
아래 지그재그 수식에서 추가하려고 하거든요.
매수조건에서
신호 직전봉까지 양봉-양봉-음봉-음봉-음봉 또는 양봉-양봉-음봉-음봉-양봉 순서이면 매수
음봉-양봉-양봉-양봉-양봉 또는 음봉-양봉-음봉-음봉-양봉 순서이면 매도
수식으로 가능 할까요?
만약 직전 3번째 봉이 양봉이고 직전 2번째 봉이 가격이 같으면 2번째 봉은 양봉처리하고
위와 같은 조건을 10개정도 추가 하려고 하거든요. 풀어서 작성 부탁드려요 감사합니다.
if (t == 1 and t != t[1] and c[1] < c[2] <c[3] <c[4] <c5] or (t == 1 and t != t[1] c[1]> c[2] > c[3] >c[4] c[5] Then
buyl("b1");
위와 같이 추가 하니 잘 안되서요.
감사합니다.
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),처리구분("");
var:d1(0),t1(0),t(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
t =1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
}
If 처리구분 == "저점처리" Then
{
t = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,CYAN);
if t == 1 and t != t[1] Then
buyl("b1");
if t == -1 and t != t[1] Then
sell("bx1");
2022-04-28
941
글번호 158412
답변완료
질문
파라볼릭이 돌파될때 바닥 극점에서 2.00 상승 위치를 표시하는 수식을 알고 싶습니다. 그리고 파라볼릭이 붕괴될 때는 천정 극점에서 2.00 하락 위치를 표시하는 수식을 알고 싶습니다. 감사합니다
2022-04-28
830
글번호 158407
답변완료
지표식 변환 부탁드립니다.
수고하십니다.
1.
아래 CTL 1번 지표식을 YTL로 변환 부탁드립니다
대체 함수를 못 찾겠던데, 가능한 지 모르겠습니다.
또, YTL에서 I_MarketPosition, I_AvgEntryPrice ,I_CurrentContracts
3가지 함수외에 다른 I_계열함수가 있는지요?
2.
CTL 2번 시스템식을 YTL로 변환하였는데, 거래발생을 안합니다.
검토 부탁드립니다.
CTL 1번 지표식
Input: capital(50,000,000)
Var1=capital+i_netprofit(1)
If i_position=0 And i_position(1)<>0 Then
If Var1<>0 And i_netprofit-i_netprofit(1)<0 Then
Var2=(i_netprofit(1)-i_netprofit)/var1
End If
If Var2>var3 Then
Var3=var2
End If
End If
CTL 2번 시스템식
/*
CTL
<수식 6-2> DD_RangeBreak(v2.3): 마틴게일, 역마틴게일 전략
영역: 전략
이름: DD_ RangeBreak(v2.2)
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200)
Var1=highd(1)-lowd(1)
Cond1= tdate=exitdate(1) And position(1)=1
Cond2= tdate=exitdate(1) And position(1)=-1
If barnum =1 Then
Var10=1
Var11=0
End If
If currentEntrynum>1 Then
If i_position=0 And i_position(1)<>0 Then
# If i_netprofit > i_netprofit(1) Then ‘1. 마틴게일
If i_netprofit < i_netprofit(1) Then ‘2. 역마틴게일
Var11=0
Else
Var11=var11+1
End If
End If
End If
If Var11>=consec And i_position=0 And i_position(1)<>0 Then
# Var10=Var10*2 ‘3. 직전계약수 대비 2배로 증가
Var10=Var10+1 ‘4. 직전계약수 대비 1계약 추가
End If
If Var11<consec Then
Var10=1
End If
If Var10>contlimit Then
Var10=contlimit
End If
If ttime<1500 Then
If Cond1=False Then
Call buy("매수",Atstop,Var10,opend+var1*len)
End If
If Cond2=False Then
Call sell("매도",Atstop,Var10,opend-var1*len)
End If
End If
If position<>0 Then
Call exitlong("매수추적스탑",Atstop,hhv(1,high,barnumsinceEntry+1)-atr(atrlen)*len1)
Call exitshort("매도추적스탑",Atstop,llv(1,low,barnumsinceEntry+1)+atr(atrlen)*len1)
End If
#======================================================#
# YTL
#수식 6-2 DD_RangeBreak(v2.3): 마틴게일, 역마틴게일 전략
#영역: 전략
#======================================================#
*/
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200) ;
Var : CurrentEntryNum(0) ;
Var1=DayHigh(1)-DayLow(1) ;
Condition1= Date==ExitDate(1) And MarketPosition(1)==1 ;
Condition2= Date==ExitDate(1) And MarketPosition(1)==-1 ;
If Index == 1 Then { // barnum index
Var10=1 ;
Var11=0 ;
}
CurrentEntryNum = iff(MarketPosition == 0,TotalTrades, TotalTrades+1 );
If currentEntrynum>1 Then {
If MarketPosition==0 And MarketPosition(1)<>0 Then {
# If NetProfit > NetProfit[1] Then //‘1. 마틴게일
If NetProfit < NetProfit[1] Then //‘2. 역마틴게일
Var11=0 ;
Else
Var11=var11+1 ;
}
}
If Var11 >= consec And MarketPosition == 0 And MarketPosition(1) <> 0 Then {
# Var10=Var10*2 ; //‘3. 직전계약수 대비 2배로 증가
Var10=Var10+1 ; //‘4. 직전계약수 대비 1계약 추가
}
If Var11<consec Then {
Var10=1 ;
}
If Var10>contlimit Then {
Var10=contlimit ;
}
If sTime<150000 Then {
If Condition1=False Then {
Buy("매수",Atstop,DayOpen+var1*len,Var10) ;
}
If Condition2=False Then {
Sell("매도",Atstop,DayOpen-var1*len,Var10) ;
}
}
If MarketPosition<>0 Then {
exitlong("매수추적스탑",Atstop,NthHighest(1,high,BarsSinceEntry+1)-atr(atrlen)*len1) ;
exitshort("매도추적스탑",Atstop,NthLowest(1,low,BarsSinceEntry+1)+atr(atrlen)*len1) ;
}
2022-04-28
1150
글번호 158405
답변완료
부탁 드립니다.
도움에 감사 드립니다.
횡보추세 하향돌파
종목검색식 부탁드립니다.
참고식_횡보추세 상향돌파)
Input : Period(5), Percent(10);
value1 = highest(H, Period);
value2 = lowest(L, Period);
If C > value1[1] && C[1] <= value1[1] &&
value1[1] < value2[1]*(1+Percent/100) Then
value3 = (C-C[1])/C[1]*100;
Else
value3 = 0;
Find(value3);
2022-04-28
1045
글번호 158404
답변완료
수식변환을 부탁드립니다.
항상 수고가 많으십니다.
키움증권에서 사용하는 수식을 변환을 부탁드립니다.
항상 감사합니다. 즐거운 하루 보내십시요!!!
A1 = floor(date / 100);
A2 = A1 % 100;
A3 = valuewhen(1, A2 != A2(1), O);
B1 = valuewhen(1, A2 != A2(1), A3(1) );
B2 = valuewhen(1, A2 != A2(1), C(1) );
B3 = valuewhen(1, A2 != A2(1), O);
2022-04-28
1190
글번호 158403
답변완료
문의드립니다
1. 자금이 10억원이다.
현재 코스피가 400포인트다 --> 10계약 매수
월말에 코스피가 200 포인트가 되었다 --> 총 20계약으로 늘림
다음월말에 코스피가 다시 400포인트가 되었다.
--> 10 계약을 매도 다시 현재 10계약 매수 상태
이런식으로 월말마다 계약 총액을 일정하게 유지하는 리밸런싱 로직을 부탁드립니다.
분봉이든 월봉이든 상관없고 시뮬레이션만 가능한 로직이라도 상관없습니다.
2. 같은 방식의 매수후 리밸런싱인데 3% 움직일때마다 리밸런싱하는 로직도 부탁드립니다.
예스스탁에 언제나 감사드립니다.
2022-04-27
1216
글번호 158402
답변완료
수식작성 부탁드립니다
안녕하세요
수식작성 부탁드립니다
price channel 지표의 기본 수식입니다
추가로 상단선과 하단선의 "중심선"을 넣고 싶습니다
INPUT : LENGTH(10);
VAR : TCHAN(0), BCHAN(0);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
PLOT1(TCHAN, "TOP");
PLOT2(BCHAN, "BOT");
수고하세요
2022-04-27
1089
글번호 158401
회원 님에 의해서 삭제되었습니다.
2022-04-27
156
글번호 158398
답변완료
사용자 함수관련 질문
함수문의 드립니다.
아래를 plot을 하면 그냥 0인 선만 하나 나옮니다.
무엇이 잘 못되었나요?
Input: Period(Numeric), StdDev(Numeric);
Var: BBTop(0), BBMid(0), BBBot(0),BWIval(0), Price(0), Index(0);
Index = Accum(1);
Price = (High+Low+Close)/3;
BBTop = BollBandUp(Period,StdDev, 1, Price);
BBMid = SMA(Price,Period);
BBBot = BollBandDown(Period,StdDev, 1, Price);
BWIval = ((BBTop - BBBot)/ BBMid) * 100;
IF Index >= Period Then
BWII = BWIval;
2022-04-27
1255
글번호 158396