커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4513
글번호 230811
목마와숙녀 님에 의해서 삭제되었습니다.
2019-04-02
0
글번호 127578
답변완료
안녕하세요.
옵션의 가격이 프리가 얼마나 붙어 있는지
지표로 알수가 있나요
2019-04-02
191
글번호 127577
답변완료
수식좀 부탁 드립니다.
* 매번 고맙 습니더.
* 이평선이 피보 110개 봉전 최대크기 크로스업 하면 매수 라는 식이 아래가 아닌가요?
input : Per1(25.0),Per2(38.0),Per3(50.0),Per4(63.0),Per5(75);
var : HH(0),LL(0);
HH = highest(H);
LL = lowest(L);
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
if crossup(MA(C,10),HH[110]) then buy("매수3");
* 좋은 하루 되십시요.
2019-04-02
169
글번호 127571
답변완료
문의
ATM연결 등가격 CALL옵션,1분차트,2012년6월15일부터 현재까지
위 조건으로 답변주신 수식을 시뮬레이션해보니 정상으로 결과가 나오는데
예외가 있습니다.
2014년 10월 결과만 이상하게 나옵니다.(2014년 10월9일 만기날은 한글날로 휴일)
첫번째 첨부파일
1.월물초부터 만기전날까지
2014년 10월1일부터 10월31일까지 만기일 이후 결과까지 나옵니다.
두번째 첨부파일
2.만기다음날부터 월말까지
2014년 10월 결과가 없습니다.
*********************************************************************
첫번째 첨부파일 : 월초부터 만기전날까지
2014년 10월1일부터 10월31일까지 결과가 모두 나옵니다.
input : 최대(10),최소(0);
input : ntime(090000);
var : nday(0),week(0),Xdate(0),entry(false);
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if bdate > bdate[1]+30 Then
entry = true;
if nday >= 8 and nday <= 14 and
week == 4 then
{
entry = false;
}
if entry == true Then
{
if 최대 > c and C > 최소 then
{
if stime == ntime or (stime > ntime and stime[1] < ntime) Then
buy();
}
}
두번째 첨부파일 : 만기다음날부터 월말까지
2014년 10월 결과가 없습니다.
input : 최대(10),최소(0);
input : ntime(090000);
var : nday(0),week(0),month(0),Xdate(0),XMonth(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if nday >= 8 and nday <= 14 and
week == 4 then
{
Xdate = sdate;
XMonth = Month;
}
if sdate > Xdate and month == XMonth Then
{
if 최대 > c and C > 최소 then
{
if stime == ntime or (stime > ntime and stime[1] < ntime) Then
buy();
}
}
2019-04-02
201
글번호 127570
billiard 님에 의해서 삭제되었습니다.
2019-04-02
1
글번호 127569
답변완료
수정좀 부탁합니다
var : Tcond(false);
if time == 101600 or
(time > 101600 and time[1] < 101600 and date == date[1]) or
(time >= 101600 and date != date[1]) Then{
Tcond = true;
}
if time == 015000 or (time > 015000 and time[1] < 015000) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitShort();
if MarketPosition == -1 Then
ExitShort();
위의 식좀 수종좀 부탁합니다
당일 10시 16분에 시작해서 다음날 새벽 01시 50분에 끝나게 수정좀 부탁합니다
지금 식으로 하니 잘 되지않는듯 합니다
2019-04-02
154
글번호 127567
답변완료
통신장애 접속단절
안녕하세요?
예스스탁 예스글로발을 24시간 실행시키면 아침날 통신장애 접속 중단 됩니다.
중단된 시간을 알수 있나요?
log 가 있나요?
2019-04-02
164
글번호 127558
답변완료
생각한것처럼 안되네요..ㅠㅠ
아래 수식으로 코스닥 150 레버리지를 돌려보았는데요...
3월 18일 전량 매도 이후에는 신호가 안뜨는데 뭐가 잘못되었느지 잘모르겠네요... (5분봉입니다. )
그리고 매수금액을 10만원으로 하면 7주가 매수가 되어야 하는데 어떤건 2주 어떤건 5주씩 사지기도 하고
매수금액을 100만원으로 올려보았는데 매수 금액이 이상하게 70주가 되지 않네요...
===================================================================================
제가 구현하고 싶은 사항은 다음과 같습니다.
변수 설정
1. 금액(10만원-100만원)
2. 진입횟수(10회 -1000회) --> 각5개 지표의 총합의 진입횟수
3. 분할청산(10회 - 100회 )
4. 각 5개 지표별 저점 가격 (아래 input 참조)
5. 이평 값 2개 (100-300 / 500-1000)
6. DMI고점 매도 변수값 설정 (10-30)
--- > 각각의 신호발생시마다 매수하고 -- 매도 신호시마다 신호시점의 설정된 %로 분할 매도
아래식은 많이 안맞음.. (근데 뭐가 잘못되었는지 모르겠어요~~ㅜㅜ)
input : MFIv(15),RSIv(20),CCIv(-300),sto(5),simridov(10);
input : 분할매도(0.01),DMIv(20);
input : 매수금액(100000),최대진입횟수(100);
input : 이평1(100),이평2(500);
var1 = ma(C,100);
var2 = ma(c,1000);
var3 = MFI(14);
var4 = RSI(14);
var5 = CCI(20);
var6 = StochasticsK(20,5);
var7 = Simrido(14);
var8 = Diplus(DMIv);
var9 = DiMinus(DMIv);
if var1 > var2 then
{
if var3 <= MFIv and MaxEntries < 최대진입횟수 Then
buy("MFI매수",OnClose,def,floor(매수금액/c));
if var4 <= RSIv and MaxEntries < 최대진입횟수 Then
buy("RSI매수",OnClose,def,floor(매수금액/c));
if var5 <= CCIv and MaxEntries < 최대진입횟수 Then
buy("CCI매수",OnClose,def,floor(매수금액/c));
if var6 <= sto and MaxEntries < 최대진입횟수 Then
buy("sto매수",OnClose,def,floor(매수금액/c));
if var7 <= simridov and MaxEntries < 최대진입횟수 Then
buy("simrido매수",OnClose,def,floor(매수금액/c));
}
if MarketPosition == 1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
value1 = 0;
value2 = value2+(CurrentContracts-CurrentContracts[1]);
}
if CurrentContracts < CurrentContracts[1] Then
{
value1 = value1+1;
value2 = value2-(CurrentContracts-CurrentContracts[1]);
}
if var8 >= var9 Then
{
if value1 < 9 Then
ExitLong("bx1",OnClose,def,"",Floor(value2*분할매도),1);
Else
ExitLong("bx2");
}
}
Else
{
value1 = 0;
value2 = 0;
}
2019-04-02
179
글번호 127556
답변완료
지표문의
1.아래는 darvas박스 지표인데요
참조종목(data2)으로 쓸수있게금 지표수정 좀 해주세요.
inputs : ShowAll(true);
var : BoxTop(0), BoxBtm(0), Ctr(0), BBD(0), BBT(0), EBD(0), EBT(0), UpBand(0), DnBand(0), CurrState(1),
TextId(-1), TopId(-1), TopIdP(-1), BtmId(-1), BtmIdP(-1), LSId(-1), LSIdP(-1), RSId(-1), RSIdP(-1),
HiFirst(true), LoFirst(false), State1(false), State2(false), State3(false), State4(false), State5(false),
DrawBox(false), ValidBox(false), HadBreak(false), NewBox(false);
if index == 1 then begin
BoxTop = high;
BoxBtm = low;
State1 = true;
BBD = date;
BBT = time;
end;
if NewBox and high > UpBand then begin
BBD = date;
BBT = time;
TL_SetEnd(TopId, BBD, BBT, UpBand);
TL_SetEnd(BtmId, BBD, BBt, DnBand);
RSIdP = RSId ;
RSId = TL_New(BBD, BBT, DnBand, BBD, BBT, UpBand);
if ShowAll == false and RSIdP <> -1 then TL_Delete( RSIdP ) ;
if HiFirst then TL_SetColor(RSId, yellow);
else TL_SetColor(RSId, magenta);
NewBox = false;
State1 = true;
LoFirst = false;
HiFirst = true;
end;
if NewBox and low < DnBand then begin
BBD = date;
BBT = time;
TL_SetEnd(TopId, BBD, BBT, UpBand);
TL_SetEnd(BtmId, BBD, BBt, DnBand);
RSIdP = RSId;
RSId = TL_New(BBD, BBT, DnBand, BBD, BBT, UpBand);
if ShowAll == false and RSIdP <> -1 then TL_Delete(RSIdP);
if HiFirst then TL_SetColor(RSId, yellow) ;
else TL_SetColor(RSId, magenta);
NewBox = false;
State1 = true;
HiFirst = false;
LoFirst = true;
end;
if HiFirst then begin
if State4 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State4 = false;
CurrState = 1;
end
else begin
if low < BoxBtm then begin
State4 = false;
State3 = true;
BoxBtm = low;
CurrState = 3;
end
else begin
State4 = false;
State5 = true;
CurrState = 5;
end;
end;
end;
if State3 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State3 = false;
CurrState = 1;
end
else begin
if low < BoxBtm then begin
State3 = true;
BoxBtm = low;
CurrState = 3;
end
else begin
State3 = false;
State4 = true;
CurrState = 4;
end;
end;
end;
if State2 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State2 = false;
CurrState = 1;
end
else begin
State2 = false;
State3 = true;
BoxBtm = low;
CurrState = 3;
end;
end;
if State1 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
CurrState = 1;
end
else begin
State1 = false;
State2 = true;
CurrState = 2;
end;
end;
end
else begin #{ Using LoFirst }
if State4 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
State4 = false;
CurrState = 1;
end
else begin
if high > BoxTop then begin
State3 = true;
State4 = false;
BoxTop = high;
CurrState = 3;
end
else begin
State4 = false;
State5 = true;
CurrState = 5;
end;
end;
end;
if State3 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
State3 = false;
CurrState = 1;
end
else begin
if high > BoxTop then begin
State3 = true;
BoxTop = high;
CurrState = 3;
end
else begin
State3 = false;
State4 = true;
CurrState = 4;
end;
end;
end;
if State2 then begin
if low < BoxBtm then begin
Boxbtm = low;
State1 = true;
State2 = false;
CurrState = 1;
end
else begin
State2 = false;
State3 = true;
BoxTop = high;
CurrState = 3;
end;
end;
if State1 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
CurrState = 1;
end
else begin
State1 = false;
State2 = true;
CurrState = 2;
end;
end;
end; #{ END IF HIFIRST OR LOFIRST }
if State5 then begin
DrawBox = true;
EBD = date;
EBT = time;
end;
if DrawBox then begin
TopIdP = TopId;
BtmIdP = BtmId;
LSIdP = LSId;
TopId = TL_New(BBD, BBT, BoxTop, EBD, EBT, BoxTop);
BtmId = TL_New(BBD, BBT, BoxBtm, EBD, EBT, BoxBtm);
LSId = TL_New(BBD, BBT, BoxBtm, BBD, BBT, BoxTop);
if ShowAll == false then begin
if TopIdP <> -1 then TL_Delete(TopIdP);
if BtmIdP <> -1 then TL_Delete(BtmIdP);
if LSIdP <> -1 then TL_Delete(LSidP);
end;
if HiFirst then begin
TL_SetColor(TopId, yellow);
TL_SetColor(BtmId, yellow);
TL_SetColor(LSId, yellow);
end
else begin
TL_SetColor(TopId, magenta);
TL_SetColor(BtmId, magenta);
TL_SetColor(LSId, magenta);
end;
State1 = false;
State2 = false;
State3 = false;
State4 = false;
State5 = false;
DrawBox = false;
ValidBox = true;
end;
if ValidBox then begin
UpBand = BoxTop;
DnBand = BoxBtm;
ValidBox = false;
NewBox = true;
BoxTop = high;
BoxBtm = low;
end;
2.그럼 수고하세요
2019-04-02
217
글번호 127555