커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1659
글번호 230811
답변완료
감사합니다^^ 문의드립니다
안녕하세요~^^
답변 감사드립니다~^^
하나만 더 부탁드리겠습니다
아래식도 30분종가선 위에~ 종가선 값이 나타날수있게 부탁드립니다
감사합니다~^^
input : ntime(30);
var : S1(0),D1(0),TM(0),TF(0);
Array : CC[100](0);
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;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
CC[1] = CC[0][1];
}
CC[0] = c;
if CC[1] > 0 Then
Plot1(CC[1]);
}
2021-09-03
694
글번호 151995
답변완료
문의
Input:af(0.02),maxAF(0.2);
Var:TL1(0),TL2(0),TL2_exist(0),color(0),
TL_NewBit(0), // 1:NewLine 2:SetEndLine
slope(0),mid_idx(0),mid_val(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = SarZigZag(af,maxAF,고,저,TL_NewBit);
여기에서 파라볼릭을 파라볼릭종가로 표현할려면 어떻게 고쳐야하나요?
2021-09-03
860
글번호 151994
답변완료
[73828]관련 재문의 드립니다.
수식을 검증하였으나 for구문이 랙이 너무 심해 작업에 약간 무리가있는것 같습니다.
그리고 vol1의 검색결과와 vol2의 검색결과를 동일하게 하기 위해 손을 보았는데 계속 결과값이 다르게 나오네요.
그래서 일단 아래와 같이 최고가 당일 급락으로 데드크로스 발생 안하는 조건은 추가했습니다. 제가 지금 공부하는 단계이기 때문에 좀더 세밀한 수식이 요구되는 반등과 관련해서는 나중에 고민해 보려 구요.
하지만 아래의 조건1과 2는 꼭 낙주매매에서 필요하다고 생각합니다. 사람들이 공포심에 빨리 매도해야 반등의 가능성이 더 높을것 같기 때문입니다. 그리고 많은 거래량을 동반하지 않은 주가 하락이 반등도 더 잘 나오는 것으로 알고 있습니다.
For 구문을 사용하지 않고 아래의 조건을 처음 만들어 주신 수식에 추가 할 수 있을까요?
-------------------------------------------------------------
조건1 최고가 이후 10봉 이내에 데드크로스 발생한 종목
조건2 20봉 중 양봉의 거래량이 최대값이다.
-------------------------------------------------------------
그리고 마지막으로 강조된 봉에 Magenta색의 값이 고가로 나오는데 제가 궁금한 수치는 데드크로스의 수치입니다.
계속 귀찮게 하는것 같아 죄송하네요. 늦게 시작한 시스템트레이딩 공부에 큰 도움이 되고 있습니다. 예스트레이더를 빨리 마스터하고 예스스팟으로 넘어가 보고 싶네요.
수고하십시오.
그리고 이건 수식작성 외의 질문입니다. 예스랭귀지를 보니 시스템 파일로 매매에 대한 소리로 출력이 가능한 것으로 알고 있습니다. 포트에 한번에 5개 정도 종목을 1주씩 담아볼 계획입니다. 질문은 소리말고 텔레그램이나 이메일로 매수 및 매도신호를 받을 수 없는지 궁금합니다. 키움 영웅문 같은 경우는 텔레그램으로 검색식에 검색된 종목을 실시간으로 받을 수 있더라구요. 그런데 문제는 검색식이 너무 한정되어 있어 결국 예스트레이더로 넘어온 거구요. 혹시 아시면 답변좀 부탁드립니다. 만약 테레그램이나 이메일 전송이 어렵다면 정말 열심히 마스터해서 예스스팟으로 넘어가야겠네요.
1. 종목검색
var1 = Highest(H,20);
Var2 = Lowest(L,20);
Var3 = Highest(H,240);
var4 = (c-Var2)/(var1-Var2)*100;
Condition1 = var1 >= Var2*1.6 and var1 <= Var2*2.5;
Condition2 = CountIf(C>=C[1]*1.15,20) >= 1;
Condition3 = Var1 == Var3;
Condition4 = CountIf(L<=H*0.90,5) >= 1;
Condition5 = C <= var1*0.8;
Condition6 = CrossDown(Var4,50);
Condition7 = Highest(H,10) == var1;
#현재봉은 10봉최고가가 아님
Condition8 = H != Highest(H,10);
if Condition1 and
Condition2 and
Condition3 and
Condition4 and
Condition5 and
Condition6 and
Condition7 and
Condition8 Then
Find(1);
2. 강조
var1 = Highest(H,20);
Var2 = Lowest(L,20);
Var3 = Highest(H,240);
var4 = (c-Var2)/(var1-Var2)*100;
Condition1 = var1 >= Var2*1.6 and var1 <= Var2*2.5;
Condition2 = CountIf(C>=C[1]*1.15,20) >= 1;
Condition3 = Var1 == Var3;
Condition4 = CountIf(L<=H*0.90,5) >= 1;
Condition5 = C <= var1*0.8;
Condition6 = CrossDown(Var4,50);
Condition7 = Highest(H,10) == var1;
#현재봉은 10봉최고가가 아님
Condition8 = H != Highest(H,10);
if Condition1 and
Condition2 and
Condition3 and
Condition4 and
Condition5 and
Condition6 and
Condition7 and
Condition8 Then
PlotPaintBar(H,L,"강조",MAGENTA);
2021-09-03
907
글번호 151993
답변완료
문의드립니다
1,
5일이평선과 20일 이평이 교차할때 실제 현재가와 이평선과는 차이가 있잖아요? 그래서 이평선이 교차될때 캔들종가에 선을 긋는것이 아니고 이평선이 교차되는 그지점에 선을 긋고싶습니다. 그리고 그가격을 텍스트로 출력하고싶습니다 가능할까요?
2021-09-03
709
글번호 151992
베어샘 님에 의해서 삭제되었습니다.
2021-09-02
135
글번호 151991
답변완료
기존 수식에 추가적인 매수 조건 반영 부탁드림니다.
기존 사용 수식인데요
MFI(25) < 16일경우 매수하는 수식인데요
25봉안에서 최고점 대비 200틱이하(변수로 지정) 일때를 동시에 만족시
매수될수 있도록 추가시켜주시면 감사하겠습니다.
input : MFI기간(25),MFI값(16),하락틱수(300),익절틱(90),손절틱(300);
input : 추가매수횟수(1);
var : MoneyFlow(0);
MoneyFlow = MFI(MFI기간);
if MarketPosition == 0 and MoneyFlow <= MFI값 Then
Buy("b",OnClose,DEf,1);
if MarketPosition == 1 and MaxEntries < 추가매수횟수 Then
Buy("bb",AtLimit,LatestEntryPrice(0)-PriceScale*하락틱수);
SetStopLoss(PriceScale*손절틱,PointStop);
SetStopProfittarget(PriceScale*익절틱,PointStop);
2021-09-02
633
글번호 151990
괌 님에 의해서 삭제되었습니다.
2021-09-02
4
글번호 151989
답변완료
문의 드립니다.
고가, 시가, 저가 라인처럼
중심선 라인을 만들고 싶습니다.
부탁드리겠습니다.
2021-09-02
766
글번호 151988
답변완료
수고하십니다 주신 수식에서 첨부된사진에 표시된 것의 의미를 잘 몰라서요~~~
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템수식 알려주세요~~
>
안녕하세요
예스스탁입니다.
input : len1(60),Len2(120);
var : SRC(0);
SRC = C;
var1 = WMA(2*WMA(src,len1/2)-WMA(src,len1),floor(sqrt(len1)));
var2 = WMA(2*WMA(src,len2/2)-WMA(src,len2),floor(sqrt(len2)));
if MarketPosition == 0 and
CountIf(Var2>Var2[1],2) == 2 and
NextBarOpen <= var1-PriceScale*5 Then
Buy("b",AtStop,NextBarOpen+PriceScale*5);
SetStopProfittarget(PriceScale*100,PointStop);
SetStopLoss(PriceScale*50,PointStop);
즐거운 하루되세요
> 인내로다 님이 쓴 글입니다.
> 제목 : 시스템수식 알려주세요~~
> 수고하십니다
혼자 공부를 해도 잘 안되네요 도움 요청드립니다
1. 기준 이동평균선 수식
① 1번이동평균선 == wavg(2*wavg(src,len1/2)-wavg(src,len1),floor(sqrt(len1)))
② 2번이동평균선 == wavg(2*wavg(src,len2/2)-wavg(src,len2),floor(sqrt(len2)))
③ 지표변수 src == 종가,
len1 == 60, len2 == 120,
2. 매수진입조건
2번이동평균선이 1봉전기준 2봉 연속 상승하고
1봉전 1번이동평균선값보다 -5틱 아래에서 시가가 시작할때
시가의 +2틱에서 진입
3. 청산조건
손절 진입가 대비 -50틱
청산 진입가 대비 +100틱
4. 청산(또는 손절) 후 진입조건에 다시 진입
2021-09-02
794
글번호 151986