커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8133
글번호 230811
답변완료
문의드립니다
문의드립니다
차트상 음봉 양봉 기준을 세로이 정의하고 십습니다
1. 1봉전고가가 2봉전고가보다 크다면양봉 h[1] > h[2] 양봉
하지만 1봉전고가와 2봉전고가가 같다면
2. 두번째 비교대상은 종가기준으로 c[1] > c[2] 양봉
종가까지도 같다면
3. 저가 기준으로 ㅣ[1] > ㅣ[2] 양봉
저가까지도 같다면
4. 3봉전 봉색상과 똑같은 색상으로 부탁드립니다
그리고 반대로도 부탁드립니다
1. 반대로는 L[1] < L[2] 음봉
2. 종가로 c[1] < c[2] 음봉
3. 고가로 h[1] < h[2] 음봉
4. 3봉전 봉색상과 똑같은 색상으로 부탁드립니다
5. 만약에 1봉전 고가가 2봉전고가보다 작고 1봉전 저가가 2봉전 저가보다크다면
종가로 1봉전종가가 2봉전종가보다크면 양봉 작으면 음봉 으로하고요
종가도같다면 3봉전의 봉색상과똑같이 입니다
반대로
1봉전 고가가 2봉전고가보다 크고 1봉전 저가가 2봉전 저가보다작다면
종가로 1봉전종가가 2봉전종가보다크면 양봉 작으면 음봉 으로하고요
종가도같다면 3봉전의 봉색상과똑같이 입니다
차트상와 지표로도 부탁드립니다
부타드립니다 그리고 감사합니다
2016-03-24
224
글번호 96558
답변완료
시스템수식을 부탁드립니다
안녕하세요
아래식은 검색식입니다 첨부사진처럼 원하는 지점에 십자가신호가 나옵니다
이식에 신호발생시 시스템 신호음이 나오도록 할수있는지 문의드립니다
가능하다면 수식 부탁드립니다
감사합니다
Input : af(0.04), maxAF(0.2);
var1 = cSAR(af,maxAF);
if crossup(c,var1) Then
Plot1(L, "상승",RED);
if CrossDown(c,var1) Then
Plot2(H, "하락",BLUE);
2016-03-24
259
글번호 96554
답변완료
질문 드립니다.
120 이동평균선보다 주가가 높은 종목을 파워종목검색에서 아래와 같이
입력하고 검색을 하면 아무런 종목도 안 나오는데 왜 그런지요?
(봉의 최소갯수가 문젤까요?)
Input : Period(120);
If C > ma(C,Period) Then
{
If C == C[1] Then
value1 = 0.001;
Else
value1 = (C-C[1])/C[1]*100;
}
Else
value1 = 0;
Find(value1);
2016-03-24
239
글번호 96553
답변완료
문의드립니다
매수
var11 가 10,20,30,40,50,60,70,80,90 을 골든크로스하면 매수신호 9개
위와 같은 기본시스템에서
변수 0 과 1을 줘서
매수신호 9개를 온/오프를 하고 싶습니다
10 골든크로스 매수신호를 살리고싶으면 1 죽이고싶으면 0
20 골든크로스 매수신호를 살리고싶으면 1 죽이고싶으면 0
30 골든크로스 매수신호를 살리고싶으면 1 죽이고싶으면 0
...
90 골든크로스 매수신호를 살리고싶으면 1 죽이고싶으면 0
감사합니다
2016-03-24
196
글번호 96552
답변완료
종목명이나 종목번호를 알 수 있는 식?
기능이 있나요?
얼마전 업데이트 되길래 혹시 기능이 추가되었나 해서 문의드려봅니다.
2016-03-24
222
글번호 96551
답변완료
감사합니다.
먼저 답변에 감사합니다.
시간대 당일 9:00 ~12:00 이고,
(c>o or (countif(c) > o,3) >=2))시키는 봉의 갯수가 10개 이상
이라는 조건을 수식에 추가하고 싶습니다.
감사합니다.
2016-03-24
209
글번호 96549
답변완료
해외선물 재질문입니다.
항상 친절한 답변에 감사드립니다.
bdate가 영업일입니다.
아래와 같이 표현하시면
새로운 영업일이 시작하는 첫봉을 의미합니다.
if bdate != bdate[1] then
{
var1 = 0; // 변수-1 을 0으로 초기화
var2 = 0; // 변수-2 을 0으로 초기화
var3 = 0; // 변수-3 을 0으로 초기화
}
제 질문에 위화 같은 답변을 들었습니다.
저는 변수 var1을 첫 봉부터 봉의 수를 카운트하는 변수로 활용하려고 합니다.
이 후에는 어떻게 해야 하는지 궁금합니다.
미리 감사드립니다.
아래와 같은 작성은 어떤지요?
----------------------------------------------------------------------------
if bdate != bdate[1] then
{
var1 = 0; // 변수-1 을 0으로 초기화
var2 = 0; // 변수-2 을 0으로 초기화
var3 = 0; // 변수-3 을 0으로 초기화
}
if bdate = bdate[1] then
{
var1 = var1 + 1;
plot1(var1);
}
2016-03-24
234
글번호 96548
답변완료
수식요청드립니다
안녕하세요.
수정해주신 아래수식을 틱봉차트에 적용 목표수익, 이평을 축소 하여도 청산신호가 나오지 안네요.
(목표수익은 피라미딩 진입포함 총합산수익으로 적용해주세요.)
점검 요청 드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식요청드립니다.
> 안녕하세요
예스스탁입니다.
식을 수정했습니다.
가격은 최근진입이후의 최고가를 쓰는데
지수이평의 최고가는 첫진입이후 최고그를 사용했습니다.
지수이평도 최근 진입이후 최고가 대비로 변경했습니다.
var : emav(0),HH(0),LL(0),HI(0),Li(0);
emav = ema(C,20);
if MarketPosition == 1 Then{
#매수후 이평이 하락하면 true
if emav < emav[1] Then
Condition1 = true;
#최근 진입이후 최고가외 지수이평 최고가 계산
if CurrentContracts > CurrentContracts[1] Then{
HH = H;
HI = emav;
}
if H > HH Then
HH = H;
if emav > HI Then
HI = emav;
#매수이후 지수이평하락이 한번도 없었고(Condition1이 아직 false)
#최근 진입이후 최고가가 평단가 대비 3포인트 이상 크면
#Condition1은 true
if Condition1 == false and
H == HH and
HH >= AvgEntryPrice+3 Then
Condition11 = true;
#Condition11이 true이고
#지수이평이 최근진입이후 이평최고가대비 10% 이하일때
if Condition11 == true and
emav <= HI*0.90 Then
exitlong();
}
Else{
Condition1 = false;
Condition11 = false;
}
if MarketPosition == -1 Then{
if emav > emav[1] Then
Condition2 = true;
if CurrentContracts > CurrentContracts[1] Then{
LL = L;
LI = emav;
}
if L < LL Then
LL = L;
if emav < LI Then
LI = emav;
if Condition2 == false and
L == LL and
LL <= AvgEntryPrice-3 Then
Condition22 = true;
if Condition22 == false and
emav >= LI*1.10 Then
ExitShort();
}
Else{
Condition2 = false;
Condition22 = false;
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청드립니다.
> 안녕하세요.
작성해주신 아래수식을 기본진입수식에 적용 목표수익을 줄여도 청산이 잘안되네요.
점검 요청 드립니다.
//**********************************************************************************
#기본진입수식
Inputs: DMILen(14), Consec(3), MinDiff(0);
Variables: DMIDiff(0);
DMIDiff = DIPlus(DMILen) - DIMinus(DMILen);
If DMIDiff[Consec] > 0 Then Begin
If DMIDiff >= MinDiff AND CountIF(DMIDiff > DMIDiff[1], Consec) == Consec Then
Buy ("DMI_LE");
End;
If DMIDiff[Consec] < 0 Then Begin
If Abs(DMIDiff) >= MinDiff AND CountIF(DMIDiff < DMIDiff[1], Consec) == Consec Then
Sell ("DMI_SE");
End;
//----------------------------------------------------------------------------------
#피라미딩진입수식
input : i증감(0.3),누적진입횟수(3),진입수량(1);
if MarketPosition == 1 and
MaxEntries < 누적진입횟수 Then
Buy("PBB",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and
MaxEntries < 누적진입횟수 Then
sell("PSS",AtStop,LatestEntryPrice(0)-i증감,진입수량);
//==================================================================================
#청산수식
var : emav(0),HH(0),LL(0);
emav = ema(C,10);
if MarketPosition == 1 Then{
if emav < emav[1] Then
Condition1 = true;
if CurrentContracts > CurrentContracts[1] Then
HH = H;
if H > HH Then
HH = H;
if Condition1 == true and H == HH and HH >= AvgEntryPrice+1 Then//목표수익3PT
Condition11 = true;
if Condition11 == true and
emav <= highest(emav,BarsSinceEntry)*0.90 Then
exitlong("매수청산");
}
Else{
Condition1 = false;
Condition11 = false;
}
if MarketPosition == -1 Then{
if emav > emav[1] Then
Condition2 = true;
if CurrentContracts > CurrentContracts[1] Then
LL = L;
if L < LL Then
LL = L;
if Condition2 == true and L == LL and LL <= AvgEntryPrice-1 Then//목표수익3PT
Condition22 = true;
if Condition22 == false and
emav >= Lowest(emav,BarsSinceEntry)*1.10 Then
ExitShort("매도청산");
}
Else{
Condition2 = false;
Condition22 = false;
}
//============================================================================
#선물만기일이면 14시45분 청산, 아니면 15시 청산
var: month(0),nday(0),week(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
SetStopEndofday(144500);
Else
SetStopEndofday(150000);
//============================================================================
안녕하세요
예스스탁입니다.
var : emav(0),HH(0),LL(0);
emav = ema(C,20);
if MarketPosition == 1 Then{
if emav < emav[1] Then
Condition1 = true;
if CurrentContracts > CurrentContracts[1] Then
HH = H;
if H > HH Then
HH = H;
if Condition1 == true and H == HH and HH >= AvgEntryPrice+3 Then
Condition11 = true;
if Condition11 == true and
emav <= highest(emav,BarsSinceEntry)*0.90 Then
exitlong();
}
Else{
Condition1 = false;
Condition11 = false;
}
if MarketPosition == -1 Then{
if emav > emav[1] Then
Condition2 = true;
if CurrentContracts > CurrentContracts[1] Then
LL = L;
if L < LL Then
LL = L;
if Condition2 == true and L == LL and LL <= AvgEntryPrice-3 Then
Condition22 = true;
if Condition22 == false and
emav >= Lowest(emav,BarsSinceEntry)*1.10 Then
ExitShort();
}
Else{
Condition2 = false;
Condition22 = false;
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청드립니다.
> 안녕하세요.
당일청산 피라미딩 시스템에서 매도, 매수 포지션 진입 후 목표수익달성, 지수이평선
기울기 각도, 현재봉의 종가에 수익청산 시스템 수식 요청드립니다.
<< 청산조건 3가지 필수 청산조건 >>
-> 매수진입 후 20 지수이평선 기울기 각도가 계속상승 조건발생(반대로 하락시 수식적용 제외)
1. 3PT 이상 목표수익 발생 후
2. 목표수익 발생 후, 고점에서 20 지수이평선 기울기 10%(또는 10도) 하락하고
3. 고점에서 20 지수이평선 기울기 각도가 상승, 횡보, 10%(또는 10도) 하락 시 현재봉의 종가에 수익청산
-> 매도진입 후 20 지수이평선 기울기 각도가 계속하락 조건발생(반대로 상승시 수식적용 제외)
1. 3PT 이상 목표수익 발생 후
2. 목표수익 발생 후, 저점에서 20 지수이평선 기울기 10%(또는 10도) 상승하고
3. 저점에서 20 지수이평선 기울기 각도가 상승, 횡보, 10%(또는 10도) 상승시 현재봉의 종가에 수익청산
( 이평선 기울기는 %와 각도 중 이평선 기울기 판단에 유리한 조건으로 적용해 주세요)
감사합니다.
2016-03-24
238
글번호 96544
답변완료
문의드립니다.
아래와 같이 시스템 매수 식을 작성하였습니다.
기본 차트는 '2분'차트이고 Data2 차는 '1초' 차트로 설정을 했습니다.
(참고사항 : 진입시작일 -> currentdate, 진입시작시간 -> 090000, 진입마지노선 -> 140000, 참고로 진입시작시간은 시스템 적용시점에 그 시간대로 변경함.)
제가 원하는 것은 어떤 종목을 찾았으면 최대한 빨리 매수를 하여 기존에 정해놓은 매도 방법으로 매매를 하고 싶습니다.
제 시스템 식으로는 매도는 기존에 짜놓은데로 잘 되는데 매수가 잘 되지 않습니다.
아래와 같이 1초봉이 완성되면 바로 매수 하도록 했는데... 될 때도 있고 안 될 경우 있습니다. 어떤 경우는 1초 봉이 완성되자 매수가 되고 어떤 경우는 2분봉이 완성되어야 매수가 됩니다. 동일한 시스템 식에서 이랬다 저랬다 하는데 어떻게 해야 Data2의 1초 봉이 완성되자 말자 매수를 할 수 있는지 방법 문의 드립니다.
if Data2(sdate >= 진입시작일) and Data2(sTime >= 진입시작시간) and data2(sTime <= 진입마지노선) and Data2(TotalTrades == 0) and Data2(MarketPosition == 0) Then {
buy("매수#1");
Playsound("C:₩NHTrader₩data₩Sound₩매수신호발생1.wav");
}
2016-03-23
211
글번호 96543