커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4366
글번호 230811
답변완료
수식 부탁드립니다.
안녕하세요~
#,전일의 고가,저가 범위를 피보나치(0.00/23.60/38.20/50.00/61.80/76.40/100.00)
등분선(가격,비율 오른쪽표시)을 오른쪽 연장선 긋기로 표시 하면 좋겠습니다.
$,언제나 늘 감사합니다.
2017-06-14
188
글번호 110427
요타 님에 의해서 삭제되었습니다.
2017-06-15
2
글번호 110426
답변완료
볼밴 수식좀 봐주세요
캔들의 저점이 볼밴 하단보다 같거나 작으면 매수
캔들의 고점이 볼밴 상단보다 같거나 크면 매도 하라는 수식을 아래와 같이 사용하고 있습니다.
그런데 첨부파일에서 보는바와 같이
첫번째 발생한 매도 신호는 매도1의 봉이 완성되는 자리에서 신호가 나와야하고
두번째로 발생한 매수 신호는 매수1의 봉이 완성되는 자리에서 신호가 나와야 하는데 그렇지 못합니다.
왜 그런 것인지 ? 잘못된 부분이 있으면 수정좀 부탁드립니다.
Input : Period(12), D(2) ;
Var : value1(0),value2(0);
value1 = BollBandUp(Period,D); //볼린져 상단밴드
value2 = BollBandDown(Period,D); //볼린져 하단밴드
if L <= value2 Then
buy("매수",OnClose);
if H >= value1 Then
sell("매도",OnClose);
2017-06-14
195
글번호 110424
답변완료
수식 부탁드립니다
1.
오전 9시 이전 포지션 모두 청산
오전 9시 포함 첫봉이 음봉일 경우
음봉 저가 붕괴 연속 2번째 음봉 매도
음봉 고가 돌파 양봉 매수
오전 9시 이전 포지션 모두 청산
오전 9시 포함 첫봉이 양봉일 경우
양봉 고가 돌파 연속 2번째 양봉 매수
양봉 저가 붕괴 음봉 매도
익절 1포
손절 1포
진입 청산 후에는 거래하지 않음
2017-06-14
170
글번호 110414
답변완료
수식문의 드립니다..
300틱에 30분봉 이평선을 넣는 방법을 부탁드립니다...
2017-06-14
155
글번호 110413
답변완료
부탁 합니다.
NO. 53657 에 연결하여 한가지 더 부탁드립니다.
아래의 시스템식을 적용하면 피라미딩설정창에서
모든진입신호허용으로 할 때 일부구간의 봉에서 진입신호가 발생하지 않습니다.
이를 모든 봉에서 조건에 따라 중복진입 신호가 발생 할 수 있도록 아래의 수식을 수정하여 주시면 대단히 감사 하겠습니다.
아래 시스템식
var1 = iff(최종꼭지점 == "고점",1,iff(최종꼭지점 == "저점",-1,0));
If var1 == 1 and 저[1,1] >= 저[2,1] Then Buy("b1");
If var1 == -1 and 고[1,1] <= 고[2,1] Then Sell("s1");
If var1 == 1 and 저[1,1] <= 저[2,1] and EntryPrice - HH > N Then Buy("b2");
If var1 == -1 and 고[1,1] >= 고[2,1] and LL - EntryPrice > N Then Sell("s2");
2017-06-14
144
글번호 110412
답변완료
부탁합니다.
안녕하세요.
시스템이 아래와 같이 두가지 진입을 한 시스템에서도 가능한가요?
가능하면 수식 작성 부탁합니다.
1번진입 : 매수진입 - 5/20/60 이평이 정배열 될때.
매수청산 - 5이평이 꺽일떄 및 익절0.2%및 손절0.06%도 표시.
매도는 반대.
2번진입 : 매수진입 - 20과 60이평이 우상향이고, 20>60 이며, 5/20 CrossUp 될때.
매수청산 - 20이평이 꺽일때 및 익절0.2%및 손절0.06%도 표시.
매도는 반대.
항상 감사합니다.
2017-06-14
142
글번호 110404
답변완료
이격도를 차트에 겹치기를 하고 싶습니다
아래는 관리자님이 예전에 작성해주셨던 수식입니다.
var : ii(0),v1(0),v2(0),v3(0);
var : mav1(0),mav2(0),mav3(0);
var : mav11(0),mav22(0),mav33(0);
if Bdate != Bdate[1] Then{
ii = 0;
v1 = 0;
v2 = 0;
v3 = 0;
mav11 = mav1[1];
mav22 = mav2[1];
mav33 = mav3[1];
}
v1 = v1 + (H-dayopen);
v2 = v2 + (L-dayopen);
v3 = v3 + (C-dayopen);
ii = ii+1;
mav1 = dayopen+(v1/ii);
mav2 = dayopen+(v2/ii);
mav3 = dayopen+(v3/ii);
plot1(C/mav11*100-100,"고가");
plot2(C/mav22*100-100,"저가");
plot3(C/mav33*100-100,"종가");
plot4(0,"기준선");
이격도인데 이것을 차트에 겹치기를 하려고 하니 수치값이 틀려 겹치기가 안됩니다.
이걸 차트에 겹치기를 해줄수 있게 해주시면 정말 감사하겠습니다.
부탁드립니다.
2017-06-14
175
글번호 110401
답변완료
수식 예제
아래 2가지 수식은 진입과 청산에 눌림과 재돌파를 필터로 사용합니다.
그런데, 청산 시 눌림이 없는 경우에는 눌림이 생길 때까지 신호가 생기지 않기 때문에
부득이하게 강제청산이 필요한 상황이 발생합니다.
그래서 변수입력창의 강제청산기능을 설정했더니
강제청산 후 곧 이어 청산했던 포지션을 다시 잡습니다.
강제청산 이후 같은 포지션을 다시 잡는 것을 hold하고
강청과 동시에 reset 되어 기존 진입 수식에 따라 진입하고 싶습니다.
buy,sell 수식이 나뉘어져 있어 생기는 문제인지 모르겠습니다.
이런 상황에 적용할 수 있는 예가 있다면 부탁드립니다.
*********************
안녕하세요
예스스탁입니다.
1
input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4),거래횟수(5),시작시간(095000);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0);
if Bdate != Bdate[1] Then{
T1 = TotalTrades;
E1 = 0;
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and stime >= 시작시간 Then{
if E1 == 0 and C <= DayHigh-PriceScale*B1 and C[1] < DayHigh-PriceScale*B1 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s1");
}
}
if TotalTrades > TotalTrades[1] Then
HH = H;
if H > HH Then
HH = H;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s2");
E1 = 0;
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx1");
E1 = 0;
}
}
}
2
input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4),거래횟수(5),시작시간(095000) ;
var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0);
if Bdate != Bdate[1] Then{
T1 = TotalTrades;
E1 = 0;
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and stime >= 시작시간 Then{
if E1 == 0 and C >= daylow+PriceScale*B1 and C[1] < daylow+PriceScale*B1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{
buy("b2");
}
}
if MarketPosition == 1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EH = H;
E1 = 0;
}
if H > EH Then{
EH = H;
E1 = 0;
}
if E1 == 0 and C <= EH-PriceScale*X1 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{
exitlong("bx1");
E1 = 0;
}
}
}
2017-06-14
147
글번호 110400