커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4317
글번호 230811
답변완료
문의드립니다
안녕하세요
지표수식좀 부탁드립니다
1)
전일시가
전일고가
전일저가
전일종가
전일중심선=(전일고가+전일저가+전일종가)/3
진폭선=(전일고가-전일저가)
고점1선= (2*전일중심선)-전일저가
고점2선= 전일중심선+진폭선
고점3선= (고점1선+고점2선)/2
저점1선= (2*전일중심선)-전일고가
저점2선= 전일중심선-진폭선
저점3선= (저점1선+저점2선)/2
========================================================================
2)
전주시가
전주고가
전주저가
전주종가
전주중심선=(전주고가+전주저가+전주종가)/3
진폭선=(전주고가-전주저가)
고점1선= (2*전주중심선)-전주저가
고점2선= 전주중심선+진폭선
고점3선= (고점1선+고점2선)/2
저점1선= (2*전주중심선)-전주고가
저점2선= 전주중심선-진폭선
저점3선= (저점1선+저점2선)/2
========================================================================
부탁드립니다
2017-11-12
177
글번호 114105
답변완료
부탁 드립니다
도움주심에 감사 드립니다.
1)이평선 교차 지점에 수평선을 긋고 싶습니다.
input:p1(270),p2(360);
Var1=ema(c,p1);
var2=ema(c,p2);
if Crossup(var1,var2) Then
???????????????
if Crossup(var2,var1) Then
?????????????
2)타주기(분용)을
예를 들어 100틱용에서 200틱지표를 볼수 있도록 수정 부탁 드립니다.
Input : 타주기_분_Atime1(numeric),이평Period(numeric);
var : S1(0),D1(0),TM(0),EP(0);
Var : TF1(0),idx1(0),emav1(0),Pre1(0);
Ep = 2/(이평Period+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%타주기_분_Atime1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기_분_Atime1 <= 1 and TF1 > TF1[1]) or
(Bdate == Bdate[1] and 타주기_분_Atime1 > 1 and TF1 < TF1[1]) Then{
idx1 = idx1+1;
Pre1 = emav1[1];
}
if idx1 <= 1 then
emav1 = C;
else
emav1 = C * EP + Pre1 * (1-EP);
허2100y=emav1;
}
미리 감사 드립니다.
2017-11-13
169
글번호 114104
답변완료
부탁 합니다
제목 : 진입제한 수식문의
오일 매매하는 식을 만들고 싶습니다
진입후 매수, 매도를 번갈아 가며
진입하는 시스템 입니다
조건1; 거래시간은 오후 3시부터 새벽 3시 사이에만 신호가 나옴
조건2; 청산시점에서 거래시간중 누적수익이 50틱이상 이면 진입제한
진입중 누적손익이 50틱이되면 즉시 손절하고 다음진입 제한,
수익중일때는 청산시점에서 청산
조건3: 총 진입횟수를 20회로 제한 하고 싶습니다
input : sto1(40),sto2(5),sto3(3);
var : stok(0),stod(0);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
if crossup(stok,stod) Then
buy();
if CrossDown(stok,stod) Then
sell();
감사 합니다
2017-11-12
149
글번호 114103
답변완료
청산관련 문의드립니다.
노고에 항상 감사드립니다.
해외선물은 추세가 길게 나오는 경우가 있어서 청산방법을 고민해봤습니다.
매도 기준으로
1.직전 저점을 깨고 내려갈 때 직전 고점을 익절라인으로 설정
2.1과 최대수익금액의 50% 중 더 큰 수익을 보전할 수 있는 곳을 익절라인으로 설정
이렇게 생각해봤습니다.
매수로도 동일하게 적용해볼 예정입니다.
내용 검토 부탁드리겠습니다.
감사합니다.
2017-11-11
200
글번호 114102
답변완료
질문 드립니다.
안녕하세요.
답변을 달아 주시느라 고생 너무 많이 하십니다.
예스트레이더 시작한 초보 입니다.
공부 하면서 만들기 가능한지 어쭤봅니다.
제가 원하는 것은
차트에서
제가 직접 수평선 툴을 이용해서 분차트이나 틱차트에서 수평선을 배치하면 그 선 위치값이 왼쪽이나 오른쪽 끝에 숫자가 나오잖아요?
이런 기본툴에서
1번 수평선을 캔들 중간에 배치해서 긋으면 그 값이 나오고
다음 2번째 수평선을 다음 캔들 중간에 배치해서 긋으면 그 값이 나오고
다음 3번째 수평선을 다음 캔들 중간에 배치해서 긋으면 그 값이 나오고
3번째 수평선이 그으면 자동적으로 1번 2번 3번 값을 합쳐서 그 값을 다음 선에 자동적으로 표시 나오게 하는 방법이 예스트레이더에 가능한가요?
예를 들면
차트에서 1번 수평선 20.00 + 2번 수평선 50.00 + 3번 수평선 80.00 으로 수평선 3개를 직접 긋게 되면 예스트레이더 프로그램이 자동적으로 3개의 수평선 값을 합치고 곱해서 300 위치에 선이 자동으로 수평선이 나오는 것입니다.
이런거 가능한가요?
이런것은 시스템에서 프로그래밍 하는건가요? 아니면 지표에서 프로그래밍 하는건가요?
2017-11-12
154
글번호 114101
답변완료
수식좀 부탁드립니다.
5일이동평균선이 전일종가를 골든크로스시 3봉째종가에 매수진입하고
5일이동평균선이 전일종가를 데드크로스시 3봉째종가에 매수청산후 30초후에 매도자동진입
5일이동평균선이 전일종가를 골든크로스시 3봉째종가에 매도청산후 30초후에 매수자동진입
매수 또는 매도자동진입후 20틱수익시 1계약자동익절되고, 30틱수익시 1계약자동익절되고
나머지는 청산조건 완성시 자동청산
추가로 일일 자동매매시간을 설정할수 있도록(=매수매도진입 자동매매금지시간설정)
시스템수식좀 잘 부탁드립니다.
2017-11-11
149
글번호 114100
답변완료
모의투자
예스트레이더 모의투자 해보고 싶은데 어디에서 다운로드 되나요?
2017-11-11
159
글번호 114099
답변완료
수식 부탁합니다
진입과 청산을 다르게 해보려 합니다
즉 매수진입은 1분봉 스토캐스틱(25,6,6) 골든크로스에
매도 청산은 다르게 2분봉 스토캐스틱 데드크로스 발생시
시스템 매매식 부탁합니다
2017-11-11
140
글번호 114098
답변완료
1분으로 쪼개기 추가 질문드립니다
1) 60분 봉을 1분으로 쪼개 달라고 문의드렸었는데요.
수정해서 받은 수식을 응용하려고 하다보니 잘 안되네요. 한번 봐주세요.
진입, 청산부분만 따로 가져왔습니다.
b1, b2의 매수 기준 가격과 x1, x2의 매도 기준 가격을 설정한 다음 아래와 같이 하였습니다. 그 외의 조건식은 거의 동일합니다. 그런데 진입조건이 되도 전혀 주문을 안하네요....
뭐가 문제인가요?
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
and MarketPosition == 0
Then Condition1 = true;
Else Condition1 = false;
if Ovalue[0]<=b2+PriceScale*1
and Cvalue[0]>b2+PriceScale*1
and (Hvalue[0]-Cvalue[0])+(Ovalue[0]-Lvalue[0])<=(Cvalue[0]-Ovalue[0])*2
and MarketPosition == 0
Then Condition2 = true;
Else Condition2 = false;
if Ovalue[0]>=x1-PriceScale*1
and Cvalue[0]<x1-PriceScale*1
and (Hvalue[0]-Ovalue[0])+(Cvalue[0]-Lvalue[0])<=(Ovalue[0]-Cvalue[0])*2
and MarketPosition == 0
Then Condition3 = true;
Else Condition3 = false;
if Ovalue[0]>=x2-PriceScale*1
and Cvalue[0]<x2-PriceScale*1
and (Hvalue[0]-Ovalue[0])+(Cvalue[0]-Lvalue[0])<=(Ovalue[0]-Cvalue[0])*2
and MarketPosition == 0
Then Condition4 = true;
Else Condition4 = false;
}
if Condition1 == true Then Buy("매수1",AtLimit,b1);
if Condition2 == true Then Buy("매수2",AtLimit,b2);
if Condition3 == true Then Sell("매도1",AtLimit,x1);
if Condition4 == true Then Sell("매도2",AtLimit,x2);
setstoploss(pricescale*31,pointstop);
if MarketPosition == 1 then {
If c<entryprice-PriceScale*1 and barssinceentry>=60
then ExitLong("매수본청",AtLimit,entryprice);
if IsEntryName("매수1")
then exitlong("매수1익",AtLimit,b1e);
if IsEntryName("매수2")
then exitlong("매수2익",AtLimit,b2e);
}
if MarketPosition == -1 then {
If c>entryprice+PriceScale*1 and barssinceentry>=60
then ExitShort("매도본청",AtLimit,entryprice);
if IsEntryName("매도1")
then ExitShort("매도1익",AtLimit,x1e);
if IsEntryName("매도2")
then ExitShort("매도2익",AtLimit,x2e);
}
2) 60분봉기준으로 진입조건이 성립했으면 다음 60분동안 내내 진입대기상태로 있어야 하는데, 주신 수식은 1분 동안만 대기후 조건이 사라져 버리는 것 같습니다. 조건 성립후 45분, 50분에도 진입이 되어야 하는데 항상 10:01분 11:01분 23:01분에만 진입하더군요... 이것도 확인 부탁드립니다.
3) 진입한 캔들이 완성되기 전에 익절이 가능한가요?
setstoploss(pricescale*17,pointstop);
if MarketPosition == 1 then
{ if IsEntryName("매수1")
then exitlong("매수1익",AtLimit, eee); }
기본손절은 17틱 잡아두고, 매수 조건에 따라 진입을 했는데 진입 직후 바로 익절가격(eee)에 도달했다면 청산이 되나요? 위의 식으로는 진입캔들이 완성되고 다음 캔들에서 청산하더군요.
진입캔들 생성도중 익절청산하는 방법이 있다면 알려주시기 바랍니다.
4) 그리고 매수 진입이후 청산과 동시에 매도조건이 충족할때 바로 진입하려면(스위칭) 어떻게 해야 하나요. 예를 들의 1)의 수식에서 b1과 x1이 같은 가격일때 '매수본청'으로 청산할때 동시에 매도 조건이 맞는 경우가 많은데 바로 매수청산과 함께 매도진입할 수 있는 수식을 알려주시면 감사하겠습니다.
2017-11-11
140
글번호 114097