커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5452
글번호 230811
답변완료
문의 드립니다.
20이평선 위에서 음봉에서 양봉으로 전환될 때 매수 진입
20이평선을 아래로 돌파 하거나 음봉 발생하면 매도청산 완료
20이평선 아래서 양봉에서 음봉으로 전환될 때 매도 진입
20이평선 위로 돌파 하거나 양봉 발생하면 매수청산 완료
부탁드립니다.
2024-03-06
703
글번호 177216
답변완료
시간박스
안녕하세요?
시장시간별고가와 저가의 박스를그리는지표입니다,
그런데 애러가 발생합니다,,,, 수정부탁드립니다,,
var : T(0),idx(0),HH(0),LL(0),SD(0),ST(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),color(0);
if (bdate != bdate[1] and stime >= 070000) or
(bdate == bdate[1] and stime >= 070000 and stime[1] < 070000) Then
{
T = 1;
}
if (bdate != bdate[1] and stime >= 170000) or
(bdate == bdate[1] and stime >= 170000 and stime[1] < 170000) Then
{
T = 2;
}
if (bdate != bdate[1] and stime >= 230000) or
(bdate == bdate[1] and stime >= 230000 and stime[1] < 230000) Then
{
T = 3;
}
if T != T[1] Then
{
HH = H;
LL = L;
SD = sdate;
ST = stime;
idx = 0;
}
if T == T[1] and T >= 1 then
{
idx = idx+1;
if H > HH Then
HH = H;
if L < LL Then
LL = L;
if idx == 1 then
{
TL1 = TL_New(SD,ST,HH,sdate,stime,HH);
TL2 = TL_New(SD,ST,LL,sdate,stime,LL);
TL3 = TL_New(SD,ST,HH,SD,ST,LL);
TL4 = TL_New(sDate,sTime,HH,sdate,stime,HH);
if T == 1 Then
color = red;
if T == 2 Then
color = blue;
if T == 3 Then
color = GREEN;
TL_SetColor(TL1,color);
TL_SetColor(TL2,color);
TL_SetColor(TL3,color);
TL_SetColor(TL4,color);
}
Else
{
TL_SetBegin(TL1,SD,ST,HH);
TL_SetEnd(TL1,sdate,stime,HH);
TL_SetBegin(TL2,SD,ST,LL);
TL_SetEnd(TL2,sdate,stime,LL);
TL_SetBegin(TL3,SD,ST,HH);
TL_SetEnd(TL3,SD,ST,LL);
TL_SetBegin(TL4,sDate,sTime,HH);
TL_SetEnd(TL4,sDate,sTime,LL);
}
}
2024-03-06
866
글번호 177214
답변완료
함수요청
안녕하세요?
국내선물 일봉으로 포지션 거래를 하고자 합니다.
아래 전략에 대해 스크립트 작성 부탁드립니다.
투자심리선 + 신심리도 < -50이되 두 값 모두 음일 때 완성 익봉 시가에 매수 진입
투자심리선 + 신심리도 > 100이되 두 값 모두 양일 때 완성 익봉 시가에 매도 진입
투자심리선 혹은 신심리도가 둘 중 하나가 음수가 되면 익봉 시가에 매도청산
투자심리선 혹은 신심리도가 둘 중 하나가 양수가 되면 익봉 시가에 매수청산
2024-03-06
926
글번호 177207
답변완료
피보나치 중간선 박스
Input : 전환(0.7);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분("");
Array:고[10,4](0),저[10,4](0);
var : box(0),TX(0),TL(0),T(0),TL1(0),TL2(0),TL3(0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= 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];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL = TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Red);
TX = Text_New_Self(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1]-저[1,1],2)+" ");
Text_SetSize(tx,25);
Text_SetColor(tx,Red);
Text_SetStyle(tx,1,1);
Text_SetBold(tx,1);
Condition4 = false;
}
If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]);
Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)+" ");
Text_SetLocation(TX,고[1,3],고[1,4],고[1,1]);
}
if Condition4 == False and abs(저[1,1]-고[1,1]) >= 0.9 Then
{
Condition4 = true;
TL1 = TL_New_Self(고[1,3],고[1,4],(고[1,1]+저[1,1])/2,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);
TL_SetColor(TL1,Magenta);
TL_SetSize(TL1,0.5);
TL2 = TL_New_Self(고[1,3],고[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.618,저[1,3],저[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.618);
TL_SetColor(TL2,Orange);
TL_SetSize(TL2,0.5);
TL3 = TL_New_Self(고[1,3],고[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.382,저[1,3],저[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.382);
TL_SetColor(TL3,Orange);
TL_SetSize(TL3,0.5);
}
if Condition4 == true Then
{
TL_SetBegin(TL1,고[1,3],고[1,4],(고[1,1]+저[1,1])/2);
TL_SetEnd(TL1,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);
TL_SetBegin(TL2,고[1,3],고[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.618);
TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.618);
TL_SetBegin(TL3,고[1,3],고[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.382);
TL_SetEnd(TL3,저[1,3],저[1,4],저[1,1] + abs(고[1,1]-저[1,1])*0.382);
}
최종꼭지점 = "고점";
Plot1(고[1,1]);
NoPlot(2);
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL = TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Blue);
TX = Text_New_Self(저[1,3],저[1,4],저[1,1],NumToStr(고[1,1]-저[1,1],2)+" ");
Text_SetSize(tx,25);
Text_SetColor(tx,Blue);
Text_SetStyle(tx,1,0);
Text_SetBold(tx,1);
Condition3 = False;
}
If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]);
Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)+" ");
Text_SetLocation(TX,저[1,3],저[1,4],저[1,1]);
}
if Condition3 == False and abs(고[1,1]-저[1,1]) >= 0.9 Then
{
Condition3 = true;
TL1 = TL_New_Self(고[1,3],고[1,4],(고[1,1]+저[1,1])/2,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);
TL_SetColor(TL1,Magenta);
TL_SetSize(TL1,0.5);
TL2 = TL_New_Self(고[1,3],고[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618,저[1,3],저[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618);
TL_SetColor(TL2,Orange);
TL_SetSize(TL2,0.5);
TL3 = TL_New_Self(고[1,3],고[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.382,저[1,3],저[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.382);
TL_SetColor(TL3,Orange);
TL_SetSize(TL3,0.5);
}
if Condition3 == true Then
{
TL_SetBegin(TL1,고[1,3],고[1,4],(고[1,1]+저[1,1])/2);
TL_SetEnd(TL1,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);
TL_SetBegin(TL2,고[1,3],고[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618);
TL_SetEnd(TL2,저[1,3],저[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618);
TL_SetBegin(TL3,고[1,3],고[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.382);
TL_SetEnd(TL3,저[1,3],저[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.382);
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
피보나치 38.2부터 50까지, 50부터 61.8까지 박스.
현재 수식과 같이, 설정한 크기에 도달할 때부터 박스. 감사합니다.
2024-03-06
759
글번호 177205
답변완료
사용자 함수 문의
안녕하세요 항상 건강하십쇼!
저번에 여쭤본 86029 게시글에 이어서 계속 질문 드립니다.
말씀주신 PercentRankArray의 결과값을 사용자 함수로 불러와서 쓰고싶은데 안됩니다 ㅠㅠ
동일한 코드로 지표를 만들어서 plot하면 값이 잘 불러와지는데, 사용자 함수로 넣어서 해당 사용자 함수를 불러와서 plot하면 값이 n/a로 뜹니다. 안뜹니다.
고쳐주세요 (__)
사용자함수명 : PRATest
/////////
var:
vari1(0),
Vari2(0)
;
Array : cc[10000](0)
;
///
Vari1 = Close;
Ins*ertArray(cc, 0, Vari1);
Vari2 = PercentRankArray(C,cc,index);
#대상값은 종가, 대상배열은 cc, 사이즈는 Array에 저장된 값의 수. 즉 Array에 방이 하나씩 채워질때마다 해당 값도 늘어나야합니다. 어떻게 해야하나요? Index를 넣으면 되나요?
PRATest = Vari2;
//////////
2024-03-06
659
글번호 177204
답변완료
피보나치 전환 박스
input : 전환포인트(0.7);
Array : HD[10](0),HT[10](0),HV[10](0);
Array : LD[10](0),LT[10](0),LV[10](0);
var : cnt(0),Hprice(0),Lprice(0);
var : UpTrend(false),DownTrend(False),Trend(0),ZigZagTL(0),TX(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
Plot1 (c);
HPrice = H;
LPrice = L;
if Index == 0 or Bdate != Bdate[1] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
trend = 0;
}
Else
{
UpTrend = HPrice >= LV[0]+전환포인트;
DownTrend = LPrice <= HV[0]-전환포인트;
if trend <= 0 and UpTrend == true Then
{
trend = 1;
For cnt = 9 DownTo 1
{
HD[cnt] = HD[cnt-1];
HT[cnt] = HT[cnt-1];
HV[cnt] = HV[cnt-1];
}
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]);
TL_SetColor(ZigZagTL,Red);
TL_SetSize(ZigZagTL,1);
TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,1);
Text_SetColor(TX,Black);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL2,Orange);
TL_SetColor(TL3,Green);
TL_SetColor(TL4,Orange);
TL_SetColor(TL5,Green);
}
Else if trend >= 0 and DownTrend Then//하락추세 전환
{
trend = -1;
For cnt = 9 DownTo 1
{
LD[cnt] = LD[cnt-1];
LT[cnt] = LT[cnt-1];
LV[cnt] = LV[cnt-1];
}
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]);
TL_SetColor(ZigZagTL,Blue);
TL_SetSize(ZigZagTL,1);
TX = text_new(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,0);
Text_SetColor(TX,Black);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL2,Orange);
TL_SetColor(TL3,Green);
TL_SetColor(TL4,Orange);
TL_SetColor(TL5,Green);
}
Else
{
if trend == 1 Then
{
if HPrice > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]);
Text_SetLocation(TX,HD[0],HT[0],HV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL_SetBegin(TL1,LD[0],LT[0],HV[0]);
TL_SetBegin(TL2,LD[0],LT[0],Var2);
TL_SetBegin(TL3,LD[0],LT[0],Var3);
TL_SetBegin(TL4,LD[0],LT[0],Var4);
TL_SetBegin(TL5,LD[0],LT[0],LV[0]);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,LV[0]);
}
}
if trend == -1 Then
{
if LPrice < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]);
Text_SetLocation(TX,LD[0],LT[0],LV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL_SetBegin(TL1,HD[0],HT[0],HV[0]);
TL_SetBegin(TL2,HD[0],HT[0],Var2);
TL_SetBegin(TL3,HD[0],HT[0],Var3);
TL_SetBegin(TL4,HD[0],HT[0],Var4);
TL_SetBegin(TL5,HD[0],HT[0],LV[0]);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,LV[0]);
}
}
}
}
피보나치 38.2부터 50까지 박스. 50부터 61.8까지 박스. 감사합니다.
2024-03-06
635
글번호 177202
2wnwn 님에 의해서 삭제되었습니다.
2024-03-06
12
글번호 177201
답변완료
변환 부탁드려요
늘 감사드리며 신호수식을 종목검색식으로 부탁드립니다
AA=dayhigh()>daylow()*1.07;
BB=dayhigh()-daylow();
상단=Valuewhen(1,AA,BB*상단비율/100+daylow());
하단=Valuewhen(1,AA,BB*하단비율/100+daylow());
M5=ma(c,5);
KK5=M5>M5(1) && M5(1)<M5(2);
q=valuewhen(1,KK5,M5);
M20=ma(c,20);
M60=ma(c,60);
KK5 && c> 0 && crossup(C,상단) && q>하단 &&
(M5>M20 or M5>M60)
지표설정:
상단비율:65
하단비율;50
2024-03-06
528
글번호 177195
nicebs 님에 의해서 삭제되었습니다.
2024-03-06
100
글번호 177194