커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4387
글번호 230811
답변완료
수식작성 도움 바랍니다.
매수조건
1. 1시간 챠트와 2시간챠트에서 주가가 60일 이동평균선 위에 위치하고
2. 1시간 챠트에서 현재종가가 직전봉의 종가보다 2틱 높으면 매수
이것도 수식으로 작성이 되겠습니까.. 부탁드립니다.
2017-05-12
131
글번호 109513
답변완료
주문시 호가에 대해서 질문있습니다.
항상 답변 감사합니다
주식 시스템을 작성중인데요
데이트레이딩이면서 단타를 지향하는 시스템작성중입니다
단타이기에 슬리피지가 매우 중요한것같아서
주문을 매우 정교하게 하고싶습니다
따라서 궁금한점이 생겼는데요
질문 1.
예를들어
2437 원을 매수 감시가로 지정해서
buy("!#@4" , alimite, 2437 ,1)
과 같은식으로 주문을 하게되면
자동으로 호가를 변환해서 매수하는 것으로알고있습니다
이때 호가를 어디에 맞춰서 매수하는지 궁금합니다
2440으로 매수주문을 넣는지
혹은 2435로 넣는지
또 매도가가 2437일때는 어떤 호가에 맞춰서 넣는지궁금합니다
즉, 궁금한점이 호가가 반올림이 적용되는지 아님 ceiling이나 floor가 적용되는지 궁금합니다
또 그 적용이 매수나 매도에 있어서 서로 다르게 적용되는지 궁금합니다
질문2. 주식에서는 가격의 범위에 따라 호가 단위가 바뀌는 것으로 알고있습니다.
이것을 자동으로 계산하는 함수를 작성해보려고하는데요 어떤식으로 하면되는지 혹시 공식 같은 것이 있는 지궁금합니다 간단한 식이면 작성을 부탁드려도되는지요?
질문3.
주문시 어떤식으로 매수가 들어가는지 궁금합니다
buy("!#@4" , alimite, 2400 ,1) 인경우 2400 에서 그가격아래로 내려가는 경우 주문을 넣는 다고 알고있습니다
그렇다면 이때 실제 주문 가격은 2400원에 넣는 것인지 아님 그 아래 호가인 2395로 바로 주문을 넣는 지 궁금합니다
질문4. 위에 질문에 이어지는 질문인데요 위와 같은상황에서 주문 설정을 +- 1 호가로 한다면
buy("!#@4" , alimite, 2400 ,1) 을 만족하는 경우 이때 넣는 주문 가격에서 +1 호가(50원)이 추가된 상태로 주문을 넣는게 맞는지궁금합니다
감사합니다
2017-05-12
123
글번호 109512
에이텍 님에 의해서 삭제되었습니다.
2017-05-12
1
글번호 109511
635 님에 의해서 삭제되었습니다.
2017-05-12
11
글번호 109503
아톰 님에 의해서 삭제되었습니다.
2017-05-12
9
글번호 109501
답변완료
수식변경 부탁드립니다. 감사합니다.
안녕하세요 처음으로 수식변경 부탁드립니다.
기존에 키움으로 수식을 쓰다보니 여기서는 적용이 어렵네요.
아래 수식명은 개인적인 수식명입니다.
아래 수식은 기본 수평마디를 만드는 수식입니다
색상은 아무렇게나 해주시면 되세요
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
1.전고전시
수식1
a=(predayhigh()+dayopen())/2;
b=(predaylow()+dayopen())/2;
d=(a+b)/2;
a
수식2
b
수식3
d
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2.갭마디
수식1
가=dayopen()-predayclose();
나=predayhigh()+가;
수식2
가=dayopen()-predayclose();
나=predayhigh()+가;
다=predaylow()+가;
라=(나+다)/2;
마=(라+나)/2;
수식3
가=dayopen()-predayclose();
나=predayhigh()+가;
다=predaylow()+가;
라=(나+다)/2;
수식4
가=dayopen()-predayclose();
나=predayhigh()+가;
다=predaylow()+가;
라=(나+다)/2;
마=(라+다)/2;
수식5
가=dayopen()-predayclose();
다=predaylow()+가;
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
3.피보나치비율 실시간
수식1
(dayhigh()-daylow())*0.764+daylow()
수식2
(dayhigh()-daylow())*0.618+daylow()
수식3
(dayhigh()-daylow())*0.5+daylow()
수식4
(dayhigh()-daylow())*0.382+daylow()
수식5
(dayhigh()-daylow())*0.236+daylow()
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이상 3가지 수식 변경 부탁드립니다.
위 수식은 키움증권 기준입니다.
감사합니다.
2017-05-12
159
글번호 109500
답변완료
행복; 지표식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
지표식 관련입니다
보내주신 << 아래 >>의 답변 잘 받았습니다
일봉ADX, 일봉DPlus, 일봉DMinus 의 경우
5월 11일 주가 변동성이 매우 큰 성창오토텍을 1분봉 차트에 띄워놓고 적용하여 보았습니다
13시25분 6,150원에서 14시35분 5,630원으로 8.4% 하락하는데
일봉ADX, 일봉DPlus, 일봉DMinus 의 수치가 변하지 않습니다
혹시 봉의 개수에서 착오가 있는 것은 아닌가 하여
수식을 요리조리 살펴 보았는데
원인을 찾을 수가 없었습니다
확인 바랍니다
수고하십시요^^
============<< 아래 >>==================================================
input : Length(14);
var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0);
Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0),preADX(0);
Var : CummDMI(0), Return(0);
Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0),ADXv[61](0);
if bdate != bdate[1] Then{
Dcnt = Dcnt+1;
HH[0] = H;
LL[0] = L;
CC[0] = C;
preTRange = TRange[1];
prePlusDM14 = PlusDM14[1];
preMinusDM14 = MinusDM14[1];
for cnt = 1 to 60{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
DMIv[cnt] = DMIv[cnt-1][1];
ADXv[cnt] = ADXv[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if CC[1] > 0 Then{
If CC[1] > HH[0] then
TH = CC[1];
else
TH = HH[0];
If CC[1] < LL[0] then
TL = CC[1];
else
TL = LL[0];
TR[0] = TH-TL;
}
If Dcnt == Length+1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
TRange = 0;
DMinus = 0;
MinusDM14 = 0;
TRange1 = 0;
For Counter = 0 To MyRange - 1 {
If HH[Counter] - HH[Counter+1] < 0 Then
PlusDM = 0 ;
Else
PlusDM = HH[Counter] - HH[Counter+1];
If LL[Counter+1] - LL[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[Counter+1] - LL[Counter];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0;
TRange = TRange + TR[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
If Dplus + Dminus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
}
Else If Dcnt > Length+1 Then {
If HH[0] - HH[1] < 0 Then
PlusDM = 0;
Else
PlusDM = HH[0] - HH[1];
If LL[1] - LL[0] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[1] - LL[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then {
TRange = preTRange - (preTRange / MyRange) + TR[0];
PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM;
MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
If Dplus + Dminus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
}
If DMIV[Length] == 0 Then{
CummDMI = 0;
for Counter = 0 To Length-1 Begin
if DMiV[counter] > 0 Then
CummDMI = CummDMI + DMIV[Counter];
End;
ADXv[0] = CummDMI / CurrentBar;
}
Else
ADXv[0] = (ADXv[1] * (Length - 1) + DMIv[0]) / Length;
plot1(ADXv[0]);
plot2(DPlus);
plot3(DMinus);
2017-05-12
137
글번호 109495
답변완료
수식 수정 부탁드립니다.
안녕하세요.
아래 수식에 진입방식이 n 번의 손절이 된 후 실제로 진입되도록 가능할까요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 변경 요청드립니다.
>
안녕하세요
예스스탁입니다.
input : 시작시간(180000), 끝시간(055000), 손절틱수 (10);
Input : TurnLen1(5), StdLen1(26);
Input : TurnLen2(9), StdLen2(26);
Var : 기준선1(0), 전환선1(0);
Var : 기준선2(0), 전환선2(0);
Var : HH(0), LL(0), vol(0),Tcond(false),T(0);
전환선1 = (Highest(High, TurnLen1) + Lowest(Low, TurnLen1)) / 2;
기준선1 = (Highest(High, StdLen1) + Lowest(Low, StdLen1)) / 2;
전환선2 = (Highest(High, TurnLen2) + Lowest(Low, TurnLen2)) / 2;
기준선2 = (Highest(High, StdLen2) + Lowest(Low, StdLen2)) / 2;
Condition1 = 전환선1 > C and C > 기준선2;
Condition2 = 전환선1 < C and C < 기준선2;
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간 ) Then{
T = 0;
Tcond = true;
}
if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간 ) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if Tcond == true then{
if T <= 0 and Condition1 == true and Condition1[1] == false Then{
T = 1;
if MarketPosition == 0 Then{
if PositionProfit(1) >= 0 Then
vol = 1;
Else
vol = Vol+2;
}
Else{
if PositionProfit(0) >= 0 Then
vol = 1;
Else
vol = Vol*2;
}
buy("b",OnClose,def,vol);
}
if T >= 0 and Condition2 == true and Condition2[1] == false Then{
T = -1;
if MarketPosition == 0 Then{
if PositionProfit(1) >= 0 Then
vol = 1;
Else
vol = Vol+2;
}
Else{
if PositionProfit(0) >= 0 Then
vol = 1;
Else
vol = Vol*2;
}
sell("s",OnClose,def,vol);
}
}
if MarketPosition == 1 Then{
LL = Floor((highest(H,BarsSinceEntry) - EntryPrice)/(PriceScale*손절틱수 ));
ExitLong("bx",AtStop,(EntryPrice-(PriceScale*손절틱수 ))+(PriceScale*손절틱수 )*LL);
}
if MarketPosition == -1 Then{
HH = Floor((EntryPrice-Lowest(L,BarsSinceEntry))/(PriceScale*손절틱수 ));
ExitShort("sx",AtStop,(EntryPrice+(PriceScale*손절틱수))-(PriceScale*손절틱수 )*HH);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
2017-05-12
111
글번호 109494
답변완료
시스템질문입니다
특정일에는 진입안하는방법을 알고싶습니다
매주 월요일은 진입안하게하고싶습니다
Dayofweek(date)=1 //저것이 월요일로알고있는데 어떤식으로 작성해야하는지모르겠습니다
그리고 7번째감각 공부중인데요
5장에나오는 MFE MAE 그래프들 삼각형 나오는애들
예스트레이더에서도 지원을 하나요?
답변부탁드립니다
2017-05-12
102
글번호 109493