커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7438
글번호 230811
답변완료
문의
input : Period(100);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Input : PercentRLen(10), OverSold(10), OverBought(90), BTrigger(62), STrigger(38),당일수익(90);
Var : PcntR(0), AvgValue(0), BSetup(False),Ssetup(False),NP(0),PreNP(0),dayPL(0),profit(0),T(0);
Lowval= Lowest(Low, Period+1);
Highval = Highest(High, Period+1);
For counter= 0 To Period {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period-DownVel)/Period;
UpAroon = 100*(Period-UpVel)/Period;
if UpAroon >= 30 or DnAroon >= 30 Then{
if crossup(dnaroon , uparoon) Then
buy("반대매수");
if crossup(uparoon , dnaroon) Then
sell("반대매도");
}
if UpAroon <= 30 or DnAroon <= 30 Then{
if crossup(dnaroon , uparoon) Then
Sell("매도");
if crossup(uparoon,dnaroon) Then
Buy("매수");
}
위식에서 crossup 해서 교차한 시점이 30 이하 나 이상일때 매수 매도 진입할수있게하고싶습니다.
교차할때 값을 구해서 그값이 30 이하 OR 이상일때 진입할수있도록 입니다
#########################################################
아래식에서 포지션 진입후 예로 매수 진입했으면 청산신호가 나올시에
손실중이면 청산하지 말고 진입가 + 2틱 일때 청산하게 해주세요 단: 대장매수,,대장매도 신호가 나오면 손실중이라도 무조건 청산하게 하고요
input : b_time1(000000),e_time1(240000),목표청산1(3);
input : stoK_p11(150),stoK_p12(250),stoK_p13(10);
input : ma_p11(15),ma_p12(3),ma_p13(5),ma_p14(10),ma_p15(10),ma_p16(20),ma_p17(15); # 이부분에서 ma_p13(15),ma_p17(15)
input : sto1(10),sto2(6);
Var:stoK1(0),stoD1(0),TRIXv(0),TRIXsig(0),stok2(0),T(0);
stok2 = StochasticsK(sto1,sto2);
If b_time1 <= Time and Time <= e_time1 Then
{
stoK1 = StochasticsK(stoK_p11,stoK_p12);
stoD1 = StochasticsD(stoK_p11,stoK_p12,stoK_p13);
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
T = 1;
if MarketPosition == -1 Then
ExitShort("대장매수");
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
T = -1;
if MarketPosition == 1 Then
ExitLong("대장매도");
}
}
if T == 1 then{
if countif(stok2>stok2[1],2) == 1 and stok2[1] < 30 Then
buy("매수");
if countif(stok2<stok2[1],2) == 1 and stok2[1] > 70 Then
ExitLong("매수청산");
}
if T == -1 then{
if countif(stok2<stok2[1],2) == 1 and stok2[1] > 70 Then
sell("매도");
if countif(stok2>stok2[1],2) == 1 and stok2[1] < 30 Then
ExitShort("매도청산");
}
2015-12-16
144
글번호 93448
큰바위얼굴 님에 의해서 삭제되었습니다.
2015-12-15
0
글번호 93447
답변완료
문의드립니다.
안녕하세요.
위 그림처럼 선물 분봉차트에서
당일을 포함한 n일 간에
첫번째 그림의 저점에서 고점을 찍고 하락할 때
1. 고점~저점 사이의 최저점 HL
2. 고점~저점의 0.5라인, 0.618라인을 구하는 수식
두번째 그림의 고점에서 저점을 찍고 상승할 때
1. 저점~고점 사이의 최고점 LH
2. 저점~고점의 0.5라인, 0.618라인을 구하는 수식에서
위 두가지 상황이 어느 것이 나오든지 적용할 수 있는 수식을 알려주세요.
수고하세요.
2015-12-15
189
글번호 93446
답변완료
문의드립니다
1.
input : 고점(265),저점(264);
var1 = 고점-저점;
plot1(고점+var1*1.000);
plot2(고점+var1*0.618);
plot3(고점+var1*0.236);
plot4(고점);
plot5(저점+var1*0.724);
plot6(저점+var1*0.618);
plot7(저점+var1*0.500);
plot8(저점+var1*0.382);
plot9(저점+var1*0.236);
plot10(저점);
plot11(저점-var1*0.236);
plot12(저점-var1*0.618);
plot13(저점-var1*1.000);
.....................................................
상기지표 적용할때 마다 직접 지표 적용 시작 시간과 종료시간을 넣을 수 있도록 해주세요
즉 현재 상기 지표의 변수를 보면
고점과 저점을 직접 입력할 수 있게 되어 있는데
이 변수항에 고점도 특정시간대 부터의 고점
저점 역시 특점 시간대의 저점 이렇게 입력할 수 있도록 ..
즉 시간대도 입력할 수 있도록 바꾸어 주세요
(아니면 언제 이후 부터의 저점 고점 이렇게라도)
특정 시간대의 고점과 저점을 적용시키고 싶은데 상기 지표로는 그게 안되서 그럽니다
참 틱봉도 가능하다면 그렇게 해주세요
2.
저점먼저 고점 나중에 찍을 경우
input : 고점(265),저점(264);
var1 = 고점-저점;
plot1(고점);
plot2(고점-var1*0.236);
plot3(고점-var1*0.382);
plot4(고점-var1*0.500);
plot5(고점-var1*0.618);
plot6(저점);
plot7(저점-var1*0.236);
고점먼저 저점 나중에 찍을 경우
input : 고점(265),저점(264);
var1 = 고점-저점;
plot1(고점+var1*0.236);
plot2(고점);
plot3(저점+var1*0.618);
plot4(저점+var1*0.500);
plot5(저점+var1*0.382);
plot6(저점+var1*0.236);
plot7(저점);
...............................................................................
2번 지표 역시 1번 지표 처럼 변수에 특정 시간대를 입력 할 수 있도록 해주세요
감사합니다
2015-12-15
170
글번호 93438
답변완료
지표 문의 드립니다
해보다가 잘 안되서 문의 드립니다..
첨부파일에
1. 그림1번 sa=ma(c,4)를 넘으면 그림2번에 sa가 깨질 때까지에 최고값 H를 구하고
2. crossdown(종가) 되면 ii=1, H를 넘어버리면 전부 초기화,
3. 안 넘고 ii=1 상태에서 다시 그림 3번에 crossup(종가)할때 까지에 최저점 L를 구해서
(이때 crossup은 그림A처럼 L를 깨지 않은 상태에서 crossup-->crossdown-->crossup 하면 true로)
4. true 상태에서 L를 깨면 ii=2 (그럼4번)
5. ii=2 상태에서 다시 그림 5번에 crossup(종가)할때 까지에 최저점 L2를 구해서
(이때 crossup은 B처럼 L2를 깨지 않은 상태에서 crossup-->crossdown-->crossup 하면 true2로)
4. true2 상태에서 L2를 깨면 ii=3번(그럼6번)
5. ii=3 상태에서 다시 7번에 crossup(종가)하면 true3 신호 발생
5. 그림2번에 H를 넘으면 전부초기화는 공통
도움주셔서 정말 감사합니다..
2015-12-15
200
글번호 93437
답변완료
수식 부탁드립니다
안녕하세요
macd 값으로 스토캐스틱을 구하는 지표를 만들어주셨는데
시스템 수식도 부탁드립니다
1. 매수
스토k값이 20이하이고 d값과 골들크로스
or 스토k값이 20 돌파
2. 매수청산
스토 k값이 20이탈. or 데드크로스
3. 매도
스토k값이 80 이상에서 데드크로스
or 스토k 80선이탈
4. 매도청산
골든크로스 or 80선 돌파
-----------------
아래식은 작성해주신 지표식입니다
input : short(12),Long(26),sto1(10),sto2(5),sto3(5);
var : MACDV(0),HH(0),LL(0),FK(0),sk(0),sd(0);
MACDV = MACD(short,long);
LL = Lowest(MACDV, sto1);
HH = Highest(MACDV, sto1);
FK = (MACDV - LL) / (HH - LL) * 100;
SK = ema(FK,sto2);
SD = ema(SK,sto3);
plot1(SK,"slowk");
plot2(SD,"slowd");
PlotBaseLine1(20);
PlotBaseLine2(80);
2015-12-15
181
글번호 93436
답변완료
다시 문의 드립니다
안녕하세요
예스스탁입니다.
텍스트 출력함수를 이용하시면 됩니다.
var : TL28(0),Tx28(0);
TL_Delete(TL28);
TL28 = TL_New(sdate[1],sTime[1],c,sdate,stime,c);
TL_SetSize(TL28,4);
TL_SetExtRight(TL28,true);
#TL_SetExtleft(TL28,true);
TL_SetColor(TL28,rgb(255,0,128));
#텍스트출력
Text_Delete(Tx28);
Text_New(sdate,stime,C,NumToStr(c,2));
즐거운 하루되세요
다시 문의 드립니다
첫째..차트 위에 지수 택스트가 쓰여지고
우측에는 쓸수가 없는거죠
둘째 질문은
여러개의 옵션 차트를 이용해서 가공 하려고 합니다
DATA1 DATA2 DATA3 DATA4 ...
등등 이용할 경우 차트를 분할로 선택해서 각 부분에 옵션을 뛰우고
DATA를 불러오면 되는가요
그렇다면 DATA1,DATA2... 어떻게 결정되는가요
> 빨간봉 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> TL_Delete(TL28);
TL28 = TL_New(sdate[1],sTime[1],c,sdate,stime,c);
TL_SetSize(TL28,4);
TL_SetExtRight(TL28,true);
#TL_SetExtleft(TL28,true);
TL_SetColor(TL28,rgb(255,0,128));
위와 같이 작성해 주신 수식에서
지수 등락 표시와 같이 우측에 지수값을 표시 할수는 없는지요
2015-12-15
166
글번호 93435
답변완료
부탁드립니다
45505에 여쭌 신시가, 신고가, 신저가를 사용자함수에 저장해놓고 쓰려면 사용자함수에는 뭐라고 적어야 하는지요.
또한 답변에서 OO=O; 라고 되어있는데 혹시 OO=C;라고 해야 하지는 않는지요.
부탁드립니다.
2015-12-15
152
글번호 93434
답변완료
수식 추가 부탁드립니다
1)파라볼릭 하단선 종료위치와 파라볼릭 상단선 시작위치의 중간 위치를 수평으로 그린다
2)파라볼릭 하단선 종료위치와 파라볼릭 상단선 시작위치의 상향 대칭 위치를 수평으로 그린다
3)파라볼릭 하단선 종료위치와 파라볼릭 상단선 시작위치의 하향 대칭 위치를 수평으로 그린다
4)파라볼릭 하단선 종료위치와 파라볼릭 중간선 하향 대칭 위치를 수평으로 그린다
5)파라볼릭 하단선 시작위치와 파라볼릭 상단선 종료위치의 중간 위치를 수평으로 그린다
6)파라볼릭 하단선 시작위치와 파라볼릭 상단선 종료위치의 상향 대칭 위치를 수평으로 그린다
7)파라볼릭 하단선 시작위치와 파라볼릭 상단선 종료위치의 하향 대칭 위치를 수평으로 그린다
8)파라볼릭 상단선 종료위치와 파라볼릭 중간선 상향 대칭 위치를 수평으로 그린다
9)파라볼릭 상단밴드 시작위치부터 종료위치까지 중간 위치를 수평선으로 그린다
10)파라볼릭 하단밴드 시작위치부터 종료위치까지 중간 위치를 수평선으로 그린다
11)파라볼릭 상단밴드 시작위치부터 종료위치까지 폭을 시작위치 위로 상향 대칭선을 그린다
12)파라볼릭 하단밴드 시작위치부터 종료위치까지 폭을 시작위치 아래로 하향 대칭선을 그린다
감사합니다
2015-12-15
253
글번호 93433