커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7304
글번호 230811
답변완료
문의드립니다
바쁘시겠지만 부탁드립니다 수고하세요
신호로 바꾸주시면 감사하겠습니다
기준선 상승돌파시매수 , 하락돌파시 매도
Input:tick(3);
Input:BBPeriod(12), MultiD(2);
Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0);
var:Sum(0),SumPow(0),MApow(0),STDv(0);
Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0);
Array:MAv[1000](0),BBup[1000](0),BBdn[1000](0);
#==============================================================================#
# Range Bar Chart 계산
#==============================================================================#
If Index == 0 Then
{
tickVal = tick * PriceScale;
oneTick = PriceScale;
OO[0] = O;
HH[0] = O;
LL[0] = O;
CC[0] = O;
}
count = 0;
val[0] = O;
val[3] = C;
If O > C Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If O < C Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] > O Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] < O Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == 1 Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == -1 Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
For k = 0 To 3
{
If HH[0] > 0 && HH[0] < val[k] Then
{
While val[k] - LL[0] > tickVal
{
HH[0] = LL[0] + tickVal;
CC[0] = HH[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = HH[1] + oneTick;
LL[0] = OO[0];
}
If val[k] - LL[0] <= tickVal Then
{
HH[0] = val[k];
CC[0] = val[k];
}
}
Else If LL[0] > val[k] Then
{
While HH[0] - val[k] > tickVal
{
LL[0] = HH[0] - tickVal;
CC[0] = LL[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = LL[1] - oneTick;
HH[0] = OO[0];
}
If HH[0] - val[k] <= tickVal Then
{
LL[0] = val[k];
CC[0] = val[k];
}
}
Else
{
CC[0] = val[k];
}
}
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : cnt(0),H1(0),L1(0),H11(0),L11(0),H2(0),L2(0),H22(0),L22(0),H3(0),L3(0);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
if HH[선행스팬2기간+25] > 0 and LL[선행스팬2기간+25] > 0 then{
H1 = HH[0];
L1 = LL[0];
H11 = HH[25];
L11 = LL[25];
H2 = HH[0];
L2 = LL[0];
H22 = HH[25];
L22 = LL[25];
H3 = HH[25];
L3 = LL[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if HH[cnt] > H1 Then
H1 = HH[cnt];
if LL[cnt] < L1 Then
L1 = LL[cnt];
if HH[cnt+25] > H11 Then
H11 = HH[cnt+25];
if LL[cnt+25] < L11 Then
L11 = LL[cnt+25];
}
if cnt < 기준선기간 Then{
if HH[cnt] > H2 Then
H2 = HH[cnt];
if LL[cnt] < L2 Then
L2 = LL[cnt];
if HH[cnt+25] > H22 Then
H22 = HH[cnt+25];
if LL[cnt+25] < L22 Then
L22 = LL[cnt+25];
}
if HH[cnt+25] > H3 Then
H3 = HH[cnt+25];
if LL[cnt+25] < L3 Then
L3 = LL[cnt+25];
}
전환선 = (H1 + L1)/2;
기준선 = (H2 + L2)/2;
선행스팬1 = ((H11+L11)/2 + (H22+L22)/2) / 2 ;
선행스팬2 = (H3+L3) / 2;
plot1(기준선);
}
2017-07-26
164
글번호 111574
답변완료
문의
k=RSi(14);
a1= crossup(k,30);
x1=ValueWhen(1,a1,L);
x2=ValueWhen(1,a1,H);
x2
k=RSi(p1);
a1= crossup(k,30);
x1=ValueWhen(1,a1,L);
x2=ValueWhen(1,a1,H);
x1
2017-07-26
141
글번호 111573
답변완료
안녕하세요?
안녕하세요?
당일 청산기준으로 손실이 -100틱이상일때
매매종료하는 수식 부탁드립니다.
bl22,bl11,sl22,sl11 은 진입가청산이지만 수식작성시 포함해주세요
if MarketPosition == 1 and MaxContracts == 3 then{
if CurrentContracts == 3 then{
exitlong("bl31",AtStop,EntryPrice-PriceScale*20,"",1,1);
}
if CurrentContracts == 2 then{
exitlong("bl21",AtStop,EntryPrice-PriceScale*5,"",1,1);
exitlong("bl22",AtStop,EntryPrice,"",1,1);
}
if CurrentContracts == 1 then{
exitlong("bl11",AtStop,EntryPrice,"",1,1);
}
}
if MarketPosition == -1 and MaxContracts == 3 then{
if CurrentContracts == 3 then{
ExitShort("sl31",AtStop,EntryPrice+PriceScale*20,"",1,1);
}
if CurrentContracts == 2 then{
ExitShort("sl21",AtStop,EntryPrice+PriceScale*5,"",1,1);
ExitShort("sl22",AtStop,EntryPrice,"",1,1);
}
if CurrentContracts == 2 then{
ExitShort("sl11",AtStop,EntryPrice,"",1,1);
}
}
2017-07-26
152
글번호 111572
답변완료
부탁드립니다
수고하십니다.
120 틱 사용합니다
(첫번째질문)
5 이평선이 상승하면서 망치형이 연달아 2 개 생기면 매수
5 이평선이 하락하면서 역망치형이 연달아 2 개 생기면 매도
(두번째질문)
5 이평선이 상승하면서 5 ma 위에서 봉 패턴이 양음양이면 매수
5 이평선이 하락하면서 5 ma 밑에서 봉 패턴이 음양음이면 매도
2017-07-26
139
글번호 111571
답변완료
지표식 문의드립니다.
매번 성실한 답변에 감사드립니다.
첨부그림의 일자형지표 옆이나 상단에 해당 볼밴의 수치(var1,var2)를 나타내고싶습니다.
감사합니다.
2017-07-25
140
글번호 111570
답변완료
문의 드립니다.
질문1) 가격이 계속 횡보하다가 횡보시작봉으로부터 N번째봉에서 횡보구간의 저점을 하향돌파하거나 고점을 상향 돌파할 때
아래 var1과 var2의 값을 구하려면 수식을 어떻게 작성해야 하는지 부탁드립니다.
var1 = N ;
var2 = data2(C)-data2(C[N]) ;
만약 N을 구하기가 어렵다면 "현재봉으로부터 3봉전까지"를 시작으로 해서 "현재봉으로부터 20봉전정도까지" 를 FOR문으로 돌리는 방법 좀 부탁드립니다.
현재봉을 기준으로 잡기 어렵다면 현재봉의 1봉전을 기준으로 잡아도 됩니다.
항상 도움을 주심에 감사드립니다.^^
질문2) 재질문입니다.
답글 주신대로 아래처럼 하면 최대량일 때의 거래량이 한 번만 출력이 잘 됩니다. 그런데 var1=data12(C) ; 로 바꾸면 각 봉마다 거래량이 모두 출력이 되어 버리는데 최대일 때의 참조데이터12의 거래량을 한 번만 출력하려면 어떻게 해야 하는지 도움을 부탁드립니다.
var : tx(0);
if V == Highest(V,30) Then{
var1 = C;
var2 = V;
}
plot1(var1);
Text_Delete(tx);
tx = Text_New(sdate,stime,var1,NumToStr(var2,0));
2017-07-26
178
글번호 111569
답변완료
부탁 드립니다
input : sto1(10),sto2(5),sto3(2);
var : stok(0),stod(0);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
//조건1 하루손실 제한하고 싶습니다
20돌파면 매수 80 하향하면 매도 시스템에서 하루 손실이 30틱이상이면 신호가 더이상
안나오게 부탁 드립니다
(이 경우 진입되어 있는 상황에서 하루 손실이 30틱이 넘어가면 그냥 자동청산 되나요??)
부탁 합니다
// 조건2 매수나 매도 진입후 수익 청산하면 계속 신호가 나오고 손실청산을 한경우
다음 신호가 안나오게 할수 있나요??
부탁 합니다
2017-07-25
144
글번호 111568
답변완료
수식문의 드립니다.
If Open[2] < Close[2] and Close[2] = Open[1] = Close[1] Then
buy("매수1",Atlimit,Open-PriceScale*5);
==> 전전봉이 양봉이고 직전봉이 (전전봉 종가 =직전봉시가=직전봉종가) 같으면
다음봉 시가에서 5틱내려오면 매수 인데요..오류가 나는데 어떻게 고쳐야 하나요?
2017-07-25
138
글번호 111563
답변완료
고점-저점값에 대한 질문
안녕하세요!!
해외선물 차트를 띄워놓고
시간을 한국시간대로 설정한후
나스닥선물 시장이 거래되는
한국시간기준은 07:00~다음날 06:00입니다.
이와같이
07:00~다음날 06:00이 하루가 되고 이 하루를 기준으로
나스닥선물 일봉이 만들어지고 있습니다.
이런상태에서
#질문여쭙고자 하는점은
1. 과거 p일간의 "고점-저점", 즉 변동폭의 평균
2. n일전의 "고점-저점". 즉 변동폭
을 나타내는 식을 작성하는 방안을 여쭙고싶습니다.
이를 여쭙는 이유는 해외선물에서는 하루의 개념이
국내와 달라 dayhigh나 daylow함수를 사용하기 곤한할 것같아서입니다.
잘부탁드립니다. 감사합니다.
2017-07-25
177
글번호 111554