커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1643
글번호 230811
답변완료
안녕하세요 질문드립니다.
안녕하세요
항상 답변에 감사함을 느낍니다.
질문드리겠습니다. 허접합니다 ㅍ.ㅍ
질문은 총 4개라 많은데요
단순한 질문들이니 길어도 답변 부탁드려봅니다
질문1.
그전 질문에 대한 답변을 받았는데 다른부분은 이해가 잘 갑니다.
근데 이부분이 이해가 잘 안되는데요
왜 앞에는 소문자 b를 쓰고 뒤는 대문자 B를 썼는지요...
뭐가 다른건지 아니면 아무상관없는건지요
알려주세요
-----------------------------
var : bidx1(0),Bidx2(0);
이하 청산관련 내용 그리고
bidx1 = 0;
Bidx2 = 0;
----------------------------
질문2.
보통 시스템식은 1회진입으로 알고있는데요
진입후 청산이 되기전에 재진입이 안되게 하고싶어요
즉, 청산후에만 재진입이 되겠금하고 싶어요
이렇게 작성 하면 청산전 재진입이 안되나요?
만약 틀렸다면 고쳐주세요
제가 쓰는 식입니다.
var : A1(False),A2(False),A3(False),A4(False),A5(False),A6(False),A7(False),A8(False),A9(False),A10(False),A11(False),A12(False),A13(False),A14(False),A15(False),A16(False),
A17(False),A18(False),A19(False),A20(False),A21(False),A22(False),A23(False),A24(False),A25(False),A26(False),A27(False),A28(False),A29(False),A30(False),A31(False),
A32(False),A33(False),A34(False),A35(False),A36(False),A37(False),A38(False),A39(False),A40(False),A41(False),A42(False),A43(False),A44(False),A45(False),A46(False),
A47(False),A48(False),A49(False),A50(False),A51(False),A52(False),A53(False),A54(False),A55(False),A56(False),A57(False),A58(False),A59(False),A60(False),A61(False),
A62(False),A63(False),A64(False),A65(False),A66(False),A67(False),A68(False),A69(False),A70(False),A71(False),A72(False),A73(False),A74(False),A75(False),A76(False),
A77(False),A78(False),A79(False),A80(False),A81(False),A82(False),A83(False),A84(False),A85(False),A86(False),A87(False),A88(False),A89(False),A90(False),A91(False),
A92(False),A93(False),A94(False),A95(False),A96(False),A97(False),A98(False),A99(False),A100(False),A101(False),A102(False),A103(False),A104(False),A105(False),A106(False);
A1= 매수식(길어서생략)
A2= 상동
.
.
.
A106=상동
IF A1 or A2 or A3 or A4 or A5 or A6 or A7 or A8 or A9 or A10 or A11 or A12 or A13 or A14 or A15 or
A16 or A17 or A18 or A19 or A20 or A21 or A22 or A23 or A24 or A25 or A26 or A27 or A28 or
A29 or A30 or A31 or A32 or A33 or A34 or A35 or A36 or A37 or A38 or A39 or A40 or A41 or
A42 or A43 or A44 or A45 or A46 or A47 or A48 or A49 or A50 or A51 or A52 or A53 or A54 or
A55 or A56 or A57 or A58 or A59 or A60 or A61 or A62 or A63 or A64 or A65 or A66 or A67 or
A68 or A69 or A70 or A71 or A72 or A73 or A74 or A75 or A76 or A77 or A78 or A79 or A80 or
A81 or A82 or A83 or A84 or A85 or A86 or A87 or A88 or A89 or A90 or A91 or A92 or A93 or
A94 or A95 or A96 or A97 or A98 or A99 or A100 or A101 or A102 or A103 or A104 or A105 or A106 then
Buy("Z");
Var : ZPrice(0),Zhigh(0);
Var : Bidx1(0);
if MarketPosition == 1 Then
{
#Z진입 발생
#보유수량이 증가하고 최근 발생한 진입명이 Z이면
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "Z" Then
{
#진입가 저장
ZPrice = LatestEntryPrice(0);
#진입이후 최고가의 초기값으로 현재봉 고가저장
Zhigh = H;
}
#새로운 고가가 발생하면 변수의 값을 새로운 고가를 변경
if Zhigh > 0 and H > Zhigh Then
Zhigh = H;
if A1.3Price > 0 Then
{
#45% 수익이면 청산
ExitLong("C1",AtLimit,ZPrice*1.45,"Z");
#35% 이상 수익이후에 10% 하락하면 청산
if Zhigh >= ZPrice*1.35 Then
ExitLong("C2",AtStop,A1high*0.90,"Z");
#6% 손실시 청산
ExitLong("C3",AtStop,ZPrice*0.94,"Z");
}
if ZPrice > 0 Then
{
Bidx1 = Bidx1+1;
if Bidx1 == 1540 Then
ExitLong("bx1",OnClose,DEf,"Z");
}
}
Else
{
ZPrice = 0;
Zhigh = 0;
Bidx1 = 0;
}
질문3.
1540봉뒤에 청산하라는 식이 이걸로 알고있는데요
if MarketPosition == 1 and BarsSinceEntry == 1540 Then
ExitLong("청산명칭");
아래의 식도 1540봉뒤에 청산하라는 식으로 알고있습니다.
{
Bidx1 = Bidx1+1;
if Bidx1 == 1540 Then
ExitLong("청산명칭",OnClose,DEf,"Z");
}
현재 질문2에서 작성한 것처럼 저는 아래의 식으로 작성해서 쓰려고하는데
위의 식이 아닌 아래의 식으로 쓰는게 맞는건가요?
질문4.
질문3에 적어논 청산명칭은 중복되는 명칭이 아닌한 제 임의로 적어도 되나요?
2021-07-23
1127
글번호 151006
답변완료
부탁 드립니다.
도움에 감사 드립니다.
아래의 수식은 73365에서 답변 하신 수식의 일부 입니다.
그림과 같이 부탁 드립니다.
미리 감사 드립니다.
Input : Period(60),sig(9);
var : RSIV(0),T(0),TL1(0),TL2(0),TL3(0);
RSIV = RSI(Period);
//Plot1(RSIV, "RSI");
iF CrossUp(RSIV,50) Then
{
T = 1;
var1 = sDate;
Var2 = sTime;
Var3 = RSIV-50;
//TL1 = TL_New_Self(var1,Var2,50,var1,Var2,Var3+50);
// TL2 = TL_New_Self(var1,Var2,Var3+50,NextBarSdate,NextBarStime,Var3+50);
// TL3 = TL_New_Self(NextBarSdate,NextBarStime,50,NextBarSdate,NextBarStime,Var3+50);
}
else iF CrossDown(RSIV,50) Then
{
T = -1;
var1 = sDate;
Var2 = sTime;
Var3 = 50-RSIV;
//TL1 = TL_New_Self(var1,Var2,50,var1,Var2,50-Var3);
//TL2 = TL_New_Self(var1,Var2,50-Var3,NextBarSdate,NextBarStime,50-Var3);
//TL3 = TL_New_Self(NextBarSdate,NextBarStime,50,NextBarSdate,NextBarStime,50-Var3);
}
Else
{
if T == 1 Then
{
var3 = var3 + (RSIV-50);
//TL_SetEnd(TL1,var1,Var2,Var3+50);
//TL_SetBegin(TL2,var1,Var2,Var3+50);
// TL_SetEnd(TL2,sDate,sTime,Var3+50);
//TL_SetBegin(TL3,sDate,sTime,50);
// TL_SetEnd(TL3,sDate,sTime,Var3+50);
}
if T == -1 Then
{
Var3 = Var3 + (50-RSIV);
// TL_SetEnd(TL1,var1,Var2,50-var3);
// TL_SetBegin(TL2,var1,Var2,50-Var3);
// TL_SetEnd(TL2,sDate,sTime,50-Var3);
// TL_SetBegin(TL3,sDate,sTime,50);
//TL_SetEnd(TL3,sDate,sTime,50-Var3);
}
}
if T == 1 Then
Plot2(Var3+50,"누적");
Else
Plot2(50-Var3,"누적");
PlotBaseLine1(50, "기준선 50");
2021-07-22
1341
글번호 151005
답변완료
문의드립니다
가격 2개를 제가 입력하게 하고,
그 둘 가격 사이에 6칸(전체 선의 갯수는 가격 두개 입력할때 나타난 선 합쳐서 7개)이 나타나도록 수식 부탁드립니다.
늘 감사드립니다.
2021-07-22
1270
글번호 150992
답변완료
함수요청
안녕하세요?
아래 전략에 대하여 스크립트 작성 요청드립니다.
크루드오일 선물
data1 : 5분봉
data2 : 10분봉
data3 : 15분봉
- 각 주기의 완성봉 종가가 볼린저밴드 하단을 모두 이탈 완성시 익봉 시가에 매수 진입
(5분봉 종가 < 볼린저밴드 하단 and 10분봉 종가 < 볼린저밴드 하단 and 15분봉 종가 < 볼린저밴드 하단)
- 각 주기의 완성봉 종가가 볼린저밴드 상단을 모두 돌파 완성시 익봉 시가에 매도 진입
(5분봉 종가 > 볼린저밴드 상단 and 10분봉 종가 > 볼린저밴드 상단 and 15분봉 종가 > 볼린저밴드 상단)
- 5분봉 종가 > 볼린저밴드 상단 and 볼린저밴드 상단 > 10분봉 종가 > 20ma and 볼린저밴드 하단< 15분봉 종가 < 20ma 만족 완성 익봉 시가에 매수청산
- 5분봉 종가 < 볼린저밴드 하단 and 볼린저밴드 하단 < 10분봉 종가 < 20ma and 볼린저밴드 상단< 15분봉 종가 < 20ma 만족 완성 익봉 시가에 매도청산
2021-07-22
1276
글번호 150991
답변완료
함수요청
안녕하세요?
아래의 전략에 대해 스크립트 작성 요청드립니다.
- 상품 및 주기 : 국내선물 3분봉
- 9시에 개장하고
1. 9시 3분봉 완성 MACD 오실레이터 값이 + 이며, 지수는 전일 종가대비 상승출발하여 3분봉 완성봉의 지수도 상승
2. MACD 오실레이터 값이 상승하다가 하락반전(직전 값보다 작아지기 시작)
3. MACD 오실레이터가 양에서 음의 값으로 전환
주가 : 1 < 2 < 3 일때 완성시 익봉 시가 매수 진입
- 9시에 개장하고
1. 9시 3분봉 완성 MACD 오실레이터 값이 - 이며, 지수는 전일 종가대비 하락 출발하여 3분봉 완성봉의 지수도 하락
2. MACD 오실레이터 값이 하락하다가 상승반전(직전 값보다 커지기 시작)
3. MACD 오실레이터가 음에서 양의 값으로 전환
주가는 1 > 2 > 3 일때 완성시 익봉 시가 매도 진입
종가청산이며 하루 1번 진입을 하고자 합니다.
2021-07-22
1197
글번호 150990
답변완료
질문입니다.
참조데이터를 지수로 지정하는 방법좀 알려주십시오.
참조데이터 kospi KP 개인 순매수 금액, KP금융투자 순매수 금액 등 많은데, 어떻게 지정해야하나요??
2021-07-22
1080
글번호 150989
답변완료
질문드립니다.
질문드립니다.
1.
볼린저벤드 15일선 하단선을 당일 일봉의 저가가 벗어난 경우에 대한 조건식을 알고 싶습니다.
2021-07-22
1017
글번호 150988
답변완료
수식 부탁드립니다.
1. 변수설정 :아래 괄호는 기본설정
a. 거래시간 (18:00~다음날 04:00)
b. 스톡캐스틱슬로우 기간 3개(12.5, 5, 5)
c. 스톡캐스틱슬로우 과매도구간(20)
d. 스톡캐스틱슬오우 과매수구간(80)
e. 매수진입조건 a의 진입수량
f. 매수진입조건 b의 진입수량
g. 매수진입조건 c의 진입수량
2. 매수진입 조건
a. 과매도구간이상 과매수구간 이하에서
%K가 %D가 골든크로스 될때
혹은,
b. %K가 과매도권에서 상향돌파 할때
혹은,
c. %K가 과매수권으로 상향돌파 할때
3. 청산조건
a. 과매수구간 이하에서
%K가 %D가 데드크로스 될때 전량 청산
혹은,
b. %K가 과매수구간에서 하향 돌파 될때 전량 청산
2021-07-22
1067
글번호 150986
답변완료
수식문의 드립니다
안녕하세요
혹시 분봉차트에 당일 누적거래대금을 표시할수는 없을까요?
아래와 같은 <봉완성까지 남은시간>지표처럼
혹시 왼쪽상단 데이터값에라도 표시할수없는지 문의드립니다
var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0),value(0);
var1 = TimeToMinutes(stime)*60;
var2 = FracPortion(stime/100)*100;//시작시간 초
stimeTosecond = var1+var2;
value1 = TimeToMinutes(time)*60;
value2 = FracPortion(time/100)*100;//긑시간 초
timeTosecond = value1+value2;
SecondMakecandle = timeTosecond-stimeTosecond;
plot1((BarInterval*60)-SecondMakecandle);
2021-07-22
1112
글번호 150985