커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3760
글번호 230811
답변완료
문의
아래 오실레이터 식에서
스탑스트레일링으로 하니 추세장에서 길게 먹지 못하네요
1. 재진입 - OSC 절대값이 다시 상승하면 재진입 .. 한번만 ..
2. 비추세 장에서 매매가 너무 잘주 일어나는데 줄이려면 뭘
추가해야 하나요 ?
Input:ChgRate(0.3);
Var:Row(0),Col(0),hiBar(0),loBar(0),HiCond(False),LoCond(False),
LastStat(0),WorkBit(0);
Var:HA_C(0),HA_O(0),HA_H(0),HA_L(0);
Var:ZzOsc(0);
Array : HiZZ[10,4](0), // 열번호 1:가격,2:Index,3:sDate,4:sTime
LoZZ[10,4](0);
#==========================================#
HA_C = (O+H+L+C)/4;
If IsNaN(HA_O[1]) Then
HA_O = O;
Else
HA_O = (HA_O[1]+HA_C[1])/2;
HA_H = max(H,HA_O,HA_C);
HA_L = min(L,HA_O,HA_C);
If Index == 1 Then {
HiZZ[1,1] = HA_H;
HiZZ[1,2] = 0;
HiZZ[1,3] = sDate;
HiZZ[1,4] = sTime;
LoZZ[1,1] = HA_L;
LoZZ[1,2] = 0;
LoZZ[1,3] = sDate;
LoZZ[1,4] = sTime;
}
If Index > 0 Then {
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HA_H[hiBar] < HA_H Then hiBar = 0;
If HA_L[loBar] > HA_L Then loBar = 0;
HiCond = LoZZ[1,1] * (1 + (ChgRate/100)) < HA_H and hiBar == 0;
LoCond = HiZZ[1,1] * (1 - (ChgRate/100)) > HA_L and loBar == 0;
WorkBit = 0;
If HiCond and LoCond Then {
If HiZZ[1,1] < HA_H and LoZZ[1,1] > HA_L Then {
If HA_H - HiZZ[1,1] > LoZZ[1,1] - HA_L Then
WorkBit = 1;
Else If HA_H - HiZZ[1,1] < LoZZ[1,1] - HA_L Then
WorkBit = -1;
Else If LastStat == -1 Then
WorkBit = 1;
Else
WorkBit = -1;
} Else If LoZZ[1,1] > HA_L Then WorkBit = -1;
Else If HiZZ[1,1] < HA_H Then WorkBit = 1;
Else If LastStat == -1 Then WorkBit = 1;
Else WorkBit = -1;
} Else If HiCond Then WorkBit = 1;
Else If LoCond Then WorkBit = -1;
#==========================================#
If WorkBit == 1 Then {
If LastStat == -1 Then {
For Row = 10 DownTo 2 {
For Col = 1 To 4 {
HiZZ[Row,Col] = HiZZ[Row-1,Col];
}
}
HiZZ[1,1] = HA_H;
HiZZ[1,2] = Index;
HiZZ[1,3] = sDate;
HiZZ[1,4] = sTime;
hiBar = -1;
loBar = -1;
} Else If HiZZ[1,1] < HA_H Then {
HiZZ[1,1] = HA_H;
HiZZ[1,2] = Index;
HiZZ[1,3] = sDate;
HiZZ[1,4] = sTime;
hiBar = -1;
loBar = -1;
}
LastStat = 1;
}
#==========================================#
If WorkBit == -1 Then {
If LastStat == 1 then {
For Row = 10 DownTo 2 {
For Col = 1 To 4 {
LoZZ[Row,Col] = LoZZ[Row-1,Col];
}
}
LoZZ[1,1] = HA_L;
LoZZ[1,2] = Index;
LoZZ[1,3] = sDate;
LoZZ[1,4] = sTime;
hiBar = -1;
loBar = -1;
} Else If LoZZ[1,1] > HA_L then {
LoZZ[1,1] = HA_L;
LoZZ[1,2] = Index;
LoZZ[1,3] = sDate;
LoZZ[1,4] = sTime;
hiBar = -1;
loBar = -1;
}
LastStat = -1;
}
ZzOsc = HA_C - IFF(LastStat == -1,HiZZ[1,1],LoZZ[1,1]);
input: n(0.5), n1(2), n2(1.3);
If CrossUp(ZzOsc,0) Then Buy("B");
If CrossDown(ZzOsc,0) Then Sell("S");
SetStopTrailing(n,n1,PointStop);
setstoploss (n2,pointstop);
2019-05-17
212
글번호 128760
답변완료
총손익과 특이치 제거 총손익이 다른데요..보통 특이치제거 총손익이 낮은 값이
총손익과 특이치 제거 총손익이 다른데요..보통 특이치제거 총손익이 낮은 값이나오는데
어떤 전략은 특이치제거 총손익 총손익보다 높게 나오는것도 있는데
그것은 무슨 의미인지 알려주세요~
그리고 총손익이 과 특이치 제거 총손익이 신뢰성이 실제로 구현했을때 어느쪽에
가깝게 되는지 알려주세요~
2019-05-17
223
글번호 128758
답변완료
수식 부탁드립니다
1.
당일 바닥에서 7번째 캔들 고가를 표시한다(A)
당일 바닥에서 1번째 캔들 저가를 표시한다(B)
A~B 중심을 표시한다
A~B상방 대칭을 표시한다
A~B하방 대칭을 표시한다
당일 천정에서 7번째 캔들 저가를 표시한다(C)
당일 천정에서 1번째 캔들 고가를 표시한다(D)
C~D 중심을 표시한다
C~D상방 대칭을 표시한다
C~D하방 대칭을 표시한다
2.
당일 바닥에서 7번째 양봉 고가를 표시한다(E)
당일 바닥에서 1번째 양봉 저가를 표시한다(F)
E~F 중심을 표시한다
E~F상방 대칭을 표시한다
E~F하방 대칭을 표시한다
당일 천정에서 7번째 음봉 저가를 표시한다(G)
당일 천정에서 1번째 음봉 고가를 표시한다(H)
G~H 중심을 표시한다
G~H상방 대칭을 표시한다
G~H하방 대칭을 표시한다
감사합니다
2019-05-17
319
글번호 128752
왕경태 님에 의해서 삭제되었습니다.
2019-05-17
0
글번호 128749
답변완료
질문드립니다.
일봉챠트와,분봉차트에 전일등락율과 전일고저폭율을 숫자와%로 표시하고 싶은데 수식좀 부탁합니다.
위치는 일봉은 전일봉위 +300정도
분봉은 전일마지막봉위 +300정도 면 좋을듯한데요.
항상 친절한 대답에 감사드립니다.
2019-05-17
232
글번호 128745
답변완료
질문올립니다
안녕하세요^^
두가지 수식 여쭤봅니다.
깊은 감사드립니다.
(1) 질문1 : 나스닥5분봉
진입 :
1.장중 한국시간 16시이후
2.종가가 20이평선 위에 있는 상태에서
3.시세가 20이평선 + 8틱 지점까지 하락했을때 매수
4.피라미딩방식이 아니라 단일진입이며, 진입횟수는 3회로 제한
청산 :
1.손절: 시세가 20이평선 - 40틱 지점까지 하락했을때 스톱청산
2.익절: 시세가 20이평선 + 100틱지점까지 상승했을때 익절청산
3.당일거래마감: 1,2모두 체결안될 경우 05:00시에 모두 청산
(2) 질문2 : 나스닥5분봉
진입
1. 장중 한국시간 16시이후
2. 종가가 20이평선 아래있다가
3. 시세가 20이평선 +40틱을 터치할경우 매수
4. 피라미딩방식이 아니라 단일진입이며, 진입횟수는 3회로 제한
청산
1. 손절: 시세가 20이평선 -40틱지점까지 하락했을때 스톱청산
2. 익절 : 시세가 20이평선 +100틱지점까지 상승했을때 익절청산
3.당일거래마감: 1,2모두 체결안될 경우 05:00시에 모두 청산
***감사합니다. 항상 도와주셔서 감사합니다.
2019-05-17
224
글번호 128743
답변완료
62503 관련해서 다시 여쭤봅니다.
안녕하세요,수고에 감사드리구요,
제가 잘 몰라서 개념에 혼란이 와서요, 다시 여쭤봅니다.
62503에 주신 답변에 보면 "예전 수식은 전일종가 기준입니다"라고 하셨는데요,
1)우선, 만일에 "당일시가기준의 등락율차트이다"라고 한다면, "전일의 값이 어떠했든 상관없이 당일7시 시가를 기준으로 하여 0으로 리셋되어 당일 하루만의 변화된 값들을 나타내므로,전일과는 무관한 당일만의 변화된 값들을 나타낸다"라고 보면 되나요?
2)그러면, "전일종가기준의 등락율차트다"라는 의미는, "당일7시에 장이 새로 시작될때 등락율값이 0으로 리셋되지 않고 전일종가를 기준으로 하여 오늘 시가부터의 값들이 얼마만큼 변했는가를 표시된다"라는 뜻인가요?
3)그러면,전일종가기준의 등락율차트는 당일시가에 0으로 리셋되지 않고 전일의 값을 기준하여 당일 변화된 값들이 이어져서 그려지므로, "당일 하루치만의 차트가 아니라 예전부터 누적되어온 값들의 변화를 나타내는 차트가 되고 따라서 그 값들도 당일시가기준의 차트와 달라진다"라고 생각해도 되나요?
4)첨부화일을 보시면, 위의 2개는 각 종목의 가격차트이구요, 위에서 세번째는 예전에 답변주셨던 수식으로 구현한 등락율합 차트, 위에서 네번째는 이번에 "차트전체로 일간누적을 구현하게 작성했다"고 설명해주신 수식으로 만든 차트인데요, 보시면 그 두개 차트가 모양이나 값이 거의 동일합니다. 그 이유는 3)번에서 여쭤봤듯이 전일종가 기준으로 만들면 이미 누적의 개념이 되기 때문인가요?
5)예전수식은 전일종가기준이라고 하셨는데요, 첨부화일차트 네모칸 부분을 보시면 아침7시에 금일장이 새로 시작될때 각 종목 가격차트는 가격변동이 거의 없으므로, 전일종가기준으로 구현한 등락율합 차트인 위에서 세번째 차트도 전일종가인 6시의 값인 +0.9에서 거의 변화없이, 예를들면 0.8이나 0.7이나 그렇게 부드럽게 이어져야한다고 생각되는데요, 차트를 보시면 7시에 급격히 튀어서 거의 0값에 가있는것은 왜 그런것인가요? (그래서 저는 "예전수식이 금일시가 기준인가보다, 그래서 7시에 0으로 리셋되나보다"라고 생각했었거든요)
6)예전수식이 전일종가기준이라면, 이번엔 금일시가기준으로 구현한 등락율합 수식을 부탁드립니다.차트로 구현해서 차이를 보고 수식도 공부하려고 합니다.
자세한 답변 부탁드립니다.
감사합니다. 좋은 하루 되세요
2019-05-17
273
글번호 128742
답변완료
문의드립니다
문의드립니다.
RSI(14)지표값이 plot될때,
항상 현재봉포함 최근 20개값만 보이고
그이전 값들은 보이지않게 plot되도록하는식
부탁드립니다.
2019-05-17
216
글번호 128741
답변완료
질문드립니다
다음 수식은 다른 차트에 특정 틱 특정 이평선을 넣는 수식으로 감사히 잘 쓰고 있습니다.
input : tick(300),P(20);
var : S1(0),D1(0),TM(0),TF(0),idx(0),bars(0);
var : cnt(0),sum1(0),mav1(0);
Array : C1[100](0);
bars = floor(tick/BarInterval);
if Bdate != Bdate[1] Then
{
idx = 0;
D1 = sdate;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%bars;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P] > 0 then{
sum1 = 0;
for cnt = 0 to P-1{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
plot1(mav1);
}
}
위 수식에서, 해당 이평선(위의 경우 300틱 20이평선)에 가격이 접근했을 때
(+-3틱 이내) 음성파일이 발동되도록 하려면 어떻게 해야 할지 문의 드립니다.
항상 감사합니다. 좋은 주말 보내십시오 ^^
2019-05-17
230
글번호 128740