커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1750
글번호 230811
답변완료
수식 변환 문의
수고 하십니다.
아래 수식 yes language로 변환 부탁드립니다.
수고하세요..
############
study("TMA bands", shorttitle="TMA bands", overlay=true)
TMAPeriodBack = input(defval=35, title="TMA number of bars back")
ATRPeriodBack = input(defval=75, title="ATR number of bars back")
ATRMultiplier = input(defval=4.0, title="ATR Multiplier")
src = input(close, title="Price")
ssi=wma(src,TMAPeriodBack)
tma = swma(ssi)
range = atr(ATRPeriodBack)*ATRMultiplier
tmah = tma+range
tmal = tma-range
plot(tmah, color=color.purple, linewidth=2, transp = 40, title = "Upper")
plot(tma, color=color.maroon, linewidth=2, transp = 40, title = "Middle")
plot(tmal, color=color.purple, linewidth=2, transp = 40, title = "Lower")
2022-05-20
1114
글번호 159078
답변완료
부탁 드립니다.
늘 감사 합니다.
a=valuewhen(1,crossup(avg(C,기간1), avg(C,기간2)),avg(c,기간2));
지표 조거
기간1 :1
기간2 :60
이 조건에서 당일 돌파 또는 위로 +7% 안에 있는 종목들 모두를 찾고 싶습니다.
부탁 드립니다.
2022-05-20
1013
글번호 159077
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
틱차트에 <10분봉차트 단순이평20선>과 <10분봉차트 삼각가중평균 30선>을 나타내서 두 선 사이를 색채우기 하고자 합니다.
분봉주기와 각 선은 기간값 수정가능하게 부탁드립니다.
수식을 어떻게 작성해야 하는지요?
항상 감사드립니다!!!
2022-05-20
1025
글번호 159076
답변완료
heikin ashi 강조식에서 쌍바닥 쌍봉
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xOpen = open;
xClose = (O+H+L+C)/4;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
if XClose > Xopen Then
PlotPaintBar(Xhigh,Xlow,"강조",MAGENTA);
else if XClose < Xopen Then
PlotPaintBar(Xhigh,Xlow,"강조",CYAN);
else
PlotPaintBar(Xhigh,Xlow,"강조",GREEN);
상승전환강조 생기고 하락전환한후 다시 새로운 상승강조가 생길때 직전 상승강조 저가와 새 상승강조 저가를 비교하여(엄밀히 따지면 직전 하락강조 최저가와 다음 하락강조 최저가 비교) -1틱 or 같거나, +1틱으로 강조식 쌍바닥이 될때 알람소리,
반대로 쌍봉일때도 알람소리나게 부탁합니다.
2022-05-19
1382
글번호 159075
답변완료
피보나치 조정대, 꺽은선을 평행선화
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HH(0),LL(0);
HH = DayHigh;
LL = daylow;
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
plot1(HH,"최고");
plot2(var1);
plot3(var2);
plot4(var3);
plot5(var4);
plot6(var5);
plot7(LL,"최저");
주가가 상승하면 피보나치선이 확정되면서 꺽여서 따라 올라가는데,이것을 주가가 상승할때 무조건 당일의 최고점과 최저점만을 기준으로 판단하여,모든선이 처음부터 고정된 값이 아니고 당일의 최고점과 최저점을 따라 시초부분을 꺽여서 올라가지 않고 나중 상승 부분까지 계속 들어 올리면서 평행선으로 종일 같이 움직이게 할수 있을까요?
곧 최저점, 최고점-최저점의 23.6% 38.2% 50% 61.8% 76.4% ,최고점,이렇게 7개의 평행선을 그리고 싶습니다.감사합니다.
2022-05-19
1240
글번호 159074
답변완료
시스템 작성 부탁드립니다.
저는 여러개의 스톡캐스트 인텍스모먼트를 변형하여 아래 식과 같이 매수 매도를 합니다.
또한 지표로 가중이동평균선 25 75 150일선을 사용합니다.
아래의 식대로 매수*매도 진입 후 선물지수가 가중이동평균75일선에 닿았을때 추가 매수를 하고 싶습니다.
추가 매수 조건
아래의 식대로 진입후 선물지수가 가중이동평균75일선에 닿았을때 추가 매수
추가 매도 조건
아래의 식대로 진입후 선물지수가 가중이동평균75일선에 닿았을때 추가 매도
RSIV = RSI(RSIP);
if RSIV >= 70 and
wma1 > wma2 and wma2 > wma3 and
SMI3 > 0 and SMI4 > 0 and SMi7 >0 and SMI3 > SMI4 and SMi5 <27 and SMi1111> SMi411 and SMi411 > SMi1211 and SMi411>31 and SMi1211 <SMi1311 and SMi1211<63 and SMi2<69 and SMi5 > -12 and
((SMI2 > 0 and crossup(SMI1,-1)) or (SMI1 > 0 and crossup(SMI2,-1))) Then
buy();
if RSIV <= 30 and
wma1 < wma2 and wma2 < wma3 and
SMI3 < 0 and SMI4 < 0 and smi7 <0 and SMI3 < SMI4 and SMi5 > -27 and SMi1111< SMi411 and SMi411 < SMi1211 and SMi411 < -31 and SMi1211 >SMi1311 and smi1211 > -63 and SMi2> -69 and SMi5 <12 and
((SMI2 < 0 and CrossDown(SMI1,1)) or (SMI1 < 0 and CrossDown(SMI2,1))) Then
sell();
청산일때는 추가 매수*매도 한 모든 포지션 청산 원합니다.
그리고 기존에 들어갔던 포지션이 청산이 된 상태에서는 선물지수가 75선에 닿았더라도 진입금지 하고 싶습니다.
2022-05-19
1128
글번호 159073
답변완료
수식 부탁드립니다
수고하십니다.
아래 내용으로 시스템 식 부탁합니다.
################
당일 아침부터 15시까지의 금융투자의 K200 선물 누적순매수 수량 = Qf
당일 아침부터 15시까지의 금융투자의 K200 콜옵션 누적 순매수 수량 = Qc
당일 아침부터 15시까지의 금융투자의 K200 풋옵션 누적 순매수 수량 = Qp
라고 할 때....
1] Qf가 Xu개 이상이고
Qc가 Yu개 이상이며
Qp가 Zu개 이하이면
동시호가에 선물 매수1개 하여 오버나잇후 익일 시초가 동시호가에 청산..
반대로
Qf가 Xd개 이하이고
Qc가 Yd개 이하이며
Qp가 Zd개 이상이면
동시호가에 선물 매도1개 하여 오버나잇후 익일 시초가 동시호가에 청산..
2] 만일 동시호가에 주문/체결이 어려우면
진입은 당일 1525분에 주문...
청산은 익일 0905분에 주문...
##########
하는 시스템 식 부탁합니다.
감사합니다. 수고하세요...
2022-05-19
1038
글번호 159072
답변완료
77274 추가질문 드립니다
안녕하세요~
77274 에서 질문드렸던부분 추가질문 드립니다
이전에 올렸던 수식을 1분봉으로 설정하고
1분 단위로 끊어서 로그를 확인해봤는데
ex) 7:30에 진입이 일어났으면, 7:29 ~ 7:31 까지, stime =< 73000 이런 식으로 설정해 1분 단위로 끊어 1분봉의 로그를 확인
정상적으로 진입이 일어난 경우를 진입 시점 전후로 로그의 변화를 체크해보니
1. SC1 == true, SC2 == true, marketposition == 0
2. SC1 == true, SC2 == true, marketposition == -1
3. SC1 == true, SC2 == true, marketposition == -1
이런 식으로 일어났습니다
수식에 진입가격(=LL[i]) 도달시, SC1, SC2를 false로 바꾸도록 설정했는데
- 진입조건
if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b01", AtLimit, LL[i]);
if CrossUp(H, LL[i+1]) Then BC1[i] = true;
if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true;
- 청산조건
if EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2 Then
{
ExitLong("exitL01-1", AtLimit, (LL[i]+LL[i-1])/2);
ExitLong("exitL01-2", AtStop, LL[i+1]);
}
- SC1,2 false로 바꾸는 조건
if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then
{
BC1[i] = False;
BC2[i] = False;
}
marketposition은 진입이 일어난 봉에서 바로 변하는데
SC1, SC2는 조건을 만족한 봉에서 한봉 더 지나야 변했습니다
이전 글에서 첨부한 사진의 문제도 다시 확인해보면
의도한대로라면 1-1에서 기존의 매수 표지션도 청산되고, SC2 또한 L[5](=11884)에 도달해 true로 바뀌어야 했으나
1-1 완성 이후엔 marketposition만 1 => 0으로 바뀌었고, SC2는 여전히 false였습니다
의도한대로라면 1-2에서 L[4](=11894)에 도달해 s04가 체결되어야 했으나
이때는 SC2 == false이어서 체결되지 않았고
1-2의 봉이 완성되고 나서야 SC2가 true로 바뀌었고,
1-3의 시가가 원래의 atlimit 체결가인 11894보다 높기 때문에 시가로 체결된 상황입니다
이후에도 청산 될때마다 s04 진입이 지속된건
SC1, SC2를 false로 리셋하는 조건이, SC1, SC2 둘 다 true이면서 L[i]를 crossup하는 상황인데
1-2에서 SC2가 false였고, 1-3이 되서야 SC2가 true로 바뀌었지만,
이미 1-3의 시가 > L[4]인 상황에서 양봉으로 마무리되었기 때문에, L[4]를 crossup을 하지 않아 s04가 청산될때마다 계속 진입이 일어난것이었습니다
문제의 원인은 marketposition은 event가 발생한 봉이 완성된 직후 바로 바뀌는데
제가 설정해놓은 SC1, SC2는 event가 발생한 봉에서 한 봉이 더 완성되고 나서 바뀌기 때문이고
사진상의 봉 뿐만 아니라
다른 봉들 및 매도가 아닌 매수 상황까지 포함해 여러개 확인해봤을때
BC1, BC2, SC1, SC2가 한봉 지연되어 바뀌는 문제가 전부 확인되었습니다
이런 문제가 발생하는 원인이 무엇인지
해결하려면 어떻게 해야하는지 알고싶습니다
감사합니다
2022-05-19
915
글번호 159071
답변완료
매수 조건의 계좌 연동 관련 문의
안녕하세요.
혹시 다음의 기능도 가능한지 알고 싶습니다.
"매수 조건 발생 시.... 계좌에 long 포지션 잔고가 있고 이익 중이면 매수, 그렇지 않으면 아무것도 안함"
2022-05-19
1039
글번호 159057