커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3391
글번호 230811
답변완료
수식수정~요
var : month(0);
month = int(sdate/100)-int(sdate/10000)*100;
if month != month[1] and month == 3 Then
{
PlotPaintBar(o,c,"강조",YELLOW);
}
3월을 나타내는 수식입니다
년도마다 달리 나옵니다
2월/3월/4월 번갈아니옵니다
6월9월12월도 그러합니다
수정 부탁드립니다
2020-05-01
864
글번호 138539
여행88 님에 의해서 삭제되었습니다.
2020-05-01
36
글번호 138538
답변완료
질문 올립니다.
안녕하세요. 늘 감사드립니다.
하루 두 번의 시초가(아침 개장 시간, 저녁 개장 시간)에 따른 지수 선물 매매하는 식 부탁드리고 싶습니다.
10분봉 차트.
A. 나스닥의 경우.
1.
아침 7시 개장해서, 첫 10분간을 하나의 봉으로 볼 때 그 게 음봉이면, 7시 10분에 매도로 진입.
((일단 하락을 예로서 말씀드리겠습니다. 하락 상승 두 경우 다 아우르게 코딩 부탁드립니다))
2.
청산은, ATR 승수 5로 샹들리에 청산 ((물론 이 승수도 외부 변수로 부탁드립니다))
3.
진행되다가 10분봉이 아침 7시 시가선을 위로 돌파해서 완성되면, 그 때에 매수 진입.
4. 청산은 마찬가지로 샹들리에 계속.
5. 그러다가 다시 07시 기준인 시가선을 하회하면 다시 매도로 진입...
이런 식으로 진행...
6.
저녁 미 본장 개장시간인 22:30에 일단 청산.
7. 미 본장 시간 개시가를 새로운 개시가로 보고,
첫 봉(22:30~22:40)이 음봉이면 매도로 진입.
위과 같은 논리로 진행. (샹들리에 적용, 22:30시가를 중심으로 매도 진입, 매수 진입 등 반복...)
7. 마지막으로 아침 06시에 폐장되므로, 그 폐장 직전인 05:50에 청산.
((이 부분에서, 한국시간으로 보면 시작 시간 22:30에서 날짜가 다음 날로 넘어가서 05:50까지 진행될 수 있도록 해야 하므로, 시간 처리를 어떻게 해야 할지 많이 궁금합니다. 잘 부탁드립니다))
((위 내용을 코딩해 주시면, 저 나름대로 그 것을 응용해서, 항셍 등 다른 종목에도 적용시키는 코딩을 해 보도록 하겠습니다.
위의 시간 숫자, ATR 승수 등등을 외부변수로 만들어 주시면 감사하겠습니다)).
대단히 감사합니다!
2020-05-01
1053
글번호 138537
답변완료
문의드립니다.
length_Close = input(defval = 24, title = "Close")
length_High = input(defval = 30, title = "High")
length_Low = input(defval = 25, title = "Low")
ma_High = ema(sHigh, length_High)
ma_Low = ema(sLow, length_Low)
ma_Close = ema(sClose, length_Close)
ma_CH = ma_Close - ma_High
ma_LC = ma_Low - ma_Close
//
bg_Color = ma_CH >= ma_LC ? ma_CH < 0 and ma_CH < ma_CH[1] ? yellow : green : ma_LC < 0 and ma_LC < ma_LC[1] ? yellow : red
//
plot_CH = plot(ma_CH, color = green, transp = 0, title = "MA Close - MA High")
plot_LC = plot(ma_LC, color = red, transp = 0, title = "MA Low - MA Close")
hline(0, color = white, title = "Line")
안녕하세요
plot_CH = plot1
plot_LC = plot2
bg_Color = plot3으로 변환 문의드립니다.
그리고 혹시 bg_Color가 Plot3로 변환이 안 된다면
plot_CH, plot_LC, bg_Color를 강조식으로 문의드립니다.
좋은 연휴되세요!
2020-05-01
1022
글번호 138536
답변완료
지표전환 부탁드립니다
아래 <1><2><3>수식을 예스 지표수식으로 <4>는 시스템 수식으로 전환부탁드립니다
<1>
수식
IF((C>avg(c,기간) && V>avg(c,기간)),V,
IF(C<avg(c,기간) && V<avg(c,기간),-V,0))
지표조건설정
기간 10
기준선 추가 0
<2>
수식1
t1=tema(c,period1);
LL=Lowest(L,period2);
HH=Highest(H,period2);
valuewhen(1,crossup(c,t1) or crossdown(c,t1),HH)
수식2
valuewhen(1,crossup(c,t1) or crossdown(c,t1),LL)
수식3
LT=Lowest(L,P1);
HT=Highest(H,P1);
newH=valuewhen(1,H>HT(1),H);
BOX1=Highest(H,P1-2)<Highest(H,P1-1);
TOP1=valuewhen(1,BarsSince(H>HT(1))==(P1-2) AND BOX1,NewH);
BTM1=valuewhen(1,BarsSince(H>HT(1))==(P1-2) AND BOX1,LT);
NewL=valuewhen(1,L<LT(1),L);
BOX2=Lowest(L,P1-2)<Lowest(L,P1-1);
TOP2=valuewhen(1,BarsSince(L<LT(1))==(P1-2) AND BOX1,HT);
BTM2=valuewhen(1,BarsSince(L<LT(1))==(P1-2) AND BOX1,NewL);
T=tema(c,청산);
t2=max(top2,btm2);
t3=min(top1,btm1);
x=valuewhen(1,crossdown(c,T),
highestsince(1,crossup(c,T),h));
y=valuewhen(1,crossdown(c,T),
lowestsince(1,crossdown(c,T),l));
if(crossdown(c,T) and c>=t2,x,if(crossup(c,T) and c<=t3,y,0))
수식4
valuewhen(1,crossup(c,t1) or crossdown(c,t1),HH)
수식5
valuewhen(1,crossup(c,t1) or crossdown(c,t1),LL)
지표조건 설정
period1 10
period2 20
p1 5
청산 10
<3>
저점
수식1
Lowest(L,기간)*(1+비율/100)
수식2
Lowest(L,기간)
고점
수식1
Highest(H,기간)
수식2
Highest(H,기간)*(1-비율/100)
지표조건설정
기간 10
비율 0.5
<4>
매수진입 (일명"짝궁뎅이"=들린 W)
전고점돌파 & 상승추세 & 전고점 돌파시 기존 처음 W자 시작할때 거래량의 1.5배이상 발생
&첫번째 눌림목 매수
매도진입 (일명"머리어깨"=어깨처진 M)
전저점이탈 & 하락추세 & 전저점 돌파시 기존 처음 M자 시작할때 거래량의 1.5배이상 발생
&첫번째 반등 매도
2020-05-03
1469
글번호 138535
답변완료
분할매수 , 매수금액 최적화 시뮬레이션 오류.
안녕하세요.
매수: 매수신호 발생시 1호가 단위로 나눠서 분할매수 로직+ 투자금 1천만원
표제건관려하여, 투입금액(분할매수 최대금액)이 어느 정도 이상 올라가니,
수익률이 0%이되는 현상이 발생하네요.테스트는 30분봉으로 했고요.
상식적으로 이해가 안되는 상황이라,
제 수식에 문제 가 있거나, HTS상의 문제가 있어보입니다.
첨부 사진 보시면 알겠지만, 투자금액이 어느정도 이상되면 수익금이 0가 됩니다.
혹시 투자금액 한도 같은 게 걸려있나요?
-----인용------
Input : 금액(10000000),
#할당
//value = 매매기준(Period); //매매기준
var1 = int(금액*(1/9)/C); // 1번째 주문수량,다이아몬드형
var2 = Int(금액*(2/9)/C);
Var3 = Int(금액*(3/9)/C);
Var4 = Int(금액*(2/9)/C);
Var5 = Int(금액*(1/9)/C);
# 매수/매도청산
if CrossUP(매매기준, 매수선)//무포시 1차매수
then
buy("매수1",OnClose,def,Var1); //Buy("신호명", 신호타입, 가격조건, 수량)
if MarketPosition == 1 && BarsSinceEntry< Entry봉시간제한
Then// 1차 매수후 나머지 4분할 매수
{
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*1*buypriceunit Then //2틱하락시
buy("매수2",AtLimit,EntryPrice-PriceScale*1*buypriceunit,Var2); // 2차매수
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*2*buypriceunit Then
buy("매수3",AtLimit,EntryPrice-PriceScale*2*buypriceunit,Var3);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*3*buypriceunit Then
buy("매수4",AtLimit,EntryPrice-PriceScale*3*buypriceunit,Var4);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*4*buypriceunit Then
buy("매수5",AtLimit,EntryPrice-PriceScale*4*buypriceunit,Var5);
}
2020-04-30
1248
글번호 138534
답변완료
부탁드립니다
항상 감사드립니다
아래식을 피라미딩 적용하려합니다.
피라미딩 중 각각의 진입명이 한번이상 들어가지 않도록 부탁드립니다
Input : 손절(4),익절(5),익절하락(1);
input : P1(30), P2(200), p3(230), P4(260), P5(320);
input : StartTime(090300),EndTime(151500);
var : tx(0),X(false),Tcond(false),tt(0),vol(1);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
var4 = ma(C, P4);
var5 = ma(C, P5);
######## 진입제한
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 Tcond == true and marketposition == 0
and crossup(var1,var2) Then
{
buy("B1");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then
{
sell("S1");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then
{
buy("B2");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then
{
sell("S2");
}
if Tcond == true and marketposition == 0
and crossup(var1,var4) Then
{
buy("B4");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var4) Then
{
sell("S4");
}
if Tcond == true and marketposition == 0
and crossup(var2,var5) and var3[1] < var3 Then
{
buy("B5");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var5) and var3[1] > var3 Then
{
sell("S5");
}
#### Target 청산
if MarketPosition == 1 then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if Marketposition == -1 Then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime)) Then {
if MarketPosition == 1 Then
ExitLong("BE6");
if MarketPosition == -1 Then
ExitShort("SE6");
}
2020-05-01
1075
글번호 138533
답변완료
지표수식전환 요청
다음 수식을 예스지표수식으로 전환요청드립니다.
<1>
수식1
A=eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
AS=ma(A,5);
valuewhen(1,crossup(A,AS),C)
<2>수식1
eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
수식4
A=eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
AS=ma(A,5);
수식5
A=eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
AS=ma(A,8);
기준선 추가
50
<3>
수식1
HH=Highest(H,기간);
LL=Lowest(L,기간);
NH=valuewhen(1,H>HH(1),H);
valuewhen(1,Barssince(H>HH(1))==(기간-R),NH)
수식2
HH=HigHest(H,기간);
LL=Lowest(L,기간);
NH=valuewhen(1,H>HH(1),H);
valuewhen(1,BarsSince(H>HH(1))==(기간-R),LL)
수식3
HH=Highest(H,기간);
LL=Lowest(L,기간);
NL=valuewhen(1,L<LL(1),L);
valuewhen(1,Barssince(L<LL(1))==(기간-R),HH)
수식4
HH=Highest(H,기간);
LL=Lowest(L,기간);
NL=valuewhen(1,L<LL(1),L);
valuewhen(1,Barssince(L<LL(1))==(기간-R),NL)
지표추가설정
기간 10
R 5
2020-04-30
1073
글번호 138532
답변완료
질문드립니다
안녕하세요
국내선물에서 당일 시초가 부근에서 매도하는 식을 작성하는데 도움이 필요합니다.
1) 20, 60, 120 이평선중 반드시 시초가의 위에 있으면서 시초가에 가장 가까운 선에 닿을때 매도진입하며,
2) 단! 시초가와 그 이평선의 이격이 0.5 포인트 이내일 때만 진입시킵니다
첨부 이미지로 예를들면, 시초가(초록색) 위에 위치하며 시초가와 가장 근접한 이평선(분홍색)에 도달하면 매도 진입을 하게 만들고 싶습니다.
감사합니다
2020-04-30
1100
글번호 138531