커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4624
글번호 230811
답변완료
문의드립니다.
Input : Period(9),Sigperiod(10);
Plot1(RSI(Period), "RSI");
Plot2(ema(RSI(Period),SigPeriod), "RSIsignal");
PlotBaseLine1(30, "기준선1");
PlotBaseLine2(70, "기준선2");
.........................................
상기지표상의 rsi선과 rsi시그널선이 증감할때 마다 색을 넣어 주세요
즉, rsi선이 올라가면 빨간색으로, 내려가면 파란색으로 표현해 주세요
rsi시그널선도 마찬가지로 표현해 주세요
아래 참고수식 처럼 만들어 주시면 됩니다.
감사합니다.
참고수식
Input : Period(12), Period1(5), Period2(5);
var1 = StochasticsK(Period,Period1);
var2 = StochasticsD(Period,Period1,Period2);
if var1> var1[1] Then
Plot1(var1, "StochasticsK",RED);
Else
Plot1(var1, "StochasticsK",BLUE);
if var2 > var2[2] Then{
Plot2(var2, "StochasticsD",RED);
value2 = 2;
}
Else{
Plot2(var2, "StochasticsD",BLUE);
value2 = -2;
}
2016-05-13
119
글번호 98018
답변완료
지표문의
전에 ADX 풀이식을 요청하였습니다.
예를 들어 macd를 값으로 집어넣어서 그것의 adx를 출력하고자 하면.. 이 식을 어떻게 고쳐야 할지요?
실력이 너무 없어서 죄송합니다.
Inputs: Length(14);
Var : Counter(0), CummDMI(0), Return(0),ADXV(0);
Var : DMIP(0), DMIM(0),DMIV(0),CB(0);
Var : TRange(0),PlusDM14(0), PlusDM(0), MinusDM(0),DIPlusv(0),DIMinusv(0),MinusDM14(0);
CB = CurrentBar;
If CB == 1 Then {
DIPlusv = 0;
PlusDM14 = 0;
DIMinusv = 0;
MinusDM14 = 0;
TRange = 0;
For Counter = 0 To Length - 1 {
If High[Counter] - High[Counter+1] < 0 Then
PlusDM = 0;
Else
PlusDM = High[Counter] - High[Counter+1];
If Low[Counter+1] - Low[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = Low[Counter+1] - Low[Counter];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0;
TRange = TRange + TrueRange[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
DIPlusv = 100 * PlusDM14 / TRange;
Else
DIPlusv = 0 ;
If TRange <> 0 Then
DIMinusv = 100 * MinusDM14 / TRange;
Else
DIMinusv = 0;
}
Else If index+1 > Length Then {
If High[0] - High[1] < 0 Then
PlusDM = 0;
Else
PlusDM = High[0] - High[1];
If Low [1] - Low [0] < 0 Then
MinusDM = 0;
Else
MinusDM = Low[1] - Low[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If Length > 0 Then {
TRange = TRange - (TRange / Length) + TrueRange;
PlusDM14 = PlusDM14 - (PlusDM14 / Length) + PlusDM;
MinusDM14 = MinusDM14 - (MinusDM14 / Length) + MinusDM;
}
If TRange <> 0 Then {
DIPlusv = 100 * PlusDM14 / TRange;
DIMinusv = 100 * MinusDM14 / TRange;
}
Else {
DIPlusv = 0 ;
DIMinusv = 0;
}
}
If DIPlusv + DIMinusv == 0 Then
DMIv = 0;
Else
DMIv = 100 * AbsValue(DIPlusv - DIMinusv) / (DIPlusv + DIMinusv);
Return = 0;
DMIV = DMI(Length);
If CB >= 1 AND Length > 0 Then Begin
If CurrentBar < Length Then begin
CummDMI = 0;
for Counter = 0 To CB - 1 Begin
CummDMI = CummDMI + DMIV[Counter];
End;
Return = CummDMI / CB;
End
Else
Return = (ADXv * (Length - 1) + DMIv) / Length;
End;
ADXv = Return;
plot1(ADXv);
2016-05-12
151
글번호 98012
답변완료
함수수정요청(251)
안녕하세요?
아래 함수에 다음의 조건을 추가하여 수정 요청드립니다.
매수는 ADX값이 25이상에서 상승중이며(직전값과 비교)
매도는 ADX값이 25이상에서 하락중일때에만 진입을 하는 것으로 변경하고자 합니다.
input : xtime(60000);
var : tcond(false),cond1(false),cond2(false);
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
if bdate != bdate[1] Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
var1 = ma(c,5);
var2 = ma(c,20);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] Then
buy("B");
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then
sell("S");
2016-05-12
105
글번호 98008
답변완료
문의 드립니다.
47662 번 추가질문입니다.
일목균형표를 당일분만 나오게하고십읍니다.
전일종가부분과 연관성이 떨어져서 그렇습니다.
전일부분이 나와야한다면 칼라를 넣어서 구분할수있게
부탁드립니다.
수고하십시요
2016-05-12
103
글번호 98004
바닥차기 님에 의해서 삭제되었습니다.
2016-05-12
0
글번호 98002
답변완료
거래선 시스템 발생위치 수평선표시
항상 감사드립니다
If V== highest(V,120) then{
Var11 = (C+H+L)/3;
/* Var11 = C;*/
var12 = var11[1];
if var11 > var12 Then{
upv11 = var11;
upv12 = upv11[1];
upv13 = upv12[1];
if upv11 > upv12 and upv12 > upv13 Then
var20 = 1.0;
}
if var11 < var12 Then{
dnv11 = var11;
dnv12 = dnv11[1];
dnv13 = dnv12[1];
if dnv11 < dnv12 and dnv12 < dnv13 Then
var20 = -1.0;
}
}
plot2(var20,"120선",white,def,2.0);
위지표식은 var20의 값을 1과 -1로 표시를합니다
위지표식에서 var20이 변하는부분의 가격에 수평선으로 표시하여 우측으로 연장하고 그값을 var50저장
1_시스템식
var20 이 1.0 되는순간 그값을 var50 저장
var20 이 -1.0 되는순간 그값을 var50 저장
시간이 지나서 var20의 값이 바뀌면 새로운 값으로 저장(var50 에는 가장최근의 var20값저장)
2_지표식
var20 이 바뀔때 변하는 부분의 가격에 수평선 표시==> 다음 변곡점까지 연장
var20==1 일때 수평선을 blue
var20==-1 일때 수평선을 red
감사합니다
2016-05-13
124
글번호 97996
답변완료
시스템 질문이요
Input: Length(10), Pval(0.05);
Buy ("CBI", AtStop, Highest(High, Length) + Pval);
여기서 Pval는 무엇을 뜻하나요?
여기서 CBI는 무엇의 약자인가요?
2016-05-12
110
글번호 97994
답변완료
수고하십니다
안녕하세요.
항상감사드립니다.
if 매수조건 then buy():
if 매도조건 then sell();
if 매수조건 then buy():
if 매도조건 then sell();
setstopprofittarget(1,pointstop)
라는 식이있습니다.
매수이익청산이 됨과 동시에 매도가 발생합니다.(챠트상에는 청산만표시됨.계좌에1계약잡힘)
계속 진행되다가 이번엔 매도조건에 맞는 신규매도가 발생합니다.
이신규 매도를금지하는 식좀 부탁드립니다.
매도이익 청산도 마찬가지입니다.
1.그대로 놔두면 계좌에1계약하고.신규매도하고2계약이되는게 맞죠?
2.그냥단순히 동일방향 진입금지가 맞나요?
3.하나의수식마다 진입금지식을 작성해야하나요.
언제나 깊은 감사드립니다..꾸벅...
2016-05-13
91
글번호 97991
00 님에 의해서 삭제되었습니다.
2016-05-12
0
글번호 97989