커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4691
글번호 230811
답변완료
타주기 이평
항상 신속하고 상세하게 답변 주셔서 많은 도움을 받고 있습니다.
감사합니다.
해외선물 1분봉에 적용하고자 합니다.
1분봉에 30분봉 기준 20ma를 출력하고자 하는데요.
ma(c, 600)으로 하였더니 (30배)
상당한 오차가 있군요!
5분봉과 틱봉에서도 활용하고자 합니다.
어떻게 해야 하는지
좀 도와 주셔요!
부탁합니다.
2016-01-21
160
글번호 94684
매의눈 님에 의해서 삭제되었습니다.
2016-01-21
24
글번호 94683
답변완료
SetStopInactivity의미
안녕하세요?
강제청산조건 가운데 SetStopInactivity(X,Y,PercentStop)의미가 어떤건가요?
매뉴얼에는 "5봉으로 설정한다면5개의 봉이 생길 때까지 매수의 경우에는 상, 매도의 경우에는 하로 특정 % 변동이 없을 때 청산합니다." 라고 설명되어 있습니다.
가령 일봉상으로 D일에 매수진입하는데 X=5, Y=10이라면
D+5일까지 진입가 대비 10%가 상승하지 않으면 D+6시가봉에 청산하는 식인지요?
2016-01-21
117
글번호 94682
답변완료
문의 드립니다
Input : Period(12), Period1(5), Period2(5);
var : StoK(0),StoD(0),T(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if T <= 0 and stok >= 80 then{
T = 1;
value1 = L;
}
if T >= 0 and stok <= 20 then{
T = -1;
value1 = H;
}
if T == 1 then
plot1(value1,"지표",RED);
Else
plot1(value1,"지표",BLUE);
...................................................................
상기식을 시스템식으로 바꿔 주세요
감사합니다
2016-01-21
102
글번호 94681
답변완료
부탁드립니다
> 미안합니다 46071번재질문입니다*첨부파일처럼빨간선이연결되는수식부탁드립니다*
당일 9시~15시15분이고요.ATM등가date2-3형성할때2-3이 교차전 간격이(0.1)선과교차돼서data2(최고가)와data3(고가)든 data3(최저가)와data2(저가)든 간격이(0.1)먼져만나 이여지는수식
1.date4-5 도 적용 부탁드립니다 (번거롭게해서 죄송합니다) 수고하세요
2016-01-21
207
글번호 94680
답변완료
수식신호
당일시가
전일시가
전일고가
전일저가
전일종가
pivot기준선
demark기준선
당일시고저평균선
==> 수식을 시스템에 적용할때--->한글안내글자는 없고
라인----숫자만나옵니다===>라인과+한글안내글이 나오게 하여 주시면
감사하겠습니다
---------------------------------0.5포=10틱단위라인은 필요하지않고요
매도방향과 매수진입신호로 부터~~"0.5포수익"이란 "onclose"한글글자가 챠트상에
나오게하여주세요
Input : Period1(3),Period2(3), shortPeriod(5), longPeriod(12), Period(5),Length1(14),Length2(3),Length3(3),rsiperiod(12),trixperiod(7);
Inputs: Length(7), Pval(0.01);
Variables: Mom(0),Tl(0),tx(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
var : DD(0),TT(0),TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0);
var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
If DayClose(1) > DayOpen(1) Then
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else If DayClose(1) < DayOpen(1) Then
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Mom = C- C[Length];
value1 = ema( c,period1);
value2 = ma(macd(shortperiod,longperiod),period);
value3 = StochasticsD(Length1,Length2,Length3);
value4 = rsi(rsiperiod);
value5 = trix(trixperiod);
value6 = highest(H, Period2);
value7 = lowest(l,period2);
if value1- value1[1] > 0 and value2 > value2[1] and value3 - value3[1] > 0 and value4 - value4[1] > 0 and value5 - value5[1] > 0
and (value6 + value7)/2 - (value6 + value7[1])/2 >0 and Mom > 0 AND Mom >= Mom[1] AND MarketPosition() <> 1 then
# 매수/매도청산
{
Buy("매수",onclose);
}
# 매도/매수청산
If value1- value1[1] < 0 and value2 < value2[1] and value3 - value3[1] < 0 and value4 - value4[1] < 0 and value5 - value5[1] < 0
and (value6 + value7)/2 - (value6 + value7[1])/2 < 0 and Mom < 0 AND Mom <= Mom[1] AND MarketPosition() <> -1 Then
{
Sell("매도",onclose);
}
var : TL1(0),TL2(0),TL3(0),TL4(0);
var : TX1(0),TX2(0),TX3(0),TX4(0);
if MarketPosition == 1 Then{
TL_Delete(tl1);
TL1 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*10,sdate,stime,EntryPrice+PriceScale*10);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,EntryPrice+PriceScale*10,NumToStr(EntryPrice+PriceScale*10,2));
Text_SetStyle(Tx1,2,2);
TL_Delete(tl2);
TL2 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*20,sdate,stime,EntryPrice+PriceScale*20);
Text_Delete(tx2);
tx2 = Text_New(sdate,stime,EntryPrice+PriceScale*20,NumToStr(EntryPrice+PriceScale*20,2));
Text_SetStyle(Tx2,2,2);
TL_Delete(tl3);
TL3 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*30,sdate,stime,EntryPrice+PriceScale*30);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,EntryPrice+PriceScale*30,NumToStr(EntryPrice+PriceScale*30,2));
Text_SetStyle(Tx3,2,2);
TL_Delete(tl4);
TL4 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*40,sdate,stime,EntryPrice+PriceScale*40);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,EntryPrice+PriceScale*40,NumToStr(EntryPrice+PriceScale*40,2));
Text_SetStyle(Tx4,2,2);
}
if MarketPosition == -1 Then{
TL_Delete(tl1);
TL1 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*10,sdate,stime,EntryPrice-PriceScale*10);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,EntryPrice-PriceScale*10,NumToStr(EntryPrice-PriceScale*10,2));
Text_SetStyle(Tx1,2,2);
TL_Delete(tl2);
TL2 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*20,sdate,stime,EntryPrice-PriceScale*20);
Text_Delete(tx2);
tx2 = Text_New(sdate,stime,EntryPrice-PriceScale*20,NumToStr(EntryPrice-PriceScale*20,2));
Text_SetStyle(Tx2,2,2);
TL_Delete(tl3);
TL3 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*30,sdate,stime,EntryPrice-PriceScale*30);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,EntryPrice-PriceScale*30,NumToStr(EntryPrice-PriceScale*30,2));
Text_SetStyle(Tx3,2,2);
TL_Delete(tl4);
TL4 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*40,sdate,stime,EntryPrice-PriceScale*40);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,EntryPrice-PriceScale*40,NumToStr(EntryPrice-PriceScale*40,2));
Text_SetStyle(Tx4,2,2);
}
if date != date[1] Then{
DD = sdate[1];
TT = stime[1];
}
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
TL_Delete(TL18);
TL11 = TL_New(dd,tt,dayopen,sdate,stime,dayopen);
TL12 = TL_New(dd,tt,dayopen(1),sdate,stime,dayopen(1));
TL13 = TL_New(dd,tt,DayHigh(1),sdate,stime,DayHigh(1));
TL14 = TL_New(dd,tt,daylow(1),sdate,stime,daylow(1));
TL15 = TL_New(dd,tt,DayClose(1),sdate,stime,DayClose(1));
TL16 = TL_New(dd,tt,pivot,sdate,stime,pivot);
TL17 = TL_New(dd,tt,var3,sdate,stime,var3);
TL18 = TL_New(dd,tt,(dayhigh+daylow)/2,sdate,stime,(dayhigh+daylow)/2);
Text_Delete(tx11);
Text_Delete(tx12);
Text_Delete(tx13);
Text_Delete(tx14);
Text_Delete(tx15);
Text_Delete(tx16);
Text_Delete(tx17);
Text_Delete(tx18);
tx11 = Text_New(sdate,stime,dayopen,NumToStr(dayopen,2));
tx12 = Text_New(sdate,stime,dayopen(1),NumToStr(dayopen(1),2));
tx13 = Text_New(sdate,stime,DayHigh(1),NumToStr(DayHigh(1),2));
tx14 = Text_New(sdate,stime,daylow(1),NumToStr(daylow(1),2));
tx15 = Text_New(sdate,stime,DayClose(1),NumToStr(DayClose(1),2));
tx16 = Text_New(sdate,stime,pivot,NumToStr(pivot,2));
tx17 = Text_New(sdate,stime,var3,NumToStr(var3,2));
tx18 = Text_New(sdate,stime,(dayhigh+daylow)/2,NumToStr((dayhigh+daylow)/2,2));
Text_SetStyle(Tx11,2,2);
Text_SetStyle(Tx12,2,2);
Text_SetStyle(Tx13,2,2);
Text_SetStyle(Tx14,2,2);
Text_SetStyle(Tx15,2,2);
Text_SetStyle(Tx16,2,2);
Text_SetStyle(Tx17,2,2);
Text_SetStyle(Tx18,2,2);
2016-01-21
186
글번호 94679
답변완료
안녕하세요. 시스템식 도움 부탁드립니다.
안녕하십니까? 늘 도움 주셔서 고맙습니다.
N(예:20)개의 각각 다른 조건을 만족할 때 대기하고 있다가 해당 가격을 상향돌파할 때
매수를 하고 싶습니다. 일일이 N의 값을 변경할 때마다 필요한 코드를 새로 넣으려고 하니 힘도 들고 답도 아닌 것 같습니다. 매수명은 각각 다른 이름으로 진입을 하려고 합니다.
피라미딩 조건으로 "다른 진입신호만 허용"
[1안]
cnt = 1;
If C < (운전가격 - 가격단위*cnt) Then {
Buy("매수1", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
cnt = cnt + 1;
}
If C < (운전가격 - 가격단위*cnt) Then {
Buy("매수2", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
cnt = cnt + 1;
}
...
If C < (운전가격 - 가격단위*cnt) Then {
Buy("매수20", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
cnt = cnt + 1;
}
[1안]과 같이 한다는 것이 너무 힘듭니다.
[2안]
피라미딩조건: "다른 진입신호만 허용"
....
For cnt = 0 To (20-1) {
If C < (운전가격 - 가격단위*cnt) Then {
Buy("", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
}
}
...
이렇게 구현을 했더니, "Buy1"으로만 딱 1번 매수/매도 만 되고, 나머지 19개의 조건에 해당될 때에도 매수 진입이 되지 않았습니다.
"매수진입명"을 "매수 & 1" 등 문자조작함수가 있다면 어떻게 해볼 수도 있을 것 같은데 해결책을 못찾았습니다.
N은 변수로 사용하여 임의의 값을 넣고 싶습니다.
도움 부탁드리겠습니다.
늘 고맙습니다.
2016-01-21
118
글번호 94678
답변완료
질문드립니다.
46081번 질문을 변형해서 드립니다.
그럼 틱차트에서 거래량이 10000주 이상 되는것을 누적해서 몇개 나왔는지 표현은 안되나요??
2016-01-21
115
글번호 94677
답변완료
문의드립니다.
강추위에 감기조심하십시요~
분봉에서 체결강도를 누적으로 나타내는 지표식을 작성하였는데
검색식과 누적수량이 다소 차이가 납니다.
제대로 작성한건지 검토 부탁드립니다.
감사합니다.
if date != date[1] Then{
var1 = 0;
var2 = 0;
}
var1 = var1+Upvol;
var2 = var2+DownVol;
If var1 >= var2 Then
{
Plot1(var1,"매수");
Plot2(var2,"매도");
}
Else
{
Plot3(var2,"매도");
Plot4(var1,"매수");
}
2016-01-21
119
글번호 94676