커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6683
글번호 230811
돼끼 님에 의해서 삭제되었습니다.
2015-01-12
0
글번호 82196
답변완료
시스템식 문의드립니다.
1.매도식
매수 후 40일 이 지난시점에서도 정해놓은 매도조건이 성립되지않았을 경우에
40일 다음날 시초가에 매도할 수 있는 매도 조건식 부탁드립니다.
2.매수식
점하일 경우 매수하지 않는다 라는 매수 조건식 부탁드립니다.
2015-01-13
143
글번호 82195
답변완료
답변이 없어 다시 부탁 드립니다
안녕하세요
10일 문의드린
39867 번의
질의에 답변이 없군요
다시 부탁드립니다
감사합니다
수고하세요
2015-01-12
128
글번호 82194
답변완료
추세선함수를 사용하다 발생한 의문점들
안녕하십니까?
1) 추세선 함수를 사용하고 있는데, 처음 추세선 개채를 생성하는 경우
TL_New(StartDate,StartTime,StartVale,EndDate,EndTime,EndValue)로 합니다.
이때 StartDate=EndDate이고, StartTime=EndTime로 해도 관계가 없는지요?
2) 종종 EndDate자리에 CurrentDate와 EndTime자리에 CurrentTime을 넣는데
실제로 chart에서 CurrentDate와 CurrentTime의 위치는 어디인지요?
현재 그리고 있는 가장 최근 봉의 위치인지요? 아니면 그 보다 더 오른쪽인지요?
3) 현재 만달어지고 있는 봉(물론 현재 만들고 있는 가장 최근 봉이기 때문에 완성봉이 아니지만)의
Date와 Time정보를 알 수 있는 reserved word가 있는지요? 또는 어떤 방법이라도요.
4) 보통 sDate와 sTime의 값은 어느 봉의 값인지요? If, then조건문을 사용한 경우 그 판단 조건이
행해질 때의 값일 수도 있고 또는 현재 봉의 값일수도 있는지요? 머릿속 생각이 정리될 수
있도록 몇가지 예를 들어 답변을 주시기 바랍니다.
5) if dayofWeek(sDate) < dayofweek(sDate) then{
value1=sdate
value2=sTme
~
~
~
TL_New(value1,value2,somevalue,CurrentDate,CurrentTime,somevale)
와 같이 추세선 생성을 해 놓고, 만일 TL_SetExtRight와 TL_SetExtLeft를 선언하지 않아도
10분봉 차트를 사용할 경우, 추세선을 차트의 왼쪽 끝(또는 주초)에서 오른쪽 끝까지
그려주는지요?
6) 다시 5) 번에서 TL_SetExtRight와 TL_SetExtLeft를 선언하면 차트가 나타낼 수 있는
좌측 끝에서 우측 끝까지 추세선이 연장이 되는 것인지요?
7) 5)번에서 내 생각(즉 주초 부터 차트의 오른쪽 끝까지 추세선을 그릴 것이라는 생각)이
맞는 경우, 이때 TL_SetBegin을 내가 생각했던 구간 중간에 설정하면 어떻게 되는지요?
결국 TL_New, TL_SetBegin, TL_SetExtRight, TL_SetExtLeft간의 사용법이랄까? 이런 것을 좀 자세히 알고 싶습니다. 질문이 많이 중복 되기는 합니다만,
a)TL_New는 개체만 생성해 놓고 그리지는 않는 것인지, 아니면 생성과 추세선 그리기를 같이 하는것인지,
b) 생성과 그리기를 같이 하는 경우 TL_SetExt...을 하지 않으면, 그리는 구간이 StartDate&StartTime과 EndDat&EndTime 까지인지와,
c) TL_SetEXT...이 없고, TL_SetBegin을 선언하면 (TL_SetBegin의 시간 값이 StartTime과 EndTime의 중간 값일 경우) 추세선은 TL_SetBegin부터 EndTime까지만 그리는 것인지
에 대해 알고 싶어하는 것이지요.
그리고 마지막으로 원래 이질문을 하게된 동기인대요,
8) 지표식을 사용하면 보통 현재 그리고 있는 봉까지만(그러니까 C값을 return해 주는 봉까지만)
그려주는데요, 그 이후를 추세선기능을 사용해서 끓김없이 계속 이어서 그리고자 합니다.
그래서 추세선을 현재봉(최근봉) 오른쪽으로만 그리는 방법을 알려 주시기 바랍니다.
Maual로는 알아내기에 한계가 있어서 보다 자세히 알기 위해 질문했습니다.끝
2015-01-08
236
글번호 82193
답변완료
다시 문의 드립니다
price channel 지표를 이용하여 수식을 작성 하려 합니다
가능할까요??
기존 조건은
1) 매수는 하단밴드선 가격대에서만 하고
매도는 상단밴드선 가격대에서만 합니다
2)상단밴드와 하단밴드가 우상향을 했는가? 우하향을 했는가??에 따라서
우상향을 하면 하단밴드선 가격대에서만 매수진입을 하고
우하향을 하면 상단밴드선 가격대에서만 매도진입을 하게 됨니다
3) 상단밴드선이 우하향중 우상향으로 꺽이기전 까지는 우하향으로 간주하고
하단밴드선이 우상향중 우하향으로 꺽이기전 까지는 우상향으로 간주합니다
수식을 매수 수식, 매도 수식 각각 만들어주세요
매수수식 조건
{ price channel의 1)하단 밴드가 우상향을 할때
캔들의 저가가 하단밴드선 가격까지 도달시 매수진입
매도수식 조건
( price channel의 상단 밴드 우하향을 할때
캔들의 고가가 상단밴드선 가격까지 도달시 매도진입
주의 사항은
상단밴드가 우상향을 하는데 매도진입 되면 안되고요
하단밴드가 우하향을 하는데 매수진입 되면 안됩니다
올려드린 사진을 참고해 주세요
너무 어렵게 설명하는지 모르겠네요..ㅠㅠ
가능하지 모르지만 부탁드립니다
2015-01-13
146
글번호 82192
답변완료
수식문의
###아래식에서 median 선언되지않는것이사용되어다고나오는데요 사용하게해주시고 수식 설명좀부탁합니다
Inputs:
LineR(255),
LineG(255),
LineB(0),
FuzzR(255),
FuzzG(0),
FuzzB(0),
ShowDC(1);
Vars:
price(0),
delta(0.1),
gamma(0),
alpha(0),
beta(0),
N(0),
Period(0),
MaxAmpl(0),
Num(0),
Denom(0),
DC(0),
DomCyc(0),
Color1(0),
Color2(0),
Color3(0),
alpha1(0),
HP(0),
SmoothHP(0);
Arrays:
II[60](0),
OldI[60](0),
OlderI[60](0),
Q[60](0),
OldQ[60](0),
OlderQ[60](0),
Real[60](0),
OldReal[60](0),
OlderReal[60](0),
Imag[60](0),
OldImag[60](0),
OlderImag[60](0),
Ampl[60](0),
OldAmpl[60](0),
DB[65](0),
OldDB[60](0);
if Currentbar > 1 then {
Price = (H+L)/2;
alpha1 = (1 - Sine (360 / 30)) / Cosine(360 / 30);
HP = 0.5*(1 + alpha1)*(Price - Price[1]) + alpha1*HP[1];
SmoothHP = (HP + 2*HP[1] + 3*HP[2] + 3*HP[3] + 2*HP[4] + HP[5]) / 12;
}
IF CurrentBar < 7 Then SmoothHP = Price - Price[1];
IF CurrentBar == 1 THEN SmoothHP = 0;
delta = -0.015*CurrentBar + 0.5;
If delta < 0.1 then delta = 0.1;
If CurrentBar > 12 Then {
For N = 12 to 60 {
beta = Cosine(720 / N);
gamma = 1 / Cosine(1440*delta / N);
alpha = gamma - SquareRoot(gamma*gamma - 1);
Q[N] = (0.5*N / 6.28318)*(SmoothHP - SmoothHP[1]);
II[N] = SmoothHP;
Real[N] = 0.5*(1 - alpha)*(II[N] - OlderI[N]) + beta*(1 + alpha)*OldReal[N] - alpha*OlderReal[N];
Imag[N] = 0.5*(1 - alpha)*(Q[N] - OlderQ[N]) + beta*(1 + alpha)*OldImag[N] - alpha*OlderImag[N];
Ampl[N] = (Real[N]*Real[N] + Imag[N]*Imag[N]);
}
}
For N = 12 to 60 {
OlderI[N] = OldI[N];
OldI[N] = II[N];
OlderQ[N] = OldQ[N];
OldQ[N] = Q[N];
OlderReal[N] = OldReal[N];
OldReal[N] = Real[N];
OlderImag[N] = OldImag[N];
OldImag[N] = Imag[N];
OldAmpl[N] = Ampl[N];
OldDB[N] = DB[N];
}
MaxAmpl = Ampl[12];
For N = 12 to 60 {
If Ampl[N] > MaxAmpl then MaxAmpl = Ampl[N];
}
For N = 12 to 60 {
//IF MaxAmpl <> 0 AND (Ampl[N] / MaxAmpl) > 0 THEN DB[N] = -60*Log(Ampl[N] / MaxAmpl) / Log(10);
IF MaxAmpl <> 0 AND (Ampl[N] / MaxAmpl) > 0 THEN DB[N] = -10*Log(0.01 / (1 - 0.99*Ampl[N] / MaxAmpl)) / Log(10);
DB[N] = 0.33*DB[N] + 0.67*OldDB[N];
If DB[N] > 20 then DB[N] = 20;
}
Num = 0;
Denom = 0;
For N = 12 to 60 {
If DB[N] <= 6 Then {
Num = Num + N*(20 - DB[N]);
Denom = Denom + (20 - DB[N]);
}
If Denom <> 0 Then DC = 0.5*Num / Denom;
}
DomCyc = median(DC, 5);
If ShowDC == True Then {
Plot1(DomCyc, "DC", RGB(LineR, LineG, LineB),0,2);
Plot61(DomCyc, "DC", RGB(LineR, LineG, LineB),0,2);
}
For N = 12 to 60 {
IF DB[N] <= 10 THEN {
Color1 = LineR + DB[N]*(FuzzR - LineR) / 10;
Color2 = LineG + DB[N]*(FuzzG - LineG) / 10;
Color3 = LineB + DB[N]*(FuzzB - LineB) / 10;
}
IF DB[N] > 10 THEN {
Color1 = FuzzR*(2 - DB[N] / 10);
Color2 = FuzzG*(2 - DB[N] / 10);
Color3 = FuzzB*(2 - DB[N] / 10);
}
If N == 12 Then Plot60(N/2, "S12", RGB(Color1, Color2, Color3),0,5);
If N == 13 Then Plot59(N/2, "S13", RGB(Color1, Color2, Color3),0,5);
If N == 14 Then Plot58(N/2, "S14", RGB(Color1, Color2, Color3),0,5);
2015-01-12
192
글번호 82191
답변완료
수직선표시
input : 기간1(5),기간2(20);
var1 = ma(c,기간1);
var2 = ma(c,기간2);
if crossup(var1,var2) Then
value1 = var2;
"수직선표시"
if var2 > value1 Then
value1 = var2;
"수직선표시"
if CrossDown(var1,var2) Then
value2 = var2;
"수직선표시"
if var2 < value2 Then
value2 = var2;
"수직선표시"
2015-01-12
171
글번호 82184
회원 님에 의해서 삭제되었습니다.
2015-01-12
3
글번호 82181
회원 님에 의해서 삭제되었습니다.
2015-01-12
3
글번호 82170