커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5305
글번호 230811
답변완료
plot작성
안녕하세요.
var7(전환선) 기준으로 청색plot를 구현하고자합니다.
설명)
5이평이 var7 up후 파라볼릭 처음 매도신호 발생시 직전 매수신호의 최고점 과
5이평이 var7 down후 파라볼릭 처음 매수신호 발생시 직전 매도신호의 최저점 연결
###################
Input : af(0.01), maxAF(0.1);
Var : value(0);
value = sar(af,maxAF);
If crossup(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
If CrossDown(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
##직전고저점
if crossUp(C, value) then
var5 = var4;
if CrossDown(C, value) then
var6 = var3;
##직고저점 이평up/Down
if crossup(ma(c,5),var6) Then
var7 = var5;
if crossdown(ma(c,5),var5) Then
var7 = var6;
plot1(var7,"전환선");
감사합니다.
2019-06-09
418
글번호 129283
답변완료
부탁드립니다
안녕하세요
아래지표 수식을 블로그에서 보았습니다
그분께 감사드립니다
제가 초보라서 아래수식 지표에 입력이 안되서 입력 가능하게 부탁드려봅니다
감사합니다
Input:length(5),목선두께(2);
Var:TL1(0),TL2(0),TL3(0),
TL_NewBit(0); // 1:NewLine 2:SetEndLine
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = HiLoLineZigZag(length,0,고,저,TL_NewBit);
If Value1 == 1 Then { // 고점
If TL_NewBit == 1 Then { // 신규 고점
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 저[4,1] > 저[3,1] and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] and 고[4,1] > 고[3,1] and
abs(고[2,1] - 고[3,1])/고[3,1] <= 목선두께/100 Then { // 역머리어깨형
TL2 = TL_New(고[3,3],고[3,4],고[3,1],sDate,sTime,(고[2,1]-고[3,1])/(고[2,2]-고[3,2])*(Index-고[3,2])+고[3,1]);
TL_SetColor(TL2,RED);
TL_SetSize(TL2,3);
}
} Else { // 고점 진행 중, 즉 상승중
If 저[4,1] > 저[3,1] and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] and 고[4,1] > 고[3,1] and
abs(고[2,1] - 고[3,1])/고[3,1] <= 목선두께/100 Then {
TL_SetEnd(TL2,sDate,sTime,(고[2,1]-고[3,1])/(고[2,2]-고[3,2])*(Index-고[3,2])+고[3,1]);
}
}
If TL_NewBit == 2 Then {
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
} Else If Value1 == -1 Then { // 저점
If TL_NewBit == 1 Then { // 신규 저점
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 고[4,1] < 고[3,1] and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] and 저[4,1] < 저[3,1] and
abs(저[2,1] - 저[3,1])/저[3,1] <= 목선두께/100 Then { // 머리어깨형
TL3 = TL_New(저[3,3],저[3,4],저[3,1],sDate,sTime,(저[2,1]-저[3,1])/(저[2,2]-저[3,2])*(Index-저[3,2])+저[3,1]);
TL_SetColor(TL3,BLUE);
TL_SetSize(TL3,3);
}
} Else { // 저점 진행 중, 즉 하락중
If 고[4,1] < 고[3,1] and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] and 저[4,1] < 저[3,1] and
abs(저[2,1] - 저[3,1])/저[3,1] <= 목선두께/100 Then {
TL_SetEnd(TL3,sDate,sTime,(저[2,1]-저[3,1])/(저[2,2]-저[3,2])*(Index-저[3,2])+저[3,1]);
}
}
If TL_NewBit == 2 Then {
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
}
2019-06-09
372
글번호 129282
답변완료
트레일링 스탑 적용 관련건
제가 사용하는 수식에 트레일링 스탑을 적용하시는 식을 부탁드려요~~
즉시익절(100)
if MarketPosition == 1 then
{
ExitLong("즉시익절",AtLimit,EntryPrice+PriceScale*100);
if BarsSinceEntry >= 3 and c[1]>c[2] Then
ExitLong("봉완성익절1",AtLimit,C+PriceScale*10);
ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*100);
if c <= EntryPrice-PriceScale*50 Then
ExitLong("봉완성손절");
SetStopProfittarget(PriceScale*120,PointStop);
SetStopLoss(PriceScale*120,PointStop);
}
위 수식을 보면 청산시 수익 청산 관련한 사항은
1. ExitLong("즉시익절",AtLimit,EntryPrice+PriceScale*100);
2. SetStopProfittarget(PriceScale*120,PointStop);
1번은 정상적인 목표가 도달시 청산식이고
2번은 진입하자마자 그봉안에서 목표가 도달시 청산하는식입니다.
위 둘을 트레일링을 적용하려고 합니다.
각각 목표가에(100포인트/120포인트) 상승한후 트레일링 적용시작해서 -3포인트에 청산하는 수식을 위 수식에 반영되도록 부탁드리겠습니다.
그리고 해당 수식은 시스템성능보고서에는 왜곡되게 나오겠죠?
2019-06-09
325
글번호 129281
답변완료
차트에서 지표 불러오는 방법
수고하십니다.
새로 만든 지표를 차트에서 어떻게 적용하는지 궁금합니다
1.예스랭귀이지에서 지표식을 작성후 검증 완료하였습니다.
2. 종목추가-종목선택의 "참조"에서 새로 만든 지표가 나타나질 않습니다.
제기 초보자이다 보니, 지표를 새로 만든후 차트에 적용하는 절차를 부탁드립니다.
2019-06-09
327
글번호 129280
답변완료
안녕하세요
안녕하세요.
수고 많으십니다.
아래수식 다시 검증 해 주세요.
var : cnt(0),HH(0),LL(0);
var1 = ma(C,1);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
HH = H;
LL = L;
}
if crossup(var1,(HH+LL)/2) Then
buy();
if CrossDown(var1,(HH+LL)/2) Then
sell();
var : pp(0),ll(0),tx(0);
if MarketPosition == 1 Then
{
pp = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*10));
if pp > pp[1] Then
{
tx = Text_New(sdate,stime,H+PriceScale*3,NumToStr(pp*10,0)+"틱");
Text_SetStyle(tx,2,1);
}
}
if MarketPosition == -1 Then
{
pp = Floor((EntryPrice-lowest(L,BarsSinceEntry))/(PriceScale*210));
if pp > pp[1] Then
{
tx = Text_New(sdate,stime,L-PriceScale*3,NumToStr(pp*10,0)+"틱");
Text_SetStyle(tx,2,0);
}
}
var : pp(0),ll(0),tx(0); 이 수식 줄수에서 .........
이미 선언된 이름을 다시 선언하고 있 습니다. 라는 문구가 뜨네요.
감사합니다. 수고하세요.
2019-06-10
326
글번호 129279
답변완료
수식추가 부탁합니다
제가 30분봉으로 매매를 하는데 일전에 일봉의 이동평균선과 90분봉의 이동평균선을 참조할 수 있도록 수식을 작성해 주셨습니다.
추가로 90분봉의 스톡케스틱 지표를 참조할 있도록 설정부탁드립니다.
아래식은 매매에 사용하는 30분봉의 단순 스톡케스틱입니다.
90분봉의 단순스톡케스틱 설정을 부탁드립니다.
# 단순스톡케스틱 설정
Lvalue = Lowest(L, sto1);
Hvalue = Highest(H, sto1);
FK = (Close - Lvalue) / (Hvalue - Lvalue) * 100;
SK = ma(FK,sto2);
SD = ma(SK,sto3);
================================================
input : ntime1(90),P1(20),P2(60),P(20),dv(2),스탑로스(2.5),손절폭(1.5),매수스톡(25),매도스톡(70),매수이격(18),매도이격(18);
input : sto1(25),sto2(6),sto3(6);
var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0);
var : tsum1(0),tsum2(0),tmav1(0),tmav2(0);
var : BBup(0),BBdn(0),BBMid(0);
var : S1(0),D1(0),TM(0),TF(0);
Array : C1[100](0);
Var : Lvalue(0), Hvalue(0),FK(0),SK(0),SD(0);
# 단순스톡케스틱 설정
Lvalue = Lowest(L, sto1);
Hvalue = Highest(H, sto1);
FK = (Close - Lvalue) / (Hvalue - Lvalue) * 100;
SK = ma(FK,sto2);
SD = ma(SK,sto3);
# 분봉설정
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or
(ntime1 != 1 and Bdate == Bdate[1] and TF < TF[1]) or
(ntime1 == 1 and Bdate == Bdate[1] and TF > TF[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P2] > 0 then
{
tsum1 = 0;
tsum2 = 0;
for cnt = 0 to P2-1
{
if cnt < P1 then
tsum1 = tsum1+C1[cnt];
if cnt < P2 then
tsum2 = tsum2+C1[cnt];
}
# 90분봉의 20일 이평선= tmav1, 60일 이평선= tmav2
tmav1 = tsum1/P1;
tmav2 = tsum2/P2;
}
2019-06-09
363
글번호 129278
답변완료
수식전환 부탁드립니다.
수고가 많으십니다. 키움수식을 예스트레이더 수식으로 전환부탁드립니다.
<1>
매수
aa=avg(c,120);
shift(aa<aa(1) && aa(1)>aa(2),-1)
매수청산
aa=avg(c,120);
shift(aa>aa(1) && aa(1)<aa(2),-1)
매도
aa=avg(c,120);
shift(aa>aa(1) && aa(1)<aa(2),-1)
매도청산
aa=avg(c,120);
shift(aa<aa(1) && aa(1)>aa(2),-1)
<2>
매수
A=ma(c,120,지수);
IF(A<A(1)*(1-0.1()/100),A,0)
매수청산
A=ma(c,120,지수);
IF(A<A(1)*(1-0.1()/100),A,0)
매도
A=ma(c,120,지수);
IF(A>A(1)*(1+0.1()/100),A,0)
매도청산
A=ma(c,120,지수);
IF(A<A(1)*(1-0.1()/100),A,0)
2019-06-08
394
글번호 129277
답변완료
분봉 스토캐스틱 을 틱차트에서 구현
좋은 프로그램 이용할 수 있게 해주셔서 감사합니다.
밑에 검색해보니 분봉 MACD를 틱차트에서 구현하는 것에 대해서는
내용이 있던데, 스토캐스틱은 볼 수가 없었습니다.
대략 5분봉 스토캐스틱을 100틱 차트에서 구현하는
식을 알려주시면 감사하겠습니다.
예스트레이더를 새로 접한지 몇 일 안되다 보니
직접하지 못하고, 의뢰합니다.
감사합니다.
2019-06-08
357
글번호 129276
답변완료
수식부탁드립니다------------------
현재선물지수에서 가장가까운 위,아래 옵션행사가를 plot으로 나타내고 싶슴니다
부탁드립니다 수고하세요
2019-06-08
336
글번호 129275