커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5446
글번호 230811
답변완료
검색결과가 달라요
input : Period(30),d1(1.8),기간(5),k(2);
var : wma1(0),NL(0),BarsSince(-1),wma2(0),NL2(0),BarsSince2(-1),MM(0),LL(0),NL3(0),BarsSince3(-1),mm1(0),hh(0);
wma2 = wma((money/v+l+h)/3,period)+D1-std((money/v+l+h)/3,period);
wma1 = wma((money/v+c+o)/3,period)+D1*std((money/v+c+o)/3,period);
MM = BollBanddown(30, 1.8);
LL = Lowest(MM, 기간);
MM1 = BollBandUp(30, 1.8);
HH = Highest(MM, 기간);
if crossup(c,wma1) Then
{
NL = wma1;
BarsSince = 0;
}
Else
{
if BarsSince >= 0 Then
BarsSince = BarsSince+1;
}
if BarsSince == 기간-k Then
var1 = NL;
if MM < ll[1] Then
{
NL3 = MM;
BarsSince3 = 0;
}
Else
{
if BarsSince3 >= 0 Then
BarsSince3 = BarsSince3+1;
}
if BarsSince3 == 기간-k Then
var3 = NL3;
var4 = var3/var1*100;
var5 = c/var1*100;
if crossup(var5,var4)
Then
find(1);
결과 값이 이상하게 나와요 뭐가 잘못 된거죠?
2020-01-14
224
글번호 135152
답변완료
월봉기준청산
어떤 시스템을 진입했는데,
월봉마지막날종가에 청산하는 시스템수식은 어떻게 구현해야 하나요?
2020-01-14
197
글번호 135151
회원 님에 의해서 삭제되었습니다.
2020-01-14
20
글번호 135149
답변완료
부탁드립니다~
A=EnvelopeUp(Period,Percent);
B=Valuewhen(1,V>V(1)*Multiple and c>=c(1)*(1+퍼센트/100) and c!=o,if(c>o,o,0));
CrossDown(B,A)
Period - 40
Percent - 2
Multiple - 2
퍼센트 - 5
키움수식을 예스로 종목검색 할 수 있도록 부탁드립니다.
2020-01-14
192
글번호 135148
답변완료
문의드립니다.
장중 종목검색시
종목검색 시점의 당일 과 전일 시가, 종가, 고가, 저가 를 따로 저장하거나 확인하는 방법이 있나요?
2020-01-14
174
글번호 135147
답변완료
문의드립니다~
수식 1 / 수식 이름 A
V1=HIGHEST(H(1),P29);
V2=LOWEST(L(1),P29);
(C-V2)/(V1-V2)
1.
A가 0.51 상향 돌파 시 매수, 하향 돌파 시 매도
당일 익절 21틱( 수익청산 - 손절청산 - 매매수수료(왕복10불))
조건 미달 시 새벽 5시 매매종료
당일수익청산 시간 기준은 오후 3시부터 새벽5시까지
2.
A가 1.01 하향 돌파 시 매도,
A가 1.01 하향 돌파 후 0.01 을 하향 돌파하지 못하고 다시 1.01을 상향 돌파시 매수 스위칭
A가 0.01 상향 돌파 시 매수,
A가 0.01 상향 돌파 후1.01을 상향 돌파하지 못하고 다시 0.01을 하향 돌파 시 매도 스위칭
당일 익절 21틱( 수익청산 - 손절청산 - 매매수수료(왕복10불))
조건 미달 시 새벽 5시 매매종료
1.01 하향 돌파 매도 진입 후 미청산 시 0.01 하향 돌파는 진입 금지
0.01 상향 돌파 매수 진입 후 미청산 시 1.01 상향 돌파는 진입 금지
당일수익청산 시간 기준은 오후 3시부터 새벽5시까지
시스템 수식과 지표수식 같이 부탁드립니다~
지표수식에 1.01, 0.51, 0.01 선이 나올 수 있게 부탁드립니다~
감사합니다^^
2020-01-15
184
글번호 135146
답변완료
문의
당일 고가갱신 n회
당일 저가갱신 n회
수식 내용도 반영바랍니다.
********************************************************************
안녕하세요
예스스탁입니다.
if MarketPosition == 0 and #현재 무포지션이고
DayHigh(0) != DayHigh(0)[1] Then
buy("b2");
if MarketPosition == 0 and #현재 무포지션이고
DayLow(0) != DayLow(0)[1] then
sell("s2");
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 문의
> 청산이후라는 조건만 삭제하고 싶습니다.
즉, 무포지션일 때 당일고가나 저가갱신 시 진입하는 수식입니다.
*******************************************************************************
if MarketPosition == 0 and #현재 무포지션이고
countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수 Then #청산이후 당일고가 갱신이
n회이상 있었으면
buy("b2");
if MarketPosition == 0 and #현재 무포지션이고
countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수 Then #청산이후 당일저가 갱신이
n회이상 있었으면
sell("s2");
2020-01-15
176
글번호 135145
답변완료
65622 재문의 답변 부탁드립니다.
.
2020-01-14
172
글번호 135141
답변완료
수정문의 드립니다~
Input : 당일수익틱수(21),당일손실틱수(100);
input : t5(5),p13(13),p5(5);
var : j(0),n(0),d(0),kt(0),kts(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if sdate != sdate[1] Then
SetStopEndofday(050000);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
j = c-c[t5];
n = ema(ema(j,p13),p5);
d = ema(ema(abs(j),p13),p5);
kt = 100*n/d;
kts = ema(kt,6);
if Xcond == false and crossup(kt,60) Then
buy();
if Xcond == false and crossup(kt,-60) Then
buy();
if Xcond == false and CrossDown(kt,60) Then
sell();
if Xcond == false and CrossDown(kt,-60) Then
sell();
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
hts 접속하고 전략실행 후 첫 신호 진입 이후부터 조건이 성립되게 수식을 수정할 수 있을까요?
그리고 +60 하향 돌파 시 매도 진입하고 물량이 청산 안되었을 때 -60을 다시 하향 돌파하니 추가로 물량이 매도가 되는데
물량 보유시 추가 매도 되지 않게,
반대로도 -60 상향 돌파 시 매수 진입하고 물량이 청산 안되었을 때 +60을 다시 상향 돌파하면 추가로 매수 되지 않게 수정 부탁드립니다~
그리고 전략실행 시작하고 첫 신호나오면 매매수량을 1개로 했는데 2개씩 진입이돼서 스위칭때 자동으로 물량 청산되버는데.. 첫 신호에 1계약만 들어가게 하려면
피라미딩 설정할 때 진입 신호로 설정을 했다가 진입하고 나서 모든신호 진입으로 변경을 해야하나요?
첫 진입 때 1계약만 들어갈 수 있게 알려주세요
감사합니다.
2020-01-14
203
글번호 135140