커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1397
글번호 230811
답변완료
해외선물(나스닥) 매매 수식 작성 부탁드립니다.
해외선물(나스닥) 매매 수식 작성 부탁드립니다.
[매수진입 기준]
▶장시작후 시가보다 +50틱 상승 시점에 매수진입
▶진입후 시가보다 -10틱 하락하면 손절청산(매도청산)
▶진입후 평단가보다 +150틱 상승하면 익절청산(매도청산)
[매도진입 기준]
▶장시작후 시가보다 -50틱 하락 시점에 매도진입
▶진입후 시가보다 +10틱 상승하면 손절청산(매수청산)
▶진입후 평단가보다 -150틱 하락하면 익절청산(매수청산)
2024-06-15
1055
글번호 180664
답변완료
추세선 박스 시작점 변경
안녕하세요?
수고 많으십니다.
아래 추세선 지표에서 하락추세가 상승추세로 전환이 이뤄지면 이전 추세였던 하락추세가 끝나는 봉부터 상승박스의 시작점이 되어 상승추세가 계속되는 동안 RED 박스가 형성됩니다.
예를 들면 첨부파일 "추세선1"은 마지막봉 2014.2.19일 까지 하락추세선만 표시되다가 "추세선2"에서 마지막봉이 2014.2.20 일이 되면서 2014.2.19일 고가로 상승추세선과 RED 박스가 그려집니다.
여기에서 RED 박스의 시작점이 하락추세가 끝나는 2014.1.18일 부터가 아니라 상승추세선이 형성된 것을 알기 시작한 2024.2.19 일부터 시작되게 그려주고 싶습니다.
수정 부탁 드립니다.
감사합니다.
input : Period(30);
Var:j(0),T(0),tl(0),TL1(0),tx(0) ,box(0);
Var: date11(0),date12(0),time11(0),time12(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0);
Array: HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Plot1(0);
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,Blue);
TL_SetSize(TL1,2);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
box = Box_New(date11,time11,Value11,date12,time12,Value12);
Text_SetSize(tx,25);
Text_SetColor(Tx,Red);
Text_SetStyle(tx,1,1);
Text_SetBold(tx,1);
if abs(value12[1]-value11[1]) < 0.7 Then
Text_Delete(tx);
tx = Text_New(sDate,stime,value12,NumToStr(value11-value12,2));
Text_SetColor(Tx,Blue);
Text_SetStyle(tx,1,0);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
}
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];
Box_SetEnd(box,date12,time12,Value12);
Text_SetString(tx,NumToStr(value11-value12,2));
Text_SetLocation(tx,sDate,sTime,value12);
}
if value12 > value11-0.7 Then
{
Box_SetColor(box,Cyan);
Box_SetFill(box,true,50);
}
else if value12 <= value11-0.7 and value12 > value11-0.9 Then
{
Box_SetColor(box,Yellow);
Box_SetFill(box,true,90);
}
else if value12 <= value11-0.9 and value12 > value11-1.3 Then
{
Box_SetColor(box,Lime);
Box_SetFill(box,true,80);
}
else if value12 <= value11-1.3 and value12 > value11-1.6 Then
{
Box_SetColor(box,Cyan);
Box_SetFill(box,true,50);
}
else if value12 <= value11-1.6 and value12 > value11-2 Then
{
Box_SetColor(box,Blue);
Box_SetFill(box,true,25);
}
else
{
Box_SetColor(box,Lime);
Box_SetFill(box,true,35);
}
}
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,Red);
TL_SetSize(TL1,2);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
box = Box_New(date11,time11,Value11,date12,time12,Value12);
Text_SetSize(tx,25);
Text_SetColor(Tx,Blue);
Text_SetStyle(tx,1,0);
Text_SetBold(tx,1);
if abs(value12[1]-value11[1]) < 0.7 Then
Text_Delete(tx);
tx = Text_New(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Red);
Text_SetStyle(tx,1,1);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
}
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];
Box_SetEnd(box,date12,time12,Value12);
Text_SetString(tx,NumToStr(value12-value11,2));
Text_SetLocation(tx,sDate,sTime,value12);
}
if Value12 > value11+1.1 Then
{
Box_SetColor(box,Pink);
Box_SetFill(box,true,90);
}
else if value12 >= value11+0.8 and value12 <= value11+1.1 Then
{
Box_SetColor(box,Magenta);
Box_SetFill(box,true,40);
}
Else
{
Box_SetColor(box,Orange);
Box_SetFill(box,true,60);
}
}
2024-06-15
1131
글번호 180663
답변완료
수식 문의 드립니다.
안녕하세요.
아래지표를 영웅문 수식으로 변환 부탁드립니다.
input:p55(55);
var:k(0),h0(0),hac(0),tna1(0),tna2(0),diff1(0),zlha(0),
tna11(0),tna12(0),diff2(0),zlcl(0);
k=(o+h+l+c)/4;
h0=(k[1]+IFf(accum(1)==1,c,h0[1]))/2;
hac=(k+h0+max(h,h0)+min(l,h0))/4;
tna1=Ema(Ema(Ema(hac,p55),p55),p55);
tna2=Ema(Ema(Ema(tna1,p55),p55),p55);
diff1=tna1-tna2;
zlha=tna1+diff1;
tna11=Ema(Ema(Ema((h+l+c)/3,p55),p55),p55);
tna12=Ema(Ema(Ema(tna1,p55),p55),p55);
diff2=tna11-tna12;
zlcl=tna11+diff2;
Plot1(zlha,"HA");
plot2(zlcl,"CL");
그럼 수고하세요
2024-06-15
734
글번호 180662
답변완료
문의드립니다.
안녕하세요.
시스템 내에서 추세선으로 다음과 같은 내용을 만들어보다가 잘 되지 않아서 문의드립니다.
추체선으로 그릴 수 있으면 좋겠는데 안되면 지표로 적용을 시켜보려고 합니다.
내용 설명
기준봉 선정 이후 신고거래량 발생 시 시가와 종가에 라인을 그리려고 하고,
봉이 새로 나오면 라인을 추가로 글미
기준봉
1. 240일 신고거래량 &
2. 120일선 돌파 &
3. 240,120,60 이평선 역배열 &
4. 거래대금 50억 이상
Array : CC[10](0), OO[10](0), Bong_date[10](0), Bong_index[10](0);
var : cc1(0), oo1(0),Bong_date1(0), Bong_index1(0);
if V==highest(v,120) and (CrossUp(H,ma(c,120)) or CrossUp(C,ma(c,120)))
and ma(c,240)>=ma(c,120) and ma(c,120)>=ma(c,60)
and M>5000000000
then
{
CC1 = C;
OO1 = O;
Bong_date1 = sdate;
Bong_index1 = Index;
condition1 = true;
TL_C_0 = TL_new(Bong_date1, sTime, CC1, Bong_date1+10000,sTime, CC1);
TL_O_0 = TL_new(Bong_date1, sTime, OO1, Bong_date1+10000,sTime, OO1);
}
Else
{
condition1 = False;
}
수평선
* 기준봉 이후 120봉 내에서 120일 신고 거래량이 나오는 봉의 시가라인, 저가라인을 각각 240일 동안 그림
(기준봉에도 그림)
* 단, 대상 봉이 여러개가 나오는 경우 최근 5개 봉의 시가,저가라인만 그림
기타
* 최초기준봉 이후 120봉 내에서 다른 기준봉이 나와도 최근 5개봉에 대한 라인만 그림
* 최초기준봉 이후 120봉 내에서 120신고거래량이 없으면 싸이클 종료, 이후 기준봉이 나오면 최초기준봉으로 선정
* 최초 기준봉 이후 120봉 신고거래량 있는 경우 최초기준봉으로부터 360봉(120봉+240봉)이 지나면 한 싸이클 종료, 이후 기준봉이 나오면 최초기준봉으로 선정
2024-06-15
910
글번호 180661
답변완료
질문 요청 드립니다.(매매식)
* 좋은 한주 되십시요^^
* 아래 수식에서 매매신호가 발생한 봉 기준으로 3개 수평선좀 부탁 드립니다.
즉
매수 신호가 발생 하면 매수 신호봉 종가 기준 -10틱 -15틱 -20틱 3개선
매도 신호가 발생 하면 매도 신호봉 종가 기준 +10틱 +15틱 +20틱 3개선
이렇게 요청 드립니다.
input : P(2),n(7),틱(2), 굵기(1);
var : TX(0);
var : cnt(0),LL(0),HH(0);
Array : LTL[10](0),HTL[10](0);
var : LTL1(0),LTL2(0),LTL3(0),LTL4(0),LTL5(0),LTL6(0);
var : HTL1(0),HTL2(0),HTL3(0),HTL4(0),HTL5(0),HTL6(0);
if L < Lowest(L,P)[1] and (LL == 0 or (LL > 0 and abs(L-LL) >= PriceScale*틱)) Then
{
LL = L+0.04;
For cnt = 9 DownTo 1
{
LTL[cnt] = LTL[cnt-1];
}
LTL[0] = TL_new(sDate,sTime,LL,NextBarSdate,NextBarStime,LL);
TL_SetColor(LTL[0],LGreen);
TL_SetSize(LTL[0],굵기);
TL_Delete(LTL[n]);
}
Else
{
TL_SetEnd(LTL[0],sDate,sTime,LL);
}
if H > highest(H,P)[1] and (HH == 0 or (HH > 0 and abs(H-HH) >= PriceScale*틱)) Then
{
HH = H-0.04;
For cnt = 9 DownTo 1
{
HTL[cnt] = HTL[cnt-1];
}
HTL[0] = TL_new(sDate,sTime,HH,NextBarSdate,NextBarStime,HH);
TL_SetColor(HTL[0],Red);
TL_SetSize(HTL[0],굵기);
TL_Delete(HTL[n]);
}
Else
{
TL_SetEnd(HTL[0],sDate,sTime,HH);
}
2024-10-24
1046
글번호 180660
답변완료
수식 수정 좀 부탁드립니다.
1. If MarketPosition <= 0 and c> value1 and stm1 > stm2 Then
Buy("b2",OnClosE,DeF,2) 2계약 매수진입
2 .If MarketPosition <= 0 and c> value1 and stm1 < stm2 Then
Buy("b3",OnClosE,DeF,1) 1계약 매수진입.
3. 그런데 2번 조건에서 1계약 매수후 c> value1 and stm1 > stm2 로 변경되면
추가로 Buy("b4",OnClosE,DeF,1) 1계약 매수진입
1.번과3.번은 아래의 손절과 목표수익으로 한다.(매수단가별 익절 .손절 처리)
2.번은 손실포인트1과 목표수익 1으로 처리한다.는 식 좀 부탁드립니다.
(1.과2은 매수단가가 같아서 수익과 손실을 정하기 쉬운데 3.번은 최초 매수단가와 추가 매수단가가 다릅니다.-평균 매입가가 아니라
각각의 매수단가에 적용하려고 합니다.)
if MarketPosition == 1 Then
{
ExitLong("bp1",AtLimit,EntryPrice+목표수익1,"",1,1);
ExitLong("bp2",AtLimit,EntryPrice+목표수익2,"",1,1);
ExitLong("bl1",AtStop,EntryPrice-손실포인트1,"",1,1);
ExitLong("bl2",AtStop,EntryPrice-손실포인트2,"",1,1);
}
2024-06-14
844
글번호 180659
답변완료
87714번 재문의드립니다
일봉, 주봉차트에 적용했는데.. 다 차트가 망가지는데요
2024-06-14
774
글번호 180655
2wnwn 님에 의해서 삭제되었습니다.
2024-06-14
45
글번호 180649
답변완료
문의
지표 이름 : eV %P1%
변수 : P1 : 2.5
N=POW(10,P1/100)*V;
EV= ( (N-V) *EV(1) + C*V)/N;
EV
위 수식을 예스트레이더 버전으로 변경 부탁드리며
종목검색식으로도 부탁드립니다.
(캔들이 지표 라인에 터치 했을때 검색식으로 부탁드립니다.)
2024-06-14
667
글번호 180645