커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6666
글번호 230811
답변완료
검토 부탁드립니다.
진입 조건을 봐주십시요.
-시초가가 전일 종가대비 -1~+5%이하이면, 피봇 기준선 +3틱에서 매수가 되어야 하는데...
시초가가 +1%인데도, 전일 종가를 하향할 때 매수가 되어버립니다.
=========================
<진입조건>
-진입시간 09:00~09:30
-진입 1일 1회로 제한(하루에 2번 진입 안되게)
-주가는 시초가 대비 +4%이상 상승하지 않아야 함
-시초가가 전일 종가대비 -1%~+5%이하이면, "피봇기준선 +3틱"이하로 하락시, 이후 첫봉에 진입
-시초가가 전일 종가대비 +5%초과이면, 전일 종가보다 하락시, 이후 첫봉에 진입
var : cnt(0),count(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
var : xVol1(0),xvol2(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
count = 0;
for cnt = 0 to 20{
if EntryDate(cnt) == sdate Then
count = count+1;
}
if stime >= 090000 and stime < 093000 and ExitDate(1) != sdate and dayhigh < dayopen*1.04 Then{
if dayopen >= DayClose(1)*0.99 and dayopen < DayClose(1)*1.05 Then
buy("b1",AtStop,Pivot+PriceScale*3);
if dayopen >= DayClose(1)*1.05 Then
buy("b2",AtStop,DayClose(1));
}
if MarketPosition == 1 Then{
if CodeCategoryEx == 11 and BasePrice < 50000 Then{
xvol1 = int(int(CurrentContracts*(1/3))/10)*10;
xvol2 = int(int(CurrentContracts*(1/2))/10)*10;
}
Else{
xvol1 = int(CurrentContracts*(1/3));
xvol2 = int(CurrentContracts*(1/2));
}
exitlong("bp1",atlimit,EntryPrice*1.06,"",Xvol1,1);
exitlong("bp2",atlimit,EntryPrice*1.07,"",Xvol2,1);
exitlong("bp3",atlimit,EntryPrice*1.08);
if Highest(H,BarsSinceEntry) >= EntryPrice*1.05 Then
exitlong("btr",AtStop,highest(H,BarsSinceEntry)-(highestSetStopEndofday(140000);
(H,BarsSinceEntry)-EntryPrice)*0.3);
exitlong("bl",AtStop,EntryPrice*0.955);
if stime == 100000 and DayVolume >= DayVolume(1)*0.8 Then
ExitLong("bx");
}
SetStopEndofday(140000);
2015-01-18
158
글번호 82353
답변완료
문의 드립니다`~
연결선물5분봉 에서 시초 10분후
1.선물은 외인이 기관과 개인보다 매수금액이 크고, 현물은 외인이 기관과 개인보다
매수금액이 크고, 콜옵션은 기관이 외인이나 개인보다 매수금액이 크면 매수신호발생
-기관 콜옵션 매수금액이 개인보다 작아지면 청산
2.선물은 외인이 기관과 개인보다 매도금액이 크고, 현물은 외인이 기관과 개인보다
매도금액이크고 풋옵션은 기관이 외인과 개인보매 매수금액이 크면 매도신호발생
-기관 풋옵션 매수금액이 개인보다작아지면 청산
---가능할런지요?
2015-01-18
159
글번호 82352
답변완료
Begin~End 구문 사용법 문의
문장 중에 Begin, end 로 일부구간을 제한하고 싶은데요
아래 문장에서 Exit long이 제대로 작동하지 않는 이유를 알고 싶습니다.
문장이 틀린 곳은 없는지요
If crossup(RSI(14),30) and MA(c,200) < C then
Begin;
Buy ();
If entryprice > C then
Exitlong();
End;
If crossup(RSI(14),30) and MA(c,200) > C and highest(c,1000)*0.8 < C then
Buy();
2015-01-18
181
글번호 82351
답변완료
지표식수정부탁드립니다.
안녕하세요 수정부탁드립니다.
상승시 적색
하락시 청색 으로 수정부탁합니다.
#==========================================#
# 지표명 : 지그재그파동(변동률)
# 작성자 : 수식지왕
# 블로그 : http://yahoosir.blog.me
#==========================================#
Input:chngRate(1);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),TLL2(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
// 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
// 고점조건 = 현재 봉의 고가가 저점대비 변동률만큼 더한 값보다 위로 올라갔을 때;
// 저점조건 = 현재 봉의 저가가 고점대비 변동률만큼 뺀 값보다 밑으로 빠졌을 때;
// if 고점조건 만족하면 고점 갱신;
// if 저점조건 만족하면 저점 갱신;
Condition1 = Min(valArr[1],valArr[2]) * (1 + (chngRate/100)) < H and lastHiVal < H;
Condition2 = Max(valArr[1],valArr[2]) * (1 - (chngRate/100)) > L and (lastLoVal > L || lastLoVal == 0);
If Condition1 Then { lastHiVal = H; lastLoVal = 0; }
If Condition2 Then { lastLoVal = L; lastHiVal = 0; }
// 전환점구분 null값으로 초기화;
turnPntBit = "";
// if 고점조건, 저점조건 동시 만족시 then
// if 이전 고점,저점 범위를 모두 벗어났을 때
// 전환점구분 = 고저점;
// else if 이전 고점을 갱신했다면 전환점구분 = 고점;
// else if 이전 저점을 갱신했다면 전환점구분 = 저점;
// else if 고점조건 만족하면 전환점구분 = 고점;
// else if 저점조건 만족하면 전환점구분 = 저점;
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과
If turnPntBit <> "" Then
{
// if 전환점구분이 고저점이면 then
// 이전 파동은 연장시키고 아래에서 새로이 파동선을 추가토록 한다.
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
// if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then
// 배열값들을 이전값으로 Move;
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
// if 전환점구분이 바뀌었거나 또는
// (전환점구분은 안바뀌었는데
// (이전 고점보다 높은 고점이 발생했거나 또는
// 이전 저점보다 낮은 저점이 발생했으면)) then
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
// 값 배열에는 고점 또는 저점을 대입;
// 봉개수 배열에는 0값 대입;
// 전환점 배열에 전환점구분값을 대입;
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
// if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고;
// else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,4);
TL_SetColor(TL1,GREEN);
2015-01-18
207
글번호 82350
답변완료
이렇게 만들면 신호가 제대로들어가나요
if value1 > value2 and value2 > value3 Then
{
con1=1
Else
con1=0
}
If value4 > 25 and value4 > value5 Then
{
con2=1
Else
con2=0
}
If con1+con2 == 2 Then
{
buy();
}
If con1+con2 <= 1 Then
{
exitlong();
}
조건을 만족시에 con1 con2에 1값을 부여하고 아닐시 0을 부여해서
2개이상 조건만족시 바이포지션을
만약 만족못할시 포지션 청산을 하거나 무포로 가게하려고합니다.
조건이 되게 많아서 저런식으로 짜려고하는데 맞게하고잇나요?
2015-01-18
175
글번호 82349
.
/.
2015-01-18
117
글번호 82348
답변완료
문의합니다
1분봉에서 차트의 봉이 30개의 저가와 고가를 표시하고
이 저가와 고가 사이의 50%를 표시하고
저가가 고가보다 먼저 형성이 되었으면 150%와 200%를 표시하고
고가가 저가보다 먼저 형성이 되었으면 -150%(저가 밑으로 150%)와 -200%(저가 밑으로 200%)를 표시한다.
부탁합니다.
2015-01-17
146
글번호 82347
답변완료
문의드립니다.
배열을 보고 있는데 이해안가는 부분이 있습니다.
첨부파일에 있는 수식에서
Frame < Frame[1] 과
Hval[count-1][1];
에서 뒤의 [1]은 왜 붙이는 건가요?
Frame은 배열이아니고
Hval은 왜 뒤에 하나 더 붙는거죠?
2015-01-17
169
글번호 82346
답변완료
문의드립니다.
항상 감사드립니다. 꾸벅(--)(__)
당일 선물 복합차트에 다음선들을 나타나게 하고 싶습니다.
1. 전일 주간선물 시.고.저.종가선
2. 전일 야간선물 시.고.저.종가선
2015-01-17
150
글번호 82345