커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4446
글번호 230811
태양같이 님에 의해서 삭제되었습니다.
2018-10-30
0
글번호 123198
답변완료
문의 드립니다.
다음과 같이
타주기_분용 부탁 드려도 될런지요?
input:p1(20);
var:varq1(0),varq2(0),varq3(0);
varq1=nthhighest(1,v[1],p1);
if v>varq1 then {
var1=H;
}
2018-10-30
115
글번호 123192
루루 님에 의해서 삭제되었습니다.
2018-10-30
11
글번호 123188
답변완료
수식작성 요청 드립니다.
안녕하세요?
언제나 도와주심에 감사합니다.
아래와 같은 수식작성 도움요청 드립니다.
* 진입조건
매수 : 1개 이전봉(외부변수) 또는 2개 이전봉(외부변수) 중에서 출현한 음봉과 종가가 같은
양봉 출현시 매수진입.
매도 : 1개 이전봉(외부변수) 또는 2개 이전봉(외부변수) 중에서 출현한 양봉과 종가가 같은
음봉 출현시 매도진입.
- 즉, 진입봉 기준 x개전봉 또는 x개전봉 중 하나의 양봉 종가와 음봉종가가 같을때 매수진
입. 매도는 그 반대로.
* 청산조건
익절 : 1p(외부변수)
손절 : 1p (외부변수)
감사합니다.
2018-10-30
144
글번호 123187
답변완료
수식작성에 많은 도움받고 있습니다.
어제 아래와 같은 수식을 만들어 주셔서 많은 공부가 되었습니다.
=============================================================
<조건>
현금: 100만원.
사용챠트는 1분봉 입니다.
매수조건 완성시 시장가로 100% 매수후
당일 종가때 40% 매도하고
나머지 수량은 일봉차트상 주가가 5일 이평선보다 높으면 계속 보유하고
5일 이평선보다 낮아질 경우 전량매도 하는 겁니다.
input : 금액(1000000),P(5);
var : sum(0),mav(0),cnt(0);
sum = 0;
for cnt = 0 to P-1
{
sum = sum + DayClose(cnt);
}
mav = sum/P;
if MarketPosition == 0 and 매수조건 Then
buy("b",OnClose,def,Floor(금액/C));
if sdate == EntryDate and NextBarSdate != sdate Then
{
var1 = Floor(MaxContracts*0.4);
ExitLong("bx1",OnClose,def,"",var1,1);
}
if sdate > EntryDate and c < mav Then
ExitLong("bx2");
==========================================================
위의 수식에 한가지 더 조건을 부여하고 싶은데요
조건은 이렇습니다.
현금: 100만원.
사용챠트는 1분봉 입니다.
매수조건 완성시 시장가로 100% 매수후
당일 종가때 40% 매도하고
다음날 시가때 50% 매도하고
나머지10% 수량은 일봉차트상 주가가 5일 이평선보다 높으면 계속 보유하고
5일 이평선보다 낮아질 경우 전량매도 하는 겁니다.
이때, 주가가 계속 5일 이평선보다 높아서 10%의 주식을 보유중인상태에서
1분봉 챠트상 다시 매수조건이 발생하여
현재 보유중인 주식(10%) 금액을 제외한 90% 현금으로 시장가 매수하고
당일 종가때 시장가 매수한 주식의 40% 매도하고
다음날 시가때 50% 매도.
나머지 10%는 일봉챠트상 5일 이평보다 높으면 계속보유하고...
주가가 일봉챠트 5일 이평보다 계속 높은상태로 유지가 된다면
계속 무한 반복되겠죠.. 그러다가 5일 이평보다 주가가 낮아지면 모두 청산..
이런식으로 수식을 작성하고 싶은데 가능할런지... 부탁드립니다....
2018-10-29
145
글번호 123186
답변완료
수식수정 부탁드립니다.
아래의 그림에서 1차매수후 TR-Stop으로 손절을 당한 후 다시 1차매수가 되고 있는데
제가 원하는 것은 1차매수후 TR-Stop으로 손절을 당했다면 그 다음에는 BuySetup2 조건이 만족되었을 때 2차매수하는 것입니다. 수식 수정 부탁드립니다.
input : 셋업일(20170717),시작시간(090000),매수시간(150000),매수시간2(150000),종료일(20181231),P(20),Period3(14),dv(2),sto1(25),sto2(6),sto3(6),MAP(5),N(21),
금액1(1000000),금액2(2000000),목표수익1(1.024),목표수익2(1.024),절반매도(1.10),목표가(1000000),진입가격대비하락(0.97),손절가(100),스탑로스(6),TR스탑(0.95),밴드하단보정(1.03), RS과매수수준(60), RS과매도수준(40),고점대비하락(0.94);
var : BBup(0),BBdn(0),BBMid(0),stok(0),stoD(0),RS(0),BuySetup(true),BuySetup2(true),BuySetup3(true),ExitSetup1(false),Xcond(false),mav(0),Dncnt(0),BuySetupindex(0);
# 5일 이평선
mav = ma(C,MAP);
# RSI
RS = RSI(Period3);
# 볼린져밴드
BBup = BollBandUp(P,dv);
BBMid = ma(C,P);
BBdn = BollBandDown(P,dv);
# 스톡케스틱
stok = StochasticsK(sto1,sto2);
Stod = StochasticsD(sto1,sto2,sto3);
# 1차 매수조건
if TotalTrades > TotalTrades[1] Then
BuySetup = false;
if MaxEntries== 1 Then{
BuySetup = false;
}
if MarketPosition == 0 and (RS <RS과매도수준) and C< BBdn and (sDate >= 셋업일) and (sTime <= 매수시간) and L <= highest(H,50)*고점대비하락 Then{
BuySetup = true;
}
if MarketPosition == 0 and BuySetup == true and C > O and (sTime >= 시작시간) and (sTime <= 매수시간) Then
buy("1차매수",OnClose,def,Floor(금액1/C));
# 2차 매수 조건
# 1차매수가 되어 있다면 BuySetup2 = false
if MarketPosition== 1 Then{
BuySetup2 = false;
}
# 1차매수가 TR-Stop 손절을 당한 후 1차매수가 대비 00% 하락시 2차매수
if MarketPosition == 0 and
MarketPosition(1) == 1 and
IsEntryName("1차매수",1) == true and
IsExitName("TR-Stop",1) == true Then
BuySetup2 = true;
if BuySetup2 == true and C > mav and (sTime >= 시작시간) and (sTime <= 매수시간2) and C < (EntryPrice(1)*0.975) and MarketPosition == 0 Then
buy("2차매수",OnClose,def,Floor(금액2/C));
#매 도 전 략
#[ 목표수익 ]
# 1차 매수중인 경우
if MaxEntries == 1 and
IsEntryName("1차매수",1) == true Then
ExitLong("목표수익1",Atlimit,EntryPrice*목표수익1);
# 2차 매수중인 경우
if MaxEntries == 1 and
IsEntryName("2차매수",1) == true Then
ExitLong("목표수익2",Atlimit,EntryPrice*목표수익2);
# 손절전략============
# 1차 매수물량 손절 전략
# 이전 50개 캔들중에서 최저점 이탈시 매도 (5분봉은 제외)
if MarketPosition == 1 Then
{
if IsEntryName("1차매수") == true and c < lowest(L,50)[BarsSinceEntry] Then
ExitLong("전저점 이탈");
}
# 2차 매수물량 손절 전략
#2차매수후 2차 매수가의 2% 하락하면 전량청산
if MarketPosition == 1 and
IsEntryName("1차매수",1) == true and
IsExitName("전저점 이탈",1) == true Then
ExitLong("2차손절",AtStop,EntryPrice*0.97);
SetStopEndofday(153000);
if MarketPosition == 1 Then{
ExitLong("TR-Stop",AtStop,highest(H,BarsSinceEntry)*TR스탑);
}
Else{
ExitSetup1 = false;
}
2018-10-29
194
글번호 123185
답변완료
이격도16
안녕하세요 관리자님!!
어제보내주신 지표를 깔아봤더니 잘 표현이 안됩니다.
바쁘시더라도 다시한번 작성부탁드립니다.
아래지표는 오늘시가에서 시작되는 이격도와 -(전일시가)에서 시작되는 이격도를 표현한것입니다. 근데 -(전일시가)를 적용했기 때문에 접점이 발생합니다.
이 접점을 이격도내에서 수평선으로 표현하고 싶습니다. 도와주십시요
- 아 래 -
var1 = dayopen;
value1 = C/var1*100-100;
Var2 = dayopen(1);
value2 = -(C/var2*100-100);
plot1(value1,"오늘주가");
plot2(Value8,"-전일주가");
plot3(0,"중심선");
2018-10-29
180
글번호 123184
답변완료
현물관련 수식문의 드립니다.
현물관련 검증좀 해보고 싶어서 문의 드립니다.
기간- 과거 400거래일
기준분봉 3분봉
신용융자 가능한 abcd군중에서
매일 첫 3분봉 종가가 시가보도 높고(양봉마감)
거래대금은 10억이상
거래량은 과거 10일이전의 동시간대(종가기준 3분봉) 평균거래량의 2배이상일때.
3분봉 완성후 진입.
익절 3%
손절 3%
익절 손절이 11시까지 이뤄지지 않았을경우 11시03분에 강제청산.
즉 조건이 성립되면 매일 3분봉 완성후 진입 청산관 손절
했을때 비교분석을 하고 싶어서요.
혹시 진입했던 종목과 진입지점을 별도로 볼수있을까요??
부탁드리겠습니다.
감사합니다.
2018-10-29
169
글번호 123183
답변완료
분할매수 매도 질문
안녕하세요.
분할매수매도 시뮬레이션하고싶은데 잘 안되네요.
주식을 사고팔고 하고싶은데 시스템성능보고서 거래내역보면
선물을 사고팔았는지 매수청산에 exitlong 이런거만 나옵니다.
차트는 kodex200으로 했어요.
input : p1(5), p2(10), p3(20), p4(60);
if CodeCategory == 1 Then{
If CrossUp( c , ma(c,p1) ) Then buy("5b" , OnClose , def, 100);
If CrossUp( c , ma(c,p2) ) Then buy("10b" , OnClose , def , 100);
If CrossUp( c , ma(c,p3) ) Then buy("20b" , OnClose , def, 100);
If CrossUp( c , ma(c,p4) ) Then buy("60b" , OnClose , def , 100);
if CrossDown( c , ma(c,p1) ) Then sell("5s" , OnClose , def , 100);
if CrossDown( c , ma(c,p2) ) Then sell("10s", OnClose , def , 100);
if CrossDown( c , ma(c,p3) ) Then sell("20s" , OnClose , def , 100);
if CrossDown( c , ma(c,p4) ) Then sell("60s" , OnClose , def , 100);
}
주식으로 주문하려면 어떻게 해야되죠?
예문 부탁드립니다.
2018-10-29
197
글번호 123182