커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7422
글번호 230811
답변완료
확인좀 부탁드립니다.
해외 갭보정 차트에서
새벽 02부터 ~ 오후 18시 까지에 고점,저점,(고점+저점)/2 의 값을
다음날 새벽 02시 부터 그려지게 부탁 드립니다.
다른질문을 참조해서 적용해 봤는데 날짜변경과 장마감이 중간에 있어서인지 잘안되네요!!
아래수식 비슷한거 같은데 의도하는 내용이 안나옵니다..부탁드립니다.
if stime == 020000 then{
var1 = H;
var2 = L;
var11 = var1[1];
var12 = var2[1];
}
if stime >= 020000 or stime < 180000 Then{
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
}
plot1(var11);
plot2(var12);
plot3((var12+var11)/2);
2016-05-13
136
글번호 98022
답변완료
47671재 문의합니다.
수고하십니다.47671수식수정부탁합니다.
지표 5개 중에서 1개만 골든크로스든지 데드크로스만 되어도 신호가 발생합니다.
수정 부탁합니다.
질문1번은 지표가2개 만족하고 + 최근4분봉 10틱이상시 신호발생
질문2번은 지표가3개 만족하고 + 최근4분봉 10틱이상시 신호발생
안녕하세요
예스스탁입니다.
최근 N봉 최고가와 최저가의 차이가 10틱이내면 진입금지이므로
HH > LL+PriceScale*틱수
buy,sell은 위와 클때만 진입하게 작성되어 있습니다.
폭이 지정한 틱수보다 작으면 청산만 합니다.
INPUT : sto1(12),sto2(5),sto3(5);
input : Short(12),Long(26),sig(9);
input : RSIP(14);
input : CCIP(9),CCIsig(10);
input : LENGTH(10);
input : DMIPeriod(14);
input : 조건만족갯수(2),N봉(4),틱수(10);
VAR : stok(0),stod(0),MACDV(0),MACDS(0),RSIV(0);
var : CCIV(0),CCIS(0);
var : value(0),T(0),DIP(0),DIM(0),HH(0),LL(0);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
RSIV = RSI(RSIP);
CCIv = CCI(CCIP);
CCIS = ema(CCIv,CCIsig);
DIP = Diplus(DMIPeriod);
DIM = DiMinus(DMIPeriod);
if crossup(RSIV,30) Then
T = 1;
if CrossDown(RSIV,70) Then
T = -1;
HH = highest(H,N봉);
LL = Lowest(L,N봉);
value1 = 0;
if stok > stod Then
value1 = value1+1;
if MACDV > MACDS Then
value1 = value1+1;
if T == 1 Then
value1 = value1+1;
if CCIV > CCIS Then
value1 = value1+1;
if DIP > DIM Then
value1 = value1+1;
value2 = 0;
if stok < stod Then
value2 = value2+1;
if MACDV < MACDS Then
value2 = value2+1;
if T == -1 Then
value2 = value2+1;
if CCIV < CCIS Then
value2 = value2+1;
if DIP < DIM Then
value2 = value2+1;
if value1 == 조건만족갯수 and value1[1] != 조건만족갯수 Then{
if HH > LL+PriceScale*틱수 Then
buy();
Else
ExitShort();
}
if value2 == 조건만족갯수 and value2[1] != 조건만족갯수 Then{
if HH > LL+PriceScale*틱수 Then
sell();
Else
Exitlong();
}
즐거운 하루되세요
> 마르시아 님이 쓴 글입니다.
> 제목 : 수식문의드립니다.
> 수고하십니다. 수식문의드립니다.
Stochastics(12,5,5)
MACD(12,26,9)
RSI(14)
CCI(9,10)
위에 보조지표 4개와
1. 2개 보조지표가 골든크로스면 매수 + 최근 4분봉의 최고가와 최저가 사이가 10틱 이하일 때 매수매도신호 금지
매도는 그 반대로 해주시고요.
2. 3개 보조지표가 골든크로스면 매수 + 최근 4분봉의 최고가와 최저가 사이가 10틱 이하일 때 매수매도신호 금지
매도는 그 반대로 해주세요.
2가지식 부탁드립니다.
시스템 변수설정할수있게해주십시요. 고맙습니다.
2016-05-12
144
글번호 98021
답변완료
수식부탁드립니다
30분봉에서
10000 봉을 띄우니 2년 조금 넘게 봉이 나오는데요.
1.
하루에 13봉이 나옵니다.
모든 9시30분봉 (첫번째봉) 의 평균거래량
모든 10시봉의 (두번째봉) 의 평균거래량
...
이렇게 13봉까지 모든 기간동안의 1번봉에서 13번봉까지의
각 봉의 평균거래량을 지표로 보려합니다.
부탁드립니다 (_ _)
2016-05-12
135
글번호 98020
답변완료
문의드립니다`
input : P(10);
var : MM(0),T(0);
MM = (highest(H,P)+lowest(L,P))/2;
if T == 0 and C > MM Then
T = 1;
if T == 0 and C < MM Then
T = -1;
if T == 1 and CrossDown(C,lowest(L,P)[1]) Then
T = 0;
if T == -1 and CrossUp(C,highest(H,P)[1]) Then
T = 0;
if T == 1 Then
PlotPaintBar(H,L,"강조",red);
if T == -1 Then
PlotPaintBar(H,L,"강조",blue);
강조식을 이용하여 시스템을 구축하고싶습니다^^
잘부탁드리겠습니다~
1번째 신호가 나온뒤 봉에 색깔이 없을경우 청산
청산후 다음 색깔에 진입
2번째 스위칭 으로 매수 매도만 되는 시스템
매수:빨강 강조가 처음뜨는순간(다음봉에서 시가로 시스템 신호발생)
매도:파랑 강조가 처음뜨는순간(다음봉에서 시가로 시스템 신호발생)
청산:혹여나 도중 빨간색 강조 파랑색강조가 나타나지않는봉에서 종가 청산
잘부탁드립니다^^
2016-05-13
174
글번호 98019
답변완료
문의드립니다.
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
145
글번호 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
181
글번호 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
134
글번호 98008
답변완료
문의 드립니다.
47662 번 추가질문입니다.
일목균형표를 당일분만 나오게하고십읍니다.
전일종가부분과 연관성이 떨어져서 그렇습니다.
전일부분이 나와야한다면 칼라를 넣어서 구분할수있게
부탁드립니다.
수고하십시요
2016-05-12
122
글번호 98004
바닥차기 님에 의해서 삭제되었습니다.
2016-05-12
0
글번호 98002