커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4413
글번호 230811
답변완료
항상 감사하며 문의드립니다
5이평선이 20이평선을 상향돌파한 이후
돌파시점의 캔들 종가-0.5포인트에서 매수 진입하고
진입한 캔들의 다음 캔들에서 종가로 청산하고
모든 데이터를 초기화하여 다시 이평 상향 돌파를 대기하는
시스템 수식을 문의 드립니다.
만약 진입가가 '종가-0.5포인트' 이런식으로 안된다면 종가 진입하는 것으로
작성하시면 됩니다.
감사합니다.
2017-04-07
197
글번호 108551
답변완료
부탁 드립니다.
변환 부탁 드립니다.
미리 감사 드립니다.
수식1)
e=3.14;
MA= WAVG(C,2); RBW= 5*MA;
MA= WAVG(MA,2); RBW= RBW + 4*MA;
MA= WAVG(MA,2); RBW= RBW + 3*MA;
MA= WAVG(MA,2); RBW= RBW + 2*MA;
MA= WAVG(MA,2); RBW= RBW + MA;
MA= WAVG(MA,2); RBW= RBW + MA;
MA= WAVG(MA,2); RBW= (RBW+MA)/20;
RBWS= (Sum(RBW - LOWEST(RBW, P30), P5)/
(Sum(HIGHEST(RBW, P30) - LOWEST(RbW, P30), P5) + 0.0001)*100);
2017-04-07
207
글번호 108550
답변완료
문의드립니다
1. 그림에 보면 다른지표들말구요 밴드형태인데 아래쪽엔 빨간색 위쪽엔 파란색으로 띠 형태로 된 것요~ 이 지표식을 좀 알고 싶은데요 저도 그림만 봐서 변수까지는 모르겠구요
어떤 지표식을 사용한 건지 모르겠네요; 문의 드릴게요~
알 수 없다면 어떤지표를 가지고 저런식으로 만들 수 있는지 대략적이라도 안내 좀 부탁드립니다~
2. if MarketPosition != 0 and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+90 Then{
ExitLong("H롱시간청산");
ExitShort("H숏시간청산");
}
위식을 사용중인데요 해외선물에서 밤12시넘어가니깐 제대로 안먹히네요 수정좀 부탁드립니다.~
2017-04-07
288
글번호 108549
답변완료
부탁드립니다
1. 진행되고 있는 60분봉의 고점,저점, 중간값에 우측으로 연장된 수평선을 긋고
그 값을 표시하고 싶습니다 부탁드립니다
(현재시간이 10시 16분이라면 9시~10시의 60분 캔들봉의 고가,저가,중간값에 우측으로
연장된 선을 긋고 그 가격을 표시함)
2.아래수식에서 지그재그선이 계속 나오는데요 진행중인 현재시점에서 마지막에 나온 고점과 저점을 이은 선의 중간값에 수평선과 그 값을 표시하고 싶습니다(1번과 동일)
부탁드립니다
Input:length(12),X(1);
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);
}
if X == 1 Then
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
if H < 고점[2,1] Then
TL_SetColor(TL1,red);
Else
TL_SetColor(TL1,MAGENTA);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+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];
TL_SetExtLeft(TL2,false);
TL_SetExtRight(TL2,false);
if X == 1 Then
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL2,BLUE);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
}
}
}
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);
}
if X == 1 Then
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL1,blue);
if L > 저점[2,1] Then
TL_SetColor(TL1,blue);
Else
TL_SetColor(TL1,cyan);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+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];
TL_SetExtLeft(TL3,false);
TL_SetExtRight(TL3,false);
if X == 1 Then
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetColor(TL3,RED);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL3,true);
}
}
}
TL_SetSize(TL1,3);
TL_SetSize(TL2,2);
TL_SetSize(TL3,2);
2017-04-07
216
글번호 108548
답변완료
부탁드립니다.
안녕하세요. 초보라서 더 이상 수식을 작성할 수가 없네요.
부탁 좀 드리겠습니다.
일목균형의 선행들과 파라볼릭으로 시스템을 돌릴려고 했는데요.
일단 제가 조합한 수식은 아래와 같습니다.
--------------------------------------------
Inputs: shortperiod(10), midperiod(250), longperiod(410),af(0.1), maxAF(0.155);
VAR1 = (Highest(High, shortperiod) + Lowest(Low, shortperiod)) / 2;
VAR2 = (Highest(High, midperiod) + Lowest(Low, midperiod)) / 2;
VAR4 = (VAR1 + VAR2) / 2 ;
VAR5 = (Highest(High, longperiod) + Lowest(Low, longperiod)) / 2;
VAR6 = SAR(af,maxAF);
IF C > VAR6 AND VAR4 > VAR5 Then
{
Buy();
}
IF C < VAR6 Then
{
SELL();
}
----------------------------------------
질문1)
거래시간을 조절하고 싶습니다.
오후6시부터 ~ 오후11시까지 거래가 되고 11시가 되면 강제청산이 됐으면 좋겠습니다.
질문2)
첨부사진 처럼 1에서 BUY가 나와서 진입이 된 상태인데
2번구역에서 파라볼릭이 바뀌면서 청산을 시키고 싶습니다.
즉, BUY의 청산과 SELL의 청산을 각각 따로 어떻게 하는지를 모르겟네요..
2017-04-07
194
글번호 108547
답변완료
예스랭귀지 초보적인 질문입니다..
var : count(0) , idx (1), Entriestoday(0) ;
if EntryDate(0) == 0 Then count = 0 ;
if EntryDate(0) == sDate Then count = 1 ;
While EntryDate(idx) == sDate {
count = count + 1 ;
idx = idx + 1 ;
}
Entriestoday = count ;
위의 당일진입횟수 함수를 인터넷에서 찾아서 예스랭귀지에서 검증했을 때
"함수가 값을 리턴하고 있지 않습니다. 함수는 반드시 값을 리턴해야 합니다." 라고 뜨는데
예스랭귀지나 기타 다른 언어도 하나도 모르는 까막눈이라 여기에 질문드립니다..
어떻게 하면 저 함수에서 저러한 오류가 뜨지 않게 만들수 있나요?
또한 한가지 추가로 더 여쭙고 싶은게 있습니다..
일반적인 entriestoday 함수
input : ndate(Numeric);
var : count (0);
count = 0 ;
for value1 = 0 to 10 {
if EntryDate(value1) == ndate Then
count = count + 1 ;
}
EntriesToday = count;
에서..
ndate 는 새로 만든 변수인가요 아니면 sdate처럼 오늘 날짜를 뜻하는 것인가요?
그리고 input : ndate(Numeric);이라는 변수는 input : ndate(0);과 무슨 차이가 있는지요?
2017-04-07
198
글번호 108546
답변완료
문의 드립니다
안녕하세요
아래 수식에서 고점과 저점이 확정되기 전에 첨부한 차트와 같이
지그재그 파동선이 미리 그어지는데 미리 그려지는 순간에
소리가 나게 부탁드립니다.
감사합니다.
====================
Input:length(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
var : T(0),LTL1(0);
var : HTL1(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 TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
if T[1] != 1 Then{
TL_SetExtRight(LTL1,False);
LTL1 = TL_New(sDate[index-저점[2,2]],sTime[index-저점[2,2]],저점[2,1],sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]);
TL_SetExtRight(LTL1,true);
}
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
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 TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
if T[1] != -1 then{
TL_SetExtRight(HTL1,false);
HTL1 = TL_New(sDate[index-고점[2,2]],sTime[index-고점[2,2]],고점[2,1],sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]);
TL_SetExtRight(HTL1,true);
}
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,white);
TL_SetColor(LTL1,green);
TL_SetColor(HTL1,yellow);
TL_SetSize(LTL1,1);
TL_SetSize(HTL1,1);
2017-04-06
378
글번호 108545
답변완료
수식문의
5.20.60 테마선이 양일때는 붉은선이 나오고 음일때는 푸른색으로 선이 나타나도록 부탁드릴게요, 그리고 그옆에 테마선값이 숫자로 나왓어면 좋겟습니다
2017-04-07
199
글번호 108544
답변완료
부탁합니다
5분봉차트에 30분봉 삼각가중이평선 10일선을 그리고 싶습니다
부탁합니다
2017-04-06
214
글번호 108543