커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6994
글번호 230811
답변완료
수정부탁드립니다
실시간 표현이(분봉별로 일부표현이 안되는분봉이 있습니다
input :Peod(10),색상두께(50);
Var:상승색a(Red), 하락색a(LimE);
Var:jr(0),GGT(0);
Var: 고11(0),고12(0),시간11(0),시간12(0),선TL1(0),선TL(0),
고21(0),고22(0),시간21(0),시간22(0),Vlue11(0),Vlue12(0),
고31(0),고32(0),시간31(0),시간32(0);
Array:고Val[20](0),저val[20](0),고Bar[20](0),저Bar[20](0);
Array:dr[7](0),dfr[7](0);
var : dbox(0),dbox1(0);
dr[0] = 0;
dr[1] = 2;
dr[2] = 3.;
dr[3] = -1;
dr[4] = -2.;
dr[5] = 1;
dr[6] = 0.5;
For jr = 0 To 19
{
고Bar[jr] = 고Bar[jr] + 1;
저Bar[jr] = 저Bar[jr] + 1;
}
if crossup(c,highest(H,Peod)[1]) Then
GGT = 1;
if CrossDown(c,Lowest(L,Peod)[1]) Then
GGT = -1;
If GGT == -1 Then
{
If GGT[1] != -1 Then
{
For jr = 18 DownTo 0
{
저val[jr+1] = 저val[jr];
저Bar[jr+1] = 저Bar[jr];
//ZZ[j+1] = ZZ[j];
}
저val[0] = L;
저Bar[0] = 0;
//ZZ[0] = L;
고11 = Date[고Bar[0]];
시간11 = stime[고Bar[0]];
Vlue11 = 고Val[0];
고12 = Date[저Bar[0]];
시간12 = stime[저Bar[0]];
Vlue12 = 저val[0];
고21 = Date[고Bar[0]];
시간21 = stime[고Bar[0]];
고22 = Date[0];
시간22 = stime[0];
for jr = 0 to 6
{
dfr[jr] = 저val[1] + ((고Val[0] - 저val[1]) * dr[jr]);
}
Box_SetEnd(dbox,고11,시간11,Vlue11);
dbox = box_new(고11,시간11,Vlue11,고12,시간12,Vlue12);
Box_SetColor(dbox,하락색a);
Box_SetFill(dbox,true,색상두께);
// Sell();
}
If 저val[0] > L Then
{
저val[0] = L;
저Bar[0] = 0;
//ZZ[0] = L;
고12 = Date[저Bar[0]];
시간12 = stime[저Bar[0]];
Vlue12 = 저val[0];
고22 = Date[0];
시간22 = stime[0];
// Box_SetEnd(dbox,고12,시간12,Vlue12);
Box_SetEnd(dbox,NextBarSdate,NextBarStime,Vlue12);
}
}
If GGT == 1 Then
{
If GGT[1] != 1 Then
{
For jr = 18 DownTo 0
{
고Val[jr+1] = 고Val[jr];
고Bar[jr+1] = 고Bar[jr];
//ZZ[j+1] = ZZ[j];
}
고Val[0] = H;
고Bar[0] = 0;
//ZZ[0] = H;
고11 = Date[저Bar[0]];
시간11 = stime[저Bar[0]];
Vlue11 = 저val[0];
고12 = Date[고Bar[0]];
시간12 = stime[고Bar[0]];
Vlue12 = 고Val[0];
고31 = Date[저Bar[0]];
시간31 = stime[저Bar[0]];
고32 = Date[0];
시간32 = stime[0];
for jr = 0 to 5
{
dfr[jr] = 저val[0] + ((고Val[1] - 저val[0]) * dr[jr]);
}
Box_SetEnd(dbox,고11,시간11,Vlue11);
dbox = box_new(고11,시간11,Vlue11,고12,시간12,Vlue12);
Box_SetColor(dbox,상승색a);
Box_SetFill(dbox,true,색상두께);
// Buy();
}
If 고Val[0] < H Then
{
고Val[0] = H;
고Bar[0] = 0;
//ZZ[0] = H;
고12 = Date[고Bar[0]];
시간12 = stime[고Bar[0]];
Vlue12 = 고Val[0];
고32 = Date[0];
시간32 = stime[0];
// Box_SetEnd(dbox,고12,시간12,Vlue12);
Box_SetEnd(dbox,NextBarSdate,NextBarStime,Vlue12);
}
}
2022-12-15
1095
글번호 164624
답변완료
질문드립니다.
예스스팟에서
SetUserValue나 GetUserValue사용시에
원하는 폴더를 지정하여 UserValue파일을 저장할 수 있을까요?
혹시나 방법이 있으면 좀 알려주시면 감사하겠습니다.
2022-12-15
1029
글번호 164623
졸던 님에 의해서 삭제되었습니다.
2022-12-15
60
글번호 164622
답변완료
CorrelationArray 함수 문의
CorrelationArray(IndepArray, DepArray, Size)
※ IndepArray : 독립배열의 이름, 1차원 수치형 배열만 가능
※ DepArray : 종속배열의 이름, 1차원 수치형 배열만 가능
※ Size : 배열 사이즈(방갯수), 계산은 항상 0번방부터 시작(0번방부터 N개)
매뉴얼 상으로는 Size 가 연산에 포함시키고자 하는 배열 요소의 갯수로 정의되어 있는데,
혹시 배열 요소 중 사용하고자 하는 마지막 인덱스를 입력해야 하는 것인지요 ?
Array:
A1[2](0),
A2[2](0);
A1[0] = -1;
A1[1] = 1;
A2[0] = 1;
A2[1] = -1;
Vars:
Corr1(0),
Corr2(0);
Corr1 = CorrelationArray(A1, A2, 1);
Corr2 = CorrelationArray(A1, A2, 2);
MessageLog("Corr1=%.2f, Corr2=%.2f", Corr1, Corr2);
출력값은 아래와 같습니다
Corr1=-1.0, Corr2=1.#R
2022-12-15
1040
글번호 164618
답변완료
문의드립니다
(v*c)+(v[1]*c[1])+(v[2]*c[2])+(v[3]*c[3])+(v[4]*c[4])+(v[5]*c[5])+ ...
와 같이
50봉 까지 또는 100봉까지
합을 표현하는 지표식
감사합니다
2022-12-15
860
글번호 164617
답변완료
최저가 대비 100프로 이상 상승한 종목 검색
제목처럼 240일 동안 최저가 대비 100% 이상 상승한 종목을 검색하는 수식을 작성해 봤는데 잘 안되네요.
살펴봐 주세요
Input : Period1(240),Criteon(100);
Variables: Value2(100), Value4(100), HH(0), LL(0), cnt(0);
For cnt = 0 to Period1 {
if c[cnt+1]>c[cnt] && c[cnt+1] > Value2 Then{
Value1 = Date;
Value2 = c[cnt+1];
}
if c[cnt+1]<c[cnt] && c[cnt+1] < Value4 Then{
Value3 = Date;
Value4 = c[cnt+1];
}
}
Value1 = DateToJulian(Value1);
Value3 = DateToJulian(Value3);
Value5 = (Value2-Value4)/Value4*100;
Condition1 = Value5> Criteon;
Condition2 = Value3<Value1;
If Condition1 && Condition2 Then
{
Value6 = Value5;
}
Else
value6 = 0;
Find(value6);
2022-12-15
1128
글번호 164616
답변완료
분봉에서 월요일 첫봉 세로선과 시가 일주일 수평선 작성
안녕하세요.
캡처이미지처럼 분봉주기에서
매주 월요일에 첫봉의 세로선과 시가 수평선 일주일치를 작성하고 싶습니다.
각 선들은 색과 두께를 조정할수있으면 합니다.
IF dayofweek(sDate) == 1 THEN
이 조건을 사용해서 해보는데 잘 안되네요.. 특히 일주일간 수평선을 모르겠네요..
미리 감사드립니다.
2022-12-15
1185
글번호 164615
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
트레일링 스탑에 대해 문의 드립니다.
아래와 같은 시스템이 있다고 가정할 경우
매수
if marketposition == 0 and crossup(이평100,이평200) then {
buy();
}
매수청산
if marketposition == 1 and crossdown(이평100,이평200) then {
exitlong();
}
매도
if marketposition == 0 and crossdown(이평100,이평200) then {
sell();
}
매도청산
if marketposition == -1 and crossdown(이평100,이평200) then {
sell();
}
손절 및 트레일링 스탑
SetStopLoss(50,PointStop);
SetStopProfittarget(100,PointStop);
SetStopEndofday(060000);
SetStopTrailing(10,50,PointStop);
SetStopTrailing(10,40,PointStop);
SetStopTrailing(10,30,PointStop);
SetStopTrailing(10,20,PointStop);
SetStopTrailing(10,10,PointStop);
트레일링 스탑은 이익이 발생한 후 이익이 감소시 청산으로 알고 있습니다.
손실에 대해서는 아래와 같이 트레일링 작성해 보았는데 잘 안됩니다.
문의1)
포지션 진입 후 수익이 1point라도 발생후 바로 하락하는 경우
손절하지 않고 트레일링스탑으로 -10point에서 청산하고 싶습니다.
SetStopTrailing(10,1,PointStop);
문의2)
포지션 진입 후 수익없이 바로 하락하는 경우
손절하지 않고 -10point에서 트레일링 스탑을 해서 -20ponit에서 청산하고 싶습니다.
SetStopTrailing(10,-10,PointStop);
SetStopTrailing(10,-20,PointStop);
SetStopTrailing(10,-30,PointStop);
SetStopTrailing(10,-40,PointStop);
문의3)
포지션 진입 후 손실이 나다가 이익으로 전환 되는 경우
익절하지 않고 중간 청산하고 싶습니다.
* 손실이 -20point까지 났다가 손실이 -10point로 줄어들면(10point 상승)
손실이 -10point에서 청산하고 싶습니다.
SetStopTrailing(-10,-20,PointStop);
도움 부탁드립니다.
감사합니다.
2022-12-15
1334
글번호 164610
답변완료
파라볼릭 전환시
input : af(0.02), maxAF(0.2),폭(0.25);
Var : Sarv(0),tl(0),T(0),tx(0),txx(0);
var:cSar(0);
var7 = cSAR(af,maxAF);
if var7 > C Then
Plot1(var7, "cSAR",BLUE);
Else
Plot1(var7, "cSAR",RED);
plot2(c,"c");
Sarv = csar(af,maxAF);
If crossup(c,Sarv) Then
{
T = 1;
var1 = Sarv;
Var2 = var1[1];
Var3 = var2[1];
Condition1 = False;
if max(var1,var2,Var3) <= min(var1,Var2,Var3)+폭 and var3>0 and var1 >= Var2-PriceScale*2 Then
{
Condition1 = true;
Tx = Text_New(sDate,sTime,var1-PriceScale*2,"●");
Text_SetColor(Tx,Cyan);
Text_SetStyle(Tx,2,2);
Text_SetSize(Tx,25);
}
}
If crossup(c,Sarv) Then
{
T = 1;
var1 = Sarv;
Var2 = var1[1];
Var3 = var2[1];
Var4 = Var3[1];
Condition1 = False;
if max(var1,var2,Var3, Var4) <= min(var1,Var2,Var3, Var4)+폭 and var4>0 and var1 >= Var2-PriceScale*2 Then
{
Condition1 = true;
Tx = Text_New(sDate,sTime,var1-PriceScale*2,"●");
Text_SetColor(Tx,Red);
Text_SetStyle(Tx,2,2);
Text_SetSize(Tx,20);
}
}
1.파라볼릭 양전환시 하단 시작 꼭지점에 빨간 동그라미 표시.
2.상승하다 음전환되면 하단 빨간 동그라미 삭제하고,
상단 꼭지점에 파란 동그라미 표시. 삭제와 생성 계속 반복. 감사합니다.
2022-12-15
1095
글번호 164608