커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7212
글번호 230811
답변완료
문의
안녕하세요
시가위에는매수시가밑에는매도진입 손절합이40틱이면진입금지 이익은 손절제하고40틱이면청산수식부탁합니다
2019-03-11
303
글번호 126909
답변완료
함수변환 요청
안녕하세요?
아래는 시그널메이커로 작성된 스크립트입니다.
예스스탁에서 사용할 수 있도록 함수 변환 요청드립니다.
감사합니다.
Params : vP1(5);
Vars : SP(0), TickSize(0), vM1(0);
SP = SignalPosition;
TickSize = OneTick * PriceScale;
vM1 = AvgFast(C, vP1);
If CrossUp(C, vM1) Then Buy("B");
If CrossDown(C, vM1) Then Sell("S");
If SP[1] <> SP And SP <> 0 Then v99 = CurrentContracts;
Params : ExitP(5);
If CurrentContracts = v99 Then
Begin
If SP = 1 And C < EntryPrice + (ExitP * TIckSIze) Then ExitLong("EXL", AtLimit, EntryPrice + (ExitP * TIckSize), "B", 1);
If SP = -1 And C > EntryPrice - (ExitP * TIckSIze) Then ExitShort("EXS", AtLimit, EntryPrice - (ExitP * TickSIze), "S", 1);
End;
Params : droptick(20),minprotick(50);
SetStopTrailing(droptick * TickSize * CurrentContracts,minprotick * TickSize * CurrentContracts);
2019-03-11
317
글번호 126908
답변완료
그물망
그물망 1.가격:종가 2,기간:5일 3,간격:1 4,종류:단순
잘 부탁드립니다
2019-03-11
344
글번호 126907
답변완료
문의드립니다.
안녕하세요
아래 파동지표에서 파동의 고점과 저점이 확정이 되면
고점과 저점에서 수평선이 나오게 부탁드리며
마지막 고점과 저점은 오른쪽으로 연장되게 부탁드립니다.
미리 감사드립니다.
===================
Input:length(6);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),
TL1(0),처리구분(""),T(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 고점[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 저점[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);
==========================
2019-03-11
399
글번호 126906
답변완료
수식부탁드립니다
#,안녕하세요
ㅡ,보조지표 MACD를 사용할경우입니다
주가의 변화에 지표의 변화가 달리할때
즉,주가가 상승할때 반대로 지표(MACD)의 고점이 낮아질때나,
또는 주가가 하락할때 반대로 지표(MACD)의 저점이 높아질때 주가와 지표가 변화를 달리하는
시점부터 지표(MACD)저점들을(또는 고점들을) 추세선으로 표시할수는 없는지요?
(목적은 다이버젼스발생을 찾기 위해서 입니다,도움 부탁드립니다)
##, 고맙습니다.
2019-03-11
392
글번호 126905
답변완료
부탁드립니다
ELLIOTWAVE에서 2점에서 양방향으로 나올수 있게 수식을 만들수 있나요
만들수 있으면 수식 좀 부탁드립니다
2019-03-10
316
글번호 126904
답변완료
수식 문의 드립니다.
차트 이미지에서 1차 진입 이후 당일 가격기준으로 설정된 밴드를 벗어나면 2차 진입을 못하게 할려고 합니다. (물론 1차 진입 전에도 밴드를 벗어나면 진입 제어 동일함)
for x = dayindex - 1 Downto 1 를 사용해서 진입 이전 밴드를 벗어난 상태를 체크하는데 원하는 값이 안 나오네요.
수식 부탁드립니다.
2019-03-10
352
글번호 126903
답변완료
시스템식좀 부탁드리겠습니다
당일에
전일종가대비 고가가 15%이상, 당일 시가대기 고가가 10%이상, 거래대금이 100억이상의 조건이 만족되면,
전일 종가에서 당일 고가까지 피보나치 조정대를 그어서
주가가 0.5까지 밀리면 매수
매수이후, 0.382까지 반등한다면 수익실현
반등하지못하고 0.618까지 밀린다면 2차매수
2차매수까지 들어간 경우에는 0.5까지 반등한다면 전량 수익실현
반등하지 못하고 0.736까지 밀린다면 전량 청산
당일 수익도 손절도 안되었다면, 종가에 전량 청산
매수금액은 1차 100만원 2차 100만원으로 설정해주시고(둘다 외부변수로 바꿀수있게 빼주시고)
거래대금도 외부변수로 빼주세요
그리고 결과를 엑셀로 출력 하고싶은데
매매일시/종목명/매매손익률/매매손익금을 엑셀로 출력해주시면 감사하겠습니다
항상 고맙습니다 수고하세요!
2019-03-10
338
글번호 126902
답변완료
지표수식부탁드립니다.
아래의 식을 1분챠트에서 볼 수 있는
항셍용 타주기분(60)으로 수정부탁드립니다
감사합니다.
Input:전환비율(0.618);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),T(0),지지(0),저항(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
저[1,1] = LL;
저[1,2] = 0;
}
If Index > 0 Then // Index가 0일때는 이전 봉이 없으므로 Index가 1일때부터 1씩 증가
{
hiBar = hiBar + 1; // 최고점을 찍은 고[저]가의 위치를 저장 해놓기 위해 봉번호를 카운트한다.
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0; // 현재 봉이 최고가이면 봉번호를 0으로 초기화
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0;
// 전저점에서 최소변동률만큼 더한 값보다 고가가 크다면 추세가 변한 것으로 보고 신규 고점으로 인식
Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0;
// 전고점에서 최소변동률만큼 뺀 값보다 저가가 작다면 추세가 변한 것으로 보고 신규 저점으로 인식
처리구분 = "";
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
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
hiBar = -1;
// 다음 봉의 고가가 기준 고가로 인식되려면 hiBar 값이 0이 되어야 한다.
// 봉이 바뀔 때마다 hiBar의 값을 1씩 증가시키므로 다음 봉의 hiBar 값은 0이 된다.
loBar = -1;
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
hiBar = -1;
loBar = -1;
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
}
최종꼭지점 = "고점";
T = 1;
if T == 1 and T != T[1] then
지지 = 저[1,1] ;
}
#==========================================#
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
hiBar = -1;
loBar = -1;
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
hiBar = -1;
loBar = -1;
}
최종꼭지점 = "저점";
T = -1;
if T == -1 and T != T[1] then
저항 = 고[1,1] ;
}
//========================================//
var : 방향(0),HV(0),LV(0);
if crossdown(c,지지) then
방향 = -1;
if crossup(c,저항) then
방향 = 1 ;
if 방향 == 1 and 방향 != 방향[1] Then
Hv = H;
if 방향 == 1 and H > HV Then
Hv = H;
if 방향 == -1 and 방향 != 방향[1] Then
Lv = H;
if 방향 == -1 and L < LV Then
Lv = L;
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var1 = Hv - (Hv - Lv)*Per1/100 ;
var2 = Hv - (Hv - Lv)*Per2/100 ;
var3 = Hv - (Hv - Lv)*Per3/100 ;
var4 = Hv - (Hv - Lv)*Per4/100 ;
var5 = Hv - (Hv - Lv)*Per5/100 ;
plot1(Hv,"고1);
plot2(Lv,"고2);
plot3(var1,"23.6"));
plot4(var2,"38.2");
plot5(var3,"50.0");
plot6(var4,"61.8");
plot7(var5,"76.4");
2019-03-10
338
글번호 126901