커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5503
글번호 230811
답변완료
문의드립니다.
안녕하세요. 아래전략에서 시간 설정 변수 입력 할 수 있도록 부탁드립니다.
1. 시작: 140000
2. 종료: 170000
3. 오후시작: 181000
4. 오후종료: 210000
INPUT : LENGTH(10);
VAR : upv(0), dnv(0);
input : StartTime(80000),EndTime(060000);
var : Tcond(false);
if (sdate != sdate[1] and stime >= 210000) or
(sdate == sdate[1] and stime >= 210000 and stime[1] < 210000) Then
{
Tcond = False;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitLong();
}
if (sdate != sdate[1] and stime >= 170000) or
(sdate == sdate[1] and stime >= 170000 and stime[1] < 170000) Then
{
Tcond = False;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitLong();
}
if (sdate != sdate[1] and stime >= 144000) or
(sdate == sdate[1] and stime >= 144000 and stime[1] < 144000) Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= 181800) or
(sdate == sdate[1] and stime >= 181800 and stime[1] < 181800) Then
{
Tcond = true;
}
upv = HIGHEST(HIGH, LENGTH);
dnv = LOWEST(LOW, LENGTH);
if tcond == true Then
{
if MarketPosition <= 0 and L > dnv Then
Buy("b",AtLimit,dnv);
if MarketPosition == 1 Then
ExitLong("bx",AtStop,upv);
}
2020-12-08
824
글번호 144525
답변완료
매수 시스템 질문드립니다.
macd디버전스에서 매수하고 10틱오르면 청산하는 수식 부탁드립니다.
스탑은 5틱 떨어지면 손절하는 걸로 하겠습니다.
이전에 비슷한 질문을 드렸을때 변수 T 를 선언하신 후에 MACD signal 선을 골든크로스 할때는 T = 1, 데드크로스 할때는 T = -1 이런걸 쓰셨었는데 이번에도 쓰신다면 이걸 왜 쓰는것인가 설명해 주시면 감사하겠습니다.
(MACD가 signal선 상승돌파 시) 현재 MACD값~ 4봉전 MACD값의 최저값을 MACD_n 에저장.
PV_n = Lowest(L,5) 으로 최근 5일의 저가 저장.
(70봉 이내에 1. signal선이 0선 위로 올라온 적이 없고, 2. MACD가 signal 선을 상승돌파 했을때) 이때가 몇봉 전인지 cnt 에 저장.
(가령 cnt가 30이라면) 30봉전 MACD값부터 34봉전 MACD값의 최저값을 MACD_p 에 저장.하고 PV_p = Lowest(L[cnt],5) 으로 이당시 5일의 저가 저장.
If PV_p > PV_n && MACD_p < MACD_n && Crossup(macd,signal) Then
buy();
2020-12-08
878
글번호 144518
답변완료
문의
1.일봉차트
상승갭 이평5가 상승갭 10이평 상승돌파
buy(data2수식으로 요청)
2.5분봉차트
양봉들만 계산합니다
양봉 이평5가 양봉 이평10 상승돌파
Buy
수식 부탁드립니다.
2020-12-08
801
글번호 144514
답변완료
문의 드립니다.
안녕하세요
아래 수식은 만들어 주신 수식인데.. 잘 이용하고 있습니다.
Input : Period(12), sigPeriod(9);
var : TRIXv(0),TRIXsig(0),T(0);
TRIXv = TRIX(Period);
TRIXsig = ema(TRIX(Period),sigPeriod);
if TRIXv > TRIXv[1] then
T = 1;
if TRIXv < TRIXv[1] then
T = -1;
Plot1(TRIXv,"TRIX",iff(T==1,red,blue));
Plot2(TRIXsig,"TRIX시그널");
PlotBaseLine1(0,"기준선");
여기 수식에서 조금 변형을 하고 싶어서요...
현재 상태를 그대로 두면서
아래 위로 기준선을 만들고 싶어서요.. 과열 침체 같이 표시 되게 기준선이 나왔으면 해서요...
0.01에서 선이 나오고 -0.01 에서 선이 나오게 하고 싶습니다.
2020-12-08
745
글번호 144513
답변완료
장기투자매매 전략수식
안녕하십니까.
예스트레이딩 수식 질문입니다.
여러번의 매수 후에 최종 매수 이후 3개월동안 최종 매수가격 대비 수익이 없으면 매도하려고 하는데
5분봉에서 아래의 수식을 적용해도 씨뮬레이션상에서 매도신호는 나오는데 원하는대로 3개월이 아니고 1~2개월 내에 매도가 되는데 왜 그런 결과가 되는지 모르겠습니다.
왜냐하면 실행시 전략 차트에서 10000봉까지로 제한되에 있어서 그 이상이 되면 신호가 없어지기 때문에 장기투자가 어렵습니다.
3개월이면 약 5000봉이고 매수식에서 이전 3000봉 정도는 필요하기 때문입니다.
그리고 씨뮬레이션시 시간이 많이 걸리고, 전략 챠트 용량 부족이 여전합니다.
빠른 시간내에 64비트로 업그레이드 되었으면 합니다.
(매수식)
If date >= 시작일
.......(매수조건식1)
Then { Buy("봄1"); value1=date; value2=time; value33=c; }
If date >= 시작일
.......(매수조건식2)
Then { Buy("봄2"); value1=date; value2=time; value33=c; }
... (매도식)
... (다른 매도조건식)
If date >=매도일
and sDate > entrydate + 60 and time >=100000 and time <=100500
and c < Value33 and EntryName=="봄1"
Then { exitlong("장기1"); }
If date >=매도일
and sDate > entrydate + 60 and time >=100000 and time <=100500
and c < Value33 and EntryName=="봄2"
Then { exitlong("장기2"); }
위 매수조건 (EntryName) 중 가장 최근 매수 기준으로 3개월이내에서 매도하고
상승기조에 있으면 다른 파일로 임의매수식으로 이후의 매도를 수행하도록 해야합니다.
감사합니다.
2020-12-07
863
글번호 144512
답변완료
문의 드립니다.
항상 감사합니다.
분봉 챠트에서 전일 누적거래량그래프와 당일 누적거래량 그래프를 당일에만 표시하고 싶은데 전일 누적거래량이 잘 되지않네요 도움부탁드립니다.
var1 = 전일누적거래량;
var2 = 당일 누적거래량;
if currentdate == sdate then
{
Plot1(Var1,"전일 누적거래량");
Plot2(Var2,"당일 누적거래량");
}
2020-12-07
816
글번호 144511
답변완료
연봉기준값 돌파종목
좀 복잡한데 혼자 해결이 어려워 부탁드립니다.
1.ㄱ) 일봉상 ㄴ)최근 10봉 이내에 ㄷ)당해연봉 50프로를 ㄹ)양봉으로 ㅁ)저가대비 고가가 10프로 이상 상승
한 종목을 기준봉으로 잡습니다. 여러개 나오면 그중에 ㅂ)최신봉을 기준으로 잡습니다.
2. 현재가(혹은 종가)가 1번에서 잡은 ㅅ)기준봉의 시가의 3프로 내외에 해당되는 종목을 검색
하고 싶습니다.
-----------
다시 정리하면 1번을 기준봉으로 잡고 현재가가 1번 기준봉의 시가에 근접하는 종목을
찾고 싶습니다...미리 감사드립니다.
2020-12-07
753
글번호 144510
답변완료
추가질문요.
자꾸만 질문드려 죄송합니다.
이전 수식잘받았습니다.
1.
100틱익절은 잘되는데 100틱초과시 추가진행되고
다시 100틱도달시 100틱수익보장하는
트레일링스탑수식도
부탁드립니다.
2.
위와같은현상이 매주 일요일에서 월요일로 넘어가는 시각에 발생하더군요.
첨부된 파일보시면 아시겠지만
시간설정을 시작0645am 종료 1800pm으로 했는데
오늘 시스템 시작시간이 0000am부터 시작합니다.
무슨 오류인지 설정이 잘못됐는지 확인부탁드립니다.
감사합니다.
3. 첨부파일2
현재 시스템트레이닝 설정>강제청산>손절매 를 10pt로 설정해놨습니다.
10pt손실시(노랑동그라미) 강제청산신호는 잘되는데
문제는 반대신호로인한 (빨강동그리마) 강제청산신호에는 한계약만청산되고 반대신호대로
재매수가 이루어지고 있지 않습니다. 이부분 수정부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 몇일전글올렸는데 도저히 모르겠네요.
> 안녕하세요
예스스탁입니다.
Input : 당일수익(100),당일손실(100);
Input : shortPeriod(21),longPeriod(16), Period(4);
input : StartTime(064500),EndTime(180000);
Var : N1(0),dayPl(0),Xcond(false);
var : Tcond(false);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if IsExitName("btr",1) == true or IsExitName("str",1) == true then
Xcond = true;
}
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
if Tcond == true and Xcond == false then
{
If CrossUP(value1, value2) Then
{
Buy();
}
If CrossDown(value1, value2) Then
{
Sell();
}
}
if MarketPosition == 1 Then
{
if Highest(H,BarsSinceEntry) > EntryPrice+((당일수익-daypl)/CurrentContracts) Then
ExitLong("btr",AtStop,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 Then
{
if Lowest(L,BarsSinceEntry) < EntryPrice-((당일수익-daypl)/CurrentContracts) Then
ExitShort("str",AtStop,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
즐거운 하루되세요
> 빛돌이 님이 쓴 글입니다.
> 제목 : 몇일전글올렸는데 도저히 모르겠네요.
> 현재 제가 사용하는 수식입니다.
Input : shortPeriod(21) longPeriod(16), Period(4);
input : StartTime(064500),EndTime(180000);
var : Tcond(false);
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if Tcond == true Then
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
여기에서 청산수익, 손절을 100포인트잡고싶습니다.
수익 100포인트 진입시 트레일링으로 최소수익 100틱을 유지하고 싶은데..
제 수식에 대입부탁드립니다.
감사합니다.
2020-12-08
1011
글번호 144509
답변완료
문의드립니다
지점 1에서 매도진입
지점 2에서 청산
지점 3에서 다시 매도 진입한다면
지점 3을 어떻게 소환할수 있을까요
지점 3은 마지막 엔트리 이후의 최저가 입니다.
(그날의 첫진입 이후의 최저가/ 마지막 진입 이후의 최저가
2가지로 표현해 주시면 감사하겠습니다.)
항상 감사드립니다.
2020-12-07
743
글번호 144494