커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5499
글번호 230811
답변완료
지표수식요청
아래의 4가지 함수를 사용자함수에 등록하려합니다 예스랭귀지로 변환 부탁드립니다^^
요일(DATE)함수
M=floor(D/100)%100;
YY=if((M+1-1) == 1 or (M+1-1) == 2, floor(D/10000)-1, floor(D/10000));
YA=floor(YY/100);
YB=YY%100;
MM=if((M+1-1) ==1, 13, if((M+1-1) == 2, 14, M));
DD=D%100;
A=(DD+floor(13*(MM+1)/5) + YB + floor(YB/4) + floor(YA/4) + YA*5)%7;
if(A==0,6,A-1)
이전주고가(N)함수
A=요일(DATE);
HH=HIGHESTSINCE(1, A(1)>A && DATE != DATE(1) , H);
Valuewhen(n, A(1)>A && DATE != DATE(1), HH(1));
이전주누적거래량(N)
S=SUM(V);
A=요일(DATE);
B=Valuewhen(n, A(1)>A && DATE != DATE(1), S(1));
B1=Valuewhen(n+1, A(1)>A && DATE != DATE(1), S(1));
B-B1
주0봉누적거래량()
S=SUM(V);
A=요일(DATE);
B=Valuewhen(1, A(1)>A && DATE != DATE(1), S(1));
S-B
감사합니다
2023-10-01
1226
글번호 172820
답변완료
틱봉에서 30분봉 점찍기좀 부탁 드립니다
* 좋은 한주 되십시요.
* 30분 분봉 crossup , crossdown시 차트에 점찍기(●) 요청 드립니다.
단 틱봉 사용 예정 입니다.
즉 틱 봉을 사용 하는데 30분봉 이평선(ma(c,30))이 ma(c,5) 와크로스 되거나 다운되면
점찍기를 요청 드립니다.
틱봉은 몇 틱봉을 사용 해야할지 아무리 찾아봐도 잘 모르겠습니다.
30분봉 점찍기 적당한 틱봉(또는 비슷) 계산해 주시면 사용 하겠습니다.
즉 매매시 30분봉 크로스업 다운이 중요한 변화라서 필요 합니다.
분봉을 틱봉에 점찍기 안되는 건가요?
* 항상 많은 도움에 고맙습니다. 수고하십시요.
2023-10-04
1027
글번호 172819
답변완료
업비트에서는 결과가 나오는데 동일전략이 다른 상품에서는 나오지 않습니다.
동일한 전략을 btckrw에서는 잘 적용이 되나
btc 마켓 종목에서는 적용이 되지 않습니다.
또한 아래 수식이 계산이 많이 들어가는 느낌이 드는데...
최적화할때에도 결과들이 누락되고 그래서...
속도를 더 빠르게 할 수 있는 코드로 수정이 가능할까요??
Input:maperiod(144),profittarget(0.8),stloss(15),water1(1),pleng(100),natrs(3),capital(1),trendscore(1.5);
var : cont(0),mascoring(0);
//추세판정
if ma(c,maperiod*7)>ma(c,maperiod*7)[maperiod*7] Then Value1=1; Else value1=-1;
if ma(c,maperiod*5)>ma(c,maperiod*5)[maperiod*5] Then Value2=0.5; Else Value2=-0.5;
if ma(c,maperiod*3)>ma(c,maperiod*3)[maperiod*3] Then Value3=0.25; Else Value3=-0.25;
if ma(c,maperiod*2)>ma(c,maperiod*2)[maperiod*2] Then Value4=0.125; Else Value4=-0.125;
if ma(c,maperiod*1)>ma(c,maperiod*1)[maperiod*1] Then Value5=0.0625; Else value5=-0.0625;
Value10= value1+value2+value3+value4+value5;
value11 = ATR( pLeng ) * nAtrs ;
cont=(capital*0.01)/c;
if marketposition==0 and Value10 >= trendscore and CrossDown(c,BollBandDown(60,2)) Then
Begin
Buy("매수",AtMarket,def,cont);
End;
if MarketPosition == 1 and MaxEntries == 1 Then
Buy("mt1",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*2);
if MarketPosition == 1 and MaxEntries == 2 Then
Buy("mt2",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*4);
if MarketPosition == 1 and MaxEntries == 3 Then
Buy("mt3",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*8);
if MarketPosition == 1 and MaxEntries == 4 Then
Buy("mt4",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*16);
if MarketPosition == 1 and MaxEntries == 5 Then
Buy("mt5",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*32);
if MarketPosition == 1 and MaxEntries == 6 Then
Buy("mt6",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*64);
if MarketPosition==1 and (OpenPositionProfit/CurrentContracts)/AvgEntryPrice >= profittarget*0.01 Then
Begin
ExitLong("매수청산",AtMarket);
End;
2023-10-01
1330
글번호 172818
트라이 님에 의해서 삭제되었습니다.
2023-10-01
4
글번호 172817
redcon 님에 의해서 삭제되었습니다.
2023-10-01
0
글번호 172816
답변완료
수식문의
안녕하세요?
수식 문의 드립니다.
감사합니다.
2023-10-04
993
글번호 172815
모야조지 님에 의해서 삭제되었습니다.
2023-09-30
8
글번호 172814
답변완료
수식 문의드립니다.
안녕하세요. 해외선물 거래하려고 하는데요,
거래가 23시부터 시작해서 늦어도 23시 59분 00초까지 마무리(청산) 되고,
만약 위 거래시간 중에도 이익이 +가 되면 당일에는 다음 진입은 하지 않고 거래를 마치는
수식을 부탁드립니다.
(수익이 -일 경우에는 다음 진입을 허용합니다.)
항상 감사드립니다!
2023-09-30
986
글번호 172809
답변완료
진입명에 따른 entryprice 구분 여부
항상 친절한 답변 감사드립니다.
동일 종목을 다른 로직으로 진입할 때 청산도 다르게 하고자 합니다.
다음과 같이 작성한다고하면 entryprice가 각각의 로직에 맞게 구분되어 청산되는지요?
if entryname == "a" and c > entryprice*1.10 then exitlong();
if entryname == "b" and c > entryprice*1.20 then exitlong();
예를 들면 같은 종목을 "a"로 10,000에 1주 진입하였고, "b"로 10,500원에 1주 진입하였으면 현재 평단가 10,250에 2주가 있게 됩니다. 이와 같은 상황에서 위의 청산신호가 차례로 나오면 "a"신호 진입된 것 1주는 11,000에 체결되고 "b"로 진입된 것 1주는 10,500*1.2에 청산되게 되는지요? 즉 entryprice가 신호별로 구분이 되는지요?
* entryprice에 신호 구분 표시가 없는 것 같아서 질문드리는데, 혹시 구분표시를 넣을 수 있는 방법이 있는지요?
2023-09-29
868
글번호 172808