커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7546
글번호 230811
답변완료
시스템 수정문의
시스템문의드립니다.
아래와 같이 2종류의 시스템 식이 있습니다. 피라미딩은 2가지 모두 2건입니다.
A코드는 B코드를 함수화 한 코드입니다.
문제는 B코드는
zero == 2 일때, N ==5 일때
음봉(봉크기제일큼) - 음봉 - 도지봉 - 도지봉 - 음봉 - 음봉 - 음봉 - 도지봉
일때, 최근 2번째 음봉 종가에서만 진입이 1회 이루어집니다만,
A코드는 최근 2번째 음봉에서 진입 및 최근 1번째 도지봉에서 진입이 됩니다. 총 2번 진입입니다.
B코드가 정확안 진입이고, A코드의 최근 도지봉에서의 진입은 잘못된 진입입니다.
A코드를 좀 수정해주셨으면 합니다.
참고로, 동일코드에서 이러한 경우에는 진입이 맞으며,, 정상적으로 움직입니다.
음봉(봉크기제일큼) - 음봉(봉크기2번째로큼) -도지봉 -도지봉 - 음봉 - 음봉 - 음봉 - 음봉
이럴경우에는 최근 음봉과 최근2번째 음봉에서 각각 진입하는 것이 맞고, 정상적으로 움직입니다.
또한, c코드는 5분봉챠트에서 10분봉을 거래하는 겁니다만,
마찬가지로,
zero == 2 일때, N ==5 일때
음봉(봉크기제일큼) - 음봉 - 도지봉 - 도지봉 - 음봉 - 음봉 - 음봉 - 도지봉
최근 2번째 음봉에서 진입 및 최근 1번째 도지봉에서 진입이 됩니다. 총 2번 진입입니다.
현상이 나타납니다.
---A코드---
input : CT(0); // CT(1)=양봉 O<C , CT(0)=음봉 O>C
input : N(5);
input : Zero(2);
var : cnt(0),absv(0),sellcond(false);
Array : DD[20](0),FF[20](0);
Absv = abs(O-C);
if C > O Then{
DD[0] = 1;
FF[0] = absv;
for cnt = 1 to 19{
DD[cnt] = DD[cnt-1][1];
ff[cnt] = ff[cnt-1][1];
}
}
if C < O Then{
DD[0] = -1;
FF[0] = absv;
for cnt = 1 to 19{
DD[cnt] = DD[cnt-1][1];
ff[cnt] = ff[cnt-1][1];
}
}
sellcond = false;#초기값(매봉 아래수식 수행전 false로 초기화)
#zero가 2이면
if Zero == 2 Then{
var1 = 0;
var2 = 0;
for cnt = 0 to N-1{
var1 = var1+DD[cnt];
if FF[cnt] > var2 Then
var2 = FF[cnt];
}
if CT == 0 and Var1 == -N and FF[N-1] == var2 Then
sellcond = true;
if CT == 1 and Var1 == N and FF[N-1] == var2 Then
sellcond = true;
}
if sellcond == true Then
Buy("A", OnClose, DEF, 1);
----B코드---
If C < O Then {
Var1 = 1;
Var2 = Var1[1];
Var3 = Var2[1];
Var4 = Var3[1];
Var5 = Var4[1];
Var11 = Abs(C-O);
Var12 = Var11[1];
Var13 = Var12[1];
Var14 = Var13[1];
Var15 = Var14[1];
If Var1 == 1 and Var2 ==1 and Var3 ==1 and var4 == 1 and Var5 == 1 and
Var15 >= Max( Var14, Var13, Var12, Var11) Then {
Buy("A", OnClose, DEF, 1);
}
}
If C > O Then {
Var1 = -1;
Var2 = Var1[1];
Var3 = Var2[1];
Var4 = Var3[1];
Var5 = Var4[1];
Var11 = Abs(C-O);
Var12 = Var11[1];
Var13 = Var12[1];
Var14 = Var13[1];
Var15 = Var14[1];
}
---c 코드
input : CT(0); // CT(1)=양봉 O<C , CT(0)=음봉 O>C
input : N(5);
input : Zero(0);
var : TF(0),OpenV(0),CloseV(0),cnt(0),sellcond(false);
var : count11(0),count12(0),count21(0),count22(0),count31(0),count32(0);
var : A1max(0),a2max(0);
Array : D1[20](0),A1[20](0),D2[20](0),A2[20](0),CC[20](0),OO[20](0);
TF = TimeToMinutes(stime)%10;
if dayindex == 0 or (TF < TF[1] ) Then
openV = O;
//CloseV = C;
if TF == 5 Then{
if C > OpenV Then{
CC[0] = C;
OO[0] = OpenV;
D1[0] = 1;
A1[0] = abs(OpenV-C);
D2[0] = 1;
A2[0] = abs(OpenV-C);
for cnt = 1 to 19{
CC[cnt] = CC[cnt-1][1];
OO[cnt] = OO[cnt-1][1];
D1[cnt] = D1[cnt-1][1];
A1[cnt] = A1[cnt-1][1];
D2[cnt] = D1[cnt-1][1];
A2[cnt] = A2[cnt-1][1];
}
}
if CloseV < OpenV Then{
CC[0] = c;
OO[0] = OpenV;
D1[0] = -1;
A1[0] = abs(OpenV-C);
D2[0] = -1;
A2[0] = abs(OpenV-C);
for cnt = 1 to 19{
CC[cnt] = CC[cnt-1][1];
OO[cnt] = OO[cnt-1][1];
D1[cnt] = D1[cnt-1][1];
A1[cnt] = A1[cnt-1][1];
D2[cnt] = D2[cnt-1][1];
A2[cnt] = A2[cnt-1][1];
}
}
if CloseV == OpenV Then{
CC[0] = c;
OO[0] = OpenV;
D1[0] = 0;
A1[0] = abs(OpenV-C);
for cnt = 1 to 19{
CC[cnt] = CC[cnt-1][1];
OO[cnt] = OO[cnt-1][1];
D1[cnt] = D1[cnt-1][1];
A1[cnt] = A1[cnt-1][1];
}
}
}
sellcond = false;#초기값(매봉 아래수식 수행전 false로 초기화)
count11 = 0;
count12 = 0;
count21 = 0;
count22 = 0;
count31 = 0;
count32 = 0;
A1max = 0;
A2max = 0;
for cnt = 0 to N-1{
#d1 N개봉 양봉인 횟수
if D1[cnt] == 1 Then
count11 = count11+1;
#d1 N개봉 음봉인 횟수
if D1[cnt] == -1 Then
count12 = count12+1;
#d1 N개봉 도지봉이나 양봉인 횟수
if D1[cnt] >= 0 Then
count21 = count21+1;
#d1 N개봉 도지봉이나 음봉인 횟수
if D1[cnt] <= 0 Then
count22 = count22+1;
#D2 N개봉 도지봉이나 양봉인 횟수
if D2[cnt] == 1 Then
count31 = count31+1;
#D2 N개봉 도지봉이나 음봉인 횟수
if D2[cnt] == -1 Then
count32 = count32+1;
if A1[cnt] > A1max Then
A1max = A1[cnt];
if A2[cnt] > A2max Then
A2max = A2[cnt];
}
#zero가 2이면
if Zero == 2 Then{
if CT == 0 and count32 == N and A2[N-1] == A2max Then
sellcond = true;
if CT == 1 and count31 == N and A2[N-1] == A2max Then
sellcond = true;
}
if sellcond == true Then
buy("C", OnClose, DEF, 1);
SetStopProfittarget(0.0012,PointStop);
SetStopLoss(0.0040,PointStop);
2013-08-16
181
글번호 66517
답변완료
280. 이평
안녕하세요
896 단순이동평균선.을 기준선이라한다
상승돌파.는. 매수만. 하락돌파. 는 매도만한다
시가 가 896 이평 상승돌파 되어 있는경우
56. 단순이동평균선. 112. 단순이동평균선
224. 단순이동평균선. 448 단순이동평균선
에서. 각각. 1계약. 매수한다
그리고. 목표수익. 3p. 청산
시가 가 896. 이평. 하락돌파. 되어 있는경우
56. 단순이동평균선. 112. 단순이평선
224 단순이평선. 448. 단순이평선
에서 각각 1계약 매도한다
그리고 목표수익. 3p. 청산
감사합니다
2013-08-16
204
글번호 66516
답변완료
수식 업데이트 가능할까요..?
포지션 함수중에 MarketPosition 말입니다.
저 함수의 기능은 포지션의 상태를 리턴하는 것입니다.
그렇다면 제일 최근의 거래 포지션의 상태를 리턴하는 것은
MarketPosition(0) 이구요.
근데 여기서 문제가 피라미딩으로 진입된 포지션은
MarketPosition(0) 으로 잡아내지 못한다는 것입니다.
그래서 전략구현의 한계에 계속 부딪히고 있습니다.
왜 피라미딩으로 진입한 포지션은 MarketPosition(0) 에서 못잡아 내는지
이해가 안됩니다. 이 수식 업데이트 가능할까요..?
2013-08-16
188
글번호 66514
회원 님에 의해서 삭제되었습니다.
2013-08-16
9
글번호 66513
답변완료
지표 문의 드립니다.
1.옵션에서 콜풋 두 차트를 30분봉으로 두고요..
두옵션에서 고저가 같은 값이 나오면.. 시그널로 표시를 하고 싶습니다.
예를 들면.. 콜 고가 3.0 저가 2.5 이고 풋 고가 3.3 저가 2.8 이면.
각각 50틱씩이니.. 이럴때 시그널이 나오게 하고 싶습니다.
그리고 폭이 적은것과 폭이 큰것의 색깔을 지표란에 넣고 싶습니다.
폭이큰건 붉은색 폭이 적은것은 푸른색으로요..
꼭좀 부탁드립니다.
2.30분봉상에서.. 첫봉의 고저의 폭을 위로는 고가에서부터 그 폭을 긋는 라인을 만들고 싶고, 아래로는 저가의 폭을 긋는 라인을 만들고 싶습니다.
에를 들면, 콜아무개의 시초봉 고저가 3.30-3.00이다.. 그럼 위로는 3.3-3.6-3.9 이렇고
아래로는 3.0-2.7-2.4 이런식으로 라인이 그어지게 만들고 싶습니다.
부탁드립니다.. 주말 잘 보내시고요.. 감사합니다..
2013-08-16
169
글번호 66512
답변완료
문의드립니다
키움과 스토캐스틱 수치가 미세하게 다르던데 계산식이 차이가 있나요?
2013-08-16
166
글번호 66511
회원 님에 의해서 삭제되었습니다.
2013-08-16
14
글번호 66510
답변완료
문의 드림니다
틱차트(주차트 갭보정100틱 , 참조차트 갭 미 보정 100틱) 사용시 문의 드림니다
1) 참조차트 상에서 100틱종가가
전일종가+5p 보다 작고, 전일고가 보다 크고, 당일고가 -1p 보다 작고,
60이평+2p 보다 작으면 당일 10시 이후 2시 사이에 매수
2) 참조차트 상에서
100틱종가가 일봉의 5일이평보다 크면 매수
3) 다음수식을 참조차트(data2)로 변환 부탁드림니다
var1= ma(c,5)
ㄱ) close > var1+1 and close < dayhigh(1)+2
ㄴ) (dayhigh+Daylow(1))/5-close > dayopen-daylow
2013-08-16
133
글번호 66499
답변완료
문의드립니다.
예스로 변환부탁드립니다.
감사합니다.즐거운 주말 되세요
LT=LOWEST(L,P1);
HT=HIGHEST(H,P1);
NewH=VALUEWHEN(1,H>HT(1),H);
BOX1=HIGHEST(H,P1-2)<HIGHEST(H,P1-1);
TOP=VALUEWHEN(1,BarsSince(H>HT(1))==(P1-2) AND BOX1,NewH);
BTM=VALUEWHEN(1,BarsSince(H>HT(1))==(P1-2) AND BOX1,LT);
2013-08-16
183
글번호 66498