커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4351
글번호 230811
답변완료
일목균형 선행스팬2
항상감사드립니다.
아래의 조건으로 시스템식을 구현하고 싶습니다.
***A_일목균형 선행스팬2 돌파시스템
1.일목균형 기준선이 선행스팬2를 상향돌파한다음 현재가가 선행스팬2를 터치하고
현재가 > 선행스팬2 매수
2.일목균형 기준선이 선행스팬2를 하향돌파한다음 현재가가 선행스팬2를 터치하고
현재가 < 선행스팬2 매도
***B_MACD 돌파매매
** macd crossup 발생시 앞전 crossup 발생점보다 높으면 매수
(macdv 라인이 앞전 crossup 지점보다 항상 위에 있을것)
** macd crossdown 발생시 앞전 crossdown 발생점보다 낮으면 매도
(macdv 라인이 앞전 crossdown 지점보다 항상 아래에 있을것)
1.MACD(12.26.9)/스톡캐스트(5,3,3)/CCI(20,10)
2.crossup(macdv,macdsignal) 이면 최근에 발생된값을 var11 ,var12 ,var13 순으로 저장
crossdown(macdv,macdsignal) 이면 최근에 발생된값을 var21 ,var22 ,var23 순으로 저장
a_ var21>var22 and var21>var11 and var22>var11 이고 var11 발생이후 현재가가 var11가격
을 상회할때 crossup(macdv,macdsignal) 이고 stock K > stock D 이고 CCI>100 매수신호
b_var11>var12 and var11>var21 and var11>var22 이고 var21 발생이후 현재가가 var21가격
을 하회할때 crossdown(macdv,macdsignal) 이고 stock K < stock D 이고 CCI<-100 매도신호
감사합니다.
2017-07-27
139
글번호 111602
답변완료
청산수식문의
해외선물 크루드오일에서
여러번에 걸쳐 매수가 들어가서
예를들어서
7개 누적매수량이 있을 때
if TOTPL>REALPL then Begin
ExitLong();
end;
처럼하고 시스템 매매설정 의 시간자동주문의
1차자동정정 체결대기 3초 정정가격 상대2호가
2차자동정정 체결대기 3초 정정가격 상대2호가
처럼 설정하고 돌려보니
7개매수량이 청산이 다되고도 오히려 과매도가 더 되어서 2개가
매도물량으로 잡혀 있습니다.
어떻게 하면 7개매수 물량이 정확히 7개 청산할 수 있는지
알려주시기 바랍니다.
1차나 2차 자동정정기능을 정확히 제가 잘 모르겠습니다.
이것 사용하면 안되는지요?
아예 사용 안하는 것이 더 좋은지요?
2번재 질문은
계좌에 두 종목을 매수했을때 계좌 전체가 수익이 났을 때
전체 종목을
동시 청산하고 싶습니다.
2종목을 시스템으로 일괄 동시 청산하는
방법을 꼭 부탁드립니다.
예스트레이더로 안되면 예스트레이더와 에스스팟과 연계해서 혹시 가능한지요?
2017-07-27
109
글번호 111600
새로운세상 님에 의해서 삭제되었습니다.
2017-07-27
1
글번호 111599
답변완료
문의드립니다
Input:기간(500),구간개수(10); //최대 20
Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0),
시작번호(0),끝번호(0),bars(0);
Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0);
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
#----------------------------------------------------------------------------------#
최대 = Highest(H,기간-1);
최소 = Lowest(L,기간-1);
Value1 = Round((최대-최소)/구간개수,0);
가격대[0] = 최대;
For 행번호 = 0 To 구간개수-1 {
가격대[행번호+1] = 가격대[행번호] - Value1;
거래량[행번호] = 0;
비율[행번호] = 0;
}
총거래량 = 0;
For j = 0 To 기간-2 {
총거래량 = 총거래량 + V[j];
#----------------------------------------------------------------------------------#
# 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호;
if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호;
}
가격대거래량 = V[j]/(끝번호-시작번호+1);
for 행번호 = 시작번호 To 끝번호 {
거래량[행번호] = 거래량[행번호] + 가격대거래량;
}
}
#----------------------------------------------------------------------------------#
# 비율 계산
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
비율[행번호] = 거래량[행번호] * 100 / 총거래량;
}
#----------------------------------------------------------------------------------#
# 지표출력
#----------------------------------------------------------------------------------#
bars = Floor(구간개수/2);
var : DD(0),TT(0),DD1(0),TT1(0),TL1(0),text1(0);
if bdate != bdate[1] Then{
DD = sdate;
TT = stime;
DD1 = DD[1];
TT1 = TT[1];
TL1 = TL_New(DD1,TT1,가격대[bars][1],sDate[1],sTime[1],가격대[bars][1]);
TL_SetSize(TL1,2);//추세선 굵기지정(0~8)
TL_SetColor(TL1,RED);
}
TL_Delete(TL[bars]);
TL[bars] = TL_New(DD,TT,가격대[bars],Date[0],sTime[0],가격대[bars]);
TL_SetSize(TL[bars],2);//추세선 굵기지정(0~8)
TL_SetColor(TL[bars],red);
선이현재는 고점하나만나오는데 대칭으로저점도나오게2개 나올수있게 부탁드립니다~~미리감사드립니다
2017-07-27
121
글번호 111598
답변완료
검색식 부탁드립니다.
안녕하세요
월봉에서 년봉 검색식 부탁드립니다.
1> 1봉전 5 < 10 < 20 이평 역배열
2> 20이평이 3회 연속 하락
3> 1봉 전 5이평을 고점이 터치하지 못하고
4> 0봉 전 5이평을 고점이 터치한 종목 검색식 부탁드립니다.
모든 수치는 변수 처리해주세요
감사합니다. 수고하세요
2017-07-27
111
글번호 111597
만들레영토 님에 의해서 삭제되었습니다.
2017-07-26
13
글번호 111596
답변완료
질문 드립니다.
[재질문] 앞에 답변해 주신 내용에 따라 제가 작성한 수식인데 참조데이터12에서 거래량 최대일 때의 그 거래량이 한 번만 출력이 되어야 하는데 선 위에 각 봉의 거래량이 모두 출력됩니다.
문제해결 좀 부탁드립니다.
var : v12(0,data12), v13(0,data12),tx(0);
if data12(v == highest(V,150) ) Then
v12 = data12(C);
v13 = data12(V);
plot1(v12);
Text_Delete(tx);
tx = Text_New(sdate,stime,v12,NumToStr(v13,0));
2017-07-26
122
글번호 111595
답변완료
보조차트
아래 2가지 수식을 보조차트 이용으로 수정 바랍니다.
항상 고맙습니다.
1. buy
input : b1(20),b2(20),X1(20),X2(20),진입시간(090000);
var : T1(0),entry(0),LL(0),EH(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and stime >= 진입시간 and C >= daylow+PriceScale*B1 and C[1] < daylow+PriceScale*B1 Then
buy("b1");
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then
EH = H;
if H > EH Then
EH = H;
if entry == 1 and C <= EH-PriceScale*X1 Then
exitlong("bx1");
}
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and entry == 1 and stime >= 진입시간 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then
buy("b2");
if MarketPosition== 1 and entry == 2 Then
exitlong("bx2",AtStop,EntryPrice-PriceScale*X2);
2. sell
input : s1(11),s2(13),X1(13),X2(13),진입시간(090000);
var : T1(0),entry(0),HH(0),EL(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and stime >= 진입시간 and
C <= DayHigh-PriceScale*s1 and C[1] > DayHigh-PriceScale*s1 Then
sell("s1");
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then
EL = L;
if L < EL Then
EL = L;
if entry == 1 and MarketPosition == -1 and C >= EL+PriceScale*X1 Then
ExitShort("sx1");
}
if TotalTrades > TotalTrades[1] Then
HH = H;
if H > HH Then
HH = H;
if MarketPosition == 0 and entry == 1 and stime >= 진입시간 and C <= HH-PriceScale*s2 and C[1] > HH-PriceScale*s2 Then
sell("s2");
if MarketPosition== -1 and entry == 2 Then
ExitShort("sx2",AtStop,EntryPrice+PriceScale*X2);
2017-07-26
109
글번호 111584
답변완료
부탁 드립니다.
도움 주심에 경배로 감사 인사 올립니다.
다음 수식을
분봉용(예:60분)에서 사용하든것을
질문1)
틱차트에서 60분용이 나타 나게 할수 있는지요?
질문2)
10분 차트에서 60분용이 나타 나게 할수 있는지요?
input : p100(26);
var : HV1(0),HV2(0);
var : HH1(0),HH2(0);
var : LL1(0),LL2(0);
HV1=NthHighest(1,v,p100);
HV2=nthhighest(2,v,p100);
HH1=NthHighest(1,h,p100);
HH2=nthhighest(2,h,p100);
LL1=NthLowest(1,L,P100);
LL2=NTHLOWEST(2,L,P100);
if HH1 > 0 and H == HH1 Then{
var1 = H;}
if HH2 > 0 and H == HH2 Then{
Var2 = H;}
if LL1 > 0 and L == LL1 Then{
var21 = L; }
if LL2 > 0 and L == LL2 Then{
var22 = L; }
if Hv1 > 0 and v == Hv1 Then{
var31 = c;}
if Hv2 > 0 and v == Hv2 Then{
var32 = c;}
2017-07-26
107
글번호 111583