커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4441
글번호 230811
답변완료
문의드립니다
항상 노고에 수고하십니다
계좌 2개로 양매수 전략 문의드립니다.
전봉이 양봉이면 현재가 3호가 윗쪽에 매수 대기 한후
체결되면 익절 6틱 손절 15틱
반대계좌에서는 양봉이면 현재가 3호가 아랫쪽에 매도 대기 한후
체결되면 익절 6틱 손절 15틱
부탁드립니다
2018-10-06
145
글번호 122491
답변완료
만기일을 고려한 수식
안녕하세요.
항상 수고 많으십니다.
------------------------ 질문입니다 ---------------
선물 수식을 예를 들어 보겠습니다.
선물 현재가가 20 이평 위에 있으면 매수, 현재가가 20 이평 아래에 있으면 매도.
input : exittime(152500);
input : stopper1(1.0);
var20 = ma(c, 20);
if dayindex >= 0 and stime < exittime then
{
if c > var20 then
{
buy("b1");
}
if c < var20 then
{
sell("s1");
}
}
SetStopLoss(stopper1, PointStop);
if stime == exittime or CrossUp(stime, exittime)) Then
{
exitlong("b1청산");
exitshort("s1청산");
}
위 수식의 문제점은
선물 만기일에는 15:19 (input 으로 처리요망) 이전에 청산하고 싶은데
그것이 반영되어 있지 않다는 것입니다.
위 수식에서 선물 만기일을 고려한 수정 수식을 부탁드립니다.
----------------------------------------------------------------------------
미리 감사드립니다.
항상 하시는 일에 좋은 결실 거두시기를 기원합니다.
2018-10-06
166
글번호 122490
답변완료
이격도12
안녕하세요 관리자님!!
아래서식은 관리자님이 보내주신 서식입니다.
전일의 최고,최저점에서 시작하는 이격도인데요. -(최고가)를 적용했기에 접점이 생깁니다.
시작점을 오늘의 시가가 아닌 전일의 이격도의 접점값으로 변경하여 이격도가 시작되게 해주십시요. 당연히 점접이 여러개이거나 없다면 마지막에 형성된 접점에서 오늘의 이격도가 시작되도록 부탁드립니다. 항상번거롭게 해드려 죄송합니다.
- 아 래 -
var1 = dayopen;
value1 = C/var1*100-100;
var2 = (DayHigh(1)-dayopen(1))+dayopen;
value2 = -(C/var2*100-100);
var3 = dayopen-(DayOpen(1)-DayLow(1));
value3 = (C/var3*100-100);
plot1(value1);
plot2(value2,"-전일최고");
plot3(value3,"전일최저");
plot4(0,"중심선");
2018-10-06
163
글번호 122489
답변완료
수식 문의 드립니다.
안녕하세요
수식 관련해서 문의드립니다.
1분봉 기준으로 매매를 합니다.
1)
1분봉 매매시...
5분봉, 10분봉, 30분봉, 60분봉 의 이평선 (5선,10선,20선,60선)이 모두 정배열이면
매수 진입
5분봉, 10분봉, 30분봉, 60분봉 의 이평선 (5선,10선,20선,60선)이 모두 역배열이면
매도 진입
2)
1분봉 매매시...
5분봉 스토캐스틱 70 이상, 15분봉 스토캐스틱 70 이상, 30분봉 스토캐스틱 70 이상이면
매수 진입
5분봉 스토캐스틱 30 이하, 15분봉 스토캐스틱 30 이하, 30분봉 스토캐스틱 30 이하이면
매도 진입
위의 케이스에 대한 수식 요청 드립니다.
가을비에 감기 조심하고 항상 감사드립니다.
2018-10-06
163
글번호 122488
답변완료
설정에서 "강제청산"에서 당일 청산에 시간을 5:50분에 AM으로 설정했는데ㅐ
설정에서 "강제청산"에서 당일 청산에 시간을 5:50분에 AM으로 설정했는데요
시스템운영은 30분봉입니다. 종목은 해외선물(쿠르드오일)입니다.
차트에는 첨부화일같이 X표기로 청산이 되는데요....
실제로 실전에서는 아침 6시에 청산이 안되어 제가 임의로 청산하던가 홀딩하던가 하게 되네요..
3번이나 그렇게 되어 궁금해서 문의합니다.
왜 6시에 청산이 되지 않는지... 어떻게 하면 청산이 되는지 알려주세요~~~
제가 사용하는수식은 다음과 같습니다.
input : P1(1),P2(1),P4(1),P5(1),N1(50),N2(100);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0);
var : sum3(0);
if DayClose(N2) > 0 Then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to N2-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
}
avg1 = sum1/N1;
avg2 = sum2/N2;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
if T == 1 Then
mav2=p2 ;
if T == -1 Then
mav2=p5;
if T == 1 Then
mav3=p1 ;
if T == -1 Then
mav3=p4 ;
sum3 = 0;
for cnt = 1 to 20
{
sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt));
}
value1 = sum3/20 ;
If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then
{
Buy("매수");
}
If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then
{
sell("매도");
}
}
2018-10-06
194
글번호 122487
답변완료
색상질문 외 1건
<질문1>
* 첨부 파일 처럼 사용이 안되는 색상표 뭐가 잘못되었나요?
되는것도 있고 안되는것도 있고 그러내요...
PLOT24(var24,"하선24",Tool_DarkCyan,def,2);
PLOT26(var26,"하선26");
PLOT28(var28,"하선28",DarkMagenta,def,2);
PLOT30(var30,"하선30",LYELLOW,def,2);
<질문2> 아래 지표수식을 매매 수식 으로 변경 요청 드립니다.
* 아래 수식중 파동선에 대하여 매매 수식 좀 요청 드립니다.
1) 파동선 Plot1(파동선,"1",Iff(방향 == 상승, blue,red)); 은 매도
2) 파동선 plot1(Iff(방향 == 상승,고[1],저[1]),"1",Iff(방향 == 상승, blue,red)); 은 매수
3) 선굵기를 좀더 두껍게 3 정도 요청 드립니다.
////////////////// 아래 지표식 //////////////////////////
Input:Period(15),Rsi변동폭(7);
Var:j(0),상승(50),하락(-50),양방향(4),추세(1),
파동선(1),Rsi파동선(1),방향(1),RsiV(1),추세선(1),추세선1(0);
Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0),
Rsi고[10](0),Rsi저[10](0),Rsi고Bar[10](0),Rsi저Bar[10](0);
RsiV = RSI(Period);
For j = 1 To 9
{
Rsi고Bar[j] = Rsi고Bar[j] + 1;
Rsi저Bar[j] = Rsi저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then
{
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
Else
Rsi고Bar[0] = Rsi고Bar[0] + 1;
If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then
{
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
Else
Rsi저Bar[0] = Rsi저Bar[0] + 1;
If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then
{
고[0] = H;
고Bar[0] = 0;
}
Else
고Bar[0] = 고Bar[0] + 1;
If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then
{
저[0] = L;
저Bar[0] = 0;
}
Else
저Bar[0] = 저Bar[0] + 1;
If Rsi저[0][1] + Rsi변동폭 > RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승;
If Rsi고[0][1] - Rsi변동폭 < RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락;
If 방향[1] == 하락 && 방향 == 상승 Then
{
For j = 8 DownTo 1
{
Rsi저[j+1] = Rsi저[j];
Rsi저Bar[j+1] = Rsi저Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
고[0] = H;
고Bar[0] = 0;
}
Else If 방향[1] == 상승 && 방향 == 하락 Then
{
For j = 8 DownTo 1
{
Rsi고[j+1] = Rsi고[j];
Rsi고Bar[j+1] = Rsi고Bar[j];
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
저[0] = L;
저Bar[0] = 0;
}
Else If 방향[1] == 하락 && 방향 == 하락 Then
{
If Rsi고[1] < Rsi고[0] &&
Rsi고[0][1] - Rsi변동폭 <= RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 > RsiV Then
{
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
If 고[1] < 고[0] &&
고[0] > H Then
{
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
}
}
Else If 방향[1] == 상승 && 방향 == 상승 Then
{
If Rsi저[1] > Rsi저[0] &&
Rsi저[0][1] + Rsi변동폭 >= RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 < RsiV Then
{
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
If 저[1] > 저[0] &&
저[0] < L Then
{
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
}
}
If Rsi파동선[1] != Rsi파동선 Then
Plot1(파동선,"1",Iff(방향 == 상승, blue,red));
Else If LastBarOnChart == 1 Then
plot1(Iff(방향 == 상승,고[1],저[1]),"1",Iff(방향 == 상승, blue,red));
if 고[2] < 고[1] && Rsi고[2] > Rsi고[1] Then
{
추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2];
추세선1 = 추세선[1];
Plot3(추세선,"2",Iff(추세선 > 추세선1, red,blue));
}
* 항상 고맙습니다. 수고하십시요^^
2018-10-07
224
글번호 122486
답변완료
문의 드립니다.
하이투자증권의 예스트레이더 사용합니다.
(4101)투자주체매매종합에서 코스피 선물 외인,개인,기관의 순매수 거래량을 지표로 표시 할수 있는지요?
물론 아날로그 수치로서 실시간 볼수도 있지만 지표식으로 표현해 볼수는 없는건지 궁금합니다.
2018-10-05
171
글번호 122484
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2018-10-05
38
글번호 122483
답변완료
수식 작성 문의 드립니다.
안녕하십니까
수식 부탁드립니다.
직접 해보고 싶었으나, 언제 완성될지 모르겠네요
일반 종목이나, ETF 30분봉에 적용 시켜볼 생각 입니다.
잘부탁 드립니다.
- 매수
1. MACD 오실레이터 AND DMI 상승(AND 나 OR 둘다 테스트 해볼 생각 입니다)
* 필터 : 현재 10일 평균가격이 직전 10일 평균가격보다 높을 경우
(10일선 하락 중인 경우 매수 안함)
- 매도
1. MACD 오실레이터 하락 전환
-MACD 오실레이터 하락, 상승은 음에서는 길이가 짧아지고, 양에서는 길어지면 상승으로 표현 했고 반대의 경우 하락
처음 입문하는 거라 이것 저것 모르는게 너무 많습니다.
공부의 의미로 주석도 달아 주시면 진심으로 감사하겠습니다.
잘부탁 드립니다.
수고하십시오.
2018-10-05
164
글번호 122482