커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1725
글번호 230811
답변완료
문의드립니다
수고하십니다.
수식 문의 좀 드립니다.
1) 한개의 캔들, 시가와 고가의 평균값을 이평선으로 표현 식.
2) 두개의 각 평균 값을 다시 하나의 평균 값으로 이평선으로 내는 식.
3) 전 저점/고점을 반등 했을 때 색으로 표현하고 식.
4)캔들에 겹치는게 아니라 밑에 따로 표현하는 식.
5) 여러 개의 다른 식을 한 지표로 통합해서 나오게 하고 싶은데 방법 좀 알려주세요.
ex) 이평,오실,강조 등을 한 지표를 출력 했을 때 다 같이 나오게요.
매번 감사드리고, 오늘 황사 심하다는데 조심하세요~
2021-03-16
653
글번호 147131
답변완료
수식어 부탁드립니다
당일 07:00시부터
익일 02:50 사이
N틱 하락시 매수후 N틱에 청산
N틱 상승시 매도후 N틱에 청산
의 수식어 부탁드립니다
2021-03-16
853
글번호 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
1023
글번호 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
1160
글번호 147122
답변완료
청산식 질문드립니다
안녕하세요
정산식 질문좀 드립니다
이평선 20 50 70 90 100 사용합니다
매수진입해서
이평선 20 50 데드시 청산1
진입하고나서 수익이 50틱 이상이고
이평선 20 50 70 90 이 정배열이 아니면 바로청산2
반대 매도의 경우도 부탁합니다
참고로 5계약입니다
틱수만 외부변수로 부탁합니다
2021-03-16
1055
글번호 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
857
글번호 147119
답변완료
죄송~~^^ 이 수식에 맞는 신호도 부탁 드립니다.
정말 죄송 합니다.
한 번에 이야기 드렸어야 되었는데,
여기 수식에 대한 신호도 같이 만들어 주셨으면 합니다.
죄송 하고 고맙습니다.
input : midPeriod(52); ("이 부분은 잘못 하셔서 제가 수정 했습니다")
var1 = ma(c,5);
Var2 = ma(c,60);
Var3 = ma(c,226);
Var4 = (highest(high,midPeriod)+lowest(low,midPeriod))/2;
Var5 = BollBandUp(300,2);
Condition1 = dayClose(1) < C and
var1[1] < var1[4] and
var1[1] < var1 and
C > Var3 and
C > Var2 and
Var2 > var2[5] and
C > Var4;
Condition2 = DayOpen() < dayClose(1)*1.10 and
dayClose(1) < C and
var1[1] < var1[4] and
var1[1] < var1 and
C > Var5 and
C > var3 and
C > Var2 and
Var2 > var2[5] and
C > Var4;
if Condition1 == true and Condition2 == true Then
Find(1);
2021-03-16
839
글번호 147118
답변완료
문의
var : Hv(0),CC(0);
if crossup(stime,101500) Then{
Hv = V;
CC = h;
}
if stime > 101500 and stime < 144000 Then{
if V > Hv Then{
Hv = V;
CC = h;
}
plot1(CC);
}
양봉이면 붉은색선이 나오고 음봉이면 푸른색선이 나오도록 부탁드립니다
2021-03-15
601
글번호 147116