커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5322
글번호 230811
답변완료
타 주기 그물망을 불려와서 지금차트에 보이게 하고 싶습니다.
1. 아래는 기간5로 설정 시 50개(이것도 80개로 늘려주세요)의 그물망차트의 기본수식입니다.
2. 여기에서 구현해 보고 싶은 것은 타 주기(지금이 보고 있는 것이 오분봉이면 타주기(예를 들면 십분봉 차트의 그물망이 5분봉에 나타내게 한다는 의미) 그물망차트를 지금 내가 보고있는 오분봉상에 나타내고 싶습니다.)의 그물망 차트를 지금 보이는 주기에서 보이게 하고 싶습니다.
Input : Period(5);
Plot1(ma(C,Period*1), "이동평균1");
Plot2(ma(C,Period*2), "이동평균2");
Plot3(ma(C,Period*3), "이동평균3");
Plot4(ma(C,Period*4), "이동평균4");
Plot5(ma(C,Period*5), "이동평균5");
Plot6(ma(C,Period*6), "이동평균6");
Plot7(ma(C,Period*7), "이동평균7");
Plot8(ma(C,Period*8), "이동평균8");
Plot9(ma(C,Period*9), "이동평균9");
Plot10(ma(C,Period*10), "이동평균10");
Plot11(ma(C,Period*11), "이동평균11");
Plot12(ma(C,Period*12), "이동평균12");
Plot13(ma(C,Period*13), "이동평균13");
Plot14(ma(C,Period*14), "이동평균14");
Plot15(ma(C,Period*15), "이동평균15");
Plot16(ma(C,Period*16), "이동평균16");
Plot17(ma(C,Period*17), "이동평균17");
Plot18(ma(C,Period*18), "이동평균18");
Plot19(ma(C,Period*19), "이동평균19");
Plot20(ma(C,Period*20), "이동평균20");
Plot21(ma(C,Period*21), "이동평균21");
Plot22(ma(C,Period*22), "이동평균22");
Plot23(ma(C,Period*23), "이동평균23");
Plot24(ma(C,Period*24), "이동평균24");
Plot25(ma(C,Period*25), "이동평균25");
Plot26(ma(C,Period*26), "이동평균26");
Plot27(ma(C,Period*27), "이동평균27");
Plot28(ma(C,Period*28), "이동평균28");
Plot29(ma(C,Period*29), "이동평균29");
Plot30(ma(C,Period*30), "이동평균30");
Plot31(ma(C,Period*31), "이동평균31");
Plot32(ma(C,Period*32), "이동평균32");
Plot33(ma(C,Period*33), "이동평균33");
Plot34(ma(C,Period*34), "이동평균34");
Plot35(ma(C,Period*35), "이동평균35");
Plot36(ma(C,Period*36), "이동평균36");
Plot37(ma(C,Period*37), "이동평균37");
Plot38(ma(C,Period*38), "이동평균38");
Plot39(ma(C,Period*39), "이동평균39");
Plot40(ma(C,Period*40), "이동평균30");
Plot41(ma(C,Period*41), "이동평균41");
Plot42(ma(C,Period*42), "이동평균42");
Plot43(ma(C,Period*43), "이동평균43");
Plot44(ma(C,Period*44), "이동평균44");
Plot45(ma(C,Period*45), "이동평균45");
Plot46(ma(C,Period*46), "이동평균46");
Plot47(ma(C,Period*47), "이동평균47");
Plot48(ma(C,Period*48), "이동평균48");
Plot49(ma(C,Period*49), "이동평균49");
Plot50(ma(C,Period*50), "이동평균50");
2019-07-28
318
글번호 130705
답변완료
수식 문의합니다.
Easy Language로 부탁합니다.
질문:
4 연속 손실 이하일 경우는, condition1으로 매매하고,
4 연속 손실 이상일 경우는 condition2로 매매 하고 싶습니다.
부탁드립니다. 여기서 강조하고싶은것은 연속 손실입니다.
감사합니다.
2019-07-28
209
글번호 130704
답변완료
식문읟드립니다
안녕하세요, 앞전에 문의드린 식이 잘되지않아 다시 문의드리며
변경하고자하는건이있어 문의드립니다.
1.
아래 식적용시 예로 7/10일에 진입비율1이 진입하고난뒤
7/11에 진입비율2에 왔을시 진입하여야하는데 진입하지않고 설정하지않은 비율에서
진입이 일어납니다.
청산은 잘됨
2.
진입비율1이 발생하지않고 갭하락등으로 진입비율2가 먼저 다을시
진행되지않는데
이럴때 진입비율2에 다을시
진입비율1,2가 같이진입하고 진입비율2청산에 맞춰 청산부탁드립니다.
진입비율3에먼저다으면 진입안함은 유지해주세요
감사합니다
----------------------------------------------------------------------
input : 저점날짜(20190619),저점가격(3275);
input : 고점날짜(20190620),고점가격(3380);
input : 시작일(20190620),시작시간(101000);
input : 진입비율1(65.2),수량1(100),청산비율1(40.0);
input : 진입비율2(70.0),수량2(50),청산비율2(45.0);
input : 진입비율3(80.0),수량3(30),청산비율3(60.0);
input : 손절비율(90);
var : HH(0),LL(0),newHigh(false),Tcond(false),Trade(false);
if sdate == 저점날짜 and sdate != sdate[1] Then
LL = 저점가격;
if sdate == 고점날짜 and sdate != sdate[1] Then
{
HH = 고점가격;
newHigh = true;
}
if sdate == 시작일 and stime > 시작시간 Then
Trade = true;
if sdate >= 고점날짜 and sdate >= 저점날짜 and HH > 0 and LL > 0 Then
Tcond = true;
if tcond == true then
{
if C <= HH*0.85 Then
newhigh = false;
if newhigh == true and H > HH Then
HH = H;
if Trade == true then
{
#첫진입(65.2%위에서 아래로 터치하면 즉시 매수)
if TotalTrades == 0 and MarketPosition == 0 then
{
if L > HH-(HH-LL)*(진입비율1/100) Then
buy("b1",atlimit,HH-(HH-LL)*(진입비율1/100),수량1);
if H < HH-(HH-LL)*(진입비율1/100) Then
buy("b1.",AtStop,HH-(HH-LL)*(진입비율1/100),수량1);
}
#매수 후
if MarketPosition == 1 then
{
#두번째진입(70.0% 위에서 아래로 터치하면 즉시 추가매수)
if MaxEntries == 1 then
{
if L > HH-(HH-LL)*(진입비율2/100) Then
buy("b2",atlimit,HH-(HH-LL)*(진입비율2/100),수량2);
if H < HH-(HH-LL)*(진입비율2/100) Then
buy("b2.",AtStop,HH-(HH-LL)*(진입비율2/100),수량2);
}
#세번째진입(80.0% 위에서 아래로 터치하면 즉시 추가매수)
if MaxEntries == 2 then
{
if L > HH-(HH-LL)*(진입비율3/100) Then
buy("b3",atlimit,HH-(HH-LL)*(진입비율3/100),수량3);
if H < HH-(HH-LL)*(진입비율3/100) Then
buy("b3.",AtStop,HH-(HH-LL)*(진입비율3/100),수량3);
}
#첫 진입후 40%를 상회하면 즉시 전량청산
if MaxEntries == 1 Then
ExitLong("bx1",Atlimit,HH-(HH-LL)*(청산비율1/100));
#두번 진입후 45%를 상회하면 즉시 전량청산
if MaxEntries == 2 Then
ExitLong("bx2",Atlimit,HH-(HH-LL)*(청산비율2/100));
#세번 진입후 60%를 상회하면 즉시 전량청산
if MaxEntries == 3 Then
ExitLong("bx3",Atlimit,HH-(HH-LL)*(청산비율3/100));
#손절비율 이하로 하락시 즉시 전량청산
ExitLong("bx",AtStop,HH-(HH-LL)*(손절비율/100));
}
}
}
2019-07-28
219
글번호 130703
답변완료
시초가 매매
분봉차트에서, 특정 요일을 지정하여 시초가에 매수, 또는 매도를 하려고 힙니다.
다음 식으로 해보니
input : 요일(2),BSdir(1); /// 월요일=1, 화요일=2, 수요일=3, 목요일=4, 금요일=5
if nextBarSdate > sDate && nextBarStime>=090000 &&
((요일==1 && DayofWeek(date)>=5) or (DayofWeek(date)==요일-1)) then {
if BSdir==1 then buy("B",atMarket);
else if BSdir==-1 then sell("S",atMarket);
}
=> 요일=2, BSdir=1로 하면 화요일은 맞는데, 시초가(9:00)에 매수하지 않고 9:05에 매수가 됩니다.
시초가 매수가 되도록 수정하여 주십시요. 감사합니다.
2019-07-28
288
글번호 130702
답변완료
이평선 신호 하나 만들고 싶습니다.
항상 감사합니다.
분봉에서 120분봉이 변곡되는 곳에 화살표가 표시되는 신호를 만들어 주시면 감사하겠습니다.
2019-07-27
252
글번호 130701
답변완료
1분봉에서 30분봉의 ADX, DMI, MACD오실레이터 지표 추가
data1은 연결선물지수(1분봉)이고
data2는 연결선물지수(30분봉)일때
DMI, ADX, MACD오실레터 지표를 추가하고 싶은데 1분봉에 것이 아니라 30분봉 것으로 지표를
추가하고 싶습니다.
이평선을 예로 들자면
30분봉이평선 = ma(data2(c),period);
수식으로 1분봉에 30분봉의 이평선을 지표화 했는데
dmi, adx, macd오실레이터는 방법을 모르겠습니다.
2019-07-27
343
글번호 130700
답변완료
문의 드립니다.
도움주심에 감사 드립니다.
당일 이후에 계산방식이 아닌
과거 n개봉전에서 계산할수 있도록 수정 부탁 드립니다.
미리 감사 드립니다.
input:p12(10),p배수(10);
var:md2(0),sig(0);
var1=ema(c,p12);
md2=var1[1]+((c-var1[1])/(c/var1[1])/p12*p배수);
sig=ema(md2,5);
if bdate != bdate[1] Then
var2 = sig[1];
var3 = (sig-var2)/var2*100; #등락률
var4=sig-var2; #차이값
2019-07-27
218
글번호 130699
답변완료
문의 드립니다.
참조 데이타에서 선물 매수호가 총건수와 매도호가 총건수 지표를 거래량 차트와 같은 음봉 양봉의 막대 차트로 볼수 있는 수식을 부탁드립니다.
2019-07-27
302
글번호 130698
답변완료
수식추가부탁드립니다
#,안녕하세요
*,아래식은 파동 고,저점 텍스트 출력식입니다 이 식을 아래조건만족시 수식추가
요청드립니다
1,최근 고점 텍스트출력값을 A 라 칭하고,이전1개 고점 텍스트출력값을 B 라 칭할때,
A > B 일때,B와A를 연결하는 상승추세선을 Y축까지 오른쪽그리기 요청합니다.
(굵기,색상,변수조절 가능토록)이때 고점에서 하락파동을 완성하지 못하고 다시고점을
갱신할경우 추세선도 따라서 변경 되도록합니다.
A < B 일때 B와A를 연결하는 하락추세선을 Y축까지 오른쪽그리기 요청합니다.
2,최근 저점 텍스트출력값을 C 라 칭하고,이전1개 저점 텍스트출력값을 D 라 칭할때,
C < D 일때,D와C를 연결하는 하락추세선을 Y축까지 오른쪽그리기 요청합니다.
(굵기,색상,변수조절가능토록)이때 저점에서 상승파동을 완성하지 못하고 다시저점을
갱신할경우 추세선도 따라서 변경 되도록합니다.
C > D 일때,D와C를 연결하는 상승추세선을 Y축까지 오른쪽 그리기 요청합니다.
3,위 1번과2번의 추세선을 최근3일(변수조절)까지만 연결해서 오른쪽그리기로 나타나게
합니다.
input : af(0.02), maxAF(0.2);
input : 텍스트출력(1);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0);
var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0),DarkGray(0);
var : TL3(0),TL4(0),TL5(0),TL6(0),tl7(0),tx1(0),tx2(0),tx11(0),tx22(0);
var1 = CSar(af,maxAF);
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
HH1 = HH[1];
HD1 = HD[1];
HT1 = HT[1];
if LL > 0 Then
{
if 텍스트출력 == 1 then
{
Tx11 = Text_New(HD1,HT1,HH1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(HH1,2));
Text_SetStyle(tx11,2,1);
Text_SetColor(tx11,BLACK);
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,BLACK);
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
LL1 = LL[1];
LD1 = LD[1];
LT1 = LT[1];
if HH > 0 Then
{
if 텍스트출력 == 1 then
{
Tx22 = Text_New(LD1,LT1,LL1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(LL1,2));
Text_SetStyle(tx22,2,0);
Text_SetColor(tx22,RED);
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,RED);
}
}
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
if 텍스트출력 == 1 then
{
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,BLACK);
}
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
if 텍스트출력 == 1 then
{
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,RED);
}
}
}
##, 언제나 늘 고맙습니다
2019-07-27
208
글번호 130697