커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6135
글번호 230811
답변완료
지표설정 부탁드립니다
안녕하세요
수고많슴니다
틱차트에서 호가잔량의 5 이평선 지표 가능한지요
꼭 부탁 드립니다
2022-02-16
1398
글번호 156343
답변완료
도움 요청합니다.
안녕하세요?
도움을 요청합니다.
아래 수식에서 다음
PLOT1(TCHAN, "TOP")
PLOT2(BCHAN, "BOT") 채널 사이에 50%, 61.8%, 38.2% 라인을 추가해주시면 대단히 감사하겠습니다.
오늘도 행복한 하루 되세요.
----------------------------------------
input : TLENGTH(40),BLength(30);
VAR : TCHAN(0), BCHAN(0);
TCHAN = HIGHEST(HIGH, TLENGTH)[1];
BCHAN = LOWEST(LOW, BLength)[1];
PLOT1(TCHAN, "TOP");
PLOT2(BCHAN, "BOT");
2022-02-16
1382
글번호 156336
답변완료
문의드립니다.
안녕하세요.
분봉 차트에서
value4 는 +2% 이상의 양봉의 거래량이고
if value4 > value4[1] Then
value5 = value4;
전일의 value5는 당일 장시작 시 초기화를 하였을 때
위 조건식은 당일 장시작 후 처음 발생한 value4는
value4[1]이 없어서 value5 값이 나오지 않습니다.
1. value4[1]가 없으면 value5가 당봉의 value4 값으로 지정되도록
위 식 수정 부탁드립니다.
2. if value4 > value4[1] Then
value5 = value4;
위 조건을 없애고
당일 처음 발생한 value4를 value5로 지정하는 수식도 부탁드립니다.
수고하세요.
2022-02-16
1300
글번호 156335
답변완료
수식 오류 문의드립니다
안녕하세요
수식을 테스트하던중 문제상황이 발생해 문의드립니다
사용한 수식은 아래와 같고
문제가 되었던 상황은 캡처로 첨부하였습니다
input : TT(224300), TD(20220215), MDD(200000) ;
var : HB(14574), LB(14481), Hx(20000), Lx(1);
var : e60(0), Hcount(0), Lcount(0),B(0),S(0),cnt(0),T1(0), Hstate(true), Lstate(true), N(0), unitP(0), exitC(0), rHB(0), rLB(0);
N = Highest(ATr(14), 100);
unitP = floor(MDD/(N*5*4*600));
exitC = (2-(MaxEntries-1)/2)*N;
e60 = Ema(C,60);
if Condition1 == False and sDate >= TD and sTime >= TT Then
{
Condition1 = true;
Hcount = 0;
Lcount = 0;
T1 = TotalTrades;
}
if Condition1 == true Then
{
B = 0;
S = 0;
if TotalTrades-T1 > 0 Then
{
For cnt = 1 to TotalTrades-T1
{
if MarketPosition(cnt) == 1 Then B = B+1;
if MarketPosition(cnt) == -1 Then S = S+1;
}
}
Hcount = B + IFf(MarketPosition == 1,1,0);
Lcount = S + IFf(MarketPosition == -1,1,0);
if B>0 && B == Hcount then HB = rHB;
if S>0 && S == Lcount then LB = rLB;
if Hstate == true then
{
Buy("b1",AtStop,HB,unitP);
Buy("b2",AtStop,HB+0.5*N,unitP);
Buy("b3",AtStop,HB+N,unitP);
Buy("b4",AtStop,HB+1.5*N,unitP);
}
if Lstate == true then
{
Sell("s1",AtStop,LB,unitP);
Sell("s2",AtStop,LB-0.5*N,unitP);
Sell("s3",AtStop,LB-N,unitP);
Sell("s4",AtStop,LB-2.5*N,unitP);
}
if marketposition ==1 Then
{
rHB = Highest(H, BarsSinceEntry) ;
if e60 < HB+2*N Then exitlong("exitB1", atstop, HB-exitC);
if e60 >= HB+2*N and CrossDown(close, e60) Then
{
ExitLong("exitB2") ;
Hstate = false ;
}
exitlong("exitB3", AtLimit, Hx);
}
if marketposition == -1 Then
{
rLB = Lowest(L, BarsSinceEntry);
if e60 > LB-2*N Then ExitShort("exitS1", atstop, LB+exitC);
if e60 <= LB-2*N and CrossUp(close, e60) Then
{
ExitShort("exitS2");
Lstate = false ;
}
exitshort("exitS3", AtLimit, Lx);
}
if Hcount > 3 Then Hstate = False;
if Lcount > 3 Then Lstate = False;
if H >= Hx then Hstate = false;
if L <= Lx then Lstate = false;
}
MessageLog("N %.2f, P %.2f, eC %.2f",N , unitP, exitC);
MessageLog("HB %.2f, rHB %.2f, Hec %.2f, B %.f, Hc %.f, Hs %4s", HB, rHB, HB - exitC, B, Hcount, Hstate);
MessageLog("LB %.2f, rLB %.2f, Lec %.2f, S %.f, Lc %.f, Ls %4s", LB, rLB, LB + exitC, S, Lcount, Lstate);
문제상황
1. 손절조건이 되서 청산되었으나 LB = rLB로 업데이트 되지 않았고
업데이트 되지 않아 초기치로 설정한 LB로 곧바로 다시 진입
'청산 => 재진입'이 일어난 시간을 확인해보면 5초의 갭이 있어 청산-매수 시점이 겹쳐 생긴 문제는 아닌듯 (1-1)
2. 차트상에선 청산신호가 나왔으나, 실제 청산 주문이 들어가지 않음
시스템 모니터 기록에도 청산 주문이 안들어가있음(2-1)
주문은 안들어갔으나, LB=rLB로 업데이트
3. 청산이 안된채로 조건이 되자 다시 진입
청산조건이 되자 이전에 남아있던 12계약은 그대로 있고 4계약만 청산됨
+) 캡쳐는 못했는데, exitL2 조건으로 청산되어 청산후 Hstate == false가 되어 거래정지가 되어야 하는 상황에서도
동일하게 Hstate 안바뀌고, HB 도 업데이트 안되 재진입하는 상황이 발생했습니다
관계가 있는진 모르겟으나 이 케이스도 위에 예시처럼 시스템 실행하고 처음 진입했을때 입니다
이런 문제 원인이 무엇인지 못찾겠어 가능하다면 확인 부탁드립니다
감사합니다
2022-02-16
1318
글번호 156334
답변완료
분할매수
먼저 감사드립니다.
아래 보내주신 수정프로그램 실행시 다음봉에 매수신호는 발생하여 처리가능한데
b2.
b3.
b4.
신호가 동시에 발생합니다. 조언부탁드립니다.
if MarketPosition == 0 and ma(c,60) > ma(c,120) and c > o then
{
Buy("b1");
#첫매수조건이 만족하면 지정한 가격을 셋팅해서
#매수 다음봉만 가격조건 충족하는 것을 감시
Buy("b2.",atlimit,EntryPrice * 0.95);
Buy("b3.",atlimit,EntryPrice * 0.90);
Buy("b4.",atlimit,EntryPrice * 0.80);
}
#첫매수후 다다음봉부터 지정한 가격조건 충족하면 매수
if MarketPosition == 1 Then
{
ExitLong("bx",atlimit, AvgEntryPrice * 1.10);
if MaxEntries == 1 Then
Buy("b2",atlimit,EntryPrice * 0.95);
if MaxEntries == 2 Then
Buy("b3",atlimit,EntryPrice * 0.90);
if MaxEntries == 3 Then
Buy("b4",atlimit,EntryPrice * 0.80);
}
2022-02-15
1339
글번호 156333
답변완료
사용자함수 수식문의 좀 도와주세요. ㅠㅠ
특정날짜(시작과 끝)를 입력받아서 그 사이의 봉의 개수와 날짜 사이의 일수를 구하는 함수를 만들고 싶습니다.
아래같은 논리로 사용자함수를 만들고 싶어요.
input 시작일, 종료일;
var : 봉개수, 일수;
제어문
{봉개수 = 숫자;}
제어문
{일수 = 숫자;}
아무리 머리를 싸매고 고민을해도 로직이 안 그려집니다. ㅠㅠ
염치불구하고 부탁 드려봅니다.
2022-02-15
1460
글번호 156332
답변완료
이평선 수식부탁합니다
안녕하세요
국내 주식을 하고 있습니다
예를 들어, 이평선 20일 기준 평균가95프로 선을 내려갈때 주식 1개를 매매하고
90프로 선을 내려갈때 주식2 개를 매매한다고 햇을때
수식 부탁합니다.
분봉은 10분을 쓰고 잇습니다
2022-02-15
1198
글번호 156331
답변완료
검색식 문의 드립니다
안녕하세요
후행스팬이 볼린저 밴드 상단선을 통과하는 종목을 검색식 입력했는데
종목이 검색되질않는데 뭐가 잘못된건까요?
input : P(20),dv(2);
var : BBup(0);
BBup = BollBandUp(P,dv);
if CrossUp(c[25],var1[25]) Then
Find(1);
2022-02-15
1571
글번호 156330
답변완료
한방향 매매신호 첫신호만 표시
항상 감사드립니다
아래 시스템1은 매수,매도신호가 번갈아 가며 신호가 나옵니다
시스템2 에서 동일방향 재진입금지를 삭제했을때 시스템1에서 나오는 매수/매도 첫신호만 나오도록 수정하고 싶습니다
매수1,매수2,매수3 ,매수4 =====>매수1만 표시
매도1,매도2,매도3,매도4 =====>매도1만표시
++++시스템1 ++++
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지#
Var10>Var20 and t60==1 Then
BUY("B_1");
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지#
Var10<Var20 and t60==-1 Then
sell("S_1");
++++시스템 2 +++
if Var10>Var20 and t60==1 Then
BUY("B_1");
if Var10<Var20 and t60==-1 Then
sell("S_1");
감사합니다
2022-02-15
1390
글번호 156329