커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4380
글번호 230811
답변완료
수식부탁드림니다=================
아래지표식을 시스템식으로바꾸고싶슴니다
09:05부터 15:00 까지
va2가 전봉보다 크면 보유잔고 청산후 매수
va2가 전봉보다 작으면 보유잔고 청산후 매도
매수매도 진입후 4틱이익이면 청산
15:00 에모두청산후 진입금지
시스템식으로 수정좀부탁드립니다
그리고 시스템으로 적용하는방법좀 알려주세요 감사합니다
//-----------------------------------------------------------------------------------
Input : Period1(10),Period5(10),period9(10),테마값(10),단기급증(16),단기급감(13),단기급등락(130),
장기급증(10.8),장기급감(01.8),장기급등락(15),돌파(215),급변(100),단기급변(50),순매수급증보정(2.6),
순매수급감보정(2.6),순매수보정한계(350),
순매수00급증보정(3.6),순매수00급감보정(3.6),순매수00보정한계(350)/*,고저기간(0)*/
,LENGTH1(32) ,LENGTH2(230),과열(130),되돌림(30),tsfPeriod(134),봉완성(303);
Var : va(0);
Var : va1(0);
Var : va2(0);
Var : va3(0);
Var : va4(0);
Var : va9(0);
Var : va11(0);
Var : va12(0);
Var : va15(0);
Var : va33(0);
Var : va38(0);
Var : va77(0);
Var : va87(0);
Var : va88(0);
Var : value(0);
Var : vp(0),II(0),AA(0),BB(0);
var : N(0),T(0),EP1(0),EP2(0);
var : ema11(0),ema12(0),ema13(0);
var : ema21(0),ema22(0),ema23(0),cnt1(0),cnt2(0);
var : vmin(0),vmax(0);
var : TSF(0),ss(0),sss(0), TS(0),second(0);
EP1 = 2/(LENGTH1+1);
EP2 = 2/(LENGTH2+1);
if Bdate != Bdate[1] Then{
II = 0;
BB = 0;
AA = 0;
}
II = II+1;
BB = BB+Bids;
AA = AA+Asks;
if II < Period5 Then{
va = (BB/II)-(AA/II)+8000;
va4 = (BB/II)-(AA/II)+8000;
}
else{
va = ma(bids,period5)-ma(asks,period5)+8000;
va4 = ma(bids,period5)-ma(asks,period5)+8000;
}
if II < Period1 Then{
va1 = (BB/II)-(AA/II)+8000;
va2 = (BB/II)-(AA/II)+8000;
va3 = (BB/II)-(AA/II)+8000;
}
//순매수에 8000 더해 양의값만들기----------------------------
else{
va1 = ma(bids,period1)-ma(asks,period1)+8000;
va2 = ma(bids,period1)-ma(asks,period1)+8000;
va3 = ma(bids,period1)-ma(asks,period1)+8000;
}
if II < Period9 Then{
va9 = (BB/II)-(AA/II)+8000;
}
//순매수에 8000 더해 양의값만들기----------------------------
else{
va9 = ma(bids,period9)-ma(asks,period9)+8000;
}
//순매수5이평의 급등락축소시작----------------------------
if ii > 1 and va >va[1]+장기급등락 then va = ((va -va[1])/장기급증)+va[1];
if ii > 1 and va <va[1]-장기급등락 then va = va[1]-((va[1] -va)/장기급감);
If ii >= 2
Then
{
//순매수 일정차 이상의급등락축소시작----------------------------
//if va1 >va1[1]+급등락 then va1 = va1 -급등락;
if va1 >va1[1]+단기급등락 then va1 = ((va1 -va1[1])/단기급증)+va1[1];
//if va1 >va1[1]+소등락 then va1 = va1 - 소등락;
if va1 <va1[1]-단기급등락 then va1 = va1[1]-((va1[1] -va1)/단기급감);
//if va1 <va1[1]-급등락 then va1 = va1 + 급등락;
//if va1 <va1[1]-소등락 then va1 = va1 + 소등락;
//급등락축소시작----------------------------
//순매수 일정차 이하의급등락축소시작----------------------------
if va2 >va2[1]+순매수보정한계 then va2 = ((va2 -va2[1])*순매수급증보정)+va2[1];
if va2 <va2[1]-순매수보정한계 then va2 = va2[1]-((va2[1] -va2)*순매수급감보정);
if va2 >va2[1]+20 then va2 = ((va2 -va2[1])*3.9)+va2[1];
if va2 <va2[1]-20 then va2 = va2[1]-((va2[1] -va2)*3.9);
if va2 >va2[1]+20 then va2 = ((va2 -va2[1])*0.8)+va2[1];
if va2 <va2[1]-20 then va2 = va2[1]-((va2[1] -va2)*0.8);
//1이평 막대표시 -----------------------------------------------
If va2 > va2[1] Then
{
Plot10(va2, "매수잔량 우위");
Plot11(0, "매도잔량 우위");
}
Else{
Plot10(0, "매수잔량 우위");
Plot11(va2, "매도잔량 우위");
}
//5이평 막대표시 -----------------------------------------------
If va > va[1] Then
{
Plot3(va, "5매수총잔량 우위");
Plot4(0, "5매도총잔량 우위");
}
Else{
Plot3(0, "5매수총잔량 우위");
Plot4(va, "5매도총잔량 우위");
}
PlotBaseLine1(12000,"기준선12");
PlotBaseLine2(11000,"기준선11");
PlotBaseLine5(va15-300,"기준선아래");
//테마합 일정 수량차이상의 급등락 표시
if va4 > va4[1]+ 급변 Then{plot55(va4-100,"급등");}
if va4 < va4[1]- 급변 Then{plot46(va4-100,"급락");}
}
// if Highest(va1,고저기간 )==0 then{
// va11=Lowest(va1,고저기간 );
if ii >= 2 and va2 > va2[1]+ 단기급변 Then{plot66(va2,"단기");}
if ii >= 2 and va2 < va2[1]- 단기급변 Then{plot66(va2,"단기");}
Plot99(va2, "순매수1차보정",iff(va2>va2[1]-00,RED,iff(va2<va2[1]+00,BLUE,BLACK)));
//va4=va4*0.8;
if va4 >va4[1]+20 then va4 = ((va4 -va4[1])*0.3)+va4[1];
if va4 <va4[1]-20 then va4 = va4[1]-((va4[1] -va4)*0.3);
Plot59(va4, "순매수",iff((va4 )>(va2)+00,BLACK,iff((va4 )<(va2 )-00,BLACK,BLACK)));
if va2 >va2[1]+50 then va15 = ((va2 -va2[1])*0.3)+va2[1];
if va2 <va2[1]-50 then va15 = va2[1]-((va2[1] -va2)*0.3);
if va15 >va15[1]+70 then va15 = ((va15 -va15[1])*0.9)+va15[1];
if va15 <va15[1]-70 then va15 = va15[1]-((va15[1] -va15)*0.9);
//--------------------------------------------
if va15 < va2 then {vp=((va2-va15)/2)+va15;}
if va2 < va15 then {vp=((va15-va2)/2)+va2;}
if va2 > va15 then va33 = (va2 - va15) / 2 + va15;
if va15 > va2 then va33 = (va15 - va2) / 2 + va2;
plot47(va33,"반반");
//Plot20(vp, "반");
plot20(vp+100, "반",iff(vp>vp[1]+00,red,iff(vp<vp[1]-00,BLUE,BLACK)));
/*TSF = LRL(va4,tsfPeriod)+LRS(va4,tsfPeriod);
if TSF >TSF[1]+220 then TSF = ((TSF -TSF[1])*0.6)+TSF[1];
if TSF <TSF[1]-220 then TSF = TSF[1]-((TSF[1] -TSF)*0.6);
Plot60(TSF,"TSF",iff(TSF>TSF[1]+00,red,iff(TSF<TSF[1]-00,BLUE,BLACK)));
*/
Plot60(va15, "순매수1"/*,iff(va2>va2[1]+00,RED,iff(va2<va2[1]-00,BLUE,WHITE))*/);
if ii == 1 Then
ema11 = va3;
else
ema11 = va3 * EP1 +ema11 * (1-EP1);
if ii <= 2 Then
ema12 = ema11;
else
ema12 = ema11 * EP1 +ema12 * (1-EP1);
if ii <= 3 Then
ema13 = ema12;
else
ema13 = ema12 * EP1 +ema13 * (1-EP1);
//순매수를 테마로
if ii >= 3 then
va77 = (테마값 * ema11) - (테마값 * ema12) + (ema13);
Plot58(va77, "테마");
va88 = va77;
if va2 < va77 and va3 > va77 Then
{ va88 = va3;
}
if va2 > va77 and va3 < va77 Then
{ va88 = va3;
if va88 >va88[1]+20 then va88 = ((va88 -va88[1])*0.5)+va88[1];
if va88 <va88[1]-20 then va88 = va88[1]-((va88[1] -va88)*0.5);
}
Plot95(va88, "테마합");
if ii == 1 Then
ema21 = va88;
Else
ema21 = va88 * EP2 +ema21 * (1-EP2);
if ii <= 2 Then
ema22 = ema21;
Else
ema22 = ema21 * EP2 +ema22 * (1-EP2);
if ii <= 3 Then
ema23 = ema22;
else
ema23 = ema22 * EP2 +ema23 * (1-EP2);
if ii >= 3 then
va87 = (4.2 * ema21) - (4.2 * ema22) + (ema23);
Plot78(va87, "테마합테마");
// plot78(va87+100, "테마합테마",iff(va87>va87[1]+00,red,iff(va87<va87[1]-00,BLUE,BLACK)));
if ii >= 2 then{
//TSF 막대표시 -----------------------------------------------
If vp[1] < va4+00 Then
{
Plot45(va2-100, "순매수상승 우위");
Plot44(0, "순매수하락 우위");
}
If vp[1] > va4-00 Then{
Plot45(0, "순매수상승 우위");
Plot44(va2-100, "순매수하락 우위");
}
//매수매도신호-------------------------------------------------------
If va4[1]+300 < va4 Then{
//Plot96(va4+200, "매/수");
}
If va4[1]-300 > va4 Then{
// Plot97(va4+200, "매/도");
}
if va3 > va77 and va3 > va77+과열 Then{
plot37(va3,"매도유리");}
// PlaySound("C:₩예스트레이더₩data₩Sound₩Bell2.wav");
if va3 < va77 and va3 < va77-과열 Then{
plot38(va3,"매수유리");}
// PlaySound("C:₩예스트레이더₩data₩Sound₩Bell2.wav");
//-------------------------------------------------------------------------
if /*sss<=0 and*/ va2[1] > va2 Then
{
/*sss=1;*/
Plot96(va2, "sall");
//PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩Bandi.wav");
}
if/* sss>=0 and*/ va2[1] < va2 Then
{
/* sss=-1;*/
Plot97(va77-150, "bye");
//PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click08.wav");
}
//---------------------------------------------------------------------------
if CrossUp(va4,va2) Then
//if va2[2] > va2[1] and va2[1]+00 < va2 Then
{ plot85(va2-230,"y매수");
PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩Bandi.wav");
}
if CrossDown(va4,va2) Then
//if va2[2] < va2[1] and va2[1]+00 > va2 Then
{ plot86(va2+250,"y매도");
PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click08.wav");
}
if va9 >va9[1]+순매수00보정한계 then va9 = ((va9 -va9[1])*순매수00급증보정)+va9[1];
if va9 <va9[1]-순매수00보정한계 then va9 = va9[1]-((va9[1] -va9)*순매수00급감보정);
plot98(va9,"순매수00",iff((va9 )>(va2)+00,RED,iff((va9 )<(va2 )-00,BLUE,BLACK)));
}
vmin = min(va2,va15);
vmax = max(va2,va15);
if va2 > va15 then va33 = (va2 - va15) / 2 + va15;
if va15 > va2 then va33 = (va15 - va2) / 2 + va2;
plot47(va33,"반반");
#봉시작
var1 = TimeToMinutes(stime)*60;
var2 = FracPortion(stime/100)*100;//시작시간 초
SS = var1+var2;
#봉끝
value1 = TimeToMinutes(time)*60;
value2 = FracPortion(time/100)*100;//긑시간 초
TS = value1+value2;
Second = TS-SS;
if second < 봉완성 Then
plot27(vmin-200,"체결단");
Else
plot28(vmin-200,"체결장");
2017-05-26
177
글번호 109854
답변완료
수식요청 드립니다.
* 수식요청 드립니다. (여기서 수수료는 따지지않음)
* 매수금액 대비 100,000원 이익 후 매도 방법 문의
* if crossup(c,ma(c,5)) buy() 일 경우
100만원 을 가지고 1,000원주식을 사면 1,000주를 샀습니다.
그러면 나는 100만원 + 10만원 = 110만원을 목표로 계산하여
현재가격이 1,100원 보다 크면 매도 할수 있게 수식이 가능 하나요?
즉 이익 금액으로 설정하여 매도 하는 방법요.....
* if date != date[1] Then{
if DayVolume >= DayVolume(1) Then var99 = c; }
Condition22 = C<O and c > DayClose(1) and DayVolume > DayVolume(1)*1;
if dayindex() >= 1 and Condition22 == True then buy("b",atlimit,var99*0.95);
수식이 안먹는데 외그러죠?
즉 전일 대비 전일 거래량 보다 크면 매수 조건되고
전일 거래량 만족시 가격 기준으로 5% 마이너스 선에서 매수
외안되죠?
* 고맙습니다. 수고하십시요
2017-05-26
134
글번호 109853
답변완료
수식 부탁드립니다.
안녕하세요
고생많으십니다.
스토캐스틱533 과 스토캐스틱 50 30 30 두개를 합쳐서 매매수식 부탁드립니다.
1.스토캐스틱 50 30 30 의 K와 D가 교차하여 상승중일때에 스토533이 20 이하에서
상승하여 K와D 가 교차하면은 매수이고
2.반대일때는 매도 입니다.
(스토533이 80이상 올라 갔다가 하락하면서 K와D가 교차시에 매도)
항상 감사드립니다.
2017-05-25
117
글번호 109852
답변완료
피라미딩
답변에 감사합니다.
NO. 53381 호와 관련입니다.
1.위 그림1의 차트는 아래의 수식을 적용 한 차트입니다.
여기에서 화살표 표시 부분에서 매도신호 S2 또는 매수신호 b2 의 신호가 발생하여야 할 것으로 판단 되는데 신호의 발생이 안되고 있습니다.
바르게 수정하여 주시면 감사 하겠습니다.
2.그리고 피라미딩 설정에서 모든진입신호가 허용 되도록 수식을 변경하여 주시길 부탁드립니다.
관련 수식입니다.
If 최종꼭지점[1] < 최종꼭지점 Then
var1 = -1;
if 최종꼭지점[1] > 최종꼭지점 Then
var1 = 1;
If abs( 고[1,1] - 저[2,1]) > N Then
{
if var1 == -1 and var1[1] != -1 Then
Sell("s1");
}
If abs( 고[2,1] - 저[1,1]) > N Then
{
if var1 == 1 and var1[1] != 1 Then
buy("b1");
}
If 최종꼭지점 == "고점" and 최종꼭지점[1] != 최종꼭지점 and 저[1,1] >= 저[2,1] Then
var2 = 1;
If 최종꼭지점 == "저점" and 최종꼭지점[1] != 최종꼭지점 and 고[1,1] <= 고[2,1] Then
var2 = -1;
If var2 == 1 and var2[1] != 1 Then Buy("b2");
If var2 == -1 and var2[1] != -1 Then Sell("s2");
2017-05-25
156
글번호 109851
답변완료
안녕하세요 잘 부탁드립니다.
늘 고생이 많으십니다.
아직 처음이라 글이 좀 미숙해도 잘 부탁드립니다.
1. 해외선물
전일종가 / 당일 시가 / 당일 고가 / 당일 저가
이탈,돌파시 계속해서 음성알림을 듣고 싶습니다.
2. 당일에 고가를 찍은 양봉캔들 시가를 이탈하는 캔들에 매도신호 / 저가를 찍은 음봉에 시가를 돌파하는 캔들에 매수신호 넣을 수 있게 부탁드립니다.
(이 신호는 고가와 저가 갱신후 반복되는 돌파캔들 발생시 계속 신호는 나올 수 있게 유지)
1.2번 문항을 하나로 묶을 수 있으면 분리 / 묶음으로 이렇게 두번 부탁드립니다.
2017-05-26
110
글번호 109850
답변완료
20캔들의 중간선과 상단선, 하단선
안녕하세요? 수고 많으십니다.
20캔들의 중간선과 상단선, 하단선을 만들어 주시면 고맙겠습니다.
2017-05-25
117
글번호 109849
영훈0 님에 의해서 삭제되었습니다.
2017-05-25
0
글번호 109848
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2017-05-25
6
글번호 109847
답변완료
문의드립니다
안녕하세요.
특정 진입명에 진입하여 성공(익절청산)하면 당일엔 같은 진입명으로는 다시 진입하지 않게 하는 방법이 궁금합니다.
항상 감사합니다
2017-05-25
123
글번호 109836