커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3731
글번호 230811
답변완료
타주기의 관계
안녕하세요
타주기간의 관계를 나타내는 수식을 만들고 싶은데요
예를들어서
300 틱 차트에서의 120선이
120분봉상에서 20선을 크로스 하는 수식을 작성하고 싶습니다
만약 검토시 결과가 나오지 않는다면 예시에 나온 수치는 단순예시로 지정한거라 바꾸셔도 됩니다
단 틱 차트와 분봉 차트 간의 크로스를 나타내보고 싶습니다
그리고 이 둘의 관계를 보려면 현재 보는 차트 주기는 둘중 하나여야하나요? 다른 주기에서도 볼 수 있을까요 예를 들면 일봉차트에서 위의 조건을 보는게 가능한가요?~ 가능하다면 그런 경우에서의 수식도 부탁드립니다.
그리고 서로 다른 주기에서도 추세선간의 크로스를 구현 할 수 있나요??
감사합니다
2024-09-30
869
글번호 183862
답변완료
부탁드립니다
안녕하세요
아래 트레이딩뷰 수식변환 부탁드립니다.
미리 감사말씀드립니다.
Bull=close>open?1:0
Doji=close==open?0:0
Bear=close<open?-1:0
CC=Bull+Doji+Bear
Counting=cum(CC)
plot(Counting,"Counter",fuchsia,2,line,false,0)
2024-09-30
899
글번호 183861
답변완료
문의 드립니다!
안녕하세요!
아래수식에서 발생되는 가로선을 당일의 선이 아닌 전일에 발생된 선이 당일챠트 화면에 나타나도록 수정 부탁드립니다
* 참고로 이 선의 두께를 좀더 두껍게한다거나 다른 형태의 선으로 표시되게 할수는 없을까요?
감사합니다!!
--------------------------------------------------------
input : N(30),색1(black),색2(black),굵기1(5),굵기2(5),형태1(1),형태2(1);
input : 수직선색상(Black),수직선굵기(2);
var : cnt(0),HH(0),LL(0),HTL1(0),LTL1(0),H1(0),L1(0),TL(0),vtl(0);
Array : HTL[100](0),LTL[100](0),HV[100](0),LV[100](0);
if Sdate != sDate[1] Then
{
value1 = sDate;
Value2 = value1[1];
Value3 = sTime;
Value4 = Value3[1];
For cnt = 1 to N
{
HV[cnt] = 0;
LV[cnt] = 0;
TL_Delete(HTL[cnt]);
TL_Delete(LTL[cnt]);
var1 = max(DayOpen(cnt),DayClose(cnt));
var2 = min(DayOpen(cnt),DayClose(cnt));
if cnt == 1 Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
HV[cnt] = var1;
TL_SetColor(HTL[cnt],색1);
TL_SetSize(HTL[cnt],굵기1);
TL_SetStyle(HTL[cnt],형태1);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
HH = var1;
LTL[cnt] = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
LV[cnt] = var2;
TL_SetColor(LTL[cnt],색2);
TL_SetSize(LTL[cnt],굵기2);
TL_SetStyle(LTL[cnt],형태2);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
LL = var2;
}
Else
{
if abs(var1-DayOpen(0)) < 10 and (var1 > HH or var1 < LL) Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
HV[cnt] = var1;
TL_SetColor(HTL[cnt],색1);
TL_SetSize(HTL[cnt],굵기1);
TL_SetStyle(HTL[cnt],형태1);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
}
if abs(Var2-DayOpen(0)) < 10 and (Var2 > HH or Var2 < LL) Then
{
LTL[cnt] = TL_New(sDate,sTime,Var2,NextBarSdate,NextBarStime,Var2);
LV[cnt] = var2;
TL_SetColor(LTL[cnt],색2);
TL_SetSize(LTL[cnt],굵기2);
TL_SetStyle(LTL[cnt],형태2);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
}
if var1 > HH and abs(var1-DayOpen(0)) < 10 Then
HH = DayHigh(cnt);
if Var2 < LL and abs(Var2-DayOpen(0)) < 10 Then
LL = DayLow(cnt);
}
var3 = max(DayOpen(cnt+1),DayClose(cnt+1));
var4 = min(DayOpen(cnt+1),DayClose(cnt+1));
if cnt == 1 Then
{
HTL1 = TL_New(Value2,value4,var3,sDate[1],sTime[1],var3);
TL_SetColor(HTL1,색1);
TL_SetSize(HTL1,굵기1);
TL_SetStyle(HTL1,형태1);
TL_SetDrawMode(HTL1,0);
H1 = var3;
LTL1 = TL_New(Value2,Value3,var4,sDate[1],sTime[1],var4);
TL_SetColor(LTL1,색2);
TL_SetSize(LTL1,굵기2);
TL_SetStyle(LTL1,형태2);
TL_SetDrawMode(LTL1,0);
L1 = var4;
}
Else
{
if abs(var3-DayOpen(1)) < 10 and (var3 > H1 or var3 < L1) Then
{
HTL1 = TL_New(Value2,value4,var3,sDate[1],sTime[1],var3);
TL_SetColor(HTL1,색1);
TL_SetSize(HTL1,굵기1);
TL_SetStyle(HTL1,형태1);
TL_SetDrawMode(HTL1,0);
}
if abs(Var4-DayOpen(1)) < 10 and (Var4 > H1 or Var4 < L1) Then
{
LTL1 = TL_New(Value2,Value3,var4,sDate[1],sTime[1],var4);
TL_SetColor(LTL1,색2);
TL_SetSize(LTL1,굵기2);
TL_SetStyle(LTL1,형태2);
TL_SetDrawMode(LTL1,0);
}
if var3 > H1 and abs(var3-DayOpen(1)) < 10 Then
H1 = Var3;
if Var2 < L1 and abs(Var2-DayOpen(0)) < 10 Then
L1 = Var4;
}
}
}
For cnt = 1 to N
{
if HV[cnt] > 0 and
((H[0] >= HV[cnt]-PriceScale*3 and H[1] < HV[cnt]-PriceScale*3) or
(L[0] <= HV[cnt]+PriceScale*3 and L[1] > HV[cnt]+PriceScale*3) or
(H[0] >= LV[cnt]-PriceScale*3 and H[1] < LV[cnt]-PriceScale*3) or
(L[0] <= LV[cnt]+PriceScale*3 and L[1] > LV[cnt]+PriceScale*3)) Then
{
vtl = TL_New(sDate,sTime,0,sDate,sTime,999999999);
TL_SetColor(vtl,수직선색상);
TL_SetSize(vTL,수직선굵기);
TL_SetDrawMode(VTL,0);
PlaySound("C:₩예스트레이더(X64)₩data₩Sound₩.wav");
}
}
2024-09-30
901
글번호 183858
답변완료
수식문의
볼린저밴드 200.1 상한선과
볼린저밴드 200.2 중심선 사이에
캔들이 30봉 이상 있는 수식 부탁드립니다.
(종가기준으로 이탈하지 않으면 상관없습니다)
---------------------------------------- 200.1
ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
---------------------------------------- 200.2
이런식으로 있으면 됩니다.
2024-09-30
961
글번호 183852
답변완료
틱차트에서 데이터로 있는 분봉 관련하여 문의드립니다.
안녕하세요 항상 도움 감사드립니다.
아래 코드를 사용하고 있는데요. 주차트(data1)를 틱 300으로 설정하고 밑에 데이터(data2~20)들을 분봉(30초)로 설정하였는데 프린트문으로 데이터를 뽑아보면 첨부된 파일
왼쪽처럼 틱차트가 30초전에 여러개 완성되는 경우가 있어 data2~20들이 빈경우가 있고
오른쪽처럼 틱차트가 1분단위이상이여서 data2~20들이 여러개에 봉이 발생하는데 하나만 찍히는 경우가 발생합니다. 이럴경우에 처리하는 방법이 있는지 문의드립니다.
아래코드는 IF문부분이 반복되어 생략하였습니다. 꼭 확인 부탁드립니다. 감사합니다.
var : var11(0),var12(0),var13(0),var14(0),var15(0),var1(0),var2(0);
var : var21(0),var22(0),var23(0),var24(0),var25(0);
var : var31(0),var32(0),var33(0),var34(0),var35(0),var36(0);
var : var41(0),var42(0),var43(0),var44(0),var45(0),var46(0);
var : var59(0),var52(0),var56(0),var57(0),var51(0);
var : var69(0),var62(0),var66(0),var67(0),var61(0),var63(0),var64(0),var65(0);
input : StartDate(20240102),EndDate(20240823);
input : StartTime(090000),EndTime(150000);
var : Tcond(false);
var : lastPrintTime(0);
if sDate >= StartDate and sDate <= EndDate Then
{
var11 = Data2(c);
var21 = Data6(c);
var34 = var33[1] - var33;
if (abs(Var21[1]-Var21)) > 100000 THEN
var15 =0;
ELSE IF var21[1] < 0 AND var21 > 0 THEN
var15 = var21 - var21[1];
ELSE IF var21[1] < 0 AND var21 < 0 THEN
var15 = var21 - var21[1];
ELSE IF var21[1] > 0 AND var21 < 0 THEN
var15 = var21[1] - var21;
ELSE IF var21[1] > 0 AND var21 > 0 THEN
var15 = var21[1] - var21;
ELSE
var15 = var21[1] - var21;
IF var59[1] < 0 AND var59 > 0 THEN
var69 = var59 - var59[1];
ELSE IF var59[1] < 0 AND var59 < 0 THEN
var69 = var59 - var59[1];
ELSE IF var59[1] > 0 AND var59 < 0 THEN
var69 = var59[1] - var59;
ELSE IF var59[1] > 0 AND var59 > 0 THEN
var69 = var59[1] - var59;
ELSE
var69 = var59[1] - var59;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
if sDate >= StartDate and sDate <= EndDate and Tcond == true Then
{
# 현재봉이 마무리되고 다음 봉이 시작되는 시점에 print 실행
if (NextBarOpen > 0 and stime != lastPrintTime) Then
{
print("c:\win\data1.csv",",거래량,%.f,폭,%.2f,5이격,%.2f,10이격,%.2f,20이격,%.2f,미결제,%.f,비차익,%.f,매수수량,%.f,매수건수,%.f,매도수량,%.f,매도건수,%.f,매도총건수,%.f,매수총건수,%.f,매도총수량,%.f,매수총건수,%.f,상승체결,%.f,하락체결,%.f,상승건수,%.f,하락건수,%.f,체결건수,%.f,상승제외,%.f,하락제외,%.f,외선현,%.f,기현외현,%.f,기옵콜,%.f,기옵풋,%.f,차익,%.f,코10,%.2f,",V,var61,var63,var64,var65,var34,var15,var11,var12,var13,var14,var22,var23,var24,var25,var31,var32,Upticks,Downticks,Ticks,Var1,Var2,Var41,Var42,Var43,Var44,Var45,Var46);
lastPrintTime = stime;
}
Plot1(var34, "미결제약정");
Plot2(var11,"매수5호가수량");
Plot3(var12,"매수5호가건수");
Plot4(var13,"매도호5호가수량");
Plot5(var14,"매도5호가건수");
Plot6(var15,"비차익");
Plot7(var22,"매도총건수");
Plot8(var23,"매수총건수");
Plot9(var24,"매도총수량");
Plot10(var25,"매수총건수");
Plot11(var31,"상승체결");
Plot12(var32,"하락체결");
#Plot13(var15, "비차익2");
}
2024-09-30
985
글번호 183851
답변완료
수고하십니다
항상 좋은 일만 있으시기 바랍니다
pivot과 demark지표를 한시간 단위로
나오게 요청 합니다
2024-09-30
859
글번호 183843
답변완료
옵션 매매 수식부탁드립니다.
옵션 매매 수식부탁드립니다.
매도는 절대없습니다.
매수진입횟수 : 당일 1번
매수시간 08시45분 - 13시30분
익절,손절청산 08시45분 - 15시19분
당일청산 15시19분
옵션가격대별 매수수량
1) 가격이 0.01~0.1 일때 10개
2) 가격이 0.11~0.5 일때 6개
3) 가격이 0.51~1.0 일때 4개
4) 가격이 1.01 이상 일때 1개
매수조건
일봉에서 당일저가 대비 현재가가 20% 이상일때 즉시 매수.
한번만 매수진입합니다.
(현재가가 계속 20% 이상에서도 처음힌번만 매수한다.)
익절조건
매수후 120% 수익시 절반익절
200% 수익시 나머지 모두청산
매수수량이 1개일때는 200% 에서 청산
손절조건
매수후 50%손실시 모두청산
(손매매로 미리 청산 했으면 보유수량이 없을때는 매도되지 않게 가능한가요?)
(가능하다면 수식에 넣어주세요.)
각줄의 수식에 주석을 부탁드립니다
감사합니다
2024-09-30
744
글번호 183838
답변완료
지표 질문입니다
현재 캔들이 3캔들 최고가 일 때 3캔들 저가 가운데 2번째 저가를 표시한다
현재 캔들이 3캔들 최저가 일 때 3캔들 고가 가운데 2번째 고가를 표시한다
감사합니다
2024-09-30
803
글번호 183836
답변완료
지표
이동평균선 5일 20일 60일 120일중에
5일선만 상승하때 빨강색
하락하때 파랑색 잘 부탁드립니다
2024-09-30
770
글번호 183835