커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4441
글번호 230811
답변완료
지표식 부탁드립니다.
안녕하세요.
항상 도움주셔서 감사합니다.
재귀용법을 사용하여 20일 단순이동평균선을
수식을 만들고 싶습니다.
재귀용법에 대한 간단한 설명과 작성법도 같이
부탁드립니다.
감사합니다.
2017-02-15
116
글번호 106824
천용인 님에 의해서 삭제되었습니다.
2017-02-14
34
글번호 106823
답변완료
틱차트에서 30분단위 시초가를 알고 싶습니다~
1. 전화로 문의했었는데요~ 틱으로30분봉값을 구하는 식을 봤는데 너무 어렵고 지표적용을 해보니 이평값이 계산되어있는거 같더라구요~
첨부파일사진에 보이는거처럼 30분시초가를 표시하면 30분단위로 가로선이 그어지면서 새롭게그어진가로선의 가격이 표시가 되잖아요 이 가격을 알고 싶습니다.
사진에는 항생차트인데 제가 알고싶은 부분은 차트상의 30분시초가지표에 표시되어 있는 현재 진행되고있는 이전봉의 종가가격인
10시30분가격 그리고 이전으로 표시된 12시30분가격 그리고 12시가격 그리고 11시30분가격 그리고 11시가격까지요~ 현재진행되고있는 가격포함해서 차트상의 지표에 표시된 30분단위로 6개이전가격까지 각각 틱차트상으로 알고 싶은데요 이걸 알 수 있을까요~
유로같은 경우는 30분단위로 진행되어서 좋은데 항생같은 경우는 위에 표시한거처럼 당일시초가 이후로10시30분가격이 나오고나서 이전가격이 12시30분인데 이부분도 계산이 될지 모르겠습니다.
다시정리하면 30분단위로 현재진행되고있는 30분시초가가격이랑 그이전30분시초가가격 그이전30분시초가가격
이런식으로 총6개 30분시초가지표상 표시되어있는 30분시초가가격을 각각알 수 있는 식을 부탁드릴게요~
2. 그리고 틱에서 30분시초가를 구해서 아래식 그대로 대입할려니깐
힘들거 같아서요 아래식에 나와있는 그대로 틱차트상으로 30분시초가를 구해서 적용좀 부탁드릴게요~
아래식은 data1이 틱차트이고 data2가 30분봉입니다.
항상감사드립니다~ 이번엔 제대로 됐음 좋겠습니다ㅜ
input : P5(5), P20(20), P60(60), get(25), cut(25);
var : mav0(0,data2), mav1(0,data2), mav2(0,data2), mav3(0,data2), mav4(0,data2), mav5(0,data2), tic20(0,data1), tic60(0,data1), tic5(0,data1);
mav0 = data2(c);
mav1 = data2(c[1]);
mav2 = data2(c[2]);
mav3 = data2(c[3]);
mav4 = data2(c[4]);
mav5 = data2(c[5]);
tic20 = data1(ma(c,P20));
tic60 = data1(ma(c,P60));
tic5 = data1(ma(c,P5));
if stime >= 103000 and stime < 165500 Then{
if mav0 > mav5 and mav1 > (mav0+mav2+mav3+mav4)/4 then{
if crossup(tic5,tic20) Then{
if MarketPosition == 0 Then
buy("E매수");
if MarketPosition == -1 Then
buy("E리버스매수");
}
}
if mav0 < mav5 and mav1 < (mav0+mav2+mav3+mav4)/4 then{
if CrossDown(tic5,tic20) then{
if MarketPosition == 0 Then
sell("E매도");
if MarketPosition == 1 Then
sell("E리버스매도");
}
}
if mav0 < mav5 and mav1 < (mav0+mav2+mav3+mav4)/4 then
exitlong("불매수청산");
if mav0 > mav5 and mav1 > (mav0+mav2+mav3+mav4)/4 Then
ExitShort("불매도청산");
}
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{
exitlong();
ExitShort();
}
SetStopProfittarget(PriceScale*get,PointStop);
SetStopLoss(PriceScale*cut,PointStop);
2017-02-14
153
글번호 106822
겐지 님에 의해서 삭제되었습니다.
2017-02-14
1
글번호 106821
답변완료
수식 부탁드립니다
수고 하십니다.
선물 한달치분봉 차트에서--예를 들면 5분봉 차트에서(종가기준으로)
매일의 시작봉.고가봉,저가봉,종가봉의
시가 ,고가,저가,종가를 print,나 메서지로그로 할수 있는식좀,
초보자 입니다, 감사합니다
2017-02-14
115
글번호 106820
답변완료
파라볼릭과 MACD+STOC 시스템식 부탁드립니다.
안녕하세요.
만들어주신 지표와 시스템식 잘 활용하고 있습니다.
오늘 하이투자증권 교대역 지점에서의 강의도 잘 들었습니다.
감사합니다.
다음의 2개 시스템식 부탁드립니다.
1. 예스트레이드 시스템선택식의 파라볼릭에서
당일 시초가 위에서는 매수진입과 매수청산 신호만 실행되게 시스템식 부탁합니다.
당일 시초가 밑에서는 매도진입과 매도청산 신호만 실행되게 시스템식 부탁합니다.
예) 시가아래서 매도/매도청산 자동매매하다가, 장중에 현재가가 시초가위로 바뀐 경우, 매도포지션으로 오버나잇한 경우에는 시초가위에서 매수신호와 매수청산을 자동매매가 되도록 부탁합니다.
2. 다음의 MACD+STOC 합성 시스템식에서
당일 시초가 위에서는 매수진입과 매수청산 신호만 실행되게 시스템식 부탁합니다.
당일 시초가 밑에서는 매도진입과 매도청산 신호만 실행되게 시스템식 부탁합니다.
예) 여기서도 시가아래서 매도/매도청산 자동매매를 하다가, 장중에 현재가가 시초가위로 바뀐 경우, 매도포지션으로 오버나잇한 경우에는 시초가위에서 매수신호와 매수청산을 자동매매가 되도록 부탁합니다.
input : short(12),long(26),sto1(14),sto2(3),sto3(3);
var : HH(0),LL(0),FK(0),SK(0),SD(0),T(0);
var1 = MACD(short,long);
HH = Highest(var1, sto1);
LL = Lowest(var1, sto2);
FK = (var1 - LL) / (HH-LL) * 100;
SK = ema(FK,sto1);
SD = ema(SK,sto2);
if SK > SK[1] and SK[1] < Sk[2] Then
buy();
if SK < SK[1] and SK[1] > Sk[2] Then
sell();
2017-02-15
158
글번호 106819
답변완료
문의드립니다.
안녕하세요
슬리피지 관련하여 매매가격 설정에 대해서 조언을 구하고자 합니다.
현재 자동매매를 시험적으로 구동시키고 있는데, "시스템 매매 설정" 기능의 '매매' 메뉴에서 '매매가격'을 진입과 청산 모두 "현재가+-5호가"로 설정하고 있습니다.
진입에서는 슬리피지가 별로 발생하지 않는데, 문제는 청산시에 거의 매번 1~2틱의 슬리피지가 발생하고 있습니다. 손절시에 체결이 안되어 더 큰 손실이 날 우려 때문에 청산 가격을 "현재가+-5호가"로 설정하고 있습니다만, 수익청산시에 거의 매번 슬리피지가 발생하는게 고민입니다.
현재 설정보다 더 효과적인 살정이 있다면 알려주시면 감사하겠습니다.
또한, 시스템트레이딩에서 일반적으로 가장 많이 사용하는 가격설정은 어떠한 것들이 있는지 알려주시면 감사하겠습니다.
2017-02-14
139
글번호 106818
답변완료
수식 다시 한번 문의 드립니다.
매도 진입
화면상 최근 150개 캔들중
1. 최저가를 기준으로 캔들이 양봉 상승하고 이후 캔들이 음봉 하락 마감하면 1고점.
2. 이후 캔들 중 1고점을 상향 돌파하고 그 이후 캔들 중에서 음봉으로 하락 마감하면 2고점.
3. 이후 캔들 중 2고점을 상향 돌파하고 그 이후 캔들 중에서 음봉으로 하락 마감하면 3고점.
4. 이후 캔들 중 3고점을 상승 돌파한 4번째 고점 다음 캔들이 시가(현재캔들) 상
1틱이라도 하락하면 시장가 매도 진입한다.
손절 15틱 익절 30틱.
5. 손절 발생 후 다음 캔들이 시가(현재캔들)보다 1틱이라도 하락 하면 시장가 매도 진입한다.
손절 15틱 익절 30틱.
2017-02-17
153
글번호 106817
답변완료
수식 부탁드립니다.
아래식을 기준으로 다음 조건을 추가해주세요, 수정해보려 하는데 안되서요..
조건 추가) 51894 글 참조
이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross up 하면 매수
이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross down 하면 매도
input : P(3),P1(5),P2(10),P3(60),P4(120),short(12),long(26),sig(9),시작시간(90000),종료시간(60000),만족(3) ;
var : mav1(0),mav2(0),mav3(0),mav4(0),macdv(0),macds(0),T(0),Tcond(false),Xcond(false),ii(0);
var : N1(0),daypl(0),mav(0), Xcond1(false),Xcnt(0),T1(0);
mav = ma(c,P);
mav1 = ma(c,P1);
mav2 = ma(c,P2);
mav3 = ma(c,P3);
mav4 = ma(c,P4);
MACDV = MACD(short,long);
MACDS = ema(MACDv,sig);
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then
{
T = 0;
Tcond = true;
Xcond = false;
Xcond1 = false;
Xcnt = 0;
N1 = NetProfit;
}
//daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("S청산",1) or IsExitName("B청산",1)) Then
{
Xcnt = Xcnt+1;
if Xcnt == 만족 Then
Xcond1 = true;
}
if mav3 > mav3[1] and mav4 > mav4[1] and CrossUp(macdv,macds) Then{
T = 1;
ii = index;
}
if mav3 < mav3[1] and mav4 < mav4[1] and CrossDown(macdv,macds) Then{
T = -1;
ii = index;
}
if Tcond == true and Xcond1 == false then{
if MarketPosition == 0 and T == 1 and index <= ii+2 and c < mav Then
buy("S");
if MarketPosition == 0 and T == -1 and index <= ii+2 and c > mav Then
sell("B");
}
if CrossDown(mav1,mav2) Then
Exitlong("Sx");
if CrossUp(mav1,mav2) Then
ExitShort("Bx");
----------------------------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식부탁드립니다.
>
안녕하세요
예스스탁입니다.
input : short(12),long(26),sig(9);
var : MACDV(0),MACDS(0),MACDO(0);
var : sum(0),ii(0),mav(0),mav1(0),mav2(0);
MACDv = MACD(Short,long);
MACDS = ema(MACDV,sig);
MACDO = MACDv-MACDs;
if crossup(MACDO,0) or CrossDown(MACDO,0) Then{
sum = 0;
ii = 0;
mav1 = mav[1];
mav2 = mav1[1];
if crossup(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then
buy();
if CrossDown(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then
sell();
}
sum = sum + abs(MACDO);
ii = ii + 1;
mav = sum/ii;
즐거운 하루되세요
> 바바큰 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다.
> 수식 부탁드립니다.
이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross up 하면 매수
이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross down 하면 매도
예)
매수 전 한 싸이클 오실레이터 막대 값들의 평균 값
(+구간) 평균값: +0.8, (-구간) 평균값: -0.4
매수 전 한 싸이클(+,-) 구간 오실레이터 각각의 절대값들의 평균: (|+0.8|+|-0.4|) / 2 = 0.6
매도 전 한 싸이클 오실레이터 막대 값들의 평균 값
(-구간) 평균값: -0.4, (+구간) 평균값: +1.0
매도 전 한 싸이클(-,+) 구간 오실레이터 각각의 절대값들의 평균: (|-0.4|+|+1.0|) / 2 = 0.7
2017-02-14
104
글번호 106813