커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7669
글번호 230811
답변완료
종목검색에서 전체종목 결과값
종목검색에서 종목 전체의 결과값을 간단하게라도 구할 수 있는 기능을 차기버전에 추가하는것은 어렵나요?
find(검색된 종목 전체 일별수익율), find(검색된 종목 전체 평균), find(검색된 종목 전체 누적) 같은 기능을 넣을려면 복잡한지요?
2012-03-21
326
글번호 49165
답변완료
간단한 질문.
1.
시스템 적용시 매매 가격에서 상대호가 현재가+-1 등이 아닌
수식으로 +- 1틱 2틱을 적용 하는 식과 적용 방법을 여쭈어 봅니다.
onclose,atmarket,atstop,atlimit 주문 형태로 여쭈어 봅니다.
2.
BarsSinceExit(1) > 24 로 이전 거래와의 텀을 주려 하였으나
실시간 챠트에서 실행에서 봉개수 제한으로 인해 첫 거래가 (즉 barssinceexit 기준이 없으므로) 없으므로 계속 신호가 발생 하지 않더군요.
barssinceexit 이전 거래와 간격을 24봉으로 주는 식을 부탁드립니다.
2012-03-21
359
글번호 49164
답변완료
수식 부탁 드립니다.
수고 많으십니다.
다음식 부탁 드립니다.
Band width(60,20)에서
매도: Band Width가 고개를 들어올릴때 매도
매수: Band Width가 고개를 숙일때 매수
Band%(60,20)에서
매수:Band%가 50을 상향시 매수
매도:Band%가 50을 하향시 매도
건승을 기원합니다.
2012-03-21
380
글번호 49163
답변완료
왜 역매도 진입이후 바로 청산이 나오는 건가요?
안녕하세요..
역매도 들어가고 바로 그봉에서 청산을 해버리네여..
input : len(3.2), len1(0.34), len2(0.07);
var : cnt(0), cond1(False), cond2(False);
if dayopen > DayClose(1) Then{ ## 전종가보다 오픈가격이 높으면
var1 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - DayHigh(1);
}
if DayOpen < DayClose(1) then{ ##전종가보다 오프가격이 낮으면
var1 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - DayHigh(1);
}
if DayOpen == DayClose(1) then{ ##전종가보다 오프가격이 같으면
var1 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - DayHigh(1);
}
cond1 = false;
cond2 = false;
for cnt = 0 to 10{
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 Then
Cond1 = true;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 Then
Cond2 = true;
}
if stime < 150000 then {
if cond1 == False then{
if dayopen > var1 and MarketPosition != 1 Then{
buy("매수1", atstop, dayopen+(var1-var2)*len1);
}
If DayOpen <= var1 and DayOpen>=var2 Then{
if daylow < var2 and high <var2+(var1-var2)*len1 Then{
buy("역매수",atstop, var2+(var1-var2)*len2);
}
}
if dayopen < var2 Then{
buy("매수4", atstop, var2);
}
}
if cond2 == False and MarketPosition != -1 then{
if dayopen > var1 then{
sell("매도1",atstop, var1);
}
if DayOpen <= var1 and DayOpen >= var2 Then {
if DayHigh>var1 and low < var1- (var1-var2)*len1 then {
sell("역매도", AtStop, var1-(var1-var2)*len1);
}
}
if dayopen <var2 Then{
sell("매도", atstop, dayopen-(var1-var2)*len1);
}
}
}
if MarketPosition <>0 Then {
exitlong("매수청산", atstop, Highest(H,BarsSinceEntry+1)-atr(20)*len);
exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry+1)+atr(20)*len);
}
SetStopEndofday(150400);
2012-03-20
358
글번호 49162
답변완료
거듭 감사드립니다~
바쁘 실텐데 번거롭게 해드려서
거듭 감사 인사 올립니다.
== 꾸 뻑 ==
2012-03-20
368
글번호 49159
river 님에 의해서 삭제되었습니다.
2012-03-20
2
글번호 49156
답변완료
감사합니다
감사합니다. === 꾸 뻑 ===
2012-03-20
361
글번호 49155
답변완료
다른점..
안녕하세요..
한방향으로 한번만 진입하도록 제가
포지션이 있으면 카운터를 넣어서 해보려고 했는데
가르쳐 주신 방법과 다르네요..
카운터를 넣어서 하는방법이 왜 다른결과 가 나오는지 첫번째와
두번째 시스템 비교부탁 드립니다.
첫번째
input : len(3.2), len1(0.34);
var : cond1(False), cond2(False), ccc1(0), ccc2(0);
if dayopen > DayClose(1) Then{ ## 전종가보다 오픈가격이 높으면
var1 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - DayHigh(1);
}
if DayOpen < DayClose(1) then{ ##전종가보다 오프가격이 낮으면
var1 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - DayHigh(1);
}
if DayOpen == DayClose(1) then{ ##전종가보다 오프가격이 같으면
var1 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - DayHigh(1);
}
if date <> date[1] then{
ccc1 = 0;
ccc2 = 0;
}
if stime < 150000 then {
if ccc1<1 then{
if dayopen > var1 Then{
buy("매수1", atstop, dayopen+(var1-var2)*len1);
if MarketPosition <> 0 then
ccc1 = ccc1+1;
}
if dayopen < var2 Then{
buy("매수4", atstop, var2);
if MarketPosition <> 0 then
ccc1 = ccc1+1;
}
}
if ccc2 <1 then{
if dayopen > var1 then{
sell("매도1",atstop, var1);
if MarketPosition <> 0 then
ccc2 = ccc2+1;
}
if dayopen <var2 Then{
sell("매도", atstop, dayopen-(var1-var2)*len1);
if MarketPosition <> 0 then
ccc2 = ccc2+1;
}
}
}
if MarketPosition <>0 Then {
exitlong("매수청산", atstop, Highest(H,BarsSinceEntry+1)-atr(20)*len);
exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry+1)+atr(20)*len);
}
SetStopEndofday(150400);
두번째
input : len(3.2), len1(0.34);
var : cnt(0), cond1(False), cond2(False);
if dayopen > DayClose(1) Then{ ## 전종가보다 오픈가격이 높으면
var1 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - DayHigh(1);
}
if DayOpen < DayClose(1) then{ ##전종가보다 오프가격이 낮으면
var1 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - DayHigh(1);
}
if DayOpen == DayClose(1) then{ ##전종가보다 오프가격이 같으면
var1 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - DayHigh(1);
}
cond1 = false;
cond2 = false;
for cnt = 0 to 10{
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 Then
Cond1 = true;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 Then
Cond2 = true;
}
if stime < 150000 then {
if cond1 == False then{
if dayopen > var1 and MarketPosition != 1 Then{
buy("매수1", atstop, dayopen+(var1-var2)*len1);
}
if dayopen < var2 Then{
buy("매수4", atstop, var2);
}
}
if cond2 == False and MarketPosition != -1 then{
if dayopen > var1 then{
sell("매도1",atstop, var1);
}
if dayopen <var2 Then{
sell("매도", atstop, dayopen-(var1-var2)*len1);
}
}
}
if MarketPosition <>0 Then {
exitlong("매수청산", atstop, Highest(H,BarsSinceEntry+1)-atr(20)*len);
exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry+1)+atr(20)*len);
}
SetStopEndofday(150400);
2012-03-20
452
글번호 49154
육각파동 님에 의해서 삭제되었습니다.
2012-03-20
20
글번호 49146