커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1541
글번호 230811
답변완료
문의드립니다
1분봉차트입니다
if NextBarSdate != sDate and C > LatestEntryPrice(0)*1.1 Then
Buy("b4",OnClose);
해석 : 그날의 마지막 분봉(15시31분봉)이 완성되는 순간 = 동시호가 끝나며 장이 마감되는 순간
종가가 이전 진입가의 10% 이상이 되면
매수주문을 넣는데, 이미 장은 마감되었으므로
1. 즉시 미체결로 넘어가서 미체결로 조회됨 (차트에서 화살표 신호 남음)
미체결로 남아있어도,
장 후 시간외 종가거래와는 아무 상관 없이 계속 미체결임
2. 즉시 미체결로 넘어가서 미체결로 조회됨 (차트에서 화살표 신호 남음)
미체결로 남아있으니,
장 후 시간외 종가거래때 거래 상대자가 있으면 거래될 수도 있음
3. 아예 시스템상에서 주문조차 들어가지 않아서, 미체결도 남지 않고 사라져버림
(차트에 화살표 신호도 없음)
이 중에 어떤게 맞을까요~?
2023-04-25
1149
글번호 168458
답변완료
자동주문 관련
해외선물 거래를 합니다.(이베스트 투자증권)
전략 실행차트에서 자동매매를 실행을 하는데,건수를 10000바(최대가 10000바라..)에 두고, 매매를 합니다. 일반적으로 3일정도 단기 스윙트레이딩을 합니다.
매도(매수)진입--매도(매수) 청산(스위칭은 없습니다)
input : 이평1(30),이평2(60),이평3(120),이평4(240);
input : 윌리엄스R기간값(14);
input : 손절틱수(100),트레일링스탑틱수(5),목표틱수(100);
var : mav1(0),mav2(0),mav3(0),mav4(0),WR(0);
MAV1 = MA(c,이평1);
MAV2 = MA(c,이평2);
MAV3 = MA(c,이평3);
MAV4 = MA(c,이평4);
WR = WILLR(윌리엄스R기간값);
if MarketPosition == 0 and c < mav4 and CrossDown(WR, -20) Then
Sell("s");
if MarketPosition == -1 Then
{
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*목표틱수 Then
{
if CrossUp(C,mav2) Then
ExitShort("sx");
ExitShort("str",AtStop,EntryPrice-PriceScale*트레일링스탑틱수);
}
}
SetStopLoss(PriceScale*손절틱수,PointStop);
시스템 시작시 진입은 되어 있지 않는데, 이전 신호로 청산이 되지 않아서 매도신호유지로
나오고, 24일 지표상은 매도 진입 신호(윌리암신호) 가 나왔는데도 시스템에서는
신호가 나오지도 않고, 진입주문이 되지 않네요..
시스템 설정에서 주문시작신호를 진입신호에 체크 하였습니다.
.
시스템 시작전 신호가 유지 되는 이유는 손절틱수와 목표틱수에 도달하지 못해서
입니다.
24일 이전은 시스템을 돌리지 않았습니다..
보통 자동매매를 시작을 하려고 할때 시스템 상의 신호가 매도진입신호가 유지되고 있고
(실제 계좌에는 진입이 되어 있지 않고, 이전은 하지 않음), 청산신호가 나오지 않고 있는 경우는 현재 지표상 매도 진입 신호가 나와도 진입을 하지 않나요?
만약에 안된다면 어떻게 해야 되나요?
즉, 제가 원하는 것은 언제 시작을 하던지 시스템을 전략실행차트에 적용을 하는 순간부터
시스템 시작전 신호는 무시하고,진입과청산이 적용이 되기를 원하는 것입니다..
(스윙트레이딩이라 바수를 작게 할수는 없습니다)
* 전략실행차트에 나오지 않으면은 시스템이 적용이 되지 않나요?
(보통 장기이평을 사용을 하는데, 건수를 적게하면 나타나지 않습니다)
* 진입이 되어 있는 상태에서 목표수익과 손절틱수를 변경을 하거나 진입 조건(기간값)을
변경을 하면은 변경조건으로 청산 후 변경된 진입 조건으로 진입이 되나요?
* 시장 상황이 변하면 시스템을 변경을 하는데, 시스템을 시작하기전 신호때문에
진입이 안된다면은 좀 문제가 있을거 같은데, 꼭 해결방안을 알려주시기 바랍니다.
(예스 스팟이 아닌 예스 트레이더(예스랭귀지)에서 해결을 할 수 있는 방안을 알려주시면 감사하겠습니다)
2,해외선물은 만기일이 있는데, 만기일에 수동으로 청산을 하고, 시작일에 차월물로
수동으로 진입을 할 경우 위의 시스템으로 자동으로 청산을 하는 수식 좀 부탁드립니다.
수고하세요.
2023-04-25
1407
글번호 168457
답변완료
도움부탁드립니다
안녕하세요.
수식1:M1=ma(가격,period1,종류);
M2=ma(가격,period2,종류);
d1=Crossup(M1,M2);
d2=Crossdown(M1,M2);
Valuewhen(1,date>=날짜 and (d1 or d2),M2)
조건설정:가격(종가)
period1(5)
period2(20)
날짜:매일변경 가능하도록.
라인색상:노랑색
라인굵기:병경가능하도록.
period1(5) 라인과period(20)라인 골드크로스,데드크로스 일때 각각 점으로 표시가능한요.
가능하시면 점 크기변경 가능하도록
부탁드립니다.
2023-04-24
1187
글번호 168456
답변완료
문의 드립니다!
안녕하세요!
아래수식은 제가 현재 옵션챠트에서 사용중인 수식인데요
*data1은 콜 data2는 풋으로 설정하여 조건 만족시 세로선 발생
이 수식을 수정하여 아래와같이 국선챠트에서 활용해보고자 합니다
1, data1(기본챠트)는 국선1분봉, data2,3(참조챠트)는 각각 콜 풋을 설정
2, data2, 3에 수식을 적용하여 조건 만족시 data1에서 가로선 발생
1) 이 가로선이 기존 data1,2의 고가 저가선(4개선)모두가 아닌 조건이 만족되는 해당선 1개만 N봉전
(예: 10봉전)에 미리 발생
*** 여기서 n봉전이라함은 이 가로선이 발생되는 시점을 말하고 가로선 자체는 n봉전을 적용하지않은 원래의 자리에서 발생
2) 즉, 기존수식에서 세로선이 나오는 같은 위치에 위 조건1)의 가로선이 n봉전에 미리 발생되었으면하는것입니다
*** 가로선의 두께와 색상도 사용자설정이 가능토록 부탁드립니다
3, 만약에 위수식이 불가하고, 현재대로 옵션챠트에서 data1, 2를 콜풋으로 설정할경우에 가능하다면 이것으로라도 부탁드리겠습니다
도움에 항상 감사드립니다!!!
----------------------------------------------------
input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5);
var : cond11(false,data1),cond21(false,data1);
var : cond12(false,data1),cond22(false,data1);
var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1);
plot1(data1(highD(0)),"data1고가");
plot2(data1(LowD(0)),"data1저가");
plot3(data2(highD(0)),"data2고가");
plot4(data2(LowD(0)),"data2저가");
cond11 = data2(highD(0)) >= data1(highD(0)-PriceScale*1);
cond21 = data1(lowD(0)) <= data2(lowD(0)+PriceScale*1);
cond11 = data1(highD(0)) >= data2(highD(0)-PriceScale*1);
cond21 = data2(lowD(0)) <= data1(lowD(0)+PriceScale*1);
if sTime >= 90300 and Cond11 == true and cond11[1] == false Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL1,White);
TL_SetSize(TL1,굵기1);
}
if sTime >= 90300 and Cond21 == true and cond21[1] == false Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL2,black);
TL_SetSize(TL2,굵기2);
}
cond12 = data2(LowD(0)) <= data1(lowD(0)+PriceScale*1);
cond22 = data1(highD(0)) >= data2(highD(0)-PriceScale*1);
cond12 = data1(LowD(0)) <= data2(lowD(0)+PriceScale*1);
cond22 = data2(highD(0)) >= data1(highD(0)-PriceScale*1);
if sTime >= 90300 and Cond12 == true and cond12[1] == false Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL3,White);
TL_SetSize(TL3,굵기3);
}
if sTime >= 90300 and Cond22 == true and cond22[1] == false Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL4,black);
TL_SetSize(TL4,굵기4);
}
2023-04-24
1023
글번호 168455
답변완료
81809 재질문
안녕하세요.
아래와 같이 작성해주셨었는데.
if entry1 == False and (CrossUp(line1, line2) or CrossDown(line1, line2)) Then
여기서 crossup과 crossdown에 상관없이 시작시간인 213000에 무조건 진입하네요.
그리고 마지막의 청산시 entry1과 entry2를 False로 만드는 과정도 잘 안먹히는지 한번 진입/청산 후 종료가 됩니다.
해결 부탁드리겠습니다.
input : 익절틱수(100),손절틱수(50), 진입틱수(50);
input : tr_onoff(1),최소수익(50),감소수익(50);
var : line1(0),line2(0);
var : entry1(False),entry2(False);
input : StartTime(213000),EndTime(055000);
var : Tcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
line1 = (H+L)/2;
line2 = ma(C,60);
if entry1 == False and (CrossUp(line1, line2) or CrossDown(line1, line2)) Then
{
var1 = line1;
entry1= True;
}
if entry1 == True and entry2 == False and c> var1 + 진입틱수*PriceScale and Tcond == true Then
{
Buy("b");
entry2 = True;
}
if entry1 == True and entry2 == False and c < var1 - 진입틱수*PriceScale and Tcond == true Then
{
Sell("s");
entry2 = True;
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if tr_onoff == 1 Then
SetStopTrailing(PriceScale*감소수익,PriceScale*최소수익,PointStop);
if TotalTrades > TotalTrades[1] Then
{
entry1 == False;
entry2 == False;
}
2023-04-24
1011
글번호 168454
답변완료
재 질문드립니다
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
답변 감사드립니다~~
제가 안되는 부분은~~(매수나매도) <2청산>을 하고나면 (조건상 때문에)곧바로 1진입이
실행되는 까닥에 1진입은 2청산후에 실행시키되(조건수치로 제어할예정)~~
이전 청산거래가없는 챠트상의 첫거래 신호도 나오도록 부탁드립니다~~
앞전에 답문 수식을 응용했더니 백지로나와 실패해서 부탁드림
또하나 안되는것은 <2청산을> 이번 답문처럼 했음에도(1번식도하고 2번식도하고)~~~~
1진입후 손실 -20틱 이상이 되었을때만을 지정했음에도~~
수익이 났는 곳에서도 <2청산이> 되어~~제가 잘못한것이 있나해서
이 두가지 문제로 질문 올렸으니 (손실)이문제도 한번더 검토 부탁드립니다~~
~~~~~~~~~~~~~~~~~~~매수~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if MarketPosition == 0 Then
{
( 1-2청산후와 챠트상 첫거래)
if 단기 > 단기[100] and C / 단기 * 100 > 100 Then
Buy("매수1진");
if MarketPosition(1) == 1 and
(IsExitName("매수1청",1) == true or IsExitName("매수2청손",1) == true) and
단기 > 중기[100] Then
Buy("매수2진");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if MarketPosition == 1 Then
{
if 단기 < 단기[100] Then
ExitLong("매수1청");
if C <= EntryPrice-PriceScale*20 and 단기 < 단기[50] Then
ExitLong("매수2청손");
}
if MarketPosition == -1 Then
{
if 단기 > 단기[100] Then
ExitShort("매도1청");
if C >= EntryPrice+PriceScale*20 and 단기 > 단기[50] Then
ExitShort("매도2청손");
}
~~~~~~~~~~~~~~~~~~~매도~~~~~~~~~~~~~~~~~~~~~~~~~~~
( 1-2청산후와 챠트상 첫거래)
if 단기 < 단기[100] and C / 단기 * 100 < 100 Then
Sell("매도1진");
if MarketPosition(1) == 1 and
(IsExitName("매수1청",1) == true or IsExitName("매수2청손",1) == true) and
단기 < 중기[100] Then
Sell("매도2진");
번거롭게해서 죄송합니다~~~
2023-04-24
818
글번호 168445
답변완료
추가진입상황에서 BarsSinceEntry 함수 쓰기
안녕하세요,
BarsSinceEntry를 이용해 추가진입의 간격을 특정 구간으로 벌리려고 하는데, 작동이 되지 않아 문의드립니다. 스크립트에 문제 있는지 확인 부탁드립니다.
If COND == 1 AND MarketPosition > 0 AND BarsSinceEntry(0) > n Then
{
If COND2 == 1 AND CountIf(Ind > Ind [1], 2) == 2 Then
{
Buy("B4", OnClose, Def, 1);
}
...
}
2023-04-24
707
글번호 168441
답변완료
부탁좀 드려요~
안녕하세요~
키움식인데, 예스검색으로 부탁좀 해도 될까요?
A 주가등락률:[일]1봉전(중) 종가대비 0봉전 종가등락률 0.3%이상
B 가격-이동평균 비교:[일]0봉전 (종가 10)이평 < 종가
C 가격-이동평균 비교:[일]0봉전 (종가 10)이평 > 시가
D 이평이격도[일]0봉전(종가 1, 종가 10) : 99.4%이상 100%이하 1회이상
E 거래량비율(n봉):[일]1봉전 거래량 대비 0봉전 거래량 비율 120%이상
F 거래량비율:[일]5봉 평균(1봉전)거래량대비 일 0봉전 120%이상
A and ((B and C) or D) and (E or F)
2023-04-24
887
글번호 168440
답변완료
수식 문의드립니다
안녕하세요 수식작성에 도움주셔서 은혜에 감사드립니다
아래 조건을 충족하는 종목검색식 작성 부탁드립니다
1 20일 이평선이 쌍바닥 ( 쌍바닥 오른쪽 저점이 높은)
2 ( 0봉전 기준) 이전 20봉이내에 전일대비 500%이상 거래량 발생
3 0봉전기준 20일이평선이 우상향 추세를 지속유지 중일 것
(20일 이평선 상승추세 각도가 최소 20도이상)
- 20일선이 하향추세 진행중인 경우는 제외하기 위함
4 0봉전 기준 , 그 이전 봉 캔들이 우상향하고 있는 20일 이평선위에서 15일이상 머물러
있다가 20일선을 종가기준으로 처음 이탈
5 종가기준으로 상기 4항 이탈 캔들 발생후, 5일이내 종가기준으로 20일이평선을
다시 재 돌파하는 캔들 발생 (반드시 5일이내라는 조건충족)
요청사항
1) 상기 1~5항 전부 동시 충족하는 검색식
2) 상기 1을 제외한 2~5항을 충족하는 검색식
2023-04-24
957
글번호 168436