커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
2485
글번호 230811
답변완료
수식 문의
항상 친절한 답변 감사드립니다.
##### 수식 문의 #######
당일 시초가가 전일 종가 보다
n틱 (k200 선물기준) 보다 아래에서 시작하면
매도 한 다음
+ x틱 수익에 청산하거나 또는
당일 종가에 청산합니다.
당일 시초가가 전일 종가 보다
n1틱 (k200 선물기준) 보다 위에서 시작하면
매수 한 다음
+ x1틱 수익에 청산하거나 또는
당일 종가에 청산합니다.
ㄱ. 시초가가 결정되면 즉시 진입합니다.
ㄴ. 하루에 한번 진입 신호가 나옵니다.
질문 : 시가에 진입하고 종가에 청산하는 로직이라면
일봉에서 적용가능한가요?
항상 친절한 답변 감사드립니다.
2022-02-21
1161
글번호 156518
답변완료
수식 수정부탁드립니다
Input :표시가격1(O+(C-O)*3/4), 표시가격2(C+(C-O)*1/4) ;
var : 양봉(False),음봉(False),음고가(0),음봉고가(0),양저가(0),양봉저가(0);
양봉=C>O;
음봉=C<O;
음고가=iff(음봉, H, 0);
양저가=iff(양봉, L, 0);
if 양봉[1] == true and 음봉 == true Then
{
음봉고가 = 음고가;
}
Else
{
if 음봉고가 > 0 and 음고가 > 음봉고가 Then
음봉고가 = 음고가;
}
if 음봉고가 > 0 Then
Plot1(음봉고가);
if 양봉[1] == true and 음봉 == true Then
{
음봉고가 = 음고가;
}
Else
{
if 음봉고가 > 0 and 음고가 > 음봉고가 Then
음봉고가 = 음고가;
}
if 음봉고가[1] > 0 and CrossUp(C,음봉고가[1]) and 양봉 == true Then
var1 = 표시가격1;
if var1 > 0 Then
Plot2(var1);
if 음봉[1] == true and 양봉 == true Then
{
양봉저가 = 양저가;
}
Else
{
if 양봉저가 > 0 and 양저가 < 양봉저가 Then
양봉저가 = 양저가;
}
if 양봉저가 > 0 Then
Plot3(양봉저가);
if 음봉[1] == true and 양봉 == true Then
{
양봉저가 = 양저가;
}
Else
{
if 양봉저가 > 0 and 양저가 < 양봉저가 Then
양봉저가 = 양저가;
}
if 양봉저가[1] > 0 and CrossDown(C,양봉저가[1]) and 음봉 == true Then
var2 = 표시가격2;
if var2 > 0 Then
Plot4(var2);
상기수식에서
음고가=iff(음봉, H, 0);
양저가=iff(양봉, L, 0);
이 부분을 다음 식으로 변경 반영해주세요.
음고가=ValueWhen(1, 음봉,H);
양저가=ValueWhen(1, 양봉,L);
또한 두 식의 의미차이는 뭔가요?
IFF와 ValueWhen식의 데이터 가져오는게 틀린것 같은데요.
ValueWhen 으로 대체해서 검정해보면 정의되지않는 것이라 에러가 나네요.
부탁드립니다.
2022-02-21
1254
글번호 156517
답변완료
신호 문의드립니다
안녕하세요 국내주식을 하고 있는데요
예를 들면 , 진입 갯수를 2개로 설정해 놓고, 5프로로 익절을 설정한다음
나중에 진입갯수를 3개로 바꾸면 , 예전에 2개로 진입갯수한것도 3개로 인식하고,
(설정은 모든신호진입)익절이 되는데요,
진입갯수를 수정하더라도 수정되기전에 매매한것은
매매한 갯수데로 익절을 하려면 어떻게 해야 되는지요...
수정되기전 매매한 갯수보다 더 많이 매도가 되어서
매수갯수가 줄어들어서 문의드립니다
2022-02-21
1132
글번호 156516
답변완료
수식 문의
항상 친절한 답변 감사합니다.
수식 문의 :;
캔들의 크기를 확인할 수 있도록 캔들을 지표로 만들 수 있을까요?
캔들의 시가를 0선에 잡고 분봉캔들을 지표처럼 표현하고 싶습니다.
구현하면 똑같진 않겠지만 대충 아래의 그림 처럼 될 것입니다.
여기에서 다음의 조건에 해당하는 캔들을 구합니다.
1. '전일' 분봉 캔들의 고/저가 크기를 순위로 매깁니다.
2. 같은 크기면 순위도 같게 매깁니다.
조건 3. 크기가 큰 순위로 상위 X 순위 까지의 캔들을 찾습니다.
조건 4. 크기가 작은 순위로 상위 X1 순위 까지의 캔들을 찾습니다.
5. '당일' 캔들지표에서 색깔을 입힙니다.
양봉이면 붉은 색, 음봉이면 푸른색을 칠하되
현재봉이 '전일'에 구해둔 위 3의 조건 (캔들 큰 순위) 안에 들면 @@ 색을
현재봉이 '전일'에 구해둔 위 4의 조건 (캔들 작은 순위) 안에 들면 ## 색을 칠합니다.
6. 조건 3의 순위 안에 들어가는 크기의 캔들의 고저가 값을
0선 위, 아래로 그어줍니다.
6-1. 조건 4의 순위 안에 들어가는 크기의 캔들의 고저가 값을
0선 위, 아래로 그어줍니다.
6-2. 전일 가장 큰 캔들의 고저가 값을 0선 위, 아래로 그어줍니다.
2022-02-21
1822
글번호 156515
답변완료
수식 문의
다음은 분봉에 적용하는 하캔아쉬 지표입니다.
이를 다음의 조건을 추가하여 수정하고 싶습니다.
조건1 : 현재봉의 고/저가가 '직전봉' 고/저가를 n1틱 이상 넘지 못하고,
현재봉의 고저가가 n틱 이하이고
현재봉의 종가가 '직전봉'의 고/저가 안에 있으면
현재봉은 직전봉의 색깔을 그대로 유지해 줍니다.
조건2 : 다음봉도 ""조건1이 발생했을 때의 '직전봉'의 고저가""를 기준으로 잡고,
다음봉의 고/저가가 '직전봉' 고/저가를 n1틱 이상 넘지 못하고,
다음봉의 고저가가 n틱 이하이고
다음봉의 종가가 '직전봉'의 고/저가 안에 있으면
다음봉 또한 직전봉의 색깔을 그대로 유지해 줍니다.
위 조건이 깨어지기 전까지
다다음봉... 다음n번째봉까지도 같은 조건을 적용합니다.
다음 n번째 봉까지 적용할 것인지는 input값으로 설정합니다.
var : Xclose(0),xOpen(0),Xhigh(0),Xlow(0);
xClose = (Open+High+Low+Close)/4;
xOpen = (Open[1] + Close[1])/2 ;
xHigh = Max(High, xOpen, xClose);
xLow = Min(Low, xOpen, xClose) ;
if Bdate != Bdate[1] Then
{
if Xclose > (Open[0] + Close[0])/2 Then
PlotPaintBar(H,L,"강조",RGB(255,130,36));
Else
PlotPaintBar(H,L,"강조",RGB(126,210,255));
}
Else
{
if Xclose > Xopen Then
PlotPaintBar(H,L,"강조",RGB(255,130,36));
Else
PlotPaintBar(H,L,"강조",RGB(126,210,255));
}
2022-02-21
1420
글번호 156512
답변완료
문의드립니다
고생하십니다
10분봉에서 시초가 첫봉이 음봉이고 그후 전봉대비 거래량200프로 이상 시초가 돌파시 매수
5%수익때 50프로 익절 10분봉상 종가가 5일선밑으로 끝날시 나머지 50 매도
10분봉 종가가 5일선 이탈시 손절
주가는 5일선위에 있던지 5일선돌파입니다
이 수식을 알고 싶습니다
2022-02-21
1135
글번호 156508
답변완료
수식부탁드리겠습니다
input : Period(10);
Vars: HH(0), LL(0) ,center(0), LongCondition(False),ShortCondition(False),ExitLongConditon(False), ExitShortCondition(False);
HH = Highest(high, Period);
LL = Lowest(low, Period);
center= (HH+LL)/2 ;
LongCondition = CrossUp(C,HH[1]);
ShortCondition = CrossDown(C,LL[1]);
ExitLongConditon = CrossDown(C,center[1]);
ExitShortCondition = CrossUp(C,center[1]);
If LongCondition Then
Begin
Buy("매수");
End;
If ExitLongConditon Then
Begin
ExitLong("매수청산");
End;
If ShortCondition Then
Begin
Sell("매도");
End;
If ExitShortCondition Then
Begin
ExitShort("매도청산");
End;
이렇게 수식을 작성하였는데
진입이 고가를 돌파하는 순간 진입되어야 하는데 캔들의 종가에 진입이 됩니다
index함수를 사용해서 고가를 돌파하는 다음틱에 진입하는 방법으로 해야할것같은데
해당부분 작성이 잘 안되어 질문드립니다
HH[1]라인 LL[1]라인을 현재가가 돌파하는 즉시 그 가격에 진입하는 수식을 만들고싶습니다
2022-02-21
1204
글번호 156503
답변완료
수정부탁드립니다
$,안녕하세요
계속되는 질문에 송구하고,답변에 항상 감사합니다
아래식에서 조건만족 적용 기간을 장종료후 초기화되어서 당일조건에 한해서 적용되게
수정부탁드립니다.현재식은 전일과 당일포함해서 조건만족이 적용되거든요,이식을
당일에만 조건이 적용되고 장끝나면 초기화되어서 익일은 익일장에만 적용되게 하길
원합니다.도움 부탁드립니다.
Input: Length(5),굵(1),별(0),별1(0);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),tx1(0),tx2(0),tx3(0),tx4(0),s(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,Length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,Length) == LL and 최종저가 <> LL;
처리구분 = "";
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
{
최종고가 = HH;
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetColor(TL1,YELLOW);
TL_SetSize(tl1,굵);
if 고[4,1] > 0 and 고[4,1] < 고[3,1] and 고[3,1] > 고[2,1] Then
{
var1 = abs(고[3,1]-저[2,1]);
tx1 = Text_New(저[1,3],저[1,4],저[1,1]+var1,"★");
tx2 = Text_New(저[1,3],저[1,4],저[1,1]-var1,"★");
Text_SetStyle(tx1,2,2);
Text_SetStyle(tx2,2,2);
Text_SetColor(tx1,BLUE);
Text_SetColor(tx2,BLUE);
Text_SetSize(tx1,별);
Text_SetSize(tx2,별);
}
S = 0;
if 저[3,1] > 0 and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] Then
{
S = -1;
tx4 = Text_New(저[1,3],저[1,4],저[1,1],"▲");
Text_SetStyle(tx4,2,0);
Text_SetColor(tx4,RED);
Text_SetSize(tx4,별1);
PlaySound("C:예스트레이더dataSound1point.wav");
}
}
Else If 고[1,1] < HH Then
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetColor(TL1,CYAN);
TL_SetSize(tl1,굵);
if 저[4,1] > 0 and 저[4,1] > 저[3,1] and 저[3,1] < 저[2,1] Then
{
var1 = abs(저[3,1]-고[2,1]);
tx1 = Text_New(고[1,3],고[1,4],고[1,1]+var1,"★");
tx2 = Text_New(고[1,3],고[1,4],고[1,1]-var1,"★");
Text_SetStyle(tx1,2,2);
Text_SetStyle(tx2,2,2);
Text_SetColor(tx1,MAGENTA);
Text_SetColor(tx2,MAGENTA);
Text_SetSize(tx1,별);
Text_SetSize(tx2,별);
}
S = 0;
if 고[3,1] > 0 and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] Then
{
S = 1;
tx3 = Text_New(고[1,3],고[1,4],고[1,1],"▼");
Text_SetStyle(tx3,2,1);
Text_SetColor(tx3,BLUE);
PlaySound("C:예스트레이더dataSound1point.wav");
Text_SetSize(tx3,별1);
}
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
$$,아울러 질문#76027 확인부탁드립니다.
감사합니다.
2022-02-21
1271
글번호 156501
답변완료
안녕하세요
일목균형표에시
매수는기준선이전환선골드크로스
메도는기준선이전환선데드크로스
손절 60틱
익절 100틱
수익이50틱이상이엇다가 진입가대비+10틱으로내려오면청산
매매시간오전9시부터다음날오전4시까지
지표변환숫자 밖으로조정할수있게부탁합니다
2022-02-21
952
글번호 156500