커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4322
글번호 230811
답변완료
시스템식 문의 드립니다.
A라는 조건을 만족하여 매수가 들어간 이후에
B라는 조건을 만족하면 추가매수가 들어가게 할려면 어떻게 해야하는지 궁금합니다.
예를들어 A라는 조근을 만족하여 매수가 이루어진 후
20일 이평선을 돌파할시 추가매수를 한다
이런식으로 할려면 어떻게 해야하나요.
감사합니다.
2017-11-13
124
글번호 114148
답변완료
수식 요청 드립니다.
수식 요청 드립니다.
연결선물 당일청산 시스템에서 장시작 후 5분 까지 당일 시가기준 1.2P 이상
상승 또는 하락한 조건이 달성한 경우 진입에 대한 청산식 입니다.
(진입 후 조건달성, 진입 전 조건달성 모두 적용되는 청산식 입니다.)
매수진입 후 - 5이평이 20이평 하향 돌파한시 청산, 당일 고가 대비 30% 하락시 청산
매도진입 후 - 5이평이 20이평 상향 돌파한시 청산, 당일 저가 대비 30% 상승시 청산
감사 합니다.
2017-11-13
131
글번호 114147
답변완료
여전히 진입자체를 안하네요
수식 전체 올려봅니다.
아래와 같이 매수기준가, 매도기준가 직접입력해서 진입청산하는 수식입니다.
그런데 조건이 맞아도 전혀 진입을 안합니다. 문제를 찾아주세요.
변수 S1으로 잡아주셨던 것은 M1(매도변수랑 중복이라)으로 바꾼거 말고는 거의 그대로 입니다.
Inputs: 매수1(0), 매수1익(0), 매도1(0), 매도1익(0)
Vars : b1(0), b1e(0), s1(0), s1e(0),
M1(0), D1(0), TM(0), TF(0), cnt(0), TM1(0), TF1(0);
Array : Ovalue[10](0),Hvalue[10](0),Lvalue[10](0),Cvalue[10](0);
if Bdate != Bdate[1] Then{
M1 = TimeToMinutes(stime);
D1 = sdate; }
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-M1;
Else TM = TimeToMinutes(stime)+1440-M1;
TF = TM%60;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])
Then{ Ovalue[0] = O;
Hvalue[0] = H;
Lvalue[0] = L;
for cnt = 1 to 9{
Ovalue[cnt] = Ovalue[cnt-1][1];
Hvalue[cnt] = Hvalue[cnt-1][1];
Lvalue[cnt] = Lvalue[cnt-1][1];
Cvalue[cnt] = Cvalue[cnt-1][1];
}
}
#Hvalue[0]보다 큰 고가가 출력하면 값갱신
if H > Hvalue[0] Then
Hvalue[0] = H;
#Lvalue[0]보다 작은 저가가 출력하면 값갱신
if L < Lvalue[0] Then
Lvalue[0] = L;
#Cvalue[0]는 매봉종가
Cvalue[0] = C;
if TF < TF[1] Then
{
Condition1 = false;
Condition2 = false;
Condition11 = Condition1[1];
Condition22 = Condition2[1];
}
if (TF == 59) then {
if Ovalue[0]<=b1+PriceScale*1
and Cvalue[0]>b1+PriceScale*1
and (Hvalue[0]-Cvalue[0])+(Ovalue[0]-Lvalue[0])<=(Cvalue[0]-Ovalue[0])*2
Then Condition1 = true;
Else Condition1 = false;
if Ovalue[0]>=s1-PriceScale*1
and Cvalue[0]<s1-PriceScale*1
and (Hvalue[0]-Ovalue[0])+(Cvalue[0]-Lvalue[0])<=(Ovalue[0]-Cvalue[0])*2
Then Condition2 = true;
Else Condition2 = false;
}
if Condition11 == true Then Buy("매수1",AtLimit,b1);
if Condition22 == true Then Sell("매도1",AtLimit,s1);
#손절 및 청산
setstoploss(pricescale*15,pointstop);
if MarketPosition == 1 then {
if IsEntryName("매수1")
then exitlong("매수1익",AtLimit,b1e);
if C > entryprice and barssinceentry >= 200 then exitlong
("el01",atstop,entryprice+(highest(h,barssinceentry)-entryprice)*0.4);
if TF == 59 Then { if Cvalue[0] < entryprice then
ExitLong ("el00",AtLimit,entryprice);
}
}
if MarketPosition == -1 then {
if IsEntryName("매도1")
then ExitShort("매도1익",AtLimit,s1e);
if C < EntryPrice and BarsSinceEntry >= 200 then exitshort
("es01",atstop,entryprice-(entryprice-lowest(l,barssinceentry))*0.4);
if TF == 59 Then { if Cvalue[0] > entryprice then
ExitShort ("es00",AtLimit,entryprice);
}
}
}
2017-11-13
134
글번호 114145
답변완료
결과가 나왔다 안나왔다 합니다.
------------------------------------------------------------------------------------
//엔벨 돌파
Input : iPeriod(50), Period1(60), D1(5);
Condition2 = CountIF(CrossUp(H, EnvelopeUp(Period1, D1)) == True, iPeriod) >= 1;
if Condition2 == True Then
Find(1);
-----------------------------------------------------------------------------------
//볼벤이 엔벨 데드 크로스
Input : iPeriod(100), Period1(20), D1(1.5), Period2(60), D2(5);
value1 = BollBandUp(Period1,D1);
value2 = EnvelopeUp(Period2,D2);
Condition1 = CrossDown(value1,value2);
Condition2 = CountIF(Condition1 == True, iPeriod) >= 1;
if Condition2 == True Then
Find(1);
----------------------------------------------------------------------
안녕하세요.
##문제점1
위의 //엔벨 돌파 식을 일봉으로 실행하면 결과가 나옵니다.
하지만 iPeriod를 20으로 변경하면 결과가 나오지 않습니다.
20일 안에 엔벨 돌파한 경우가 있는데 말이죠.
15분봉에서는 iPeriod를 500으로 해도 1000으로 해도 나오지 않습니다.
##문제점2
//볼벤이 엔벨 데드 크로스 식도 되지 않네요.
볼벤이 볼벤을 데드난 경우는 검색이 잘 됩니다.
근데 엔벨만 사용하면 결과가 나왔다 안나왔다 합니다.
이 또한 일봉은 기간에 따라 되는 경우가 있고 안되는 경우가 있고 분봉에서 또한 그렇습니다.
COUNTIF 의 문제인지 엔벨의 문제인지 궁금합니다.
몇주 별짓을 다해보다 문의 드립니다.
2017-11-13
146
글번호 114124
답변완료
시스템 수식 여쭤봅니다.
안녕하세요?
개별 종목으로 매매 할꺼구요.
종가 매수 그 다음날 매도 식을 만들고 싶습니다.
조건은
1봉전 대비 거래량 10%~40% 이고
오늘 일봉의 저가 고가 변동폭이 10% 미만 이고
금일 현재가가 1봉전 종가를 넘지 않았고
금일 저가가 1봉전 (시가+종가)/2 이하로 내려가지 않았을때
종가로 매수 ( 종가매수가 어렵다면 15시19분쯤 매수;;)
매도는 +4% 이상이면 물량의 60%
+10% 나머지 전량매도
+4% 이상갔다가 다시 +1%로 떨어지면 전량 매도
손절은 1봉전(매수한날) 저가 이탈시 전량매도 입니다.
종목을 매수하고 물량이 있을때는 조건에 충족해도
중복 매수가 안됬으면 합니다.
감사합니다.
2017-11-13
152
글번호 114123
답변완료
문의드립니다.
1. 아래의 식에서 가장큰 가격대만 표현하고싶습니다.
#==========================================#
Input:기간(20),
구간개수(10); //최대 20
Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0),
시작번호(0),끝번호(0);
Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0);
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
#----------------------------------------------------------------------------------#
최대 = Highest(H,기간-1);
최소 = Lowest(L,기간-1);
Value1 = (최대-최소)/구간개수;#Round((최대-최소)/구간개수,0);
가격대[0] = 최대;
For 행번호 = 0 To 구간개수-1 {
가격대[행번호+1] = 가격대[행번호] - Value1;
거래량[행번호] = 0;
비율[행번호] = 0;
}
총거래량 = 0;
For j = 0 To 기간-2 {
총거래량 = 총거래량 + V[j];
#----------------------------------------------------------------------------------#
# 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호;
if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호;
}
가격대거래량 = V[j]/(끝번호-시작번호+1);
for 행번호 = 시작번호 To 끝번호 {
거래량[행번호] = 거래량[행번호] + 가격대거래량;
}
}
#----------------------------------------------------------------------------------#
# 비율 계산
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
비율[행번호] = 거래량[행번호] * 100 / 총거래량;
}
#----------------------------------------------------------------------------------#
# 지표출력
#----------------------------------------------------------------------------------#
for j = 0 to 구간개수-1 {
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
Text_Delete(Text[j]);
Text[j] = Text_New(date[0], stime[0], (가격대[j]+가격대[j+1])/2,""+NumToStr(거래량[j],0)+" ("+NumToStr(비율[j],2)+"%)("+NumToStr(가격대[j+1],2)+" ~ "+NumToStr(가격대[j],2)+")");
Text_SetColor(text[j], WHITE);
Text_SetStyle(Text[j],0, 2);
}
j = 구간개수;
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
2017-11-13
168
글번호 114122
theogo66 님에 의해서 삭제되었습니다.
2017-11-13
0
글번호 114119
답변완료
청산식이 작동됐다 안돼서...
<상황>
-주식현물,15분봉으로 자동매매를 하고 있음.
-질문코자 하는 청산식은 피봇2차저항에 도달하면 매수분을 청산코자 하는데,
11/10일(금)은 시스템이 작동되어서 청산 됐고, 11/13일(월)은 청산이 안됨.
-포지션 상황은 11/10일(금) 종가에 매수신호가 들어와서 시스템하나는 자동매수가 됐고,
다른 시스템하나는 주문오류가 돼서 11/13(월) 아침 시가로 매수하여 차트신호를 맞춰놓음.
(관련 차트는 첨부와 같습니다.)
-시스템식의 관련항목은 아래와 같음.
=아래=
Variables: ~~~~
Pivot(0),R1(0),R2(0),S1(0),S2(0);
~~~~
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
if marketposition > 0 and CrossUp(C,R2) Then
ExitLong ("피봇ex",AtStop,R2);
/////////////////////
<질문>
-11/13일(월) 종가가 피봇2차저항선을 넘었는데, 청산이 안되는 요인이 무엇인지 검토및
식이 잘못되었다면 어떻게 수정해야 하는지 알려주시면 감사하겠습니다.
수고하세요.~~~
2017-11-13
170
글번호 114118
답변완료
시스템식 부탁드립니다.
안녕하세요.~~
항상 도움 주셔서 감사합니다.
아래의 경우에 포지션 진입하는 시스템식 부탁드립니다.
매수 진입 :
1. 장기이평(예:90일 이평)이 5회 이상 상승하고 현재봉의 장기이평 값과
5봉 이전의 장기이평 값의 차이가 10포인트(틱) 이상
2. 단기이평(예:15일 이평)이 5회 이상 상승하고 현재봉의 단기이평 값과
5봉 이전의 단기이평 값의 차이가 15포인트(틱) 이상
3. 단기이평 값이 장기이평 값 보다 크고
4. 단기이평값과 장기이평 값의 차이가 5회(5봉) 이상 계속적으로 커질것
5. 현재가가 단기이평보다 5회 이상 큰 상태가 지속된 상태이면 매수 진입
매도 진입 :
1. 장기이평(예:90일 이평)이 5회 이상 하락하고 현재봉의 장기이평 값과
5봉 이전의 장기이평 값의 차이가 10포인트(틱) 이상
2. 단기이평(예:15일 이평)이 5회 이상 하락하고 현재봉의 단기이평 값과
5봉 이전의 단기이평 값의 차이가 15포인트(틱) 이상
3. 단기이평 값이 장기이평 값 보다 작고
4. 단기이평값과 장기이평 값의 차이가 5회(5봉) 이상 계속적으로 커질것
5. 현재가가 단기이평보다 5회 이상 작은 상태가 지속된 상태이면 매도 진입
매수청산 :
1. 주가가 단기이평 아래에서 3봉이상 지속될 경우 매수 청산
매도청산 :
1. 주가가 단기이평 위에서 3봉이상 지속될 경우 매도 청산
시스템식 부탁드립니다.
2017-11-13
178
글번호 114117