커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3148
글번호 230811
답변완료
수식 도움 요청
ㄱ. data2의 macd OSC 가 양수인 상태
ㄴ. data1의 rsi > rsi signal 인 상태
ㄷ. data1의 rsi < 50 인 상태 에서
ㄹ. ma가 적용된 하캔아쉬가 양수 전환 하면 매수 하되.
ㅁ. 단, 위의 모든 조건은
data1의 (rsi 가 rsi signal 골드크로스 발생) 이후 (n봉 기간 內에서만 유효)함.
부탁드리겠습니다. ㅁ.을 추가하려니 멘붕 오네요 ^^;
========= ma가 적용된 하캔아쉬 ============
input : period1(1);
var : haClose(0),haOpen(0),haHigh(0),haLow(0);
if CurrentBar > 1 then
{
haClose = (Open+High+Low+Close)/4;
haOpen = (haOpen[1] + haClose[1])/2 ;
haHigh = Max(High, haOpen, haClose);
haLow = Min(Low, haOpen, haClose) ;
}
var11 = ma(haClose,period1);
Var12 = ma(haOpen,period1);
2022-11-23
1049
글번호 164062
답변완료
문의 드립니다
해외선물 매매입니다.
1. 매매시간 08:00~ 익일06:00 익절 200틱 손절 50틱 진입청산 1회
1캔들이 150분봉인 경우의수에서 완성된 캔들 저점이 내려가는
(저점이 동일한건 포함 안됨) 6캔들후 매수
캔들 고점이 올라가는 (고점이 동일한건 포함안됨) 6캔들에 청산
2. 매매시간 08:00~ 익일06:00 익절 200틱 손절 50틱 진입청산 1회
1캔들이 150분봉인 경우의수에서 완성된 캔들 고점이 올라가는
(고점이 동일한건 포함 안됨) 6캔들후 매도
-----------------------
var1 = c-o;
Var2 = AccumN(var1,21);
input : starttime(180000),endtime(63000),n(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if Var2 < 0 Then
Buy();
if var2 > 0 Then
Sell();
위 수식어는 1캔들이 150분봉 인데요.
2캔들 손실에 자동청산후 매매정지및 익절 200틱 손절 100틱를 포함 하고자 합니다.
2022-11-24
1034
글번호 164060
답변완료
전략실행차트 data2 정보
안녕하세요 개발자님
스크린샷 화면은 선물 5분봉 차트와 Data2에 일봉선물차트를 띄운 화면입니다.
본래 시뮬레이션 차트에서는 Data2(C)를 불러오면 전날 일봉 종가를 불러오게 됩니다. 근데 전략실행차트에서 messangelog를 통해 실시간으로 Data2(C)의 정보를 불러와보니 현재 종가가 그림과 같이 불러와집니다. 또 Data2(C[1]) 를 불러와보니 어제와 그제 종가가 번갈아가면서 디버깅창에 뜨던데.. 좀 일관되고 안전하게 data2 정보를 쓸 수 있게 하여 실제 자동매매에 data2를 안전하게 쓸 수 있는 방법이 없을까요?
2022-11-23
1095
글번호 164047
답변완료
추세선 위로 이동
input : Period(10),선두께(1);
Var:상승색(red), 하락색(blue);
input : 바닥상1(2),바닥하1(0),바닥상2(2),바닥하2(0),봉상1(0),봉하1(1),틱1(0),틱2(1);
Var:j(0),T(0),txx(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),TL9(0),idx(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
Plot1(0);
r[0] = 0;
r[1] = 2;
r[2] = 3.;
r[3] = -1;
r[4] = -2.;
r[5] = 1;
r[6] = 0.5;
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
if hival[0] <= hival[1]+PriceScale* 봉상1 and hival[0] >= hival[1]-PriceScale*봉하1 Then
{
Txx = Text_New(sDate,sTime,value11+PriceScale*2,"●");
Condition99 = true;
Text_SetColor(Txx,Blue);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,10);
}
Txx = Text_New(date11,time11,Value11+PriceScale*1,"●");
Condition99 = true;
Text_SetColor(Txx,Cyan);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,35);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
Condition1 = False;
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 and
LoVal[1] <= Loval[2]+PriceScale*바닥상2 and LoVal[1] >= Loval[2]-PriceScale*바닥하2 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Magenta);
TL_SetSize(TL9,0.5);
Tx =Text_New(sDate,sTime,value11-PriceScale*3,"●");
Condition99 = true;
Text_SetColor(Tx,Magenta);
Text_SetStyle(Tx,2,2);
Text_SetSize(tx,25);
}
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Red);
TL_SetSize(TL9,0.5);
Tx = Text_New(sDate,sTime,value11-PriceScale*3,"●");
Condition99 = true;
Text_SetColor(Tx,Red);
Text_SetStyle(Tx,2,2);
Text_SetSize(tx,25);
}
if Condition99 == true and Loval[0] >= Loval[1]-PriceScale*틱1 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
}
}
TL_SetSize(TL1,선두께);
차트와 안 겹치게, 추세선을 위로 5틱 올려주세요. 감사합니다.
2022-11-23
1241
글번호 164046
답변완료
수식부탁합니다
가급적이면 외부변수를 써 주시면 감사하겠습니다
1.20일 이평에 걸치는 20일 이평보다 큰 양봉에 매수
20일 이평붕괴시 청산
단,20일 이평에 걸리는 첫봉을 기준으로 5분동안 2번만 반복하라
2.시장가 진입,청산 함수가 있나요?
3.특정상황에서 매수진입금지 시킬수 있는 함수가 있나요?
4."60일선과120일선이 역배열된후 30캔들 이내"라는 수식을 알려주세요
5."5일,20일정배열이 2번째라면"라는 수식 부탁합니다
6."5일,20일정배열 이후 역배열이라면" 수식 부탁합니다
감사합니다.^^ 꾸벅
2022-11-23
909
글번호 164045
답변완료
지표문의에요.
혹시 26일 이후의 날짜에 수직선을 차트에 표시해주는 지표수식이 있을까요?
예를들어 오늘이 11월 1일이면 11월 26일의 날짜에 차트에 수직선을 표시해 주는 거에요.
일목균형표의 선행지표를 쓰기때문에 앞으로 26일 이후가 언제쯤인지 알고싶은데
차트에서 바로바로 확인할수가 없어서 혹시 가능한지 여쭤보고 싶어요.
도구의 수직선은 제가 앞으로 26일 이후가 언제인지 계산해서 수직선을 그어야 하는데
그게 너무 불편해요..ㅜ
이게 안된다면 앞으로 26일 이후를 쉽게 확인가능한 아무지표라도 만들어 주실수 있나요?
2022-11-23
726
글번호 164044
회원 님에 의해서 삭제되었습니다.
2022-11-23
37
글번호 164043
답변완료
틱봉갯수
감사합니다.
아래 수식은
전일 5분주기 봉발생갯수 중의 최고갯수를 넘어서는
당일 현재봉갯수에서 종가선을 표시한 것입니다.
이것을 다음과 같이 변환하여 주시기 바랍니다.
1. 전일 동시간대비 봉발생갯수의 최고갯수를 넘어서는 당일 동시간대 현재봉갯수에 종가선 표시
2. 전전일 동시간대비 봉발생갯수의 최고갯수를 넘어서는 당일 동시간대 현재봉갯수에 종가선 표시
input : ntime(5);
var : S1(0),D1(0),TM(0),TF(0),B(0);
var : idx(0),idx1(0),idx2(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
var1 = 0;
value1 = 0;
value11 = value1[1];
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
B = B+1;
idx = 0;
idx1 = idx[1];
idx2 = idx1[1];
}
idx = idx+1;
if idx > value1 Then
value1 = idx;
if value11 > 0 and CrossUp(idx,value11) Then
var1 = C;
if var1 > 0 Then
Plot1(var1);
Else
NoPlot(1);
}
2022-11-23
506
글번호 164042
회원 님에 의해서 삭제되었습니다.
2022-11-23
50
글번호 164041