커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4464
글번호 230811
답변완료
AtStop 관련문의 드립니다.
수고 많으십니다.
AtStop 관련하여 몇가지 문의드리고자 합니다.
첨부의 그림은 다음과 같은 수식으로 작성한 Simulation 결과입니다.
비용에서 슬리피지 0, 수수료 0 으로 설정하였습니다.
//양봉매수 음봉청산
IF C>O Then Buy("양봉매수AtStop",AtStop,C);
IF C<O Then ExitLong("음봉청산AtStop",AtStop,C);
첫번째 질문드리고 싶은 것은
하이투자증권에서 예스트레이드 교육을 받았을 때.
Astop의 경우 Buy/ExitShort의 함수에서는 예비신호가 있는 것으로 강의 책자에서
설명이 되어있는데 실제로는 예비신호가 발생하지 않는 것 같습니다.
두번째 질문드립니다.
첨부의 그림을 보시면 봉1에서 신호와 함께 주문이 발생하여 상단의 수익선에서 수익부분이
표시되기 시작합니다.
봉3번에서 청산주문이 발생하였고 데이타 보기로도 수익이 봉3에서 -4.25라면
봉4번에서도 -4.25로 되어 있는데 A부분에서 보시는 바와 같이 손실이 증가되는
모습을 보이고 있습니다
A 부분에서 제가 임의로 그은 붉은 색 처럼 선이 그려져야 하는 것 아닌가
싶습니다.
세번째 질문드립니다.
수식
20일 상향돌파하고 진입가 대비하여 목표가를 10포인트로 설정하고
10포인트 상향돌파하고 10포인트를 하향하면 청산하는 것을 수식으로
작성해 보았습니다.
Vars:MaxHigh(0),MaxIni(-99999);
IF MarketPosition==0 && Crossup(C,MA(C,20)) THEN
{ Buy("매수",AtMarket); MaxHigh=MaxIni;
IF MarketPosition == 1 then
{
목표수익 = EntryPrice+10;
MaxHigh=IFF(H>목표수익,목표수익,MaxIni);
ExitLong("매수청산",AtStop,MaxHigh);
}
질문드리고자 하는 것은 왜 MaxIni를 0이 아닌 충분한 크기의 음수 -99999를
해주어야 하는가 입니다.
MaxHigh가 0인 경우에 가격이 0 이하로 내려가는 경우가 없지 않나입니다.
2018-12-10
184
글번호 124280
답변완료
검색식 부탁드립니다
5분봉에서
당일 분봉 최고변동율이 10%이하 이고
당일 분봉 최고거래량이 100,000만주이하 이고
장시작가 대비 종가가 5%이상이고
전일 거래량보다 많은 종목 검색식 부탁드립니다
2018-12-10
159
글번호 124279
답변완료
문의 드립니다.
아래 식에서 조건에 따라 매수와 매도가 발생합니다.
여기에 추가 전제 조건으로 60이평 위에 있다면 매수신호만. 아래 있다면 매도신호만
신호가 발생하도록 추가하고 싶습니다.
감사합니다.~
input : P(10),P2(20);
var : T1(0),T2(0);
var1 = ma(C,P);
var2 = ma(C,P);
if var1 > var1[1] Then
T1 = 1;
if var1 < var1[1] Then
T1 = -1;
if var2 > var2[1] Then
T2 = 1;
if var2 < var2[1] Then
T2 = -1;
if countif(T1 == 1 and T2 == 1,2) == 2 Then
buy();
if countif(T1 == -1 and T2 == -1,2) == 2 Then
sell();
2018-12-10
156
글번호 124278
답변완료
수식 부탁드립니다......
처음 해보는 작성법이라, 많이 생소하지만 열심히 배워보겠읍니다.
먼저 제가 현재 주로 참고해서 보는 신호식입니다.
B = sum(if(c>o,(H+O+L+C)/4*V/100000000,if(c<o,-(H+O+L+C)/4*V/100000000,0)));
B2 = valuewhen(1, date(1)!=date, B(1));
K = B - B2;
crossup(K, mult2) ( 여기서 mult값은 50을 적용) (H+O+L+C)/4*V는 거래대금입니다.
어찌하여 지표는 만들어 졌는데 종목검색으로 만드니 잘 안되는 것 같아
글을 올립니다.
그래서 종합적으로 수식을 의뢰하고자 글을 적어봅니다.
질문1. 1> 전일기준 종가가 1000원이상 ~ 50000원이하인 종목
2> 전일기준 5일 평균 거래대금이 10억이상
3> 전일기준 5일 평균 거래량이 100,000주 이상인 종목
4> 일봉상 현재 양봉인 종목
5> 상단에 있는 신호식과 함께 분봉에서 일괄 종목 검색할 수 있게
수식을 부탁드립니다.
질문2. 당일 1회이상 발생한 종목을 장마감후 일괄 검색할수 있는 조건식( 예) 15분봉에서)
- 당일분만.......
질문3. 질문1이 발생한 종목중 K가 현재값 0 이상인 종목만 검색하는 식.( K > 0 )
이상의 3가지 질문이 같은 카테고리를 가지고 있지만 아직 예스언어가 익숙하지 않아
염치 불구하고 부탁드립니다..........
기본은 일봉기준 종목을 / 상단 신호식을 이용 단일분에서만 신호 발생종목 찾기입니다.
2018-12-09
172
글번호 124277
답변완료
수식 문의 드립니다.
변동성 투자전략으로 투자해볼 생각인데
아래 노이즈 필터식으로 지난 30일동안 검색해서
노이즈가 적은 ( 0.45 이하 ) 코스닥 종목과 ETF 만을
검색하는 식 좀 부탁 드립니다.
노이즈 = 1-abs(시가-종가)/(고가-저가)
감사합니다.
수고하세요~
2018-12-09
146
글번호 124276
답변완료
수식을 부탁드립니다.
안녕하세요?
수고에 감사드립니다.
항셍 홍콩 본장 개장시간부터 야간시장 종료 시점까지을 기준으로 전일시가,전일 고가,전일저가,전일종가,당일시가, 당일고가,당일저가, 당일종가 수식을 부탇드립니다.
좋은 날 보내십시요.
2018-12-09
177
글번호 124275
답변완료
부탁드립니다. 첨부한 수식을 추가 보완하고 싶습니다.
안녕하세요? 항상 감사합니다.
아래 수식에 다음 내용을 추가 또는 수정하고 싶습니다.
1. 형성된 고점과 저점 의 중간선을 추가하고 싶습니다.(색상은 녹색)
2.수치 표시에서 소숫점 표시 자릿수를 조절하고 싶습니다.(자릿수 표시 범위 0~6)
3. 상승시에는 고점에 상승폭(+숫자,레드색상)을 하락시에는 저점에 그 하락폭(-숫자,네이비색상)을 표시하고 싶습니다.(표시위치;상승시는 고점표시위,하락시는 저점표시 아래)
input:length(4),종가사용여부(0),파동선두께(5),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),tl2(0),tl3(0),tl4(0),tl5(0),T(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
T = 1;
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
//TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,red);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
T = -1;
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
//TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 2, 0);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,blue);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
if T == -1 and T[1] != -1 Then{
TL2 = TL_New(고[2,3],고[2,4],고[2,1],sdate,stime,고[2,1]);
TL_Delete(TL3);
TL3 = TL_New(고[1,3],고[1,4],고[1,1],sdate,stime,고[1,1]);
TL_SetExtRight(TL3,true);
TL_SetSize(TL2,파동선두께);
TL_SetColor(TL2,RED);
TL_SetSize(TL3,파동선두께);
TL_SetColor(TL3,RED);
}
if T == 1 and T[1] != 1 Then{
TL4= TL_New(저[2,3],저[2,4],저[2,1],sdate,stime,저[2,1]);
TL_Delete(TL5);
TL5= TL_New(저[1,3],저[1,4],저[1,1],sdate,stime,저[1,1]);
TL_SetExtRight(TL5,true);
TL_SetSize(TL4,파동선두께);
TL_SetColor(TL4,blue);
TL_SetSize(TL5,파동선두께);
TL_SetColor(TL5,blue);
}
2018-12-10
175
글번호 124274
답변완료
목표수이 넘었는데 매매가 되요
* 항상 많은 도움에 고맙습니다.
* 첨부 그림 처럼 목표수익(50딕)이 넘었는데 마지막 거래는 외 발생 했나요?
한수 지도 부탁 드립니다.
그리고 "daypl" 항목의미가 무었인가요?
▶매매수식은 임의적으로 바꾸었습니다.
Input : 당일수익틱수(50);
Var : N1(0),dayPl(0),당일수익(0),Xcond1(false);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then { Xcond1 = false; N1 = NetProfit; } daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then Xcond1 = true;
if Xcond1 == false then
{
if O>c Then { buy("매수1"); }
if o<c Then { sell("매도1"); }
}
SetStopProfittarget(PriceScale*23,PointStop);
SetStopLoss(PriceScale*45,PointStop);
if MarketPosition == 1 then{ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); }
if MarketPosition == -1 then{ ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); }
* 고맙 습니다.
2018-12-09
170
글번호 124273
답변완료
부탁드립니다.
-60296관련입니다.
-해선 분봉차트에서 (n일전부터 전일)동시간대 최고가 평균을 구하는 지표를 부탁드렸습니다.
알려주신 지표는 예로 적은 (3일전부터 하루전)동시간대 최고가 평균입니다.
-(3일전부터 하루전)동시간대 최고가 평균이 아닌 (n일전부터 하루전일)동시간대 최고가
평균을 구하는 지표를 부탁드립니다
2018-12-09
133
글번호 124272