커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3502
글번호 230811
정구지 님에 의해서 삭제되었습니다.
2023-08-22
36
글번호 171737
답변완료
문의 드립니다.
아래 식에서 수량을 추가할 수 있도록 부탁드립니다.
Input : Period(5);
Var : value(0);
value = ma(bids,period)-ma(asks,period);
if CrossUp(value,0) Then
Buy();
if CrossDown(value,0) Then
ExitLong();
2023-08-22
801
글번호 171736
정구지 님에 의해서 삭제되었습니다.
2023-08-22
39
글번호 171735
답변완료
문의드립니다
안녕하세요?
아래수식에서
if var1 > var1[1] Then
T = 1;
else if var1 < var1[1] Then
T = -1;
Else
T = 0;
Plot1(var1,"1",iff(T==1,Red,iff(T==-1,Blue,Green)));
빨강선이 그린선으로바뀌었다 파랑선으로바뀌면 이란 조건문을 알고싶습니다
감사합니다
2023-08-22
990
글번호 171734
답변완료
문의드립니다.
LinRegSlope(C,20)
이 함수를 통해서 나오는 수치를 차트에서 해당기간 부분에 사선그리기로 표시할 수 있을까요?
단순수치는 어느정도의 각도인지 느낌이 잘 안오는 부분이 있어서 사선으로 표시해서 보고 싶습니다.
2023-08-22
1345
글번호 171733
답변완료
문의 드립니다.
x=sum(((h+l+c)/3)*v);
z=valuewhen(1,date !=date(1),x(1));
x1=sum(v);
z1=valuewhen(1,date !=date(1),x1(1));
vwap=(x-z)/(x1-z1);
sum(if(vwap-vwap(1)>0,vwap-vwap(1),0),period)/sum(if(vwap-vwap(1)>0,vwap-vwap(1),vwap(1)-vwap),period)*10
기준선 30 / 70 넣어주세요.
period 17
키움 수식인데 예스로 좀 바꿔주세요.
2023-08-22
1705
글번호 171732
답변완료
전환추세 고저라인
Input : 전환(0.5);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL(0),TX(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= LL and loBar == 0;
처리구분 = "";
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
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL,2);
TL_SetColor(TL,Red);
}
If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
Plot1(고[1,1]);
NoPlot(2);
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL,2);
TL_SetColor(TL,Blue);
}
If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
추세선이 양전환되면 저점에서 -0.5p 지점에 음전환 될 때까지 저가라인.
추세선이 음전환되면 고점에서 +0.5p 지점에 양전환 될 때까지 고가라인. 감사합니다.
2023-08-22
1836
글번호 171729
답변완료
문의 드립니다
Inputs: Length(10), ATRs(1.5), Pval(0.05);
Variables: KUpper(0), BuySetup(False), BuyBase(0);
Variables: KLower(0), SellSetup(False), SellBase(0);
KUpper = KeltnerChannel(Close, Length, ATRs);
KLower = KeltnerChannel(Close, Length, -ATRs);
Condition1 = Crossup(Close, KUpper);
Condition2 = CrossDown(Close, KLower);
If MarketPosition() == 1 OR Close < MA(close, Length) Then
BuySetup = False;
Else
If Condition1 Then Begin
BuySetup = True;
BuyBase = High;
End;
If MarketPosition() == -1 OR Close > MA(Close, Length) Then
SellSetup = False;
Else
If Condition2 Then Begin
SellSetup = True;
SellBase = Low;
End;
//설명 : Keltner Channel Long Entry
If BuySetup Then
Buy ("KC_LE", AtStop, BuyBase + Pval);
//설명 : Keltner Channel Short Entry
If SellSetup Then
Sell ("KC_SE", AtStop, SellBase - Pval);
---------------------
위 수식어에서
Buy신호 이후 Sell신호에 청산되는 수식어 하나
Sell신호 이후 Buy신호에 청산되는 2가지 수식어로 분리를 부탁드립니다.
미리 감사 드립니다.
2023-08-22
1272
글번호 171728
답변완료
종료시간 문의
안녕하세요?
청산시간을 맞추고 분봉으로 여러개 셋팅해보았는데, 청산되는 시간이 각자 다르고 맞추어
놓은 청산시간을 전부다 넘어서고 있습니다.
설정한 시간이되면 딱 맞춰서 청산이되고 그날매매 종료가 되었으면 좋겠습니다.
2시30분으로 설정해놓으면 그시간에 모두 청산이 되게 도와주세요.
감사합니다.
inputs: Length(10), Pval(0.05),청산시간(153000);
input : 익절틱수(10), 손절틱수(10), 진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1 ;
if entry < 진입횟수 then Sell("CBI", AtStop, Lowest(Low, Length) - Pval);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopEndofday(청산시간);
2023-08-21
1214
글번호 171726