커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8162
글번호 230811
임가에미소 님에 의해서 삭제되었습니다.
2016-10-25
8
글번호 103301
답변완료
수식 문의드립니다.
진입 청산 수식에 대해서 문의 드립니다.
매수 진입시에는
1. Stok가 Stod를 crossup 할때 최초 1회 매수 진입
2. 1번 진입 후에... 추가로 Macd가 기준선을 crossup 할때 추가 1회 매수 진입
매수 청산시에는
1. 1번만 진입했을때 Stok가 Stod를 crossdown할때 청산 완료
2. 진입시 위의 1, 2 모두 진입되어 있을때, 진입 물량 2개 모두 동시 청산
그리고 위에 해당하는 매도 진입, 매도 청산에 대해서도 수식 문의 드립니다.
감사합니다.
2016-10-25
149
글번호 103300
답변완료
부탁해요
RED확정으면 매도신호,
BLUE확정이면 매수신호
부탁드립니다
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(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
{
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 TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then
TL_Delete(TL2);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetSize(TL1,3);
TL_SetColor(TL1,red);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL2,BLUE);
}
}
}
If 처리구분 == "저점처리" Then
{
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 TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
TL_Delete(TL3);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetSize(TL1,3);
TL_SetColor(TL1,blue);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetColor(TL3,RED);
}
}
}
TL_SetSize(TL2,2);
TL_SetSize(TL3,2);
2016-10-24
149
글번호 103299
기업분석 님에 의해서 삭제되었습니다.
2016-10-24
11
글번호 103298
답변완료
수정부탁드립니다==================
plot85,plot86 이표시가안되네요
부탁드립니다
//---------------------------------------------------------------------------------
Input : Period1(1),Period5(1),단기급증(0),단기급감(0),단기급등락(0),
장기급증(0),장기급감(0),장기급등락(0),돌파(0),급변(0),단기급변(0),순매수급증보정(0),
순매수급감보정(0),순매수보정한계(0)/*,고저기간(0)*/
,LENGTH1(0) ,LENGTH2(0
Var : va(0);
Var : va1(0);
Var : va2(0);
Var : va3(0);
Var : va11(0);
Var : va12(0);
Var : va38(0);
Var : va77(0);
Var : va87(0);
Var : va88(0);
Var : value(0);
Var : vp(0),II(0),AA(0),BB(0);
var : N(0),T(0),EP1(0),EP2(0);
var : ema11(0),ema12(0),ema13(0);
var : ema21(0),ema22(0),ema23(0),cnt1(0),cnt2(0);
EP1 = 2/(LENGTH1+1);
EP2 = 2/(LENGTH2+1);
if Bdate != Bdate[1] Then{
II = 0;
BB = 0;
AA = 0;
}
II = II+1;
BB = BB+Bids;
AA = AA+Asks;
if II < Period5 Then{
va = (BB/II)-(AA/II)+8000;
}
else{
va = ma(bids,period5)-ma(asks,period5)+8000;
}
if II < Period1 Then{
va1 = (BB/II)-(AA/II)+8000;
va2 = (BB/II)-(AA/II)+8000;
va3 = (BB/II)-(AA/II)+8000;
}
//순매수에 8000 더해 양의값만들기----------------------------
else{
va1 = ma(bids,period1)-ma(asks,period1)+8000;
va2 = ma(bids,period1)-ma(asks,period1)+8000;
va3 = ma(bids,period1)-ma(asks,period1)+8000;
}
//순매수5이평의 급등락축소시작----------------------------
if ii > 1 and va >va[1]+장기급등락 then va = ((va -va[1])/장기급증)+va[1];
if ii > 1 and va <va[1]-장기급등락 then va = va[1]-((va[1] -va)/장기급감);
If ii >= 2
Then
{
//순매수 일정차 이상의급등락축소시작----------------------------
//if va1 >va1[1]+급등락 then va1 = va1 -급등락;
if va1 >va1[1]+단기급등락 then va1 = ((va1 -va1[1])/단기급증)+va1[1];
//if va1 >va1[1]+소등락 then va1 = va1 - 소등락;
if va1 <va1[1]-단기급등락 then va1 = va1[1]-((va1[1] -va1)/단기급감);
//if va1 <va1[1]-급등락 then va1 = va1 + 급등락;
//if va1 <va1[1]-소등락 then va1 = va1 + 소등락;
//급등락축소시작----------------------------
//순매수 일정차 이하의급등락축소시작----------------------------
if va2 >va2[1]+순매수보정한계 then va2 = ((va2 -va2[1])*순매수급증보정)+va2[1];
if va2 <va2[1]-순매수보정한계 then va2 = va2[1]-((va2[1] -va2)*순매수급감보정);
//1이평 막대표시 -----------------------------------------------
If va1 > va1[1] Then
{
Plot10(va1, "매수잔량 우위");
Plot11(0, "매도잔량 우위");
}
Else{
Plot10(0, "매수잔량 우위");
Plot11(va3, "매도잔량 우위");
}
//5이평 막대표시 -----------------------------------------------
If va > va[1] Then
{
Plot3(va, "5매수총잔량 우위");
Plot4(0, "5매도총잔량 우위");
}
Else{
Plot3(0, "5매수총잔량 우위");
Plot4(va, "5매도총잔량 우위");
}
PlotBaseLine5(va,"기준선5");
PlotBaseLine1(va1,"기준선1");
//순매수와 5이평의 중간값으로 선을 부드럽게함--------------------------------------------
if va < va1 then
{vp=((va1-va)/2)+va;}
if va1 < va then
{vp=((va-va1)/2)+va1;}
//Plot20(vp, "반");
//그 위 중간값의 일정 수량차이상의 급등락 표시
if vp > vp[1]+ 급변 Then{plot55(va87-100,"급등");}
if vp < vp[1]- 급변 Then{plot44(va3-100,"급락");}
}
// if Highest(va1,고저기간 )==0 then{
// va11=Lowest(va1,고저기간 );
if ii >= 2 and va2 > va2[1]+ 단기급변 Then{plot66(va2,"단기");}
if ii >= 2 and va2 < va2[1]- 단기급변 Then{plot66(va2,"단기");}
Plot99(va2, "순매수1차보정");
plot20(vp+100, "반",iff(vp>vp[1]+00,red,iff(vp<vp[1]-00,BLUE,BLACK)));
Plot59(va3, "순매수");
if ii == 1 Then
ema11 = va3;
else
ema11 = va3 * EP1 +ema11 * (1-EP1);
if ii <= 2 Then
ema12 = ema11;
else
ema12 = ema11 * EP1 +ema12 * (1-EP1);
if ii <= 3 Then
ema13 = ema12;
else
ema13 = ema12 * EP1 +ema13 * (1-EP1);
//순매수를 테마로
if ii >= 3 then
va77 = (3 * ema11) - (3 * ema12) + (ema13);
Plot58(va77, "테마");
va88 = va77;
if va2 < va77 and va3 > va77 Then
{ va88 = va3;
}
if va2 > va77 and va3 < va77 Then
{ va88 = va3;
}
Plot95(va88, "테마합");
if ii == 1 Then
ema21 = va88;
Else
ema21 = va88 * EP2 +ema21 * (1-EP2);
if ii <= 2 Then
ema22 = ema21;
Else
ema22 = ema21 * EP2 +ema22 * (1-EP2);
if ii <= 3 Then
ema23 = ema22;
else
ema23 = ema22 * EP2 +ema23 * (1-EP2);
if ii >= 3 then
va87 = (3 * ema21) - (3 * ema22) + (ema23);
Plot78(va87, "테마합테마");
if ii >= 2 then{
//테마합테마 막대표시 -----------------------------------------------
If va87 > va87[1]+00 Then
{
Plot45(va87-50, "테마합테마매수잔량 우위");
Plot46(0, "테마합테마매도잔량 우위");
}
If va87 < va87[1]-00 Then{
Plot45(0, "테마합테마매수잔량 우위");
Plot46(va3-50, "테마합테마매도잔량 우위");
}
//매수매도신호-------------------------------------------------------
If va87 < va77-250 Then{
Plot96(va77, "매/수");
}
If va87 > va77+250 Then{
Plot97(va87, "매/도");
}
if va3 > va77 and va3 > va77+550 Then{
plot37(va3,"매도유리");}
if va3 < va77 and va3 < va77-550 Then{
plot38(va3,"매수유리");}
if crossup(va77,va87) Then
cnt1 = 0;
if CrossDown(va77,va87) Then
cnt2 = 0;
if va77 >= va87+100 Then{
cnt1 = cnt1+1;
if cnt1 == 1 then{
PlaySound("C:₩예스트레이더₩data₩Sound₩bubbles.wav");
}
}
if va77 >= va87+100 Then{
cnt1 = cnt1+1;
if cnt1 == 1 then{ plot85(va3,"y매수");}
if va77 <= va87-100 Then{
cnt2 = cnt2+1;
if cnt2 == 2 then{
PlaySound("C:₩예스트레이더₩data₩Sound₩accept.wav");
}
}
if va77 <= va87-100 Then{
cnt2 = cnt2+1;
if cnt2 == 2 then{ plot86(va3,"y매도");}
}
}
}
2016-10-24
174
글번호 103297
답변완료
부탁드립나다
수고하십니다
50214재질문입니다 새로생긴수치가 변할때 직전수치값도 같이변화하는수식부탁드립니다
2016-10-24
162
글번호 103296
답변완료
부탁드립니다
a, b, c, d 중 가장낮은수를 e
a, b, c, d 중 가장높은수를 f
식부탁드립니다
2016-10-24
149
글번호 103288
답변완료
간단한 질문 드립니다..
공부 하는 중이라 질문이 많네요 ㅎㅎ
종목검색에서 각 이평을
var1 = ma(C,5);
var2 = ma(C,10);
var3 = ma(C,20);
var4 = ma(m,14);
하셨는데 5일이평만 전일과 전전일을 어떻게 선언하고 표현하나요?
var1 = ma(C,5);
var2 = ma(C,10);
var3 = ma(C,20);
var4 = ma(m,14);
var5 = ma(C,5,1);
var6 = ma(C,5,2);
이렇게 하면 되나요?
감사합니다~~~
-------------------------------------------------------
검색하다 보니 var1[1] , var1[2] 이게 맞나봅니다.
공부하기 너무 어렵네요 ^^
수고하세요~
2016-10-24
149
글번호 103284
하루4% 님에 의해서 삭제되었습니다.
2016-10-24
1
글번호 103281