커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4562
글번호 230811
답변완료
거래량 개수라인 긋기
안녕하세요!
첨부 파일을 보시면 키움 선물지표입니다
오일인데 아래쪽 보시면 거래량 보조지표가 있습니다.
거기에 거래량이 1,000개일때와 3,000개에 노란선으로 표시한게 보이실 겁니다
예스에서는 라인 긋는것을 못찾겠어요
제가 필요한건 예스에서도 키움처럼 거래량이 1,000개 일때와 3,000개때 키움처럼 라인을 긋고 기다림 매매를 하고 싶습니다.
1,000개와 3,000개 일때 거래량지표에 키움처럼 라인을 긋는 법을 배우고 싶습니다.
답변 부탁드려요
2016-08-04
215
글번호 100684
답변완료
변환부탁드립니다.
격무를 무릎쓰고 항상 많은 도움을 주셔서 감사드립니다.
아래는 EL 함수식인데 예스로 변환 부탁드립니다.
Inputs:
DStLen(NumericSimple)
;
Vars:
Num(0),
Denom(0),
Ratio(0),
PctK(0),
DNum(0),
DDenom(0),
DRatio(0),
DPctK(0);
Vars:
RelO(0), // Relative Open
RelH(0), // Relative High
RelL(0), // Relative low
RelC(0), // Relative Close
gap(0), // the opening gap (modified by the gap coefficient)
GapCoef(1.0), // Gap Coefficient
Accum(0); // The sum of all the daily gaps
if currentsession(0)<>currentsession(0)[1] or date<>date[1] then
begin
gap=GapCoef*(O-C[1]);
Accum=Accum+gap;
end;
if DataCompress<=1 then //Valid only for Tick or Intraday
begin
RelO = O-Accum;
RelC = C-Accum;
RelH = H-Accum;
RelL = L-Accum;
end
else begin
RelO = O;
RelC = C;
RelH = H;
RelL = L;
end;
// Gapless - end
//Stoc}
Num=RelC-_Lst(RelL,DStLen);
Denom=_Hst(RelH,DStLen)-_Lst(RelL,DStLen);
Ratio=IFF(Denom>0,(Num/Denom)*100,Ratio[1]);
PctK=IFF(CurrentBar==1,Ratio,PctK[1]+(.5*(Ratio-PctK[1])));
//{DStoc}
DNum=PctK-_Lst(PctK,DStLen);
DDenom=_Hst(PctK,DStLen)-_Lst(PctK,DStLen);
DRatio=IFF(DDenom>0,(DNum/DDenom)*100,DRatio[1]);
DPctK=IFF(CurrentBar==1,DRatio,DPctK[1]+(.5*(DRatio-DPctK[1])));
_DStocGL=DPctK;
2016-08-04
107
글번호 100683
답변완료
수식 문의 드려요^^
안녕 하세요.^^
제가 수식을 몰르다 보니 많이 번거롭게 하셧나 보내요.^^
저와같은 초보자들을 위해서 힘내 주세요.^^
밤 9시 퇴근후 늦게까지 수식이랑 씨름을 하고 있습니다.^^
아래 1번은 0선 돌파 최고점과 최저점을 선으로 표시되는것을 점으로 표시해보고 신호로바꾸면 괸찬겟다 싶어서 올린것이구요.^^
2번 과 3번은 선으로 나오는 것을 지표설정에서 점으로 변환을 한 상태로 바꿔보니 괸찬은 신호로 보여 집니다.
선으로 나오는 부분을 점으로 바꿔보니 괸찬아서 신호수식을 넣어면 멋지지 않을까 생각이 되서 문의 드립니다.^^
많이 힘드시드라도 저와같은 초보들을 위해서 많이 가르쳐 주시면 감사하겠습니다..꾸벅^^
1번 페리오드 수치를 20으로 넣어봣어요^^
input : Period(12);
var : TRIXV(0);
TRIXV = TRIX(20);
if crossup(TRIXv,0) Then
var1 = H;
if H > var1 Then
var1 = H;
if CrossDown(TRIXv,0) Then
var2 = H;
if L < var2 Then
var2 = L;
plot1(var1);
plot2(var2);
2번 수치를 1과 5를 넣엇어요^^
var1 = Ma(c,1);
var2 = ma(C,5);
if crossup(var1,var2) or CrossDown(var1,var2) Then
value1 = var2;
if value1 < C Then
value2 = value1;
Else
value2 = var2;
plot1(value1);
plot2(value2);
3번 수식을 4를 넣어봣어요^^
var1 = Ma(c,4);
if var1 >= var1[1] Then
value1 = var1;
if var1 < var1[1] Then
value2 = var1;
plot1(value1);
plot2(value2);
4번
4번도 선으로된지표를 점으로 바꾼후 보니 신호로서 아주 좋을듯 합니다.^^
상위 1번 최고, 최저점 선으로 된 지표랑 비슷한거 같은데요. 어떤 차이가 있나요?
페리오드 수치는 제가 이므이적으로 넣어보았어요^^
4번에도 매매시스템신호 넣어주세요.^^
위 4가지를 적용해보고 낳은것을 적용하면 어떨까 합니다.^^
제가 보기앤 4번이 제일 낳아 보이는데요.
중간에 잘잘한 작은 신호들은 나오지 않게 조정 할수 있어면 조정 할수 있도록 수식을 부탁드려요^^
input : period(10);
var1 = trix(5);
if crossup(var1,0) Then
value1 = h;
if H > value1 Then
value1 = H;
if CrossDown(var1,0) Then
value2 = L;
if L < value2 Then
value2 = L;
plot1(value1);
plot2(value2);
감사합니다.^^
2016-08-04
108
글번호 100682
답변완료
문의드립니다
1.
input : 기간(20);
var : T(0);
var1 = Highest(h,기간);
var2 = Lowest(L,기간);
var3 = var1-var2;
value1 = var1-var3*0.382;
value2 = var1-var3*0.500;
value3 = var1-var3*0.618;
if value2 > value2[1] Then
T = 1;
if value2 < value2[1] Then
T = -1;
if T == 1 then{
plot1(value1,"1");
plot2(value2,"2");
}
else{
plot1(value3,"1");
plot2(value2,"2");
}
2.
INPUT: P26(26), PER(1);
VAR1=(Highest(H,P26)+LOWEST(L,P26))/2;
VAR2=VAR1*(1+PER/100);
VAR3=VAR1*(1-PER/100);
PLOT1(VAR1, "일목기준선");
PLOT2(VAR2, "상");
PLOT3(VAR3, "하");
1.2 를 합성해서 만들어보고싶습니다
1. 1번수식에서 "1","2" 선이 2번수식에 기준선 26을 둘다 상향으로 통과할시 매수신호
1번수식에서 "1","2" 선이 2번수식에 기준선 26을 둘다 하향으로 통과할시 매도신호
2. 1번수식에서 "1","2" 선이 2번수식에 기준선 26을 둘다 상향으로 통과할시 매수신호
매수신호 나온뒤 "1","2" 선이 기준선 26선 위에서 교차할시 매수청산신호발생
매수청산신호후 다시 "1","2" 선이 교차할시 재매수신호발생
1번수식에서 "1","2" 선이 2번수식에 기준선 26을 둘다 하향으로 통과할시 매도신호
매도신호 나온뒤 "1","2" 선이 기준선 26선 위에서 교차할시 매도청산신호발생
매수청산신호후 다시 "1","2" 선이 교차할시 재매도신호발생
3. 1번수식에서 "1" 2번수식에서 일목기준선 26
위 일목기준선 26을 기준으로 "1"선이 위로 뚫을시 매수신호발생
위 일목기준선 26을 기준으로 "1"선이 밑으로 뚫을시 매도신호발생
위 3가지 외부변수 수정가능하게좀 부탁드립니다
2016-08-03
123
글번호 100681
답변완료
소리가 계속 나요.
안녕하세요?
아래의 식을 만들어 보았는데, 소리가 끝 없이 계속울려요.
Data2의 봉1개 기간동안만 울리게 수정 부탁드려요.
감사합니다.
============================================
## 밴드폭 ##
Inputs: Period(20) ,D(2), HiLoLen(50), Retrace(0.382);
Vars: HiHi(0,Data2),LoLo(0,Data2),Retracement(0,Data2),HRetrace(0,Data2),LRetrace(0,Data2);
Variables: BBTop(0,Data2), BBMid(0,Data2), BBBot(0,Data2),Bwidth(0,Data2);
VAR : HiHiv(0,Data2),LoLov(0,Data2),Retracementv(0,Data2),HRetracev(0,Data2),LRetracev(0,Data2);
BBTop = Data2(BollBandUp(Period,D));
BBMid = Data2(ma(C,Period));
BBBot = Data2(BollBandDown(Period,D));
BWidth = Data2(((BBTop - BBBot)/ BBMid)*1000);
HiHi = Data2(Highest(BWidth, HiLoLen));
LoLo = Data2(Lowest(BWidth, HiLoLen));
Retracement = ((HiHi - LoLo) * Retrace);
HRetrace = (HiHi - Retracement);
Lretrace = (LoLo + Retracement);
Var2 = Hretrace-((HiHi-LoLo)*0.612); // 저점상승
Var3 = Lretrace+((HiHi-LoLo)*0.612); // 고점하락
## 거래량 ##
Var1 = Data2(ma(v,50));
HiHiv = Data2(Highest(Var1, HiLoLen));
LoLov = Data2(Lowest(Var1, HiLoLen));
Retracementv = (HiHiv - LoLov) * Retrace;
HRetracev = HiHiv - Retracement;
Lretracev = LoLov + Retracement;
Var4 = Hretracev-((HiHiv-LoLov)*0.612); // 저점상승
Var5 = Lretracev+((HiHiv-LoLov)*0.612); // 고점하락
## 지표식 ##
Condition1 = BWidth[1] < BWidth[0] and BWidth > Var2 ; //밴드폭증가
If Condition1 = True and CrossUp(Var1,Var4) Then //밴드폭증가 + 거래량 증가
Plot1(99999, "매매시작");
PlaySound("C:현대선물HyundaiYesTraderdataSound
ingin.wav");
If CrossDown(Var1,Var5) Then // 거래량 감소
Plot2(99999, "매매종료");
PlaySound("C:현대선물HyundaiYesTraderdataSound
ingout.wav");
2016-08-04
123
글번호 100680
답변완료
부탁드립니다.
도움주심에 깊이 감사 드립니다.
ma(c,60)>ma(c,60)[1]이면
매수전용이 작동,
그 반대이면
매도전용이 작동이 되도록
2-1),2-2)를 합성 부탁 드립니다.
단 포지션이 변경되면 기존보유는 청산
미리 감사 드립니다.
2-1 매수전용
Input: p1(5),p3(10),p5(15);
var : T1(0),T2(0),T3(0),T(0);
var1=ma(c,p1);
var2=ma(c,p3);
var3=ma(c,p5);
if var1>var1[1] then
T1 = 1;
else
T1 = -1;
if var2>var2[1] then
T2 = 1;
Else
T2 = -1;
if var3>var3[1] then
T3 = 1;
else
T3 = -1;
Condition1 = T1 == 1 and T2 == 1 and T3 == 1;
Condition2 = T1 == -1 and T2 == -1 and T3 == -1;
if T <= 0 and Condition1 == true and Condition1[1] == false Then{
T = 1;
buy("b");
}
if MarketPosition == 1 and T1 == -1 and T2 == -1 Then
exitlong("bx");
if T >= 0 and Condition2 == true and Condition2[1] == false Then
T = -1;
}
2-2 매도전용
Input: p1(5),p3(10),p5(15);
var : T1(0),T2(0),T3(0),T(0);
var1=ma(c,p1);
var2=ma(c,p3);
var3=ma(c,p5);
if var1>var1[1] then
T1 = 1;
else
T1 = -1;
if var2>var2[1] then
T2 = 1;
Else
T2 = -1;
if var3>var3[1] then
T3 = 1;
else
T3 = -1;
Condition1 = T1 == 1 and T2 == 1 and T3 == 1;
Condition2 = T1 == -1 and T2 == -1 and T3 == -1;
if T <= 0 and Condition1 == true and Condition1[1] == false Then{
T = 1;
}
if T >= 0 and Condition2 == true and Condition2[1] == false Then
T = -1;
sell("s");
}
if MarketPosition == -1 and T1 == 1 and T2 == 1 Then
ExitShort("sx");
2016-08-03
101
글번호 100679
행복이 님에 의해서 삭제되었습니다.
2016-08-03
10
글번호 100677
답변완료
지표식수정
항상 감사드립니다
아래식에서 전일거래량 100퍼센트 변화지점부터 현재가를따라 그래프가 그려지는데
100퍼센트 돌파지점의 현재봉 가격에 직선으로 우측연장표시 되게 부탁드립니다
input : per(100);
if date != date[1] then
Condition1 = false;
if Condition1 == false and DayVolume >= DayVolume(1)*(1+Per/100) Then
var20 = (C+H+L)/3; #20거래선#
2016-08-03
103
글번호 100674
답변완료
기준가 진입
아래의 조건에 맞는 수식을 부탁 드립니다.
임의의 이평선을 var1 이라하면
분봉차트에서
1.당일의 첫째 봉에서는 시가가 var1을 초과하면 매수
당일의 첫째 봉에서는 시가가 var1에 미달하면 매도
2. 첫봉 이후 발생 하는 각 봉에서는
당해 봉의 시가가 var1 을 초과하고 최저가가 var1 보다 크다면 매수
당해 봉의 시가가 var1 에 미달하고 최고가가 var1 보다 작다면 매도.
2016-08-03
87
글번호 100673