커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1753
글번호 230811
답변완료
사용 가능한 특수문자
프로그램 작성시 사용가능한 특수 문자 부탁 합니다
속이 빈 동그라미, 속이빈 상하 삼각형, 속이찬 화살표, 속이 빈 상하 화살표 부탁 합니다
2022-05-14
1099
글번호 158857
답변완료
같은색 표시
예스 업글후 green,lgreen 이 따로 나오는게 아니라 lgreen 으로 동일색으로 나와요.
수정해 주세요
2022-05-13
876
글번호 158847
답변완료
함수요청
안녕하세요?
아래 글번호 75023번에 작성주신 지표를 응용하여
국내선물 3분봉으로 일중거래를 하고자 합니다.
- 현재가가 고점(HH)보다 크면서 MACD오실레이터 값이 음수이면 익봉 시가에 매수 진입(B1)
현재가가 고점(HH)보다 크면서 MACD오실레이터 값이 양수이면 익봉 시가에 매수 진입(B2)
매수 진입 이후 현재가가 고점(HH)보다 작고 MACD오실레이터 값이 음수이면 완성 익봉 시가에 매수청산(BX)
- 현재가가 저점(LL)보다 작으면서 MACD오실레이터 값이 양수이면 익봉 시가에 매도 진입(S1)
현재가가 저점(LL)보다 작으면서 MACD오실레이터 값이 음수이면 익봉 시가에 매도 진입(S2)
매도 진입 이후 현재가가 저점(LL)보다 크고 MACD오실레이터 값이 양수이면 완성 익봉 시가에 매도청산(SX)
다만 개장후 B1의 조건이 먼저 나오면 실행을 하되 B2가 먼저 나오면 주문을 실행하지 않습니다.
마찬가지로 개장후 S1의 조건이 먼저 나오면 실행을 하되 S2가 먼저 나오면 주문을 실행하지 않습니다.
또한 매수든 매도든 진입은 한쪽만 실행하며 진입기준으로 최대 두번이 맥스 입니다.
(B1), (B1,B2), (S1), (S1,S2)
즉, 당일에 발생될 수 있는 매매시나리오는 B1-> BX 혹은 B1-> BX-> B2-> BX 이거나
S1-> SX 혹은 S1-> SX-> S2-> SX로만 거래를 하고 싶습니다.
15시 15분에는 강제청산합니다.
2022-05-13
1235
글번호 158843
답변완료
시스템 수식
1,타종목이 ma(c.a)와 ma(c.b)에서 3계약 진입 타종목이 5P(상승 하락)에 1계약 청산,
7.5P(상승 하락)에 1계약청산, 10P(상승 하락)에 청산하는시 부탁 드립니다
2,타종목이 ma(c.a)와 ma(c.b)에서진입후 2P(상승 하락)할때마다 1계약씩 3번진입식 부탁 드립니다
2022-05-12
1278
글번호 158841
답변완료
변수 오류
안녕하세요.
종료시간을 만기일에 변화시켜서 매매하려고 합니다.
아래와 같이 게시판에 보고 작성해보았습니다.
종료시간을 input에 두고 초기값을 153000으로 설정하면 잘 매매되었는데,
vars로 옮기고 나서는이상하게 매수가 1건도 이루어지지 않네요.
변수설정에 문제가 있는거 같은데, 수정의견 부탁드립니다~
----------------------------------------------------------------
VARS: kk(1), entry(0),var11(0),var12(0),var13(0), 종료시간(0);
/*이하는 선물만기일이면 종료시간 다르게 하는 로직임*/
var11 = int(date/100)-int(date/10000)*100;
var12 = date - int(date/100)*100;
var13 = DayOfWeek(date);
if var11%3 == 0 and var12 >= 8 and var12 <= 14 and var13 == 4 then
종료시간==151500;
Else
종료시간==153000;
if sTime < 종료시간 and MarketPosition == 0 and DayOpen(0)/DayClose(1)-1<-gap and entry < 1 then
{
buy("시가매수",AtLimit,DayOpen(0),kk);...
2022-05-12
1410
글번호 158840
답변완료
ab-ratio 타주기 적용
항상 감사드립니다.
아래 시스템식을 타주기에 적굥할수 있도록 변환 부탁드립니다
Inputs: Length(5200);
Variables : ABull(0), ABear(0), BBull(0), BBear(0),ARatio(0), BRatio(0);
var:t66(0),t70(0),t71(0),t77(0),t80(0);
ABull = accumn(High - Open, Length);
ABear = Accumn(Open - Low, Length);
BBull = Accumn(High - Close[1], Length);
BBear = Accumn(Close[1] - Low, Length);
ARatio = ABull / ABear * 100;
BRatio = BBull / BBear * 100;
if aRatio>100 Then
t66 = 1 ;
if BRatio>100 Then
t70 = 1 ;
if aRatio>100 and BRatio>100 Then
t71 = 1 ;
if t71==1 Then
t77 = 1 ;
If t77==1 or t77==-1 Then
{
if t77==1 Then t80=1 ;
if t77==-1 Then t80=-1 ;
}
2022-05-13
1334
글번호 158839
답변완료
수식문의드립니다
안녕하세요~
오전에 답변주신것 바탕으로 array 사용해 수식을 줄였는데
줄인건 진입이 일어나지 않는데 원인을 못찾겠습니다...
1. 원래수식
input : ML(20), L01(12083), L02(12043), L03(12003), L04(11963), L05(11923), L06(11883), L07(11843), L08(11803), L09(11763), L10(11723);
var : Bsystem(true), Ssystem(true);
// 매수진입 조건
if Bsystem == true Then
{
if MarketPosition == 0 && condition11 == true Then buy("b01", AtLimit, L01);
if MarketPosition == 0 && condition12 == true Then buy("b02", AtLimit, L02);
if MarketPosition == 0 && condition13 == true Then buy("b03", AtLimit, L03);
if MarketPosition == 0 && condition14 == true Then buy("b04", AtLimit, L04);
if MarketPosition == 0 && condition15 == true Then buy("b05", AtLimit, L05);
if MarketPosition == 0 && condition16 == true Then buy("b06", AtLimit, L06);
if MarketPosition == 0 && condition17 == true Then buy("b07", AtLimit, L07);
if MarketPosition == 0 && condition18 == true Then buy("b08", AtLimit, L08);
if MarketPosition == 0 && condition19 == true Then buy("b09", AtLimit, L09);
if MarketPosition == 0 && condition10 == true Then buy("b10", AtLimit, L10);
if MarketPosition == 0 && CrossDown(C, L01+ML) Then condition11 = true;
if MarketPosition == 0 && CrossDown(C, L02+ML) Then condition12 = true;
if MarketPosition == 0 && CrossDown(C, L03+ML) Then condition13 = true;
if MarketPosition == 0 && CrossDown(C, L04+ML) Then condition14 = true;
if MarketPosition == 0 && CrossDown(C, L05+ML) Then condition15 = true;
if MarketPosition == 0 && CrossDown(C, L06+ML) Then condition16 = true;
if MarketPosition == 0 && CrossDown(C, L07+ML) Then condition17 = true;
if MarketPosition == 0 && CrossDown(C, L08+ML) Then condition18 = true;
if MarketPosition == 0 && CrossDown(C, L09+ML) Then condition19 = true;
if MarketPosition == 0 && CrossDown(C, L10+ML) Then condition10 = true;
if CrossDown(L, L01) Then condition11 = False;
if CrossDown(L, L02) Then condition12 = False;
if CrossDown(L, L03) Then condition13 = False;
if CrossDown(L, L04) Then condition14 = False;
if CrossDown(L, L05) Then condition15 = False;
if CrossDown(L, L06) Then condition16 = False;
if CrossDown(L, L07) Then condition17 = False;
if CrossDown(L, L08) Then condition18 = False;
if CrossDown(L, L09) Then condition19 = False;
if CrossDown(L, L10) Then condition10 = False;
}
//매도진입 조건
if Ssystem == true Then
{
if MarketPosition == 0 && Condition21 == true Then Sell("s01",AtLimit,L01);
if MarketPosition == 0 && Condition22 == true Then Sell("s02",AtLimit,L02);
if MarketPosition == 0 && Condition23 == true Then Sell("s03",AtLimit,L03);
if MarketPosition == 0 && Condition24 == true Then Sell("s04",AtLimit,L04);
if MarketPosition == 0 && Condition25 == true Then Sell("s05",AtLimit,L05);
if MarketPosition == 0 && Condition26 == true Then Sell("s06",AtLimit,L06);
if MarketPosition == 0 && Condition27 == true Then Sell("s07",AtLimit,L07);
if MarketPosition == 0 && Condition28 == true Then Sell("s08",AtLimit,L08);
if MarketPosition == 0 && Condition29 == true Then Sell("s09",AtLimit,L09);
if MarketPosition == 0 && Condition20 == true Then Sell("s10",AtLimit,L10);
if MarketPosition == 0 && CrossUp(C, L01-ML) Then condition21 = true;
if MarketPosition == 0 && CrossUp(C, L02-ML) Then condition22 = true;
if MarketPosition == 0 && CrossUp(C, L03-ML) Then condition23 = true;
if MarketPosition == 0 && CrossUp(C, L04-ML) Then condition24 = true;
if MarketPosition == 0 && CrossUp(C, L05-ML) Then condition25 = true;
if MarketPosition == 0 && CrossUp(C, L06-ML) Then condition26 = true;
if MarketPosition == 0 && CrossUp(C, L07-ML) Then condition27 = true;
if MarketPosition == 0 && CrossUp(C, L08-ML) Then condition28 = true;
if MarketPosition == 0 && CrossUp(C, L09-ML) Then condition29 = true;
if MarketPosition == 0 && CrossUp(C, L10-ML) Then condition20 = true;
if CrossUp(H, L01) Then Condition21 = False;
if CrossUp(H, L02) Then Condition22 = False;
if CrossUp(H, L03) Then Condition23 = False;
if CrossUp(H, L04) Then Condition24 = False;
if CrossUp(H, L05) Then Condition25 = False;
if CrossUp(H, L06) Then Condition26 = False;
if CrossUp(H, L07) Then Condition27 = False;
if CrossUp(H, L08) Then Condition28 = False;
if CrossUp(H, L09) Then Condition29 = False;
if CrossUp(H, L10) Then Condition20 = False;
}
// 청산
if marketposition == 1 Then
{
ExitLong("exitL1",AtLimit,EntryPrice+ML);
ExitLong("exitL2",AtStop,EntryPrice-ML);
}
if marketposition == -1 Then
{
ExitShort("exitS1",AtLimit,EntryPrice-ML);
ExitShort("exitS2",AtStop,EntryPrice+ML);
}
2. array 사용한 수식
input : ML(20);
var : Bsystem(true), Ssystem(true), i(0);
array : LL[9](0), BC[9](False), SC[99](False);
LL[5] = 11923;
For i = 0 to 4 {LL[4-i] = LL[5-i] + 2*ML;}
For i = 5 to 9 {LL[i+1] = LL[i] - 2*ML;}
MessageLog("L1 %.2f, L2 %.2f, L3 %.2f, L4 %.2f, L5 %.2f", LL[2] , LL[4], LL[5], LL[6], LL[7]);
// 매수진입 조건
if Bsystem == true Then
{
For i = 0 to 9
{
if MarketPosition == 0 && BC[i] == true Then buy("b", AtLimit, LL[i]);
if MarketPosition == 0 && CrossDown(C,LL[i]+ML) Then BC[i] = true;
if CrossDown(L, LL[i])then BC[i] = False;
}
}
//매도진입 조건
if Ssystem == true Then
{
For i = 0 to 9
{
if MarketPosition == 0 && SC[i] == true Then Sell("s", AtLimit, LL[i]);
if MarketPosition == 0 && CrossUp(C,LL[i]-ML) Then SC[i] = true;
if Crossup(H, LL[i])then SC[i] = False;
}
}
// 청산
if marketposition == 1 Then
{
ExitLong("exitL1",AtLimit,EntryPrice+ML);
ExitLong("exitL2",AtStop,EntryPrice-ML);
}
if marketposition == -1 Then
{
ExitShort("exitS1",AtLimit,EntryPrice-ML);
ExitShort("exitS2",AtStop,EntryPrice+ML);
}
-----------------------------------------------------
확인해보면 1.은 진입이 정상적으로 일어나는데
줄이기만한 2.는 진입이 아얘 일어나지 않는데 원인을 못찾겠습니다ㅠ
확인해주시면 감사하겠습니다!
2022-05-13
1103
글번호 158838
답변완료
하루최대 수익 및 장중 손실금액 수식 부탁드립니다.
안녕하세요
앞전에 하루 최대수익 도달시 더이상 거래 안되게 코드를 알려주셨는데
추가적으로 넣고싶은 코드가 있어 며칠간 도전해보다 실패하여 이렇게 글을 남깁니다.
만약 현재 코드에서(아래 첨부)
진입 후 현재손실 누적포인트가 -50point(나스닥) 경우
프로핏타겟(xx,pointstop); (신호즉시)
코드가 실행되고,
다시 현재 손실금액이 0이상으로 바뀌면
프로핏타겟 진행을 멈추고 아래 코드로 진행되게 하려 합니다.
*요약 -
-당일거래 진행중 손실이 -50 포인트 이상 손실 발생시
프로핏타겟 모드로 진행,
- 다시 수익이 -50 에서 0포인트 이상으로 바뀌면
프로핏타겟 모드 해제,
이전 코드 내용,
Input : 당일수익틱수(400);
Var : N1(0),dayPl(0),당일수익(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
}
if MarketPosition == 1 then
{
if C >= EntryPrice+((당일수익-daypl)/CurrentContracts) Then
ExitLong("dbp");
}
if MarketPosition == -1 then
{
if C <= EntryPrice-((당일수익-daypl)/CurrentContracts) then
ExitShort("dsp");
}
if Xcond == false then
{
if MarketPosition == 0 and (진입시간1, 진입시간2) Then
{
if 매수조건 Then
{
Buy();
}
if 매도조건 Then
{
Sell();
}
}
if MarketPosition == 1 Then
{
if 매수청산 조건 Then
{
ExitLong();
if 매도진입조건 (스위칭) and (진입시간1, 진입시간2) Then
{
Sell("");
}
}
}
if MarketPosition == -1 Then
{
if 매도청산 조건 Then
{
ExitShort();
if 매수 진입조건 (스위칭) and (진입시간1, 진입시간2) Then
{
Buy("");
}
}
}
}
2022-05-13
937
글번호 158837
답변완료
종목검색식 부탁드립니다.
안녕하십니까
수고많으십니다.
종목 검색식 부탁드립니다.
ㅇ최근 30거래일 동안 일봉 상 양봉 비율이 60% 이상인 종목
감사합니다.
2022-05-13
1095
글번호 158836