커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5481
글번호 230811
답변완료
재질문입니다.ㅍ.ㅍ
여러번 질문드려서 이제죄송하기까지한데여
자꾸 값이 이상하게 나와서요
68799번글에 대한 답변을 받고
대입시켜봤습니다.
오류?같은데 아무튼 사진과 설명 다시 드려보겠습니다
3번에 대한 답변을 듣고 똑같이 복사하여 대입해봤습니다
var : A1Price(0),A1high(0);
var : A2Price(0),A2high(0);
if MarketPosition == 1 Then
{
#A1진입 발생
#보유수량이 증가하고 최근 발생한 진입명이 A1이면
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A1" Then
{
#진입가 저장
A1Price = LatestEntryPrice(0);
#진입이후 최고가의 초기값으로 현재봉 고가저장
A1high = H;
}
#새로운 고가가 발생하면 변수의 값을 새로운 고가를 변경
if A1high > 0 and H > A1high Then
A1high = H;
#12% 수익이면 청산
ExitLong("C1",AtLimit,A1Price*1.12,"A1");
#2% 이상 수익이후에 7% 하락하면 청산
if A1high >= A1Price*1.02 Then
ExitLong("C2",AtStop,A1high*0.93,"A1");
#7% 손실시 청산
ExitLong("C3",AtStop,A1Price*0.93,"A1");
#A2진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A2" Then
{
A2Price = LatestEntryPrice(0);
A2high = H;
}
if A2high > 0 and H > A2high Then
A2high = H;
ExitLong("D1",AtLimit,A2Price*1.12,"A2");
if A2high >= A2Price*1.02 Then
ExitLong("D2",AtStop,A2high*0.93,"A2");
ExitLong("D3",AtStop,A2Price*0.93,"A2");
}
Else
{
A1Price = 0;
A1high = 0;
A2Price = 0;
A2high = 0;
}
이 식을 대입해 봤는데요
파일과 같이 매도 신호가 잡힙니다.
왜이러죠
진입신호 A2대비 청산 될만한게 아무것도 없는데요
참고로 "D1"표시된 봉은 저가고가폭이 7프로가 채 안됩니다
2020-08-20
967
글번호 141564
답변완료
수식 문의드립니다.
매수조건
20이평 상승, 캔들 5이평 3틱이상 아래,캔들 시작가+1틱 매수
청산 50틱,손절30틱
손절시 손절가보다 아래에서 1회 매수
전고점 갱신하고 매수조건 일치 매수, 전고점 미갱신시 매수 않함
청산 후 조건일치시 반복해서 매수
포지션있을경우 추가진입 하지않음
매도조건
20이평 하락, 캔들 5이평 3틱이상 위, 캔들 시작가-1틱 매도
청산 50틱,손절 30틱
손절시 손절가 위 1회 진입
청산 후 조건일치시 반복해서 매수
전저점 갱신하고 매도조건 일치 매도 전고점 미갱신 진입않함
포지션 있을 경우 추가 진입 않함
매수계좌, 매도계좌 각각 사용
2020-08-18
842
글번호 141563
답변완료
수식 전환 부탁드립니다.
더운 날씨에 고생 많으십니다. 다음 수식을 예스랭귀지에 맞도록 전환 부탁드립니다.
study("ATR Trailing Stoploss",overlay=true)
Atr=input(defval=5,title="Atr Period",minval=1,maxval=500)
Hhv=input(defval=10,title="HHV Period",minval=1,maxval=500)
Mult=input(defval=2.5,title="Multiplier",minval=0.1)
Barcolor=input(true,title="Barcolor")
TS=highest(high-Mult*atr(Atr),Hhv),barssince(close>highest(high-Mult*atr(Atr),Hhv) and close>close)
Color=iff(close>TS,color.green,iff(close<TS,color.red,color.black))
barcolor(Barcolor? Color:na)
plot(TS,color=Color,linewidth=3,title="ATR Trailing Stoploss")
Buy=crossover(close,TS)
Sell=crossunder(close,TS)
plotshape(Buy,color=color.green,text="Buy",location=location.belowbar,style=shape.labelup,textcolor=color.white,transp=10)
plotshape(Sell,color=color.red,text="Sell",style=shape.labeldown,textcolor=color.white,transp=10)
alertcondition(Buy, "Buy Signal", "Buy ATR Trailing Stoploss")
alertcondition(Sell, "Sell Signal", "Sell ATR Trailing Stoploss")
2020-08-18
844
글번호 141562
답변완료
문의 드립니다.
안녕하세요
항상 빠른 답변 감사 드립니다.
1. 지표식
주가가 음봉이고,
볼린저밴드(20.2) 하단선 1%에 위치하고,
거래량 10일 이평선 위에 있을때
상승삼각형 표시를 캔들 아래에 표시하고자 합니다.
2, 종목검색식
위 지표식을 기반으로
당일 분봉에서 검색시점에
분봉상 장시작후 볼린져밴드(20,2) 상단선이 볼린져밴드(60.2)상단선을 돌파한 종목중에
위 지표식에 표시된 상승삼각형 발생한 종목을 거래량 오름차순으로 검색 하고자 합니다.
3, 시스템식
위 지표식과 검색식을 기반으로
분봉상 상승삼각형 신호가 발생하면
매수 한다.
번외로
4. 검색식
분봉상에서 장시작후 검색시점에
위 지표식에 표시된 상승삼각형 신호 발생 숫자를 더하여
합을 내어 오름차순 검색하고
합계가 동일 숫자가 검색되면 거래량 오름차순으로 표시하고자 합니다.
오름차순이 두개가 안되면 합의 숫자 오름차순을 요청 드립니다.
그럼 좋은 하루 되세요^^
2020-08-18
966
글번호 141561
답변완료
지표문의
1. 더운데 고생 많으시죠
2.질문
선물지수가 현재 320.65 인데요
만든 지표에 320.65에서 백단위 300(100단위이상절삭)은 빼고 10단위아래만 가감하구 싶어요
예컨데 20.65(10단위) 만요
3.예를들면
input: p2(10단위아래);
var1 = ema(C,p2)-ema(C,p2);
plot1((var1);
2020-08-18
825
글번호 141560
답변완료
문제점 수정 부탁드립니다.
안녕하세요?
아래의 수식이 현재 익절이 제대로 안나가고있습니다.
손절은 잘되는데 익절폭이 예를들어 1포라고해놓으면 1.2포 1.4포 이런식으로
범위가 다르게 나가고있습니다.
부디 검토부탁드립니다.
감사합니다.
Input : 단기(5), 장기(20), profit_pt(0.5), loss_pt(0.5), 장종료청산(151000);
Variable : ent_position(0);
if MarketPosition == 0 Then{
var1 = 0;
ent_position = 0;
}
//If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) or ( C[1]<O[1] and H[1]==O[1] and C>O ) Then {
If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) and ent_position == 0 Then {
Buy("매수",AtMarket);
Var1 = NextBarOpen;
ent_position = 1;
}
//If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) or ( C[1]>O[1] and L[1]==O[1] and C<O ) Then {
If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) and ent_position == 0 Then {
Sell("매도",AtMarket);
Var1 = NextBarOpen;
ent_position = -1;
}
if PositionProfit >= profit_pt and ent_position<>0 Then{
if ent_position == 1 and C<O Then {
ExitLong("매수청산");
}
if ent_position == -1 and C>O Then {
ExitLong("매도청산");
}
}
SetStopLoss(loss_pt,PointStop);
SetStopEndofday(장종료청산);
2020-08-18
908
글번호 141559
답변완료
매수 청산 각 조건별 구분 수식 부탁드림니다.
국내주식
data1 : 30분봉
data2 : 일봉
매수는 하루에 3회 ( 10시 12시 2시) 매수 진입 하는 수식이구요
RSI기준 50 이상일 때 10만원어치 매수진입
RSI기준 40 이하일 때 50만원어치 매수진입
RSI기준 30 이하일 때 200만원어치 매수진입
청산은 5% 수익시 각각 청산하는 수식이 아래 식입니다.
--> 변경 요청건
각각 매수 조건별로 청산 수식을 다르게 반영하고 싶습니다.
1. RSI기준 50 이상 10만원어치 매수
--> 기존과 같음 진입건수별로 5% 수익시 매수청산
2. RSI기준 40 이하 50만원어치 매수
3. RSI기준 30 이하 200만원어치 매수
2번과 3번은 data2(일봉) MFI(15) > 85 또는 심리도(15) > 90 일때 일괄 청산
하는 수식을 추가할수 있게 부탁드림니다.
기존 적용 수식
========================================================================
input : 일봉RSI기간(30);
input : 일봉RSI값1(50),일봉RSI값2(40),일봉RSI값3(30);
input : 손절봉수(5000);
input : 진입최대개수(1000);
input : 일차진입금액(10);
input : 이차진입금액(50);
input : 삼차진입금액(200);
input : 청산률(5);
var : RSI2(0,Data2);
RSI2 = Data2(RSI(일봉RSI기간));
if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 진입최대개수) Then
{
if data1(sTime == 100000 or sTime == 120000 or sTime == 140000) Then
{
if Data2(RSI2 > 일봉RSI값1) Then
{
Buy("불타기매매1",OnClose,DEf,Floor(일차진입금액*10000/c));
}
if Data2(RSI2 < 일봉RSI값2 and RSI2 > 일봉RSI값3 ) Then
{
Buy("하락과도매매1",OnClose,DEf,Floor(이차진입금액*10000/c));
}
if Data2(RSI2 < 일봉RSI값3) Then
{
Buy("폭락과도매매1",OnClose,DEf,Floor(삼차진입금액*10000/c));
}
}
}
if MarketPosition == 1 and BarsSinceEntry == 손절봉수 Then
ExitLong();
SetStopProfittarget(청산률,PercentStop);
2020-08-18
1046
글번호 141558
답변완료
부탁좀 드리겠습니다.
if value2 < value3 Then
{
plot8(99999999,"A",GREEN);
plot9(0,"B");
}
Else
{
plot8(0,"A");
plot9(99999999,"B",RGB(255,153,0));
}
수식검증에 어떠한 오류도 없으나 위의 수식이 인식이 되지를 오류좀 바로 잡아 주십시요.
2020-08-18
1034
글번호 141557
답변완료
수식 문의
안녕하세요
참조데이타 분봉기준에서 연속 음봉 N개 조건을 만들려고 하는데
아래 수식만 적으니 전일봉도 반영되는 것 같습니다.
당일 봉부터 반영되게 하려면 어떻게 해야되는지요?
항상 가르쳐주셔서 감사합니다
Data4(CountIf(C<O,n)==n)
2020-08-17
1001
글번호 141556