커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8105
글번호 230811
답변완료
해선요청 드립니다.
* 종목을 변경 했습니다. ㅋㅋㅋ
* 해선 골드 수식하나 요청 드립니다.
* 가장 기본 부터 다시 해볼까 합니다. ^.^
* 골드 기본 수식 하나 요청 드립니다.
.rsi(15) 30선 매수 70선 매도(상방)
.rsi(15) 70선 매도 30선 매수(하방)
→ 매수 및 매도 체결후 10분 경과후 매도 및 매수 발생 하게 요청 드립니다.
(매도후 바로 매수 안되게요....)
→ 손절 틱은 손해, 이익 모두 30틱으로 부탁 드립니다.
* 좋은 하루 되십시요.
2018-07-02
279
글번호 120236
답변완료
추가수정요청
input : P1(5),P2(20);
var : T(0);
var1 = (NextBarOpen+AccumN(C,P1-1))/P1;
var2 = ma(c,P2);
if var2 > var2[1] Then
T = 1;
if var2 < var2[1] Then
T = -1;
if stime >= 160000 or stime < 020000 then
{
if T == 1 and NextBarOpen < var1 Then
buy("b",AtStop,NextBarOpen+PriceScale*1);
if T == -1 and NextBarOpen > var1 Then
sell("s",AtStop,NextBarOpen-PriceScale*1);
}
상기와 같은 수식을 사용중입니다.
그러나 시스템 운용결과 진입자리는 시가 +1,-1틱인데 그렇게 진입을 안하더라구요..
확인 부탁드릴게요
그리고 손절이나 익절이 나면 다음 진입은 다음 캔들에서 되도록 부탁드릴게요
그리고 진입자리 값 표시도 되나요??
진입조건은 하기와 같습니다.
[매수]
1. 20일선이 우상향
2. 캔들 생성할 때 시가가 5일선 밑에서 시작할 경우, 시가 +1틱에서 진입
[매도]
1. 20일선이 우하향
2. 캔들 생성 때 시가가 5일선 위에서 시작할 경우, 시가 -1틱에서 진입
2018-07-02
253
글번호 120235
답변완료
재문의 드립니다
<* 아래 58438 번 질의답변 관련입니다>
우선 성의있고 자세한 답변 너무 감사드립니다 ^^*
1, 답변해주신 수식을 적용해보니 "모든 추세선"이 제일 가는선으로 설정되어있는것같네요
"추세선창" 에서 수정을해도 결국은 다시 가는선으로 돌아오네요
이것을 모두 "제일 두꺼운 검은색선"으로 수식에서 수정해주시면 고맙겠습니다
2, 그리고 혹시 너무 번거롭지않으시다면 이수식을 시스템식이 아닌 지표식으로 수정도
가능할까요?
시스템식은 아직 제가 이해를 잘못하는 관계로 적용하는데 어려움이 있어서요
3, 그리고 아래 58438번 제질문의 원래 취지는
선물지수가 위아래 어느쪽으로든 또 어디에서든 변곡이 되고난후에 단순히 1포인트 까지
진행된 지점을 차트에서 표시하고싶은것이었습니다
위조건이 어떤 특별한 지점이나 지표가 확정되어있지않기때문에 수식을 만들기에
애매하고 불가능한것같긴합니다만...
혹시나해서 한번더 말씀드려봅니다 ㅎ
항상 수고하심에 다시한번 감사드립니다 !!!
2018-07-02
361
글번호 120230
답변완료
지표 시스탬
지표)
싯가(시간지정 가능하게)와 시간당 중심값 현재가선 (현재가가 중심값 위에 있으면 빨강 아래면 파랑)
시스탬)
중심값이 싯가 위에 있으면 매수
반대면 매도
2018-07-02
303
글번호 120223
답변완료
아래 요청사항 중 수식포함 안된 것이 있습니다.
매수 매도 식이 포함 안되어 있습니다 추가 부탁드림디다
그림 참조하세요
매수: 과열권 평균 plot1(var1)가 상승하고 있고, 과열권 진입시 매수
매도 : 침체권의 평균 plot2(var2)가 하락하고 있고, 침체권 진입시 매도
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식부탁드립니다.
>
안녕하세요
예스스탁입니다.
1
Input : Period(12), Period1(5), Period2(5);
var : H1(0),L1(0),H2(0),L2(0);
Value1 = StochasticsD(Period,Period1,PEriod2);
Condition1 = value1 > 80;
Condition2 = value1 < 20;
if Condition1 == true and Condition1[1] == false Then{
H1 = H;
L1 = L;
}
if Condition1 == true then
{
if h > H1 Then
H1 = h;
if l < L1 Then
L1 = l;
}
if Condition1 == false and Condition1[1] == true Then
var1 = (H1+L1)/2;
if Condition2 == true and Condition2[1] == false Then{
H2 = H;
L2 = L;
}
if Condition2 == true then
{
if h > H2 Then
H2 = h;
if l < L2 Then
L2 = l;
}
if Condition2 == false and Condition2[1] == true Then
var2 = (H2+L2)/2;
plot1(var1);
plot2(var2);
2018-07-02
244
글번호 120220
흰둥이아빠 님에 의해서 삭제되었습니다.
2018-07-02
2
글번호 120219
답변완료
질문드립니다
기존에는 매수금액을 수기로 입력해서 매매했는데 아래처럼 변경하니 스팟 확장차트에 신호가 아예 나오질 않네요
총 자산의 10%를 매수하도록 검토 부탁드립니다.(혹시 금요일에 타 증권사 보유종목을 입고 했는데 아직 반영이 안된건지요)
변경전
input : 매수금액(1000000);
input : Per(5);
var : Evol(0),Xcnt(0),OpenCond(false),Xcond1(false),Xcond2(false),Xcond3(false);
if stime == 090000 Then
{
buy("b",AtMarket,def,Floor(매수금액/C));
}
변경 후
input : Per(5);
var : Evol(0),Xcnt(0),OpenCond(false),Xcond1(false),Xcond2(false),Xcond3(false);
var : accountNum(""),Num(0),cnt(0),sum(0),total(0);
accountNum = "0000-0000-11";#계좌번호
Num = GetNumPositions(accountNum);#지정한 계좌의 보유종목수
#평가손익 합산
sum = 0;
for cnt = 0 to Num-1{
sum = sum + GetPositionOpenPL(GetPositionSymbol(cnt,accountNum),accountNum);
}
#예수금+총평가손익
total = GetUnclearedDeposits;
if stime == 090000 Then
{
buy("b",AtMarket,def,Floor((Total*0.10)/C));
}
그리고 종목검색조건
당일 제외 5일 평균 거래대금 > 100,000,000 과 당일제외 평균 거래량 > 100,000 수식 부탁드립니다.
2018-07-02
295
글번호 120212
답변완료
문의드립니다.
볼린저밴드를 이용한 수식 부탁드립니다
1. 볼린저밴드 중앙선 기준으로 캔들봉이 중앙선을 물렸을경우 음봉 일경우 매도신호
양봉 일경우 매수신호 반대신호가 나오면 기존 계약수들은
청산후 반대신호진입
1-1 볼린저밴드 중앙성 기준으로 캔들봉이 중앙선을 확실히 내려온뒤 음봉 일경우 매도신호
반대는 매수신호 반대신호가 나오면 기존 계약수들은
청산후 반대신호진입
2. 진입 수량 조절 가능하게 부탁드립니다
예: 5계약 4계약 조절 가능하게.
3. 청산 각기 다른 조절 수를 부탁드립니다 (따로 조절 할수있게 부탁드립니다)
예) 1계약:20틱 청산 1계약:40틱 청산 1계약:60틱 청산 1계약 다음신호까지
4..시간 설정 10시 15분부터 오후 5시 이후 매매종료
.시간 설정 가능하게 부탁드립니다
수식 1번 하고 1-1 번 하고 쫌부탁드립니다
감사합니다.
2018-07-02
244
글번호 120211
답변완료
수식재문의
아래 요청드렸던것인데 원하는대로 전달이 안되서요..
지금 매수식 매도식 2개있는데 이걸 1개의 식으로 합칠 수 있게 부탁드립니다.
input : p1(55),P2(20),atrp(10),n(2);
var : cnt(0),h1(0),l1(0),h2(0),l2(0),atrv(0),T(0);
var : entry(true);
atrv = atr(atrp);
if TotalTrades > TotalTrades[1] and IsExitName("atrbl",1) == false and PositionProfit(1) < 0 Then
{
entry = false;
T = 0;
}
if entry == false Then
{
if crossup(H,h1) Then
{
T = 1;
var1 = c;
}
if T == 1 Then
{
if L <= var1-atrv[1]*n Then
{
T = 0;
entry = true;
}
if CrossDown(L,L2) Then
{
T = 0;
entry = true;
}
}
}
H1 = DayHigh(1);
L1 = daylow(1);
H2 = DayHigh(1);
L2 = daylow(1);
for cnt = 1 to max(P1,P2)
{
if cnt <= P1 Then
{
if DayHigh(cnt) > H1 Then
H1 = DayHigh(cnt);
if DayLow(cnt) < L1 Then
L1 = DayLow(cnt);
}
if cnt <= P2 Then
{
if DayHigh(cnt) > H2 Then
H2 = DayHigh(cnt);
if DayLow(cnt) < L2 Then
L2 = DayLow(cnt);
}
}
if MarketPosition == 0 and crossup(h,h1) and entry == true Then
{
buy("매수");
}
if MarketPosition == 1 Then
{
ExitLong("atrbl",AtStop,EntryPrice-atrv*n);
if CrossDown(l,l2) Then
{
ExitLong("청산");
}
}
2
input : p1(55),P2(20),atrp(10),n(2);
var : cnt(0),h1(0),l1(0),h2(0),l2(0),atrv(0),T(0);
var : entry(true);
atrv = atr(atrp);
if TotalTrades > TotalTrades[1] and IsExitName("atrsl",1) == false and PositionProfit(1) < 0 Then
{
entry = false;
T = 0;
}
if entry == false Then
{
if CrossDown(L,L1) Then
{
T = 1;
var1 = c;
}
if T == 1 Then
{
if H >= var1+atrv[1]*n Then
{
T = 0;
entry = true;
}
if CrossUp(h,H2) Then
{
T = 0;
entry = true;
}
}
}
H1 = DayHigh(1);
L1 = daylow(1);
H2 = DayHigh(1);
L2 = daylow(1);
for cnt = 1 to max(P1,P2)
{
if cnt <= P1 Then
{
if DayHigh(cnt) > H1 Then
H1 = DayHigh(cnt);
if DayLow(cnt) < L1 Then
L1 = DayLow(cnt);
}
if cnt <= P2 Then
{
if DayHigh(cnt) > H2 Then
H2 = DayHigh(cnt);
if DayLow(cnt) < L2 Then
L2 = DayLow(cnt);
}
}
if MarketPosition == 0 and CrossDown(L,L1) and entry == true Then
{
sell("매도");
}
if MarketPosition == -1 Then
{
ExitShort("atrsl",AtStop,EntryPrice+atrv*n);
if CrossUp(h,h2) Then
{
ExitShort("청산");
}
}
2018-07-02
240
글번호 120208