커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3755
글번호 230811
답변완료
강조 드립니다.
* 많은 도움에 고맙습니다.
## 두개를 한개로 묶을수는 없나요? OR을 이용해보지만 잘안되네요...
8틱 이상수익이었다가 하락하면 3틱에서 청산
8틱보다 크고 15틱 이상 수익이었다가 하락하면 9틱에서 청산
if MarketPosition == 1 Then {if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*8 Then ExitLong("bb1",AtStop,EntryPrice+PriceScale*3);}
if MarketPosition == 1 Then {if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*15 Then ExitLong("bb2",AtStop,EntryPrice+PriceScale*9);}
* 고맙습니다.
2019-06-10
323
글번호 129271
답변완료
문의드립니다
아래 수식에서
단순이면 지수로
지수면 단순으로 변경 가능하면 부탁드리겠습니다
Input : P1(14),p2(5),P3(10),p4(5);
input : Period1(14),Period2(10) ,Period3(20),Period4(10);
input : 익절틱수(20),손절틱수(40);
input : starttime(101600),endtime(173000);
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 MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
var1 = StochasticsK(P1,P2);
var2 = StochasticsK(P3,P4);
var3 = StochasticsK(Period1,Period2);
var4 = StochasticsK(Period3,Period4);
if Tcond == true then
{
if crossup(var1,var3) and var1 < 20 and var3 < 20 Then
buy("매수");
if CrossDown(var2,var4) and var2 > 80 and var4 > 80 Then
sell("매도");
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2019-06-07
314
글번호 129270
답변완료
수정의뢰드립니다!
안녕하세요!
지난번 만들어 주신 수식 잘 사용하고 있어요!
매매에 도움이 되고져 수식 수정을 부탁드립니다!
이해를 돕기위해 참고 이미지를 올립니다!
첨부 이미지처럼 예를 들면 직전 고점에서 저점까지 뺀 진폭(노랑바탕)을 표시하고 싶습니다!
붉은색 글씨처럼 직전 고점에서 저점까지 하락폭과, 직전저점에서 고점까지 상승폭을 붉은색글자처럼 자동으로 표시하고 싶습니다. 검정색보다는 붉은색 글자였으면 더 좋겠습니다!
부탁드립니다!
Input:length(10),종가사용여부(0),파동선두께(2),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(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
{
최종고가 = 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);
}
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
{
최종저가 = 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);
}
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));
}
}
최종꼭지점 = "저점";
}
2019-06-07
426
글번호 129266
답변완료
수식전환 부탁드립니다.
수고가 많으십니다. 예스트레이더 수식으로 전환부탁드립니다.
매수
crossup(c,a=(O+C+H+L)/4,
ma(a, 120, 지수))&&
dayclose()>dayopen();
매수청산
crossdown(c,b=(O(10)+C(10))/2,
ma(b, 120, 지수) && dayclose()<dayopen());
매도
crossdown(c,b=(O(10)+C(10))/2,
ma(b, 120, 지수) && dayclose()<dayopen());
매도청산
crossup(c,a=(O+C+H+L)/4,
ma(a, 120, 지수))&&
dayclose()>dayopen();
2019-06-07
364
글번호 129265
답변완료
수식 작성 부탁드립니다
input : Period(5);
Vars : oTEMA(0);
oTEMA = ma(ma(ma(c, Period), Period), Period);
if oTEMA > oTEMA[1] Then
value1 = oTEMA;
if value1 > 0 and oTEMA > oTEMA[1] Then
value1 = oTEMA;
if oTEMA < oTEMA[1] Then
value2 = oTEMA;
if value2 > 0 and oTEMA < oTEMA[1] Then
value2 = oTEMA;
Plot1(value1, "high");
Plot2(value2, "low");
위 지표 수식을 이용하여
종가(C)가 value1 위에 있을때 매수진입이되도록 수식을 작성 부탁 드립니다.
아래와같이 수식을 작성 하면 value1 아래에서도 매수진입이 됩니다.
If value1 < C and CrossUP(short,long7)Then Buy("b");
아래첨부파일에서 종가가 빨강색선위에서 매수진입이 되도록 수식 원합니다
2019-06-07
343
글번호 129264
답변완료
지표식 문의드립니다.
매번 성실한 답변에 감사드립니다.
일봉기준 전일대비 거래량 5배인 캔들부터 현재까지의 기준선(최고가+최저가)/2 을 긋고싶습니다.
감사합니다.
2019-06-07
339
글번호 129260
답변완료
문의드립니다.
수고많으세요.
첨부된 사진을 지표나 종목검색식으로 만들고 싶어서 그러는데
참조 데이터를(Data2) 연기금순매수 금액으로 해서 할예정입니다.
종목검색식이면 좋고 그게 불가능하면 지표로 부탁드립니다.
2019-06-07
332
글번호 129259
답변완료
문의드립니다.
일목 기준선을 현재가가 상향돌파시 매수 하향돌파시 매도
(수식에 틱수랑,기준선수치조절추가요)
*전환선(999)기준선(999) 선행스팬1(1) 선행스팬2(1)후행스팬(0)
경제지표발표 ***(별3)시간에 청산후 진입금지
1차 이익실현, 2차 이익실현, 손절, 추가
TS 이익시 이익틱수만큼 손절가격 이동이 가능하시다면 넣어주세요 감사합니다.
2019-06-07
334
글번호 129258
답변완료
부탁드립니다~
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC[0] = c;
TH[0] = max(CC[1],HH);
TL[0] = Min(CC[1],LL);
if TH[MALEN-1] > 0 and TL[MALEN-1] > 0 then
{
sum = 0;
sumTR = 0;
for cnt = 0 to MALEN-1
{
sum = sum + CC[cnt];
sumTR = sumTR + (TH[cnt]-TL[cnt]);
}
ATRV = sumTR/MALEN;
mav = sum/MALEN;
CENTLINE = mav+ ATRv * ATRs;
AVGRANGE = ATRV;
UPPER=CENTLINE+(AVGRANGE*CONST);
LOWER=CENTLINE-(AVGRANGE*CONST);
PLOT1(CENTLINE,"CENTLINE");
PLOT2(UPPER,"UPPER");
PLOT3(LOWER,"LOWER");
}
}
plot2 기준으로 종가가 위에 있으면 분홍색봉,,,,아래있으면 파란색봉 부탁합니다
2019-06-07
346
글번호 129250