커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5526
글번호 230811
답변완료
문의드립니다!
안녕하세요
제가 조건식으로 종목을 검색하는 방법까진 알게 되었는데요
질문이 있어 글을 올려보게 되었습니다!!
1. 혹시 매일 조건식으로 찾은 종목을 제가 설정한 매매규칙에 따라 자동 매매로 이어질 수 있는 방법이 있나요?
2. 매매 시스템을 만들면 코스피 전 종목에 한번에 다 설정할 수 있나요?
아니면 여러 종목을 같은 매매 시스템으로 매매하고 싶다면 한종목 한종목씩 다 설정을 해야하나요??
3. 당일 코스피 지수 하락에 따라서 그 전에 매수했던 종목을 청산할 수 있나요??
예) 코스피 종가가 -3%일때 보유중인 A종목을 익일 청산
2021-03-16
873
글번호 147142
답변완료
수식 질문드립니다.
아래 그림 처럼 , 1분봉 c 로 해놓고,
선물 일봉을 c2로 해놓고,
제일 아래 3번째 차트에, c2 일봉 data 베이스로,
볼밴(200,2) 및 이평(300), 그리고 현재가격이 표시되도록 그리고 싶습니다.
가능 하려는지요?
항상 도움 감사합니다 !!!!
2021-03-16
984
글번호 147132
답변완료
문의드립니다
수고하십니다.
수식 문의 좀 드립니다.
1) 한개의 캔들, 시가와 고가의 평균값을 이평선으로 표현 식.
2) 두개의 각 평균 값을 다시 하나의 평균 값으로 이평선으로 내는 식.
3) 전 저점/고점을 반등 했을 때 색으로 표현하고 식.
4)캔들에 겹치는게 아니라 밑에 따로 표현하는 식.
5) 여러 개의 다른 식을 한 지표로 통합해서 나오게 하고 싶은데 방법 좀 알려주세요.
ex) 이평,오실,강조 등을 한 지표를 출력 했을 때 다 같이 나오게요.
매번 감사드리고, 오늘 황사 심하다는데 조심하세요~
2021-03-16
703
글번호 147131
답변완료
수식어 부탁드립니다
당일 07:00시부터
익일 02:50 사이
N틱 하락시 매수후 N틱에 청산
N틱 상승시 매도후 N틱에 청산
의 수식어 부탁드립니다
2021-03-16
899
글번호 147125
회원 님에 의해서 삭제되었습니다.
2021-03-16
343
글번호 147124
답변완료
수식어 부탁드립니다
input : StartTime(100000),EndTime(055000);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
var : Tcond(false);
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;
SetStopEndofday(0);
}
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
var1 = Disparity(60);
if Tcond == true Then
{
if 전환선 > 기준선 and crossup(전환선,선행스팬1) and var1 >= 99 Then
buy("b");
if MarketPosition == 1 then
{
if 전환선 < 기준선 and CrossDown(전환선,선행스팬2) and var1 >= 99 Then
exitlong();
}
if 전환선 < 기준선 and CrossDown(전환선,선행스팬1) and var1 <= 101 Then
sell("s");
if MarketPosition == -1 then
{
if 전환선 > 기준선 and CrossUp(전환선,선행스팬2) and var1 <= 101 Then
ExitShort();
}
}
----------------------------------------------------------
상기 수식어에 당일 목표수익이 100틱에 매매정지를 추가하고 싶습니다
2021-03-16
1064
글번호 147123
답변완료
안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
안녕하세요 꾸준히 공부를 하며 실투자를 진행하고 있는 투자자입니다.
책이나 인터넷 등에서 지표를 보고 해당 지표를 실제 트레이딩에 접목하는 것을 통해
여러 지혜를 배우기도 하고 시스템트레이딩역시 배우고 있는데,
이번 지표는 정말 어렵더라구요. 아무리 많은 디버깅을 해도 이해가 안되는 부분이
있습니다. 그래서 이렇게 질문 드리오니 확인 후 답변 꼭 부탁드립니다!
------------------------------------------------------------------------------
VPCI 기반 지표, 시스템 입니다. 코드는 기존 Q&A를 참고하여 작성하였습니다.
1. 지표
inputs : short(5), Signal(25);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0);
long = short * 5;
Sum1 = AccumN(v,short);
if Sum1 > 0 then
VWMA1 = AccumN(C*v,short)/Sum1 ;
Sum2 = AccumN(v,long);
if Sum2 > 0 then
VWMA2 = AccumN(C*v,long)/Sum2;
VPC = VWMA2 - Ma(C,long) ;
VPR = VWMA1 / Ma(c, short) ;
VM = Ma(v, short) / ma(v, long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
Plot1(VPCI, "VPCI" ) ;
Plot2(AvgVPCI, "VPCIsig" ) ;
plot3(0, "Zero");
2. VPCI와 VPCIs 의 크로스를 통한 매매 시스템
inputs : short(5), Signal(20);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0), VPCIosc(0) ;
long = short * 5;
Sum1 = AccumN(data3(v),short);
if Sum1 > 0 then
VWMA1 = AccumN(data3(C)*data3(v),short)/Sum1 ;
Sum2 = AccumN(data3(v),long);
if Sum2 > 0 then
VWMA2 = AccumN(data3(C)*data3(v),long)/Sum2;
VPC = VWMA2 - Ma(data3(C),long) ;
VPR = VWMA1 / Ma(data3(c), short) ;
VM = Ma(data3(v), short) / ma(data3(v), long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
차트창 에는
DATA1 실거래 1분봉
DATA2 지표참조용 주봉
DATA3 지표참조용 일봉
으로 구성되어 있고 지표를 적용후 설정에서 대상을 DATA3인 일봉을 선택함.
문제는 지표와 시스템상의 이격이 계속 발생이 되고 있다는 겁니다.
※ 참고로 해당 거래는 001 코스피주가지수를 참조하여 테스트를 하였습니다.
지표상에서 아무런 움직임이 없는데 데드크로스 발생후 진행되어야 할 매도가
진행되고 또는 골드크로스 발생 후 진행되어야 할 매수가 뜬금없이 진행되고 합니다.
차트를 DATA1 ~ DATA3 으로 구성되어 있는 점 참고 부탁드리고
답변에 대해 미리 감사드립니다.
2021-03-16
1253
글번호 147122
답변완료
청산식 질문드립니다
안녕하세요
정산식 질문좀 드립니다
이평선 20 50 70 90 100 사용합니다
매수진입해서
이평선 20 50 데드시 청산1
진입하고나서 수익이 50틱 이상이고
이평선 20 50 70 90 이 정배열이 아니면 바로청산2
반대 매도의 경우도 부탁합니다
참고로 5계약입니다
틱수만 외부변수로 부탁합니다
2021-03-16
1098
글번호 147120
답변완료
아래 문의드린 수식이 오류가 있는것 같아 재문의 드립니다.
자꾸 문의를 드리는 것 같아 죄송하네요..ㅜ.ㅜ
어제 문의드렸던 내용 중에 횡보시 청산 관련 타점에 대해 수식을
의뢰 했었는데 실제 시스템에 적용해서 보니. 매수 하자 마자 바로 청산되는
수식으로 바뀌어진것 같습니다.
확인좀 부탁드리겠습니다.
기존 의뢰내용입니다.
--------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
시간청산이 첫진입 기준으로 되어 있었습니다.
최근진입기준으로 변경했습니다.
var : entry(0),AP(0),TT(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if MarketPosition == 0 and Dayopen(0) >= DayClose(1)*1.005 Then
{
if entry == 0 or
(entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then
Buy("b1",AtLimit,DayOpen*0.97);
}
if Dayopen(0) >= DayClose(1)*1.005 and
( (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or
(MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06))) Then
Buy("b2",AtLimit,DayOpen*0.94);
if Dayopen(0) >= DayClose(1)*1.005 and
((MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or
(MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true)) Then
Buy("b3",AtLimit,DayOpen*0.91);
if MarketPosition == 1 Then
{
AP = AvgEntryPrice;
if CurrentContracts > CurrentContracts[1] Then
TT = TimeToMinutes(stime);
if MaxEntries == 1 and IsEntryName("b1") == true Then
{
ExitLong("bp1",AtLimit,AP*1.02);
if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then
ExitLong("bx1");
}
if (MaxEntries == 2 and IsEntryName("b1") == true) or
(MaxEntries == 1 and IsEntryName("b2") == true) Then
{
ExitLong("bp2",AtLimit,AP*1.01);
if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then
ExitLong("bx2");
}
if (MaxEntries == 3 and IsEntryName("b1") == true) or
(MaxEntries == 2 and IsEntryName("b2") == true) Then
{
ExitLong("bp3",AtLimit,AP*1.005);
if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then
ExitLong("bx3");
}
ExitLong("bl",AtStop,DayOpen*0.88);
}
SetStopEndofday(151800);
즐거운 하루되세요
> 맴맴잉 님이 쓴 글입니다.
> 제목 : 자꾸 재문의를 드리네요
> 안녕하세요
전에 도식화로 시스템식을 요청드렷던 사람입니다.
시스템 검증 과정에서 저의 생각과 좀 틀린부분이 있어 요청을 드립니다.
매수포지션을 가져가서 횡보할때 매수한지 1시간 이후에 청산하는 부분이 있었습니다.
1타점 매수, 2타점 매수, 3타점 매수 분할매수로 되어있는데. 매수한지 1시간 이후는
1타점 매수에 대해서만. 해당 되는 것 같아 요청드립낟.
예를 들면, 1타점 매수후 2타점이 까지 조건이 만족해서 2타점 까지 매수하여
횡보하던중.. 제 기준은 2타점 매수후 1시간 횡보하면, 청산이였는데..
시스템식을 돌려보니 1타점 매수후부터로 1시간 횡보하면 청산되는 것으로 나오게 됩니다.
기존에 요청드렸던 시스템식을 같이 송부합니다. 확인 부탁드리겠습니다.
2021-03-15
924
글번호 147119