커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6674
글번호 230811
답변완료
질문
안녕하세요
첨부한그림에서보면은 250옵션콜현재가0.92에서 장시작매도신호 한번나와서 빨간동그라미에서
수동청산한것뿐인데 체결내역에는 4번이나있네요
240풋2.34가에서도 신호보다 많이 체결이 된것같읍니다
장시작후09시05분에캡처한그림입니다
그리고장시작후바로표시되는 검은동그라미2개는 무엇인지요 전일기억하고 있다가 표시하는가요
그리고전체시스템을 일시중지할려면은 어떻게합니까
2014-12-17
137
글번호 81430
답변완료
다시 질문드립니다.
안녕하세요
아래와같이 답해주셧는데
mav1 = data2(Ma(c,5));
의 계산식값은 아예 사용하지 않았구요
변수에 참조데이터를 선언한것 뿐입니다.
Vars: MAV1(0,Data2); 를요.
특이사항은 제가 틱차트를 사용한다는것이구요
참조데이터는 외국인매수금액인데 1분봉과 3분봉을 이용하게 되면
거기에따라 결과치가 증가하네요.수익이 1분<3분<5분
이런식이네요. 단지 선언만 했는데요 이렇게 되는이유가 무언가요.
======================================================================================
안녕하세요
예스스탁입니다.
Vars: MAV1(0,Data2);
mav1 = data2(Ma(c,5));
위와 같이 참조데이터를 사용하실 때는
계산식 값을 data2함수로 씌워주셔야 합니다.
변수선언에 data2를 지정하는 것은 단지 mav1변수를 이전봉을 참조(mav1[1],mav1[2])할때
data2봉을 기준으로 이전봉의 값을 가져오라는 설정입니다.
시뮬레이션 결과가 달라지시는 것은 함수의 계산식을 data2로 씌워주지 않아서 발생하는 문제인것 같습니다.
아래와 같이 계산식을 data함수로 씌워서 data2의 데이터로 이평을 계산하게 해주셔야 합니다.
mav1 = data2(Ma(c,5));
아래와 같이 작성하시면 data2의 값을 불러와 사용하지만 5라는 봉수는
data2의 봉수가 아닌 주종목 참조데이터를 합친 봉수로 계산하게 됩니다.
일반적이지 않은 작성법입니다.
mav1 = ma(data2(c),5);
즐거운 하루되세요
> 열공이삼삼 님이 쓴 글입니다.
> 제목 : 참조데이터 사용 질문드립니다.
> 안녕하셍
참조 데이터를 이용하려 고
Vars: MAV1(0,Data2),
를 넣어서 사용하였는데
봉개수 때문인지 속도가 많이 느려지고 시뮬레이션 결과값이 변하였는데요
어디가 잘못된건가요
2014-12-17
130
글번호 81429
답변완료
해외 데이 마감청산
안녕하세요.
일전에 작성해주신 수식에 데이트레이딩이므로 마감청산을 첨부하려고 하는데
몇개 수식을 작성해 보아도 의도대로 잘 안됩니다.
다음 수식에 마감청산 부분 부탁드립니다.
1) 마감청산 역시 서머타임 구분하여
2) 장종료 60분전 이후에 첫시세가 들어오면 청산
--> 장종료 / 일반 : 7시15분 , 서머타임 : 6시15분
다음은 작성해주신 수식입니다.
< 한국시간 기준 >
var : TM(0),S1(0),TM1(0),Timecond(false);
TM = TimeToMinutes(stime);
if bdate != bdate[1] Then{
S1 = stime;
TM1 = TM;
}
if S1 < 80000 and (TM >= TM1+90 or TM < TimeToMinutes(61500)-90) then
Timecond = True;
else if S1 >= 80000 and (TM >= TM1+90 or TM < TimeToMinutes(71500)-90) then
Timecond = True;
Else
Timecond = false;
var1 = ma(c,5);
var2 = ma(c,20);
if Timecond == true then{
if crossup(var1,var2) Then
buy();
if CrossDown(var1,var2) Then
sell();
}
번거롭게 해서 죄송합니다.
감사합니다.
2014-12-17
128
글번호 81425
질갱이 님에 의해서 삭제되었습니다.
2014-12-17
0
글번호 81423
답변완료
수식을 부탁드립니다.^^
안녕하세요.수식을 부탁드립니다.
현재봉 기준으로 하여, 20봉안에 골든크로스 신호가 발생된 상태이고 위 골든크로스신호후 5봉 기준으로 최저가인 경우, 매수 라는 수식을 만들고 싶은데요.
제가 미천하여 수식을 만들수 없어서 부탁을 드립니다.
감사합니다.^^
2014-12-17
132
글번호 81422
초록이 님에 의해서 삭제되었습니다.
2014-12-17
0
글번호 81421
관리자에 의해서 삭제되었습니다.
2014-12-17
19
글번호 81420
답변완료
RCI 수식
RCI의 값은 -100에서 +100사이에 분포해야 하는데, 과거에 올려주신 로직을 돌려보면 (아래참조)
input : P1(9);
var : RCI1(0),count1(0),count2(0),DD1(0);
DD1 = 0;
for count1 = 1 to P1{
for count2 = 1 to P1{
if C[count1-1] == nthhighest(count2,c,P1) Then{
DD1 = DD1+(count1-count2)^2;
}
}
}
RCI1 = (1-(6*DD1)/(P1*(P1*P1-1)))*100;
plot1(RCI1);
범위가 그 밖으로 나오는 것을 볼 수 있습니다.
첨부한 첫 화일을 예스글로벌에서 3개의 RCI를 그려본 결과입니다.
두번째 화일은 이트레이드 HTS에서 적용한 RCI의 예입니다.(-100에서 +100사이에 분포가 깔끔하게 나옵니다.)
따라서, 수식에 오류가 있는 것 같은데 수정 부탁드립니다~
2014-12-17
200
글번호 81419
답변완료
문의드립니다.
안녕하세요?
항상 도움주셔서 감사합니다.
아래의 식으로 테스트 해보니 의도하지 않는 결과가 나왔습니다.
적용조건
- 1분봉적용
전일종가 5590원이고 당일시초가 5510원 이었을 경우
그림처럼 실제계좌의 체결가격은 5510원임에도 시스템에서는 5590원으로 체결가격으로 되어
의도치 않는 3%의 손절금액 5420원에 손절되었습니다.
제가 의도하는 바는 5510원에서 3% 하락시 손절시키고 싶습니다.
input : 어제(20141215), 세시(150000), 수량(10), P(2), X(3); //시초가 진입
var : Hval(0), HH(0);
input: mult(2);
/*-----시초가 진입------*/
if sdate >= 어제 and stime == 세시 Then
{
buy("b",OnClose,def,수량);
HH = H;
Condition1 = true;
}
------중간생략---------
/*-----손절------*/
if MarketPosition == 1 then{
if highest(H,BarsSinceEntry) <= EntryPrice Then
ExitLong("Bx2",AtStop,EntryPrice*(1-X/100));
2014-12-16
146
글번호 81418