커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3386
글번호 230811
답변완료
rsi 가 쌍바닥일때 수식 알려주세요
3분봉 챠트에서 보조지표 rsi가 그림처럼 쌍바닥일때와 쌍봉일때 화살표 나오는 시스템을 하려니 어렵네요.
물론 화살표는 캔들에 나와야겠죠
수식 좀 알려주세요
2020-05-11
2346
글번호 138771
피리소리 님에 의해서 삭제되었습니다.
2020-05-12
4
글번호 138770
답변완료
한가지 더 문의하겠습니다
올려주신 답변을 적용하여 문제를 해결할 수 있게 되었습니다. 감사합니다 ^^
다름이 아니고 분봉차트에 적용하는 수식에서 질문이 있는데요
IF h < ENTRY and NextBarSdate == sdate Then
BUY("ENTRY",ATSTOP,ENTRY);
IF MarketPosition == 1 and nextbarsdate!= sdate Then
EXITLONG("EL",ATMARKET);
이 부분입니다.
1, 우선 올려주신 답변에서는 h > entry 로 적어주셨는데, h < entry가 맞지 않나요?
2. 진입 수식에서 nextbarsdate == sdate 이 부분 해석을 entry조건을 충족하고나서 다음에 형성되는 캔들의 시작날짜와 entry조건을 충족하는 봉의 시작날짜가 충족하면 entry 값으로 진입
3. 청산 수식에서 포지션을 보유하고 나서 바로 다음에 형성되는 캔들의 시작날짜와 포지션을 보유하게 된 직후의 봉의 시작날짜가 다른 경우 다음봉 시가로 청산
즉, nextbarsdate와 sdate의 값이 달라지고 나서 바로 다음봉에 시가로 매도한다.
이렇게 해석하면 되나요?
2020-05-11
1786
글번호 138769
답변완료
시장가 청산로직 추가
Inputs: N(5), 손절틱(50), 익절틱(100);
var : SH(0),SL(0);
if SwingHigh(1,data2(H),N,N,N*2+1) != -1 Then
{
SH = data2(H[N]);
}
if SwingLow(1,data2(L),N,N,N*2+1) != -1 Then
{
SL = data2(L[N]);
}
#스윙하이 보다 높은값에서 롱진입
if
진입조건
SH < C[0] and //롱1
MarketPosition == 0
Then buy("추세롱1",AtStop,C[0]);
SetStopLoss(PriceScale*손절틱,PointStop);
SetStopProfittarget(PriceScale*익절틱,PointStop);
위 시스템수식은 차트2(상위분봉차트)에서 스윙하이값을 구하고,
차트1(하위분봉차트)에서 스윙하이보다 높은 값에서 롱진입을 하는 수식입니다.
위 수식에서는 정해진 익절틱, 손절틱에 도달할경우 청산하는 방식인데,
한가지 청산방식을 더하고 싶습니다.
<추가하고 싶은 시장가 청산로직>
롱 포지션을 가지고 있는 상태에서 차트2(상위분봉차트)에서 새로운 스윙하이값이 나오고
기존 롱진입의 '진입가격 + 익절틱*Pricescale' 의 값이 새로운 스윙하이 보다 클경우,
기존 롱진입을 시장가 청산하는 로직을 추가하고 싶습니다.
2020-05-11
1801
글번호 138767
답변완료
문의드립니다
안녕하세요 답변 정말 감사드립니다!!
업무 끝날시간 전에 문의드릴려다보니 급하게 또 문의드립니다.
임의의 현재분봉종가에서 50틱이상 높은 앞전의 분봉을 찾으려면
(앞전의 분봉이 50틱이상의 분봉이 많을때 조건에 만족하는 첫번째 분봉만 추출함)
(예를들어 1분봉에서 현재가가 25.00 / 14:00이였는데 25.50 넘는봉이이 13:15분이 첫번째 조건에 만족하면 그때가격만 추출함)
수식 알수 있을까요??
감사합니다!!
2020-05-11
1654
글번호 138765
답변완료
67408 재문의 드립니다.
정말 감사드립니다!
T1 = data2(stime); 이부분에서
'값을 대입할수 있는 변수나 배열의 요소 , 입력변수 배열의 요소가 와야합니다.'
이렇게 오류가 났습니다.
좀해보고 다시 문의드리는데 해결책좀 부탁드립니다^^
번거롭게해서 죄송합니다.
=================================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
cond1은 단지 최근 0봉~40봉 사이에 한번이상 지정한 조건이 만족하면 true가 됩니다.
시간구간이 어떤식으로 지정되는지 모르겠습니다.
cond1이 true일때 시간을 지정해서 해당 시간이후에
만족할때만 cond2와 cond3이 true가 되게 수정해 드립니다.
var : 몸통상단1(0,Data2),Maxdata1(0,data2);
Var : 몸통상단2(0,Data3),Maxdata2(0,data3);
Var : 몸통상단3(0,Data4),Maxdata3(0,data4);
var : Arr(0,data1),cond1(false,data1),cond2(false,data1),cond3(false,data1);
몸통상단1 = Data2(max(C,O)); #data2몸통상단
Maxdata1 = data2(Highest(몸통상단1, 3)); #data2 몸통상단의 3개봉 최고값
몸통상단2 = Data3(max(C,O)); #data2몸통상단
Maxdata2 = Data3(Highest(몸통상단2, 4)); #data2 몸통상단의 5개봉 최고값
몸통상단3 = Data4(max(C,O)); #data2몸통상단
Maxdata3 = Data4(Highest(몸통상단3, 5)); #data2 몸통상단의 5개봉 최고값
cond1 = false;
For ARR = 0 TO 40
{
If data1(H) >= Maxdata1[arr] Then
{
cond1 = true;
T1 = data2(stime);
}
}
cond2 = false;
For ARR = 0 TO 50
{
If data2(H) >= Maxdata2[arr] and cond1 == true and data2(stime) >= T1 Then
cond2 = true;
}
cond3 = false;
For ARR = 0 TO 60
{
If data3(H) >= Maxdata3[arr] and cond1 == true and data2(stime) >= T1 Then
cond3 = true;
}
if cond1 == true && cond2 == true && cond3 == true then
buy();
2020-05-11
1629
글번호 138759
답변완료
수정부탁드립니다.
안녕하세요? 아래수식에서 진입식에서 매도갭상승봉틱수와 매수갭하락봉틱수는 변수에입력한대로 고정값으로 나와야하는데 다른상황이 생기네요.
에를들어,
매도갭상승봉틱수에 외부변수를 1틱으로넣었다고 가정하면, 갭상승한 1틱짜리 캔들 바로다음 진입봉이 충족하면 진입
매수갭하락봉틱수에 0틱으로넣었다고 가정하면, 갭하락한 도지 바로다음 진입봉 충족하면 진입.
이렇게 되었으면좋겠습니다.
주로 기준이되는 갭상승캔들은 도지를 사용하고싶고, 수정하려고 하였으나 잘안되네요...도움부탁드립니다.
input : 매도음봉틱수(10),매수양봉틱수(10);
input : 매도갭상승봉틱수(10),매수갭하락봉틱수(10);
input : 익절틱수(50),손절틱수(50),진입횟수(5);
var : entry(0);
if bdate != bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if entry < 진입횟수 and
MarketPosition == 0 and
C <= O-PriceScale*매도음봉틱수 and
max(C[1],O[1]) >= min(C[1],O[1])+PriceScale*매도갭상승봉틱수 and O[1] > C[2] Then
sell();
if entry < 진입횟수 and
MarketPosition == 0 and
C >= O+PriceScale*매수양봉틱수 and
max(C[1],O[1]) >= min(C[1],O[1])+PriceScale*매도갭상승봉틱수 and O[1] < C[2] Then
buy();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
***진입
갭상승한 캔들(몸통길이 외부변수) 바로다음 음봉에 매도(음봉진입봉의 몸통길이 외부변수, 단진입봉의 몸통길이는 입력한 변수값 이상일시 진입하게해주세요)
갭하락한 캔들(몸통길이 외부변수) 바로다음 양봉에 매수(양봉진입봉의 몸통길이 외부변수, 단진입봉의 몸통길이는 입력한 변수값 이상일시 진입하게해주세요)
***청산 및 재진입
익절/손절 (외부변수)
진입후 익절 또는 손절이 되기전까지 재진입 금지.
***매매횟수
하루매매횟수 (외부변수)
2020-05-11
1629
글번호 138755
답변완료
질문 올립니다.
안녕하세요. 늘 감사드립니다.
항셍의 경우, 아침 10:14에 일단 기준가 같은 것이 나오고, 10:15에 거래가 시작됩니다.
(오늘의 경우, 10:14 가격은 24350포인트. 개장 직후 잠깐 내려 갔다[24316포인트까지...] 원웨이로 300틱 이상 24700포인트까지 수직상승함...)
전체적으로 가격이 상승 추세일 상황이라면, 개장 직후에 아주 잠깐 가격이 내렸다가 올라가는 경우가 종종 있는데 ((아마도 HeadFake의 일종인 듯...))
그래서,
10:14 가격에서
아래로 30틱 내려 가면 매수,
위로 30틱 올라 가면 매도가 되는 시트를 부탁 드리고 싶습니다.
그래서 이 시트를 홍콩장 개장 전인, 가령 오전 10시 10분 정도에 켜 놓으면,
10:14분이 되면, 자동으로 10:14의 가격을 시스템이 읽어서,
거기서
30틱 아래 가격을 CrossUp하면 매수,
30틱 위 가격을 CrossDown하면 매도
하게 해 주는 시스템 식 부탁 드립니다.
감사합니다!
2020-05-11
1774
글번호 138747
답변완료
67406 재문의
내용전달이 제대로 되지 않은것 같아 한번 더 질문드립니다.
input : N(5);
var : T(0),S(0);
if T <= 0 and SwingHigh(1,h,N,N,N*2+1) != -1 Then
{
T = 1;
S = H[N];
plot1(H[N],"지표01",RED);
}
if T >= 0 and SwingLow(1,L,N,N,N*2+1) != -1 Then
{
T = -1;
S = L[N];
plot1(L[N],"지표01",blue);
}
plot2(S,"지표03",iff(T == 1,blue,red));
만들어 주신 위 수식을
차트표시탭에서 지표03을 일자그래프로 할경우 그림1
차트표시탭에서 지표03을 선그래프로 할 경우 그림2 와 같이 나옵니다.
그런데 제가 원하는 방식은
그림3, 그림4와 같이 표현되었으면 합니다.
(새로운 스윙하이 값이 나오기 전까지 기존의 스윙하이 값을 그대로 유지하는 방식)
수식으로 구현이 가능하다면 부탁드립니다.
2020-05-11
1875
글번호 138740