커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7549
글번호 230811
답변완료
참조데이터 관련입니다.
안녕하세요.
1. 참조데이터에서 30MBO 적용해서 주데이터에 진입신호를 만들고 싶습니다.
아래 30MBO 수식을 어떻게 바꾸어야 하는지요?
input : startTime(90000), endTime(092959);
if stime >= 93000 and crossup(C,TimeHigh(startTime,endTime)) then
buy();
if stime >= 93000 and crossdown(C,TimeLow(startTime,endTime)) then
sell();
SetStopEndofday(1450);
2. 참조데이터에서 2번째 봉을 data2(dayindex==2) 이런식으로 표현하면 되나요?
부탁드리겠습니다.
2013-07-22
224
글번호 65626
답변완료
시스템식 부탁합니다.
안녕하세요? 아래의 플롯식을 시스템식으로 부탁합니다.
if var1 > var1[1] and var2 > var3 and var2 > var2[1] Then
plot1(H,"1",RED);
else if var1 < var1[1] and var2 < var3 and var2 < var2[1] Then
plot1(H,"1",BLUE);
Else
plot1(H,"1",GRAY);
첫째 red 면 한주 매수
두번째 blue 이면 매도
세번째 매수포지션일때 grey가 나온 다음에 바로 red가 나오면 추가매수를 계속반복한다
만약 grey->blue->red 이런식이면 매수하면 안됩니다.
무더운 여름 건강하시고 감사드립니다.
2013-07-22
193
글번호 65625
답변완료
식 질문드려요...
비가 엄청나게 오네요...
건강 조심하시고...
본론으로... ^^
예를들어 이평 5,20,60,120,200 이렇게 5개를 사용한다고 할때...
종가가 이중 세개를 돌파하면...
이라고 표현하고싶을때...
모든 경우의 수를 풀어써야 하나요???
그렇게 안해도 될거같은데... ^^
갈켜주세요...
1. 이평일때...
2. 보조지표일때... (5개중 3개 이상이 참일때...)
3. 참조데이터일때...
의미 전달이 잘된건지... ㅡ,.ㅡ
수고하시구요~~ ^^;;
2013-07-22
189
글번호 65624
답변완료
확인 부탁드립니다
감사합니다~
알려주신대로 작성했는데 맞지가 않습니다
확인좀 부탁드립니다
문의2 : KP선물 매수 5호가 합산 총수량 - KP선물 매도 5호가 합산 총수량
시스템식
주차트 = 선물 120틱차트
Data2 = KP선물 매수 5호가 합산 총수량
Data3 = KP선물 매도 5호가 합산 총수량
알려주신 아래 수식으로는 신호가 맞게 나오는데~
/////////////////////////////////////////////////////////////////////////////////
주차트 Upvol > DownVol
and KP선물 매수 5호가 합산 총수량 < KP선물 매도 5호가 합산 총수량 = 매수
주차트 Upvol < DownVol
and KP선물 매수 5호가 합산 총수량 > KP선물 매도 5호가 합산 총수량 = 매도
---------------------------------------------------------------------------------
if Upvol > DownVol and data2(c) > data3(c) Then
buy();
if Upvol < DownVol and data2(c) < data3(c) Then
sell();
/////////////////////////////////////////////////////////////////////////////////
현재봉 거래량만 적용했을때는 신호가 맞게 나오는데
이전봉 거래량 합산적용 했을때는 신호가 맞지않습니다
#아래수식에 부탁드립니다
#Data2 차트주기를 주차트와 다르게 설정해야 되는 이유를 알고싶습니다
///////////////////////////////////////////////////////////////////////////////
var1 = Upvol - DownVol;
var2 = accumN(var1,2); #2개누적
var3 = accumN(var1,3); #3개누적
var4 = accumN(var1,4); #4개누적
var5 = accumN(var1,5); #5개누적
#누적 적용시 90000시부터 누적되게 부탁드립니다
////////////////////////////////////////////////////////////////////////////////
var : Left(1),Right(1);
var : Sline(0);
Sline = C;#시가기준이면 O로 변경
//주차트매수조건-----------------------------------------------------------------
if value11 >= 0 //and SwingLow(1,Sline,Left,Right,Left+right+1) != -1
&& var1 > 0
&& (var1 > 500
or var2 > 500
or var3 > 500
or var4 > 500
or var5 > 500)
Then
{
value11 = -1;
var11 = Sline[Right];
}
//주차트매도조건-----------------------------------------------------------------
if value11 <= 0 //and SwingHigh(1,Sline,Left,Right,Left+right+1) != -1
&& var1 < 0
&& (var1 < -500
or var2 < -500
or var3 < -500
or var4 < -500
or var5 < -500)
Then
{
value11 = 1;
var11 = Sline[Right];
}
//주문---------------------------------------------------------------------------
if !(value11[1] == -1)
&& value11 == -1
&& data2(c) < data3(c)
Then
buy();
if !(value11[1] == 1)
&& value11 == 1
&& data2(c) > data3(c)
Then
sell();
//청산---------------------------------------------------------------------------
if value73 == 1 Then
ExitLong("매수청산");
if value73 == -1 Then
ExitShort("매도청산");
2013-07-23
237
글번호 65623
답변완료
수식부탁드립니다
Input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
# 매수
If CrossUP(value, 0) Then
{
Buy();
}
# 매도
If CrossDown(value, 0) Then
{
Sell();
}
매수든 매도든 2개진입 진입가에서 6틱손해나면 2개다손절 진입가에서 7틱이익날때까지보유 7틱이익나면 1개익절
1개익절난 시점부터 이익이감소하면(매수진입은 가격하락 매도진입은 가격상승) 진입가대비 4틱에 나머지1개 익절 그리고 5틱아래로떨어지지않으면보유 15틱이상이익나는시점부터는 고점대비 4틱아래 트레일링 스탑실행,
다시한번더 말씀 드리면 2개진입후 6틱손실에 2개다손절 7틱이익나면 1개익절 거기서 3틱떨어지면 나머지1개익절 3틱까지 떨어지지않고 상승하면 15틱이익날때까지 보유 15틱이상부터는 트레일링스탑 고점대비4틱 설정입니다
부탁 드리겠읍니다.
만일 백프로 구현이 않되면 되는 부분만이라도 해주시길부탁드립니다
2013-07-23
201
글번호 65613
답변완료
고쳐주세요---------
var: Period(7);
Inputs :비율(9.2), LENGTH1(40),횡보(7000);
var : TEMA82(0);
var : M10(0),M1(0),M2(0),M3(0),EP(0),ema1(0),ema2(0),ema3(0);
M1 = C * 500000 - (10 * data2(C) * 비율);
if DayIndex == 0 then m10 = m1;
m1= m1 - m10;
m3 = ma(m1,Period);
Ep = 2/(LENGTH1+1);
if dayindex == 0 then
ema1 = C;
else
ema1 = C * EP + ema1[1] * (1-EP);
if dayindex <= 1 then
ema2 = ema1;
else
ema2 = ema1 * EP + ema2[1] * (1-EP);
if dayindex <= 2 then
ema3 = ema2;
else
ema3 = ema2 * EP + ema3[1] * (1-EP);
TEMA82 = (3 * ema1) - (3 * ema2) + ema3;
plot1(M1,"S");
#plot2(M3,"s",iff(M3>M3[1]+횡보,red,iff(M3<M3[1]-횡보,BLUE,YELLOW)));
plot3(TEMA82,"st",iff(TEMA82>TEMA82[1]+횡보,red,iff(TEMA82<TEMA82[1]-횡보,BLUE,YELLOW)));
첨부처럼 노란색 직선만나오네요
2013-07-22
252
글번호 65612
답변완료
안녕하세요. 시스템식 문의드립니다.
항상 수고 많으십니다.
1. 아침장 시작 후 어느쪽이건 시가에서 1.50포인트 가면 그쪽으로 따라 진입한다.
익절은 0.5 포인트, 손절 없이 종가 청산. 하루 한번 매매.
2. 위 내용에서 신호 발생후(1.5 포인트) 바로 따라가지 않고 조정(눌림목)에 들어갈려고 할때 신호 및 조정폭을 변수로 하여 최적화를 할려고 합니다.
신호 발생(1.5 포인트) 및 조정 에 대해 변수로 할려면 어떻게 시스템 식을 작성하면 되나요?
자세한 답변 부탁드립니다.
2013-07-22
203
글번호 65609
답변완료
시스템식 문의 드립니다.
매매횟수에 제한을 둘려고 하는데요.
예전에 한 번 문의드렸던 적이 있어서 알려 주신 데로 적용했지만 결과가 원하는 데로 나오지 않았습니다.
제가 사용하는 시스템 환경은 다음과 같습니다.
1. 신호종류 : 매수/매도 각각 2개(매수1,매수2,매도1,매도2)
2. 매수와 매도는 같은 봉에서 동시에 발생할 수도 있습니다.
3. 청산 : 별도의 청산신호 외에 당일 종가 청산
위와 같을 때 당일 최대 매매횟수를 4회로 해서 4회가 넘으면 당일은 신호가 더 이상 발생하지 않게 하려고 하였습니다.
제가 사용한 식은 다음과 같습니다.
var : signalcount(0),cnt(0);
signalcount = 0;
for cnt = 0 to 10 {
if sdate == EntryDate(cnt)then
signalcount = signalcount+1;
}
if condition1 == true
and signalcount < 4
then
buy("매수1");
if condition2 == true
and signalcount < 4
then
buy("매수2");
if condition1 == true
and signalcount < 4
then
sell("매도1");
if condition2 == true
and signalcount < 4
then
sell("매도2");
위의 수식이라면 매수1/매수2가 동시에 신호가 발생한다고 하더라도 최대 5번이 나와야 정상이지 않은가요? 이렇게 적용햇을 때 많이 나오는 날은 8번까지 신호가 나옵니다.
혹시나 싶어서 조건에서 signalcount < 3 으로 해도 크게 달라지지 않구요. 1~2의 오차는 있을 수는 있다고 하더라도 8번은 제가 의도하는 매매횟수의 2번이 넘는 큰 수라 이해가 안됩니다.
뭐가 잘못되었는지요? 부탁드립니다.
2013-07-22
213
글번호 65600
답변완료
재문의 합니다
아래 수식으로 하니 진입이 여러번 일어납니다
하루에 1번진입 하고 하루에 1번 수익이던 /손실이던 청산 하고
그만 두는 수식 부탁합니다
감사합니다
안녕하세요
예스스탁입니다.
1.
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
#당일 한번 매수나 매도진입조건만족하면 진입
if count < 1 Then{
if 매수진입조건 Then
buy();
if 매도진입조건 Then
sell();
}
2.
#시초가 대비 3포인트 상승하면 매수포지션 청산
if MarketPosition == 1 Then
ExitLong("bx1",AtLimit,dayopen+3);
#시초가 대비 3포인트 하락하면 매도포지션 청산
if MarketPosition == -1 Then
ExitShort("sx1",AtLimit,dayopen-3);
3.
Condition1 = IsExitName("StopLoss",1) and ExitDate(1) == sdate;
if Condition1 == false then{
if 매수진입조건 Then
buy();
if 매도진입조건 Then
sell();
}
SetStopLoss(2,PointStop);
즐거운 하루되세요
> 중국동포 님이 쓴 글입니다.
> 제목 : 문의합니다
> 1) 하루에 1회만 집입하는 조건을 알려주십시요
2) 선물기반으로 시초가 보다 3 이상 상승시/하락시 수익청산하고
재진입 하지 않는 수식을 알려주십시요
3) 산물기반으로 2이상 상승시 /2이하 하락시 손실청산하고
재진입 하지 않는 수식을 알려주십시요
감사합니다
2013-07-22
202
글번호 65599