커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4331
글번호 230811
답변완료
시스템식 작성 부탁드립니다.
안녕하세요
답변 항상 잘 이용하고 있습니다.
아래식은 매도만 나오는 식인데 반대의 경우일때 매수식 나오게 부탁드립니다.
//아래는 수식
Var: DivShortCond(False), PrevTop(0), PrevTopInd(0), FirstBar(0);
Var: StoLength(12), StoPeriod(5), StoK(0), StoD(0), StoTOP(80), StoBOTTOM(20);
StoK = StochasticsK(StoLength, StoPeriod);
StoD = StochasticsD(StoLength, StoPeriod, StoPeriod);
If Date<>Date[1] then
Begin
FirstBar = Barindex;
DivShortCond = False;
PrevTop = 0;
PrevTopInd = 0;
End;
If ((High[1]==HighD(0) and Close[1]>Open[1]) or (High==HighD(0) and Close<Open)) and Barindex <> FirstBar Then
begin
If (High[1]>PrevTop and StoK[1]>StoTOP) or (High>PrevTop and StoK>StoTOP) Then begin
PrevTop = High[1];
PrevTopInd = StoK[1];
End
Else if PrevTop <> 0 and StoK < PrevTopInd and StoK < StoK[1] and StoK[1]<StoTOP then
DivShortCond = True;
End;
If DivShortCond then
If StoK > StoTOP then
DivShortCond = False;
If DivShortCond Then {
If (CrossDown(StoK, StoD) and Close<Low[1]) Then
begin
Sell("다이버전스 매도");
DivShortCond = False;
PrevTop = 0;
PrevTopInd = 0;
End;
}
//이상입니다.
2017-12-15
168
글번호 115010
답변완료
문의드립니다
input : T(100),Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HV(0),LV(0),HV1(0),LV1(0),D1(0),T1(0);
var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0);
if Bdate != Bdate[1] Then{
D1 = sdate;
T1 = stime;
HV1 = dayhigh(1);
LV1 = DayLow(1);
var11 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per1/100));
var21 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per2/100));
var31 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per3/100));
var41 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per4/100));
var51 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per5/100));
if dayhigh(1) >= daylow(1)+PriceScale*T then{
TL11 = TL_New(D1,T1,HV1,sdate,stime,HV1);
TL12 = TL_New(D1,T1,var11,sdate,stime,var11);
TL13 = TL_New(D1,T1,var21,sdate,stime,var21);
TL14 = TL_New(D1,T1,var31,sdate,stime,var31);
TL15 = TL_New(D1,T1,var41,sdate,stime,var41);
TL16 = TL_New(D1,T1,var51,sdate,stime,var51);
TL17 = TL_New(D1,T1,LV1,sdate,stime,LV1);
TL_SetColor(TL11,blue);
TL_SetColor(TL12,blue);
TL_SetColor(TL13,blue);
TL_SetColor(TL14,blue);
TL_SetColor(TL15,blue);
TL_SetColor(TL16,blue);
TL_SetColor(TL17,blue);
}
}
if dayhigh(1) >= daylow(1)+PriceScale*T then{
TL_SetEnd(TL11,sdate,stime,HV1);
TL_SetEnd(TL12,sdate,stime,var11);
TL_SetEnd(TL13,sdate,stime,var21);
TL_SetEnd(TL14,sdate,stime,var31);
TL_SetEnd(TL15,sdate,stime,var41);
TL_SetEnd(TL16,sdate,stime,var51);
TL_SetEnd(TL17,sdate,stime,LV1);
}
HV = dayhigh;
LV = daylow;
var1 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per1/100));
var2 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per2/100));
var3 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per3/100));
var4 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per4/100));
var5 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per5/100));
if Condition1 == false and HV >= LV+PriceScale*T then{
Condition1 = true;
TL1 = TL_New(D1,T1,HV,sdate,stime,HV);
TL2 = TL_New(D1,T1,var1,sdate,stime,var1);
TL3 = TL_New(D1,T1,var2,sdate,stime,var2);
TL4 = TL_New(D1,T1,var3,sdate,stime,var3);
TL5 = TL_New(D1,T1,var4,sdate,stime,var4);
TL6 = TL_New(D1,T1,var5,sdate,stime,var5);
TL7 = TL_New(D1,T1,LV,sdate,stime,LV);
TL_SetColor(TL1,red);
TL_SetColor(TL2,red);
TL_SetColor(TL3,red);
TL_SetColor(TL4,red);
TL_SetColor(TL5,red);
TL_SetColor(TL6,red);
TL_SetColor(TL7,red);
}
if Condition1 == true and HV >= LV+PriceScale*T then{
TL_SetBegin(TL1,D1,T1,Hv);
TL_SetBegin(TL2,D1,T1,var1);
TL_SetBegin(TL3,D1,T1,var2);
TL_SetBegin(TL4,D1,T1,var3);
TL_SetBegin(TL5,D1,T1,var4);
TL_SetBegin(TL6,D1,T1,var5);
TL_SetBegin(TL7,D1,T1,Lv);
TL_SetEnd(TL1,sdate,stime,Hv);
TL_SetEnd(TL2,sdate,stime,var1);
TL_SetEnd(TL3,sdate,stime,var2);
TL_SetEnd(TL4,sdate,stime,var3);
TL_SetEnd(TL5,sdate,stime,var4);
TL_SetEnd(TL6,sdate,stime,var5);
TL_SetEnd(TL7,sdate,stime,Lv);
}
==================================================================================
상기수식은 전일변폭 100틱이상시 피보수치인데
100틱변폭이 아닌
전일은 고가 저가 따른 피보과
당일에는 변폭에따라 피보의 수식을 부탁드립니다
2017-12-15
169
글번호 115009
답변완료
문의드립니다
안녕하세요?
1. 당일 일봉차트의 5, 10, 20, 30, 60, 120, 240, 360, 480 이평선의 값을 60분봉 차트에
수평선으로 표시하고 수평선 좌측끝에 '5 이평'과 같은 이름 표시하기
1. 당일 일봉차트의 5, 10, 20, 30, 60, 120, 240, 360, 480 이평선의 값을 300틱 차트에
수평선으로 표시하고 수평선 좌측끝에 '5 이평'과 같은 이름 표시하기
각 수평선의 색깔: 5 이평선의 값(검정색)
10 이평선의 값(분홍색)
20 이평선의 값(주황색)
30 이평선의 값(녹색)
60 이평선의 값(빨강색)
120 이평선의 값(파랑색)
240 이평선의 값(하늘색)
360 이평선의 값(연두색)
480 이평선의 값(노랑색)
위의 내용을 구현하는 수식이 가능한지요? 가능하면 수식 부탁드립니다.
색깔은 제가 임의로 넣었습니다. 해당색이 없으면 겹치지 않게 다른색으로 해도 괜찮습니다.
감사합니다.
2017-12-15
175
글번호 115008
답변완료
55612번글 답변 수식의 추가질문입니다
안녕하세요.
작성해 주신 수식을 응용해서 잘 사용하고 있습니다.
그런데 또 다른 오류가 발생 했습니다.
진입대기가 1분씩 밀려나네요. 설명드리자면...
60분봉기준으로 진입조건이 충족하면 60분 캔들이 완성되고 나서 다음 60분동안(딱 60분 동안이죠) 진입대기를 하는 조건이니까...
1분봉도 마찬가지라고 생각했습니다. 예를 들어 22:00완성 캔들에서 진입조건이 충족되었다면, 바로 직후인 22:01캔들부터 23:00캔들까지 진입대기를 하다가, 23:01캔들이 시작되는 순간부터는 진입대기를 풀어야 하는데 여전히 예비신호가 들어오고 23:01캔들에서도 진입이 이루어 지더군요.
진입대기는 23:02캔들이 생성되어야 풀리는 것으로 확인하였습니다.
수식을 읽어나가면서 생기는 약간의 오차가 생긴것 같습니다. 수정 부탁드릴게요.
감사합니다.
2017-12-15
160
글번호 115007
답변완료
수식 문의드립니다.
5일이평선이 60일이평선을 골드크로스 또는 데드크로스시 한번만 종가진입후
50틱손실나면 자동청산후 반대로 재진입(=스위칭)을 실행하고,
진입가격에서 다시 50틱손실시에만 스위칭되도록하고,
120틱수익이면 무조건 자동청산되도록 하는 수식.(1사이클완료함)
(120틱수익 자동청산되기 전에 5일-60일이평선 크로스는 무시함)
위자동매매시스템이 반복실행을 계속하도록 하는 자동매매수식 좀 부탁드립니다.
***스위칭이란? : 현재 매수진입일때 스위칭 신호 출현시 매수청산 매도진입 임.***
2017-12-14
147
글번호 115006
답변완료
문의 드립니다.
일봉의 (시고저종)가는 함수로 되어 있는데
주봉 또는 월봉의 시고저종은 없나보네요.
예전 문의글 검색했더니 함수파일을 만들어주신후 첨부하셨던거 같은데
지금은 글 내용만 있고 파일 내려받기는 안되는거 같아 다시 문의드립니다.
항상 친절한 답변에 감사드립니다~
2017-12-14
161
글번호 115005
답변완료
수식 문의드립니다.
input:N1(0),N2(0).....,N100(0);
Plot1(N1);
Plot2(N2);
.
.
.
Plot100(N100);
이런식으로 100개정도 입력한 값을 단순하게 라인으로 표시하려 하는데
기본값이 0으로 되있어서 지표를 적용하면 차트에 라인 0이 적용이 되어
차트가 망가집니다..(100개의 입력값을 다 채우지 못하면 0이 적용되므로)
그래서.. 숫자를 집어넣지 않으면 차트에 표시가 안되게하거나
이게 안되면 시가가 적용되도록
하고싶습니다.
즉, 0으로 임의로 기본값을 해놓았지만 수치입력이 없을시 차트에 표시가
안되도록 부탁드립니다.(혹은 시가가 자동으로 입력된다거나 하도록..)
0 입력값 덕분에 지표가 이상하게 나와서요.
부탁드리겠습니다.
감사합니다.
2017-12-14
163
글번호 115004
관리자에 의해 예스스팟 QnA로 이동되었습니다
2017-12-14
4
글번호 115003
답변완료
문의드립니다
안녕하세요?
1.몇일전만들어주신소리출력건인데요, 근데 alert(띵 띵)소리는나는데
제가 지정하는소리는출력이안되는데,
혹시조언해주실수있는내용이있으신지요?
당연히 음성파일형식도wav.로시도했구요. 사용중인프로그람은 해선 에스그로발, 국선NH트레이더 입니다
2.아래첨부한수식이 신호가 전챠트시작초입에 단한번만발생하는데
조건만족시마다 계속적으로 신호가발생하게하여주세요 .
도움주심에 .
감사드립니다
1.
var1 = macd(12,26);
var2 = ema(var1,9);
if crossup(var1,var2) Then{
value1 = var1;
value2 = value1[1];
value3 = c;
value4 = value3[1];
if value1 > value2 and value3 < value4 and value4 > 0 then{
plot1(H);
PlaySound("C:₩NHTrader₩data₩Sound₩alert.wav");
}
}
var11 = StochasticsK(25,6);
var12 = StochasticsD(25,6,6);
if crossup(var11,var12) Then{
value11 = var11;
value12 = value11[1];
value13 = c;
value14 = value13[1];
if value11 > value12 and value13 < value14 and value14 > 0 then{
plot1(H);
PlaySound("C:₩NHTrader₩data₩Sound₩alert.wav");
}
}
var21 = CCI(9);
var22 = ema(var21,10);
if crossup(var21,var22) Then{
value21 = var21;
value22 = value21[1];
value23 = c;
value24 = value23[1];
if value21 > value22 and value23 < value24 and value24 > 0 then{
plot1(H);
PlaySound("C:₩NHTrader₩data₩Sound₩alert.wav");
}
}
var31 = RSI(14);
var32 = ema(var31,10);
if crossup(var31,var32) Then{
value31 = var31;
value32 = value31[1];
value33 = c;
value34 = value33[1];
if value31 > value32 and value33 < value34 and value34 > 0 then{
plot1(H);
PlaySound("C:₩NHTrader₩data₩Sound₩alert.wav");
}
}
2.
var1 = macd(12,26);
var2 = ema(var1,9);
if crossup(var1,var2) Then{
value1 = var1;
value2 = value1[1];
value3 = c;
value4 = value3[1];
if value1 > value2 and value3 < value4 and value4 > 0 then{
buy();
}
}
var11 = StochasticsK(25,6);
var12 = StochasticsD(25,6,6);
if crossup(var11,var12) Then{
value11 = var11;
value12 = value11[1];
value13 = c;
value14 = value13[1];
if value11 > value12 and value13 < value14 and value14 > 0 then{
buy();
}
}
var21 = CCI(9);
var22 = ema(var21,10);
if crossup(var21,var22) Then{
value21 = var21;
value22 = value21[1];
value23 = c;
value24 = value23[1];
if value21 > value22 and value23 < value24 and value24 > 0 then{
buy();
}
}
var31 = RSI(14);
var32 = ema(var31,10);
if crossup(var31,var32) Then{
value31 = var31;
value32 = value31[1];
value33 = c;
value34 = value33[1];
if value31 > value32 and value33 < value34 and value34 > 0 then{
buy();
}
}
2017-12-15
206
글번호 115002