커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7709
글번호 230811
답변완료
수식문의
호가잔량의 움직임으로 RCI지표를 구하고 싶습니다.
미리 감사드립니다.
2011-08-01
799
글번호 41496
답변완료
수식문의
0. 호가잔량으로 RSI지표를 다음과 같이 구하였습니다.
input: period(14), Hot(70), cold(30);
var: RS(0), RSIU(0), RSID(0);
var1 = Bids-Asks;
if Var1 > Var1[1]
Then RSIU = Var1-Var1[1];
Else RSIU = 0;
if Var1 > Var1[1]
Then RSID = 0;
Else RSID = Var1[1]-Var1;
RS = Ema(RSIU,period)/Ema(rsid,period);
Plot1(100-100*1/(1+rs), "호가잔량RSI");
Plot2(100-100*1/(1+rs), "호가잔량RSI");
PlotBaseLine1 (hot, "hot");
PlotBaseLine2 (cold, "cold");
PlotBaseLine3 (50, "50");
1. 여기에 볼린저 밴드를 입히고 싶습니다.
밴드중간선도 표시하게끔 해 주시고 D값도 조절할 수 있게 부탁드립니다.
2. 호가잔량 RSI가 n값을 돌파하면 돌파한 캔들의 중간값에서 부터 N봉까지 옆으로 점을 찍고
n값을 하락하면 하락한 캔들의 중간값에서 부터 n봉 까지 옆으로 점을 찍는 수식을 구하고 싶습니다.
2011-08-01
851
글번호 41495
답변완료
수식부탁드려요!
최소가격변화식 부탁드려요!!
예를들어 50봉이후 0.2% 이하시 청산식요...
감사합니다!!
2011-08-01
761
글번호 41494
답변완료
문의드립니다.
20분차트에서 일봉의 값을 비교검색코자 합니다.
input : p1(2),,LENGTH1(20),Period1(20);
var : TCHAN1(0),aa(false);
TCHAN1 = HIGHEST(High, LENGTH1)[2]; ## price channel 20[2] 상한선
var1 = ma(c, period1)[1]+(p1*stdw(c, period1)[1]); ## b.b 20[1]
value1 = ;
aa = ;
if aa then
var1 = 1;
Else
var1 = 0;
find(var1);
상기 식은 일봉의 수식입니다.
위 수식을 20분봉에서 비교검색식을 만들고자 합니다.
20분봉에서 일봉의 TCHAN1, var1,value1 을 구합니다.
더불어
INPUT : LENGTH(360);
VAR : TCHAN(0), BCHAN(0),TCHAN1(0), BCHAN1(0);
if date != date[1] Then{
TCHAN1 = TCHAN[1];#전일마지막봉값
BCHAN1 = BCHAN[1];#전일마지막봉값
}
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
PLOT1(TCHAN1, "전일마지막봉TOPCHAN");
PLOT2(BCHAN1, "전일마지막봉BOTCHAN");
위 수식을 전전일 마지막봉의 수식으로 바꾸어 주십시요
그리고
INPUT : LENGTH(20);
VAR : TCHAN(0), BCHAN(0),cnt(0);
TCHAN = dayhigh(1);
BCHAN = daylow(1);
for cnt = 1 to LENGTH {
if dayhigh(cnt) > TCHAN Then
TCHAN = dayhigh(cnt);
if DayLow(cnt) < TCHAN Then
TCHAN = DayLow(cnt);
}
PLOT1(TCHAN, "일봉TOPCHAN");
PLOT2(BCHAN, "일봉BOTCHAN");
위 수식은 전혀다른 값을 가지고 있네요
이 수식도 전전일 값으로 변환해 주십시요
감사합니다.
2011-08-01
754
글번호 41493
답변완료
1분봉 시스템식 문의드립니다.
항상 빠른 답변에 감사드립니다.
문의사항
1. 1분봉 주식거래에서 당일 거래시작시 전일 종가대비 5% 내에서 최대한 빨리 매수하는 식 작성부탁드립니다.
2. 1분봉 주식거래에서 당일 직전거래가 손절매(StopLoss) 매수청산이면 매수청산가격(손절매 가격)의 -1%(1% 낮은 가격)로 매수하는 식 작성부탁드립니다.
(직전거래가 손절매 매수청산인 경우만 해당합니다.)
3. 수식질문은 아니지만 리딩스타플러스에서 네트워크 등의 문제로 일시적 접속종료시 자동으로 재접속하는 프로그램 옵션이 있는지요? 아니면 접속종료시 휴대폰으로 접속종료되었다는 메시지를 받을수 있는 기능이 있는지요?
(시스템트레이딩 거래 중 가끔씩 자리를 비우게 되는데 접속이 종료되어 "비밀번호 입력 및 재접속 요청" 메시지가 뜨고 거래가 성사되지 못하는 경우가 종종 발생됩니다.)
4. 리딩스타플러스에서 주식거래시 여러 종목을 거래하다 보면 예수금이 부족하여 뜻하지 않는 미수금이 발생되는 경우가 있는데 HTS에서 미수금사용을 허용하지 않게하는 옵션이 있는지요? (즉, 예수금 부족시 매수진입이 안되도록 하고 싶습니다.)
이상입니다. 답변부탁드립니다. 감사합니다.
2011-08-01
839
글번호 41492
답변완료
매물대 수식
선물 1분봉으로 매물대를 표현하고 싶습니다
가능한가요,, 분봉이 안된다면 틱챠트로 라고 표현하고 싶습니다.
부탁드립니다.
ex) 270 에 체결된 거래량
270.05에 체결된 거래량
등 각 가격대별 매물량을 표현해주는 식 부탁드립니다.
2011-08-01
890
글번호 41491
답변완료
리버스 익절구간 재질문 드립니다.
안녕하세요~
즐거운 주말되셨는지요?
지난주 질문드린 내용을 검증해보니 제 의도와 부합되기는 하는데,
약간의 문제점이 있어서 재질문드립니다.
수정을 요하는 부분은 [작성해주신 수식] 아래에 첨부하였습니다.
-----------------------------------------
[ 지난번 질문내용 ]
선물 분봉기준으로 다음과 같은 리버스 수식이 있을 때
If stime>=0905 then {
if 조건1 then Buy("B");
if 조건2 then Sell("S");
}
SetStopEndofday(1440);
** 익절기준 진입가대비 1%수익, 익절전 매수진입을 예로 들겠습니다. **
<< 손실을 포함한 익절이 발생하지 않는 범위에서 현재가가 움직일 때 >>
익절이 발생하지 않은 상태로, 위의 수식에 의하여 리버스 매매 계속
<< 익절 발생후 현재가격이 진입가와 익절가를 범위로 움직일 때 >>
1) 매수 진입후 1% 수익이 나면 익절을 하고
2) 익절후, 익절이전에 진입한 매수가에 도달하면 재진입
3) 매수진입가와 익절가 범위에서 현재가가 움직일 때 조건1,조건2에 의한 매수,매도는 없슴
즉, 익절전 매수진입가에 도달하면 매수 익절가에 도달하면 매수청산 반복만 가능
<< 익절가를 넘어서 현재가가 움직일 때 >>
매수-익절후 무포지션상태에서 조건2에 의한 매도만 가능
이시점부터는 익절이 발생하지 않은 새로운 시작으로 보고 설명된 모든 내용 반복
즉, 이때부터는 다시 리버스로 매매후 익절이 발생하면 설명된 내용 반복
<< 익절전 매수진입가 이하에서 현재가가 움직일 때 >>
상기 2)의 매수진입가에서 발생한 매수포지션 발생상태인데, 조건2 발생시 리버스 매매
이시점 역시 익절이 발생하지 않은 새로운 시작으로 보고 리버스 매매를 다시 하다가
익절이 발생하면 설명된 모든 내용을 반복함.
** 익절전이 매도진입이었다면 반대가 되겠습니다 **
---------------------------------------
[ 작성해주신 수식 ]
var : 조건1(false),조건2(false);
If stime>=090500 then {
if (MarketPosition == -1 or (MarketPosition == 0 and IsExitName("StopProfittarget",1) == false))
and 조건1 then Buy("B");
if (MarketPosition == 1 or (MarketPosition == 0 and IsExitName("StopProfittarget",1) == false))
and 조건2 then Sell("S");
}
if MarketPosition == 0 and IsExitName("StopProfittarget",1) Then{
if MarketPosition(1) == 1 Then{
buy("reB",Atlimit,EntryPrice(1));
if C > ExitPrice(1) and 조건2 Then
sell("SS");
}
if MarketPosition(1) == -1 Then{
Sell("reS",Atlimit,EntryPrice(1));
if C < ExitPrice(1) and 조건1 Then
buy("bb");
}
}
SetStopProfittarget(1,PointStop);
SetStopEndofday(144000);
-----------------------------
[ 수정 요망 사항 ]
위의 수식을 적용하여 검증해 보았는데,
당일 최초진입은 "B" 또는 "S"가 반드시 되어야 하는데,
"reB","reS","BB","SS"로 당일의 첫진입이 발생하는 경우가 발생하고 있습니다.
제 판단으로는 특히 장마감종료가 아닌 익절로 해당일의 매매가 종료된 경우
이런 현상이 발생하는 것으로 보입니다. (다른 경우도 있는지는 잘 모르겠습니다)
entrydate나 exitdate를 sdate와 연결하여 수정을 해봤는데 잘 안되네요.
장마감종료가 되었건 익절로 당일매매를 종료하였건,
다음 영업일은 다시 처음부터 매매를 시작하도록 부탁드립니다.
(즉, "B" 또는 "S"로 시작되고, 이후 지난 내용처럼 매매가 일어날 수 있도록...)
그럼 새롭게 시작하는 8월도 활기찬 시간되시기를 바라겠습니다.
감사합니다 !!!
2011-08-01
920
글번호 41490
답변완료
부탁드립니다--------
수고하십니다
부탁드립니다
09:10 매매시작
14:50 당일청산
매수---
포지션이 없을때
최근15봉 최고가-최저가가 0.6pt미만일때 최고가 값을 a에저장하고 향후 a값 상향돌파시 매수
( a에저장된값은 매매체결되기 전 까지는 변동되지않는다)
매수청산---
4틱이익이면 청산
12틱손해면 손절
매도----
포지션이 없을때
최근15봉 최고가-최저가가 0.6pt미만일때 최저가 값을 b에저장하고 향후 b값 상향돌파시 매도
( a에저장된값은 매매체결되기 전 까지는 변동되지않는다)
매도청산---
4틱이익이면 청산
12틱손해면 손절
2011-08-01
735
글번호 41489
답변완료
또하나 여쭤봅니다...
이것저것 해봤는데 안돼서 별수없이 또 여쭤봅니다.
전에 드렸던 질문에 대한 답변으로 익절후 매매진입금지에 대해서 배웠습니다.
똑같은 식으로 exitlong 이나 exitshort 이후 매매진입중지를 추가하고 싶은데 어떻게 붙이는지 아무리해도 모르겠습니다.
조건2 조건3으로 추가해야 할 거 같은데 대충 아래와 같이 추가했는데 그냥 검증은 완료됐다고 나오는데도 작동은 안됩니다.
아예 익절이건 손절이건 한번만이라도 나오면 당일 매매를 중지하고 싶은데 가르쳐 주시면 감사하겠습니다.
Condition2 = ExitDate(1) == sDate and IsExitName("exitlong",1);
if Condition2 == false then
{
If CrossUp(c,ma(5)) and marketposition==0 Then
{
Buy("매수",atlimit);
}
If CrossDown(c,ma(20)) and marketposition==0 Then
{
exitlong("매도",atlimit);
}
}
Condition3 = ExitDate(1) == sDate and IsExitName("exitshort",1);
if Condition3 == false then
{
If CrossUp(c,ma(5)) and marketposition==0 Then
{
exitshort("매수",atlimit);
}
If CrossDown(c,ma(20)))) and marketposition==0 Then
{
Sell("매도",atlimit);
}
}
2011-08-01
723
글번호 41488