커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5505
글번호 230811
답변완료
64264 답변 문의 드립니다.
작성해주신 수식대로 시뮬레이션을 했는데 뭔가 이상하네요.....
input : N(10);
var : cnt(0),HH(0),LL(0);
HH = DayHigh(1);
LL = DayLow(1);
for cnt = 1 to N
{
if DayHigh(cnt) > HH Then
HH = DayHigh(cnt);
if DayLow(cnt) < LL Then
LL = DayLow(cnt);
}
if MarketPosition <= 0 Then
buy("b",AtStop,LL);
if MarketPosition >= 0 Then
sell("s",AtStop,HH);
if MarketPosition == 1 then
{
buy("bb",AtStop,LatestEntryPrice(0)-PriceScale*100);
ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*100);
}
if MarketPosition == -1 then
{
sell("ss",AtStop,LatestEntryPrice(0)+PriceScale*100);
ExitShort("sp",AtLimit,AvgEntryPrice-PriceScale*100);
}
알려주신대로 피라미딩 설정에 "모든진입신호허용" 선택하고 19년 1월1일부터 연결선물로 연결하여시뮬레이션을 하였는데요.
1월2일 16:30분경에 최초진입을하는데, 10일 최고, 최저가가 도출되지 않는 상태에서 진입을 하고, 계속해서 조건이 틀린데도 진입하고 추가 계약도 되는 모습입니다.
조언 부탁드립니다.
<내용>
최근 10일의 최저가보다 현재가가 최저가이면 매수 진입
최근 10일의 최고가보다 현재가가 최고가이면 매도 진입
진입하면 익절 100틱
익절 못하고 -100틱이면 1계약 추가(물타기)
-100틱이되어 2계약인 상황>평균단가가 +100틱도달시 언제든지 청산
청산 못하고 평균단가가 -100틱때마다 1계약 추가(물타기)
(평균단가가 +100틱이면 언제든지 청산이고, 청산 못하면 평균단가 -100틱때마다 1계약추가)
익절이나 청산이 되면 다시 최근 10일의 최저가보다 현재가가 최저가이면 매수진입, 최근 10일의 최고가보다 현재가가 최고가이면 매도진입.
2019-09-27
258
글번호 132314
답변완료
분봉 시스템 수식 문의 합니다
수고 많으십니다
수식 문의 드립니다. 해외선물 입니다
기준선은 전일 고가 전일 저가를 잡습니다
기본적으로 상향돌파시 매수 하향돌파시 매도입니다
5분봉 10분봉을 봅니다
5분봉 1번봉에서 신호가 발생하고 10분봉에서 신호가 완성될때(5분봉 2개가 10분봉 1개이므로) 또는 5분봉 2번봉하고 하고 10분봉에서 동시에 신호가 발생할때 진입합니다
3계약 기준으로 해서
손절은 전량 전일 고가 저가 기준 20틱
익절은 1계약 20틱 1계약 40틱 1계약 60틱 분할 청산이구요
다만 1계약 20틱 익절이 나가면 나머지 2계약은 손절 청산을 진입가 -5틱으로 올립니다
마지막 세번째 계약이 10분봉상 진입이후 20개봉 이후에도 보유중이면 청산합니다
진입중일때 10분봉에서 반대로 돌파하면 청산합니다
청산시점에 위의 진입조건을 만족하면 스위칭 진입합니다
수식 부탁드립니다
수고하십시오
2019-09-27
247
글번호 132312
답변완료
질문 입니다
시스템의 의 주 검색이 분 봉 입니다
분 봉 수식에
일봉의 rsi 윌리엄 cci macd obv를 넣어 필터링 하고 싶습니다
일봉 기준
rsi(14) crossup(c,50)
cci(9) crossup(c,0)
macd crossup(c,0)
ovb obv>obv(1)
2019-09-27
246
글번호 132310
답변완료
검색식 문의드립니다.
매번 성실한 답변에 감사드립니다.
5분봉 기준입니다.
일봉 n일전에 고가가 전일대비 20% 상승(D)한 D+2일부터 5분봉 거래량을 비교하여
금일 현재 5분봉 거래량이 최고인 종목 검색입니다.
당일 1회이상 해당되면 검색되게 부탁드립니다.
감사합니다.
2019-09-27
226
글번호 132309
회원 님에 의해서 삭제되었습니다.
2019-09-27
1
글번호 132308
답변완료
다시 문의합니다
답변 감사합니다.
답변주신대로 완성봉내에 안된다고해서 시스템 기준차트를 틱봉으로 바꾸고 참조봉을 분동으로 했는데 그러면 시스템적용되는 기준봉은 틱봉 아닌가요? 수식상 봉완성되었을때 수익이나면 멈출수있게끔 기준차트를 틱봉으로 모두 바꿨는데 확인 부탁드립니다 제가 이해한거로는 IF문 수익청산신호는 조건완성후 해당틱봉이 완성되면 성립되면서 멈추게되면 수익청산조건성립 - 틱봉완성 - 청산 - 금지 이런식으로 가는거아닌가해서요
2019-09-27
187
글번호 132307
답변완료
안녕하세요~^^64258번 다시한번 부탁드립니다
64258번 다시부탁드립니다~감사합니다~^^
2019-09-27
238
글번호 132306
답변완료
종목검색 결과값에 대한 정렬
종목검색 후 결과값에 대해 정렬하여 볼 수 있나요?
전봉 대비 상승한 종목들을 검색하는 간단한 식인데 종목검색(3201)화면에서 실행하니 결과값(상승률)에 대해 내림차순으로 보여주더군요.
그럼 오름차순으로 정렬하는 것도 있을 것 같아서 문의하는 겁니다.
Condition1 = C >= C[1];
Value1 = 0.0;
If Condition1 Then
{
If C==C[1] Then
Value1 = 0.0;
Else
value1 = 100 * (C - C[1]) / C[1];
}
Find(Value1);
2019-09-27
200
글번호 132298
답변완료
수식 문의 드립니다
답변주신 수식대로 적용해봤는데 몇가지 오류가 계속 발생합니다
그림1. 목표수익청산되고 매매가 멈춰야하는데 곧바로 또 진입합니다.
그림2. 1분 남기고 포지션청산되고 멈춰야하는데 기준틱봉수대로 다음5분 시작될때까지 진입청산 무한반복발생합니다.
그림3 원으로 표시된데가 10회라서 수식대로는 포지션청산되고 멈추어야 하는데 그냥지나치고 시간청산됩니다
안녕하세요
예스스탁입니다.
5분봉 완성시 변수들 초기화하게 수정해 드립니다.
5분봉 기준으로 매4분 경과시 포지션있으면 청산하게 추가해 드립니다.
input : 당일수익틱수(10);
var : count(0,data1),T1(0,data1),N1(0,data1),daypl(0,data1),Xcond(false,data1),당일수익(0,data1);
var : T2(0,data1),O2(0,data1);
당일수익 = PriceScale*당일수익틱수;
T2 = data2(NextBarStime);
O2 = data2(NextBarOpen);
if T2 != T2[1] Then
{
count = 0;
N1 = NetProfit;
Xcond = false;
T1 = TimeToMinutes(stime);
}
Else
count = count + (TotalTrades-TotalTrades[1]);
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true ) then
Xcond = true;
}
if T2 != T2[1] then
{
buy("b",AtStop,O2+PriceScale*1);
sell("s",AtStop,O2-PriceScale*1);
}
else
{
if count < 10 and Xcond == false and TimeToMinutes(stime) <= T1+4 then
{
buy("b1",AtStop,O2+PriceScale*1);
sell("s1",AtStop,O2-PriceScale*1);
}
if TimeToMinutes(stime) >= T1+4 Then
{
exitlong("bx");
ExitShort("sx");
}
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
2019-09-27
216
글번호 132296