커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4675
글번호 230811
답변완료
수식 부탁드립니다.
안녕하세요 수식 부탁드립니다.
아래는 데이리버스시스템의 주문로직입니다. 보통 하루에 3~4회 진입합니다.
리버스 시스템을 1) 매수전용 2) 매도전용으로 분리하서 작성 부탁드립니다
청산명령인 ExitLong와 ExitShort로 바꿔 해보니 1회만 진입 후 청산하고 추가 진입이 없습니다.
조건이 맞을때마다 계속 진입하는 매수전용, 매도전용 부탁드립니다.
답변 미리 감사드립니다.
============================================================================
TradeCount = A2MP + A3MP + A5MP;
//신호 발생 조건인 상태에서 청산만 별도로 이뤄진 경우
//동일방향 추가 진입을 막기 위한 변수
Var: cnt(0);
Var: BuySignal(False), ShortSignal(False);
If date != date[1] Then
{
cnt = 0;
}
If TradeCount >= 1 and !BuySignal and !BuyHold Then
{
cnt = cnt+1;
If cnt >= 2
Then Buy("Buy");
}
If TradeCount <= -1 and !ShortSignal and !ShortHold Then
{
cnt = cnt+1;
If cnt >= 2
Then Sell("Short");
}
=======================================================================
2016-02-16
124
글번호 95398
답변완료
부탁 드립니다.
도움주심에 깊이 감사 드립니다.
그림과 같이 Keltner Channel의
keltner_UPPER 와 var1의 차이값을 부탁 드리고자 합니다.
미리 감사드립니다.
수식)
INPUT: MALEN(10),CONST(0.8),ATRs(0),p1(1);
VAR: CENTLINE(0), AVGRANGE(0), UPPER(0), LOWER(0);
CENTLINE=KeltnerChannel(Close, MALEN, ATRs);
AVGRANGE=Ma(TRUERANGE(),MALEN);
UPPER=CENTLINE+(AVGRANGE*CONST);
LOWER=CENTLINE-(AVGRANGE*CONST);
var1=ma(c,p1);
PLOT2(UPPER,"keltner_UPPER");
PLOT3(LOWER,"keltner_LOWER");
Plot4(var1,"p1 이평");
2016-02-15
204
글번호 95397
답변완료
분할청산시 시스템포트폴리오 일간분석 손익 질문
Buy 진입후 중간에 ExitLong 을 이용하여 분할 청산을 해주었습니다.
시스템 포트폴리오분석을 이용해서 일간분석에서 일별손익을 보는데
당일 손익이 (당일종가-전일종가)*수량 손익이 아닌것 같습니다.
10월7일 종가에 2개 청산시키고 다음날도 양봉이라 수익이 나야할것같은데
일간분석 결과를 보면 -8000원이 나있네요.
어떻게 계산되는건지 알고싶습니다.
2016-02-15
138
글번호 95391
답변완료
스크립트 크기 제한??
지표 혹은 시스템 스크립트 라인수의 최대 크기 제한이 있나요??
2016-02-15
126
글번호 95387
답변완료
지표작성
수고많으십니다.
분봉에 금일 시가는 노랑라인으로, 60봉전 금일고가는 갈색라인으로.
60봉전 금일저가는 녹색라인으로 포시되는수식 부탁드립니다.
감사합니다.
2016-02-15
143
글번호 95383
답변완료
매매 오류
안녕하세요,
선물매도상태에서 아래와 같은 상황에서 조건 만족시 두 가지 동작(청산 및 매수)이 실행되지 않습니다.
if (조건) then
buy("BUY",atmarket);
조건 만족한 봉뿐만 아니라 그후 모든봉에서도 아무 동작도 실행되지 않습니다.
시물레이션에서는 잘 동작하는데 수식 어디를 수정해야하나요?
감사합니다.
2016-02-15
129
글번호 95380
답변완료
수식 질문
사진 3개 첨부합니다.
1번째 사진 3번째 사진 4번째 사진까지있으며
오류가 있는부분에 하얀색 박스와 숫자를 체크했습니다.
먼저 선색깔에 대해서 말씀드리면
먼저 저점에서 상승하는 피보나치선은 아래에서부터
초로색 23% 파란색 38% 검은색 50% 빨강색 61% 초록색 76% 이며
고점에서 하락하는 피보나치선은 위에서부터
파란색 23% 빨강색 38% 검은색 50% 빨강색 61% 초록색 76% 입니다.
그리고 나머지 선은
+/- 하늘색 123% 주황색 138% 형광색161% 피보나치선입니다.
이렇게 기본구성이며 질문사항은
1. 첫번째 사진 보시면 하얀색 박스 5개와 숫자 1,2,3,4,5 번이 있습니다.
1번 하얀색박스 구간을 보시면
피보나치선이 연결이 안되고 끈어져있습니다. 다음날로 넘어가서 그런건지
시간대가 24시를 넘어가서 그런건지.. 피보나치가 연결이 안되는 부분이 있습니다.
이부분 연결되게끔 수정부탁드립니다.
그리고
1번 의 하얀박스구간중 동그라미친 주황색 고점 구간
저점으로부터 파동이 올라가서 단기적인 고점을 만들어주고 하락을했는데
고점에서 하락으로 떨어지는 피보나치 선도 만들어질수있게금 해주시면 감사하겠습니다.
아래수식에서 피보나치가 안만들어지는 이유가
당일고점을 새로 갱신하지 않으면 안만들어지게끔 되어있는거같습니다.
이부분은 추가로 수식을 따로 만들어주시거나 수정해 주셨으면 좋겠습니다.
예를들어
즉 1번 2번, 3번의 하얀색 박스구간의 주황색 동그라미 부분의 화살표 방향처럼
단기고점과 단기저점에 대한 피보나치선도 추가해주셨으면 좋겠습니다.
수식이 한번에 안되는 거면 따로 지표추가해서 겹처서 볼수있게 만들어주셔도 됩니다.
물론 그 1번과 2번은 하얀색 박스구간이 당일저점을 새로 갱신 하는 부분이 아니기 때문에
그것에 대한 기존 피보나치선은 계속 나타나고
그 안에서 단기적인 고점과 저점에 대한 피보나치 선에 대해서만 형성될수있게 만들어주시면
감사하겠습니다.
그조건에 대한 예를든다면..
하나의 차트봉이 형성될대 그 차트봉의 고점과 저점을 기준으로 피보나치선이 생성되어
다음 차트봉이 기준이된 전일 차트봉에서
고점이 점차적으로 낮아져 하락방향으로 떨어지게되면
그것에 대한 고점의 기준봉으로 피보나치선을 만들어주시면좋겠습니다.
반대로도 마찬가지로
하나의 차트봉이 형성될대 그 차트봉의 고점과 저점을 기준으로 피보나치선이 생성되어
다음 차트봉이 기준이된 전일 차트봉에서
저점이 점차적으로 높아져 상승방향으로 올라가게되면
그것에 대한 저점의 기준봉 피보나치선을 만들어주시면 좋겠습니다.
이것에 대한 수식은 고점에서 떨어지는 피보나치 수식
저점에서 올라가는 피보나치 수식
따로 나눠서 만들어 주시면 감사하겠습니다.
첫번째 사진
하얀색박스 4번 구간 보시면
저점 26.05에서 상승쪽으로
피보나치선이 잘 생성되다가
27.76까지 고점을 갱신했음에도 불구하고
고점을 갱신할때마다 고점에서 하락으로 피보나치선이 만들어질려고하지만
저점에서 피보나치 선은 끝까지 안만들어지고 도중에 멈춰버렸습니다.
이부분 수정 부탁드립니다.
마찬가지로 하얀색 5번 박스구간도 같은 오류인거같습니다.
다음으로 넘어가 3번째 사진의
1번 하얀색 박스구간 보시면
저점에서 피보나치 선이 잘 진행되다가 도중에 끈키고 맙니다.. 수정부탁드립니다.
마지막으로 넘어가 4번째 사진의
1번 구간을 보시면 자주색 색깔은 당일 저점선입니다.
그곳에서 동그리마 구간을보시면 새벽시간 6시를 기준으로 전일저점과
새로운 당일 저점이 구간이 만들어지면서
새로운 당일에 대한 피보나치가 만들어지는데..
이부분은 전일의 단기 파동에 대한 피보나치선이
당일로 넘어갈때 끈어지지 않고 연결될수있게 수정 부탁드립니다.
4번째 사진 2번 하얀색 박스구간의 동그라미친 구간을 보면
고점에서 저점으로 하락을 하는데 그것에 대한 피보나치선이 만들어지다가 도중에 끈어지고
저점에서 피보나치 선이 만들어집니다.
수식의 조건이 겹처서 안되는거라면... 따로 수식 분리해주셔서 나타나게 해주셔도 됩니다.
마지막으로 4번째 사진 3번 하얀색 박스구간을 보시면
피보나치선이 연결이 쭉 안되고 도중에 끈어진것을 볼수가 있습니다.
수정 부탁드립니다.
※ 글들을 정리를 하자면 ※
★피보나치 수식이 도중에 끈키는 부분 오류 수정 ★
★ 하나의 수식에서 안되는 거라면 고점에서의 단기 피보나치 수식따로
저점에서의 단기 피보나치 수식 따로 만들어주셔서 지표겹치게 만들게 해주시면감사하겟습니다.
★ 저점과 고점을 새로 갱신하지않아도
단기적인 파동에 대한 피보나치선 수식 => 이부분은 아랫글을 말합니다.
하나의 차트봉이 형성될대 그 차트봉의 고점과 저점을 기준으로 피보나치선이 생성되어
다음 차트봉이 기준이된 전일 차트봉에서
고점이 점차적으로 낮아져 하락방향으로 떨어지게되면
그것에 대한 고점의 기준봉으로 피보나치선을 만들어주시면좋겠습니다.
반대로도 마찬가지로
하나의 차트봉이 형성될대 그 차트봉의 고점과 저점을 기준으로 피보나치선이 생성되어
다음 차트봉이 기준이된 전일 차트봉에서
저점이 점차적으로 높아져 상승방향으로 올라가게되면
그것에 대한 저점의 기준봉 피보나치선을 만들어주시면 좋겠습니다.★
위 사진에 해당되는 단기고점 단기저점의 해당되는
일부 수식부분만을 아래에 올립니다,
여기서 어떤부분을 수정해야하는지 수정부탁드립니다.
한 수식안에 안되는거라면 따로따로 분리해서 수식을 만들어주시면 감사하겠습니다.
var : T(0);
if date != date[1] Then
T = 0;
#두번째봉 이후에 당일 고가갱신
if date == date[1] and H > dayhigh[1] Then{
T = 1;
var31 = H;
var32 = L;
}
#두번째 봉 이후에 당일저가 갱신
if date == date[1] and L < dayLow[1] Then{
T = -1;
var41 = H;
var42 = L;
}
if T == 1 Then{
if L < var32 Then
var32 = L;
var33 = var31-var32;
value31 = var32+var33*0.236;
value32 = var32+var33*0.382;
value33 = var32+var33*0.500;
value34 = var32+var33*0.618;
value35 = var32+var33*0.764;
value36 = var32+var33*1.000;
value37 = var32+var33*1.236;
value38 = var32+var33*1.382;
value39 = var32+var33*1.618;
Plot31(value31,"단기저점+23.6%");
Plot32(value32,"단기저점+38.2%");
Plot33(value33,"단기저점+50.0%");
Plot34(value34,"단기저점+61.8%");
Plot35(value35,"단기저점+76.4%");
Plot36(value36,"단기저점+100.0%");
Plot37(value37,"단기저점+123.6%");
Plot38(value38,"단기저점+138.2%");
Plot39(value39,"단기저점+161.8%");
if CrossUp(H,value31) Then
Text_New(sdate,stime,H,"단기저+23.6%");
if CrossUp(H,value32) Then
Text_New(sdate,stime,H,"단기저+38.2%");
if CrossUp(H,value33) Then
Text_New(sdate,stime,H,"단기저+50.0%");
if CrossUp(H,value34) Then
Text_New(sdate,stime,H,"단기저+61.8%");
if CrossUp(H,value35) Then
Text_New(sdate,stime,H,"단기저+76.4%");
if CrossUp(H,value36) Then
Text_New(sdate,stime,H,"단기저+100.0%");
if CrossUp(H,value37) Then
Text_New(sdate,stime,H,"단기저+123.6%");
if CrossUp(H,value38) Then
Text_New(sdate,stime,H,"단기저+138.2%");
if CrossUp(H,value39) Then
Text_New(sdate,stime,H,"단기저+161.8%");
}
if T == -1 then{
if H > var41 Then
var41 = H;
var43 = var41-var42;
value41 = var41-var43*0.236;
value42 = var41-var43*0.382;
value43 = var41-var43*0.500;
value44 = var41-var43*0.618;
value45 = var41-var43*0.764;
value46 = var41-var43*1.000;
value47 = var41-var43*1.236;
value48 = var41-var43*1.382;
value49 = var41-var43*1.618;
Plot41(value41,"단기고점-23.6%");
Plot42(value42,"단기고점-38.2%");
Plot43(value43,"단기고점-50.0%");
Plot44(value44,"단기고점-61.8%");
Plot45(value45,"단기고점-76.4%");
Plot46(value46,"단기고점-100.0%");
Plot47(value47,"단기고점-123.6%");
Plot48(value48,"단기고점-138.2%");
Plot49(value49,"단기고점-161.8%");
if crossdown(L,value41) Then
Text_New(sdate,stime,H,"단기고-23.6%");
if crossdown(L,value42) Then
Text_New(sdate,stime,H,"단기고-38.2%");
if crossdown(L,value43) Then
Text_New(sdate,stime,H,"단기고-50.0%");
if crossdown(L,value44) Then
Text_New(sdate,stime,H,"단기고-61.8%");
if crossdown(L,value45) Then
Text_New(sdate,stime,H,"단기고-76.4%");
if crossdown(L,value46) Then
Text_New(sdate,stime,H,"단기고-100.0%");
if crossdown(L,value47) Then
Text_New(sdate,stime,H,"단기고-123.6%");
if crossdown(L,value48) Then
Text_New(sdate,stime,H,"단기고-138.2%");
if crossdown(L,value49) Then
Text_New(sdate,stime,H,"단기고-161.8%");
}
2016-04-07
244
글번호 95379
답변완료
지표수식은?
http://blog.naver.com/ijrhee/220406293272
위 글에서 표현한 RSI밴드 의 지표 수식은 어떻게 되는지요?
일반적인 RSI밴드 의 수식을 알려 주시면 됩니다.
감사합니다.
-----
참고: 시스메틱트레이더 카페에 올라온
rsi 밴드 사용자함수는 다음과 같음...중간에 ? 때문에 식이 오류라고 뜸.
Inputs: Length(NumericSimple),
TargetUpLevel(NumericSimple),
TargetDnLevel(NumericSimple),
oUpBand(NumericRef),
oDnBand(NumericRef),
oMidLine(NumericRef);
Variables: Counter(0), DownAmt(0), UpAmt(0),
UpSum(0),DownSum(0), UpAvg(0),
DownAvg(0),MidLevel(0);
If CurrentBar == 1 AND Length > 0 Then Begin
UpSum = 0; DownSum = 0;
For Counter = 0 To Length - 1 Begin
UpAmt = C[Counter] - C[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / Length;
DownAvg = DownSum / Length;
End
Else
If CurrentBar > 1 AND Length > 0 Then Begin
UpAmt = C[0] - C[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length;
DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length;
End;
If UpAvg + DownAvg <> 0 Then
Value1 = 100 * UpAvg / (UpAvg + DownAvg);
Else
Value1 = 0;
If Value1[1] > TargetUpLevel Then
oUpBand = (((TargetUpLevel - 100) / TargetUpLevel * UpAvg[1])
+ DownAvg[1]) * (Length - 1) + C[1];
Else
oUpBand = ((TargetUpLevel / (100 - TargetUpLevel) *
DownAvg[1]) ? UpAvg[1]) * (Length - 1) + C[1];
If Value1[1] > TargetDnLevel Then
oDnBand = (((TargetDnLevel - 100) / TargetDnLevel * UpAvg[1])
+ DownAvg[1]) * (Length - 1) + C[1];
Else
oDnBand = ((TargetDnLevel / (100 - TargetDnLevel) *
DownAvg[1]) ? UpAvg[1]) * (Length - 1) + C[1];
MidLevel = (TargetUpLevel + TargetDnLevel) / 2;
If Value1[1] > MidLevel Then
oMidLine = (((MidLevel - 100) / MidLevel*UpAvg[1])+DownAvg[1])
* (Length - 1) + C[1];
Else
oMidline = ((MidLevel / (100 - MidLevel)*DownAvg[1])- UpAvg[1])
* (Length - 1) + C[1];
RSI_BAND = 1;
[출처] 2주_3일차_03_전략소스 실습_008_RSI Bands 사용자함수 (시스메틱 트레이더) |작성자 시스메틱
------
시스메틱 트레이더에 뜬 rsi밴드 지표식은 다음과 같음
Input:Length(14),UpLevel(70),DnLevel(30);
Var:result(0),Upband(0),DnBand(0),MidLine(0);
result = RSI_BAND(Length,UpLevel,DnLevel,UpBand,DnBand,MidLine);
If result == 1 Then
{
Plot1(UpBand);
Plot2(MidLine);
Plot3(DnBand);
Plot4(ma(UpBand,10));
Plot5(ma(DnBand,10));
}
[출처] 2주_3일차_03_전략소스 실습_009_RSI Bands 지표식 (시스메틱 트레이더) |작성자 시스메틱
2016-02-15
214
글번호 95372
답변완료
수식 문의 드립니다.
안녕하세요...
먼저, 이평선을 고, 저 라인으로 만듭니다.
틱 차트에서 30 이평선, 50 이평선, 100 이평선, 400 이평선 을 고가 이평선과 저가 이평선으로 라인을 만듭니다.
(1) 매수
90틱봉차트에서 70 고가이평선 > 400 저가이평선 이고 동시에
7분봉차트에서 분봉캔들의 종가가 50 이평선 위에 위치 했을때
스토캐스틱(40,10,10) K 와 D 가 30 이하에서 골든크로스가 나오면 매수 진입.
청산 : (청산은 손절 청산, 이익청산 두가지가 나타나게 합니다)
손절 : 400 저가이평선을 40 고가이평선이 데드크로스 하면 청산
이익실현 : 틱차트의 틱캔들이 음봉으로 40 저가 이평선을 데드크로스로 이탈하면 청산
또는 10틱 이익시 수익청산
(2) 매도
90틱봉차트에서 70 저가이평선 < 400 고가이평선 이고 동시에
7분봉차트에서 분봉캔들의 종가가 50 이평선 아래 위치 했을때
스토캐스틱(40,10,10) K 와 D 가 70 이상에서 데드크로스가 나오면 매도 진입.
손절청산 : 400 고가이평선을 40 저가이평선이 골든크로스 돌파하면 청산
이익청산 : 틱차트의 틱캔들이 양봉으로 40 고가 이평선을 골든크로스로 돌파하면 청산
또는 10틱 이익시 수익청산
======================================================================================
다른 하나의 수식 입니다.
(1) 매수
90틱봉차트에서 70 고가이평선 > 400 저가이평선 이고 동시에
7분봉차트에서 분봉캔들의 종가가 50 이평선 위에 위치 했을때
스토캐스틱(50, 20, 20)의 K가 50 이하에서
스토캐스틱(20, 10, 10)의 K 와 D 가 골든크로스가 나오면 매수진입
손절청산 : 400 저가이평선을 40 고가이평선이 데드크로스 하면 청산
이익청산 : 틱차트의 틱캔들이 음봉으로 40 저가 이평선을 데드크로스로 이탈하면 청산
또는 10틱 이익시 수익청산
(2) 매도
90틱봉차트에서 70 저가이평선 < 400 고가이평선 이고 동시에
7분봉차트에서 분봉캔들의 종가가 50 이평선 아래 위치 했을때
스토캐스틱(50, 20, 20)의 K가 50 이상에서
스토캐스틱(20, 10, 10)의 K 와 D 가 데드크로스가 나오면 매수진입
손절청산 : 400 고가이평선을 40 저가이평선이 골든크로스 돌파하면 청산
이익청산 : 틱차트의 틱캔들이 양봉으로 40 고가 이평선을 골든크로스로 돌파하면 청산
또는 10틱 이익시 수익청산
두가지 수식 부탁드립니다.
감사합니다.
2016-02-15
131
글번호 95368