커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6138
글번호 230811
답변완료
수식작성 부탁드립니다
답변 감사합니다 그런데 알려주신 함수식을 예스렝귀지 새로만들기 지표로
선택하여 그대로 작성하였는데
예스트레이더 전략실행차트로 불러오기를 하면
아무지표도 보이지 않는데 뭐가 잘못된건지 모르겠습니다
확인 가능할지요>?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식작성 부탁드립니다
>
안녕하세요
예스스탁입니다.
현재봉 기준값을 과거봉으로 그리기 위해서는 추세선함수가 사용되어야 합니다.
일반 plot함수는 현재봉 기준으로 과거로 그리게 할수가 없습니다.
아래식 참고하시기 바랍니다.
var : cnt(0),TL(0);
Array : DD[10](0),TT[10](0);
if Bdate != Bdate[1] Then
{
DD[0] = Bdate;
TT[0] = sTime;
For cnt = 1 to 9
{
DD[cnt] = DD[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if DD[4] > 0 Then
{
TL_Delete(TL);
TL = TL_New(DD[4],TT[4],DayHigh,NextBarSdate,NextBarStime,DayHigh);
}
즐거운 하루되세요
> 므니엘 님이 쓴 글입니다.
> 제목 : 수식작성 부탁드립니다
> 안녕하세요
ma(c,5)을 기준으로
highest(c,5)를 그래프로 만들면 오른쪽으로 5일간 최대값으로 그려지는데요
제가 만들고픈 그래프는
오늘을 기준으로 오늘 최대값이 왼쪽으로, 즉 4일 거래일 전부터 오늘의 최대값이
그려지도록
수식을 작성하고 싶습니다. 꼭 알려주세요
2022-03-03
1559
글번호 156887
답변완료
안녕하세요?
안녕하세요?
아래수식에서 질문 드립니다.
1. 손절매와 동시에 스위칭을 구현할려고 합니다.
아래수식의 S-SL,B-SL일때 동시에 스위칭을 하고 계약수는 두배수인 2계약으로 진입하는 수식을 요청 드립니다.
2. 스위칭에 대한 청산.
변수에 손절매의 가격을 저장할수 있습니까?
예를 들면 손절매 크기가 20P일때 (매수시 1000 에진입 980 에 손절매 되었다고 가정 하겠습니다.)
변수에 손절매 크기가 저장.(20P)
변수에 저장된 가격의 두배인 40P가 스위칭 된 포지션의 청산목표가로 수식 요청.
(위에 예시로 설명하면은 980에 매도진입을해서 940에 매도청산이 되는식입니다.)
위 두가지 수식을 요청드립니다.
감사합니다.
If MarketPosition >= 0 and wave==2 and h>= value5 Then
Sell("S1",AtStop,value5);
if MarketPosition == -1 and l<= value6 Then
ExitShort("S-TP",AtStop,value6);
ExitShort("S-SL",AtStop,value1);
If MarketPosition >= 0 and wave==3 and l<= value6 Then
Buy("B1",AtStop,value6);
if MarketPosition == 1 and h>= value5 Then
ExitLong("B-TP",AtStop,value5);
ExitLong("B-SL",AtStop,value4);
2022-03-03
1150
글번호 156886
답변완료
수식 수정 부탁드립니다.
크루드오일에 적용하고자 아래 내용과 같이 수식을 작성해 주셨는데 아래 기준이 되는 설명과 같이 진입이 되질 않아 다시 한번 수식 수정 부탁드립니다.
오일 2/28일자 일봉이 양봉으로 마감되었으면 3/1일 진입은 매수로 지정 틱수만큼 낮게 진입되어야 하는데 매도로 진입되고 3/2일도 전일자가 일봉이 양봉으로 마감되었는데도 매도로 진입이 되고 있습니다. 확인 부탁드립니다.
참고로 전일자 양봉, 음봉은 일봉 기준이고 당일 진입 및 청산은 일분봉으로 하고 있습니다.
[ 기준시간은 시장시간으로 ]
1. 일봉상 전일자 봉이 양봉으로 마감시 금일 진입은 시작가 보다 지정틱수(input) 만큼 낮게
매수 진입.
2. 일봉상 전일자 봉이 음봉으로 마감시 금일 진입은 시작가 보다 지정틱수(input) 만큼 높게
매도 진입.
3. 청산은 지정틱수(input) 만큼 수익 도달시 청산
4. 진입후 미청산시 당일 마감 1분전(155900) 청산
5. 일일 진입횟수는 지정횟수(input) 만큼 진입
input : n(1),익절틱수(20),진입횟수(2);
var : entry(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 NextBarSdate != sDate Then
{
if C > DayOpen Then
Buy("b1",AtLimit,NextBarOpen-n);
if C < DayOpen Then
Sell("S1",AtLimit,NextBarOpen+n);
}
Else
{
if MarketPosition <= 0 and L > DayOpen-n and entry < 진입횟수 Then
Buy("b",AtLimit,DayOpen-n);
if MarketPosition >= 0 and L < DayOpen+n and entry < 진입횟수 Then
Sell("s",AtLimit,DayOpen+n);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopEndofday(153000);
2022-03-02
1146
글번호 156884
회원 님에 의해서 삭제되었습니다.
2022-03-02
154
글번호 156883
jshwang2 님에 의해서 삭제되었습니다.
2022-03-03
9
글번호 156881
답변완료
수정부탁드립니다========================
아래식은 참조데이타 data15.data16을 불러서 사용하고 있는데
input으로지정해서 사룔하고 싶슴니다 가능한가요?
Input:손실폭(0),비율(100),LENGTH2(10),콜풋테마(0),두께(0),일(130),일점오(150),이(200),이점오(270),삼(280),삼점오(350);
Input:교차범위(0.1),교차소리(0),매매30초소리(0),찬스소리(0),하20초소리(0);
var : openc(0),opc(0),opp(0);
var : HH(0,data15),LL(0,data15),ii(0,data15);
var : bojung(100), c_rate(0),p_rate(0),data15_rate(0);
var : opn_data15(0),opn_data16(0),opn_datap(0),data15opc(0),data16opc(0),datatoopp(0),vmin(0);
var :cp_pyung(0),opchac(0),opchap(0),c_gap(0),p_gap(0),cp_hap(0),cp_haptem(0),jinip(0),cp_pyung_tem(0);
c_rate = ((c-c[1])/c[1]*비율);//선물의 전봉대비움직인비율
p_rate = ((c-c[1])/c[1]*비율)*(-1);//선물의 전봉대비움직인비율
if opn_datap < 1 then {bojung = 일; }
if opn_datap > 1 and opn_datap < 1.5 then{ bojung = 일점오;}
if opn_datap > 1.5 and opn_datap < 2 then{ bojung = 이;}
if opn_datap > 2 and opn_datap < 2.5 then{ bojung = 이점오;}
if opn_datap > 2.5 and opn_datap < 3 then{ bojung = 삼;}
if opn_datap > 3 then{ bojung = 삼점오;}
if sTime == 090100 Then{
openc = c;
data15opc = data15(c);
opn_data15 = data15opc;
}
Else
data15opc = data15opc*(1+c_rate/c/data15opc*bojung);
if sTime == 090100 Then{
openc = c;
data16opc = data16(c);
opn_data16 = data16opc;
}
Else
data16opc = data16opc*(1+p_rate/c/data16opc*bojung);
plot1(data15opc,"콜선비율");
plot2(data15(c),"콜");
plot3(data16opc,"풋선비율");
plot4(data16(c),"풋");
vmin = min(data15(c),data16(c),data15opc,data16opc);
c_gap = data15(c) - data15opc;
p_gap = data16(c) - data16opc;
plot5(c_gap,"콜차이");
plot6(p_gap,"풋차이");
cp_hap = c_gap + p_gap;
plot67(cp_hap,"차이합");
PLOT8(cp_haptem ,"차이합테마");
PLOT9(cp_haptem+두께 ,"차이합테마위");
PLOT10(cp_haptem-두께 ,"차이합테마아래");
if ( data15(c) > data15opc) and ( data15(c) > data16(c)) and data15opc > data16opc and data16(c) > data16opc -0.1 Then{
PLOT11(vmin ,"콜강세");
// PLOT54(hapycrt,"상승교차가격");
if 교차소리 == 1 then {
// PlaySound("C:₩Users₩Administrator₩Desktop₩sound₩dd2.wav");
}
}
if ( data16(c) > data16opc) and ( data16(c) > data15(c)) and data16opc > data15opc and data15(c) > data15opc -0.1 Then{
PLOT12(vmin ,"풋강세");
// PLOT54(hapycrt,"상승교차가격");
if 교차소리 == 1 then {
// PlaySound("C:₩Users₩Administrator₩Desktop₩sound₩dd2.wav");
}
}
plotbaseline1(0);
opn_datap = (opn_data15+opn_data16)/2;
PLOT13(opn_datap,"시초평균");
cp_pyung = ( data15(c)+ data16(c))/2;
PLOT14(cp_pyung,"콜풋평균");
cp_pyung_tem = (3 * Ema(cp_pyung,콜풋테마)) - (3 * Ema(Ema(cp_pyung,콜풋테마),콜풋테마)) +
(Ema(Ema(Ema(cp_pyung,콜풋테마),콜풋테마),콜풋테마));
plot41(cp_pyung_tem,"콜풋평균테마");
if cp_pyung_tem > opn_datap and cp_pyung_tem > cp_pyung_tem[1] Then {
plot42(vmin,"강한매도기회");
if 하20초소리 == 1 then {
PlaySound("C:₩Users₩Windows 10₩Desktop₩sound₩하20초.wav");
}
}
if data15opc < data15(c) then{
plot15(data15(c),"매도구간");
if 매매30초소리 == 1 then {
PlaySound("C:₩Users₩Administrator₩Desktop₩sound₩하20초.wav");
}
}
if data16opc < data16(c) then{
plot16(data16(c),"매도구간");
if 찬스소리 == 1 then {
PlaySound("C:₩Users₩Administrator₩Desktop₩sound₩하20초.wav");
}
}
if data15opc < data15(c) and data16opc < data16(c) Then{
plot20(cp_pyung,"찬스");
}
if 매매30초소리 == 1 then {
PlaySound("C:₩Users₩Administrator₩Desktop₩sound₩하20초.wav");
}
if abs(data15(c) - data16(c)) < 0.1 then{
plot30(data15(c),"진입고려");
jinip = cp_pyung;
}
if cp_pyung - jinip > 손실폭 Then {
plot31(data15(c),"청산고려");
}
if opn_datap < cp_pyung Then {
plot32(vmin,"시초가돌파");
}
2022-03-02
1286
글번호 156875
답변완료
문의
시스템식 중 아래와 같이 진입시간을 설정하고있는데요,
다른 진입시간은 잘 반영이되는데
아래식에 따르면 3시부터 8시30분까지는 진입이 안돼야되는데
분석보고서를 보면 항상 새벽 3시와 새벽 3시30분은 진입이 되고있습니다.
(4시 5시는 또 진입안되는거 잘 반영됨)
Tcond = !(sTime >= 130000 and sTime < 170000) and !(sTime > 023000 and sTime < 090000);
if MarketPosition <= 0 and NextBarOpen > var2 and and Tcond == true Then
{
Buy("b",AtMarket);
그래서 아예 찍어서
Tcond = !(sTime == 030000) and !(sTime == 033000);
을 넣어봐도 분석보고서를 보면 항상 새벽 3시와 새벽 3시30분은 진입이 되고있는데
3시랑 3시반은 뭐가 좀 다른가요? 뭐가 잘못되었을까요?
2022-03-02
1138
글번호 156873
답변완료
원격 접속 부탁드립니다 010-2116-8510
ema지표
2022-03-02
1207
글번호 156870
답변완료
부탁 드립니다~~
전일에 고가를 돌파 하는 종목을 찾고 싶습니다.
전일 (어제의 고가)
부탁 드립니다.
2022-03-02
1228
글번호 156864