커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3202
글번호 230811
답변완료
지표로 만들어 주시면 감사하겠습니다.
수고가 많으십니다.
키움에서 쓰던 것들인데 Yes language로 바꿔주시면 감사하겠습니다.
함수명: VWMACD
수식: SUM(C*V,short)/SUM(V,short)-SUM(C*V,long)/SUM(V,long)
지표명: VW MACD
수식1: VWMACD(short,long)-eavg(VWMACD(short,long),signal)
수식2: VWMACD(short,long)
수식3: eavg(VWMACD(short,long),signal)
지표명: TTI
수식1: VWMACD(shrot,long)*AVG(V,short)/AVG(long)-eavg(VWMACD(short,long)*AVG(V,short)/AVG(long),signal)
수식2: VWMACD(short,long)*AVG(V,short)/AVG(long)
수식3: eavg(VWMACD(short,long)*AVG(V,short)/AVG(long),signal)
short=12 long=26 signal=9
2020-08-25
1156
글번호 141782
답변완료
수식문의드립니다
if MarketPosition <= 0 Then
buy("b",atlimit,dayhigh-PriceScale*40);
if MarketPosition == 1 Then
exitlong("bx",atlimit,lowest(L,BarsSinceEntry)+PriceScale*30);
if MarketPosition >= 0 Then
sell("s",atlimit,daylow+PriceScale*600);
if MarketPosition == -1 Then
ExitShort("sx",atlimit,Highest(H,BarsSinceEntry)-PriceScale*57);
if sdate != sdate[1] Then
SetStopEndofday(55000);
if bdate != bdate[1] Then
SetStopEndofday(0);
-------------------------------------
-40틱 매수진입신호의 수식어에서 하단 3곳의 buy진입신호가 동일선에 있습니다.
1번 청산후 2번의 진입신호를 1번 청산전 고점에서 -40틱이 아니라 1번 청산후 고점에서 -40틱에서 진입신호의 수식어와 3`4`5 ,,,번도 쭉 같은 흐름의 내용으로 부탁드립니다.
매도수식어도 부탁드립니다.
수고하세요~
2020-08-25
1004
글번호 141781
답변완료
지표식 부탁드립니다.
질문 68869 에 추가 질문입니다.
매수거래대금 = upvol*c
매도거래대금 = downvol*c
이런식으로 해서 작성 가능할까요?
2020-08-25
976
글번호 141779
답변완료
종목검색식 확인 부탁합니다
1
Input : af(0.02), maxAF(0.2);
var1 = SAR(af,maxAF);
if CrossDown(c,var1) Then
value1 = var1;
if CrossUp(c,value1) and value1 > 0 Then
Find(1);
위에 지표식으로 하면 종목이 검색이 안됩니다.
확인 부탁드립니다
2020-08-25
979
글번호 141778
답변완료
지그재그 지표 선색 문의 드립니다.
안녕하세요 관리자님 우선 늘 감사 드립니다.
지그재그 지표에 대한 아래와 같은 문의 드립니다.
1. 키움 지그재그에는 상승시 빨간색 하락시 파란색으로 선 색을 표시할수 있는데
아래 수식 지왕님의 수식 중에 어떻게 해야 그렇게 표시되는지 부탁 드립니다.
감사 합니다.
Input:chngRate(0.1);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Min(valArr[1],valArr[2]) * (1 + (chngRate/100)) < H and lastHiVal < H;
Condition2 = Max(valArr[1],valArr[2]) * (1 - (chngRate/100)) > L and (lastLoVal > L || lastLoVal == 0);
If Condition1 Then { lastHiVal = H; lastLoVal = 0; }
If Condition2 Then { lastLoVal = L; lastHiVal = 0; }
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
if turnPntArr[1][0]=="Hi" Then{
buy();
}
if turnPntArr[1][0] =="Lo" Then{
sell();
}
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,black);
2020-08-25
958
글번호 141777
답변완료
지표식이 동작하지 않고 컴이 멈춰 버립니다.
아래 지표식이 동작하지 않고 컴이 멈춰 버립니다.
확인 가능할까요?
Input : Length(5);
Var : SL(0),SH(0),PL(0),PU(0);
SL = LRS(Low,Length);
SH = LRS(High,Length);
For Value1 = 1 To Length {
Value2 = Lowest(Low,Value1-1) + (SL*Value1-1);
Value3 = Highest(High,Value1-1) + (SH*Value1-1);
If Value1=1 Then {
PL = Value2;
PU = Value3;
}
If Value2<PL Then PL = Value2;
If Value3>PU Then PU = Value3;
}
Plot1(PL,"PL");
Plot2(PU,"PU");
2020-08-25
831
글번호 141776
답변완료
문의드립니다
Input : Period(12), Period1(5), Period2(5);
var : StoK(0),StoD(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
Plot1(StoK, "StochasticsK");
Plot2(StoD, "StochasticsD");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
스토케틱 기준선50이상이면 레드색
스토캐틱 기준선50이하이면블루색 으로수정부탁드립니다~~`
2020-08-25
918
글번호 141775
답변완료
수정 부탁드립니다~~
안녕하세요~~
아래의 수식은 전날 도움받은 수식인데
~~저의 매매 의도는
중기 장기 골드(5봉)이후엔~~(추가조건) 매수하고~~
중기 장기 데드(5봉)이후엔~~(추가조건) 매도하고져~~하였는데
아래 수식경우엔~~
골드후에도(정배열상태임에도) 매도가 출현하고
데드후에도(역배열상태임에도) 매수가 출현됩니다
(정배열에서도 매수매도~~ 역배열에서도 매수매도 모두 출현됨)
즉~~맨앞쪽 조건의 골드와 데드(정 역배열) 요구와는 전혀 무관하게~~~
(뒷쪽 조건) C / 단기*100 > 100 추가 조건만 정상작동됩니다
단순한 정 역배열 조건하에서의 추가조건 수식보다~~~
골드나 데드 (N봉)이후!!를 지정하고 싶으니 부탁드립니다
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
아래수식은 골드 데드후(5봉) 이후 한개만 조건되어 있읍니다만~~~
추가로~~~~~
중기장기 골드 (5봉)이후~~ C / 단기*100 > 101 and (20봉)이후~~C / 단기*100 > 102 매수
중기장기 데드 (5봉)이후~~ C / 단기*100 < 99 and (150봉)이후~~C / 단기*100 < 98 청산
중기장기 데드 (5봉)이후~~ C / 단기*100 < 99 and (20봉)이후~~~C / 단기*100 < 98 매도
중기장기 골드 (5봉)이후~~ C / 단기*100 > 101 and (150봉)이후~~C / 단기*100 > 102 청산
부탁드립니다~~
~~~~~~~~~~~~~~~~~~~~~~~아래수식~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
단기 = ma(c,단기);
중기 = ma(c,중기);
장기 = ma(c,장기);
if CrossUp(중기,장기) Then
var3 = Index;
if CrossDown(중기,장기) Then
var4 = Index;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
if var3 > 0 and Index >= var3+5 and C / 단기*100 > 100 Then Buy("매수진1");
if MarketPosition == 1 Then{
if var4 > 0 and Index >= var4+5 and C / 단기*100 < 100 Then exitlong("매수청1");
}
if var4 > 0 and Index >= var4+5 and C / 단기*100 < 100 Then Sell("매도진1");
if MarketPosition == -1 Then{
if var3 > 0 and Index >= var3+5 and C / 단기*100 > 100 Then ExitShort("매도청1");
}
2020-08-25
1109
글번호 141772
답변완료
문의 2가지
1.아래 답변수식에서
a.진입은 data2차트와 data3차트를 사용하는데 선언부와 수식에 data1이 사용되었는데 설명바랍니다.
b.답변 수식에 주석을 달아주세요.
2. 두번째 요청
답변수식으로 진입한 이후
주종목차트를 이용하여 아래 청산수식을 사용하고 싶은데
이미 선언된 이름을 다시 선언한다는 오류가 발생합니다.
답변주식 var:sum(0,data1)과 청산수식 var:sum(0)이 중복되는 경우 해결방법을 요청합니다.
input : 양봉(16),음봉(6),도지(10),합(16);
var : sum(0);
if MarketPosition == 1 Then
{
if C > O Then
sum = sum + 양봉;
Else if C < O Then
sum = sum - 음봉;
Else
sum = sum -도지;
if sum <= -합 Then
ExitLong("도지");
}
Else
sum = 0;
*****************************************************************************
안녕하세요
예스스탁입니다.
1
var : sum(0,Data1),mav1(0,data1),mav2(0,Data2);
sum = Data2(c)+data3(c);
mav1 = data1(ma(sum,20));
mav2 = data1(ma(sum,120));
if CrossUp(mav1,mav2) and Data2(c) > Data3(c) Then
Buy();
if CrossDown(mav1,mav2) and Data2(c) < Data3(c) Then
Sell();
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 요청 2가지
> 1. 첫째 요청
데이트레이딩
거래종목은 선물
data2 콜옵션연결 등가격
data3 풋옵션연결 등가격
data2 가격과 data3 가격을 합산한 값(양합의 궤적_A)을 이용하여 진입
if A 20일 이동평균선이 120일 이동평균선을 상승돌파 and data2(c) > data3(c) then
buy
if A 20일 이동평균선이 120일 이동평균선을 상승돌파 and data2(c) < data3(c) then
sell
2020-08-25
847
글번호 141771