커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1387
글번호 230811
답변완료
검색식 부탁 드립니다
분봉에서 윗꼬리 몸통 돌파 첫캔들 종목검색식 부탁드립니다 두번째 캔들부터는 검색이 안되도록 해주세요
지표조건
배수5
상승률18
윗꼬리 몸통
A=H-L;
B=Max(C,O)-L;
조건=A/B>배수&&H/C(1)>(1*상승률/100);
Valuewhen(1,조건,Max(C,O));
2024-07-22
740
글번호 181744
답변완료
수식부탁드립니다
종목검색수식이 5개이상인 경우에 이중에서 2개이상 만족시에 종목 검색이 되게끔하는 수식을 알려 주세요.
즉 Condition1 = 검색수식내용 ;
Condition2 = 검색수식내용 ;
Condition3 = 검색수식내용 ;
Condition4 = 검색수식내용 ;
Condition5 = 검색수식내용 ;
위 5가지 검색조건중 2개이상이 충족되는 경우에 검색되게 하는 수식을 요청드립니다
2024-07-22
682
글번호 181733
답변완료
종목검색식부탁드림니다.
노고에 항상 감사드림니다.
A=DISPARITY(기간);
B=VALUEWHEN(1,CROSSUP(A,99) OR CROSSDOWN(A,99),가격);
C=VALUEWHEN(1,CROSSUP(A,101) OR CROSSDOWN(A,101),가격);
D=MA(C,20);
(CROSSUP(D,B) OR CROSSUP(D,C))
AND D>D(1)
지표변수: 기간20
가격(고가+저가)/2
2024-07-22
761
글번호 181731
답변완료
수식 부탁드립니다.
선물1분봉에서
당일 진입해서
청산 조건이 만족되지 않으면
다다음날 14시에 exit 되도록할수있는 방법 있을까요?
간단하게 수식 부탁드립니다.
감사합니다.
2024-07-22
635
글번호 181730
답변완료
daylow 관련 지표작성
daylow,dayhigh 와 lowest, highest 를 분봉에서 사용하려고 하는데요
예를 들어
var:a1(0);
a1=lowest(daylow,5);
plot1(a1);
를 분봉에서는 분봉기준으로 5봉인데
일봉기준에서 5봉인것 처럼 표현할 수는 없나요?~
분봉을 일봉으로 변환하려면 분봉 주기별로 코드를 작성해야되나요? (하루치에 해당하는 봉 갯수가 다르므로)
예를 들면 10분봉,30분봉,60분봉 등
그렇다면 코드 예시를 좀 알려주실 수 있을까요?
2024-07-22
689
글번호 181729
김대중 님에 의해서 삭제되었습니다.
2024-07-22
19
글번호 181726
답변완료
연산자 앞뒤 데이터 오류
질문 1)
Var6=Asks>Bids*1.03;
if Var6 Then var7=Asks;
plot1(var7);
asks 가 bids 보다 일정 % 이상 높을때 (예시에서는 3%) 매도잔량값만 나타내게 하려고 하는데요
var6에 조건문을 입력하면 연산자 앞뒤 두 데이터의 형태가 같아야 한다고 오류가 납니다
var에는 저런식으로 크기 비교를 못하나요??
그냥 풀어서 if asks>bids*1.03 then var7=asks;
로 해도 원하는 값이 나오지가 않네요 도와주세요
질문2)
키움에서 valuewhen함수 처럼 조건을 만족할때 기준값을 불러오는 식을 만들려고 합니다. 질문1 을 응용해서 asks>bids 일때 c 값을 불러오는 식을 만들때
if asks>bids then var8=c;
로 해봤는데 조건에 해당하지 않는 값들도 같이 나오네요
valuewhen 처럼 조건에 안맞는 값은 무시하고 맞는 값만 이어서 연결해주는 라인은 못 만드나요?
감사합니다
2024-07-22
703
글번호 181725
yamu 님에 의해서 삭제되었습니다.
2024-07-22
0
글번호 181724
답변완료
수식작성 부탁드립니다.
안녕하세요..
이번에 부탁드릴 사항은 매수조건 만족 시 바로 진입하지 않고 실제 진입을 -20틱 밀릴때까지 기다렸다가 아래에서 보수적으로 진입하고, 매도조건 만족 시 바로 진입하지 않고 실제 진입을 +20틱 밀릴때까지 기다렸다가 위에서 매도진입 되도록 하여 주시면 감사하겠습니다.
손절만 되고 가는 경우가 많아서요..
input : TradingTime(1),StartTime(160000),EndTime(045000);
input : ProfitTickCount1(20),ProfitTickCount2(40),ProfitTickCount3(60),LossTickCount (20);
input : P1(7),P2(14),P3(21);
input : ADXP(14),value(20);
input : af(0.02),maxaf(0.2);
input : Period(50);
input : CumulativeLossTicks(100);
var : R1(0),R2(0),R3(0),AA(0),MM(0),MS(0),SS(0),EE(0), HH(0), LL(0);
var : Xcond(false),N1(0),daypl(0),CumulativeLoss(0);
R1 = RSI(P1);
R2 = RSI(P2);
R3 = RSI(P3);
AA = ADX(ADXP);
SS = sar(af,maxaf);
EE = Ema(C,Period);
if TradingTime == 1 then
condition3 = (stime>=StartTime or stime<=EndTime );
Else if TradingTime == 2 then
condition3 = (stime>=StartTime and stime<=EndTime );
Else
condition3 = true;
if TradingTime == 1 or TradingTime == 2 then
{
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Xcond = false;
N1 = NetProfit;
}
}
else
{
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
}
CumulativeLoss = PriceScale*CumulativeLossTicks;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
If MarketPosition <= 0 and TotalTrades == TotalTrades[1] and
Condition3 == true and
R1 > R2 and R2 > R3 and R3 >= 50 and
AA > value and
C > SS and C > EE Then
Buy("b",OnClose,Def,3);
If MarketPosition >= 0 and TotalTrades == TotalTrades[1] and
Condition3 == true and
R1 < R2 and R2 < R3 and R3 <= 50 and
AA < value and
C < SS and C < EE Then
Sell("s",OnClose,Def,3);
if MarketPosition == 1 Then
{
ExitLong("bp1",atlimit,EntryPrice+PriceScale*ProfitTickCount1,"",1,1);
ExitLong("bp2",atlimit,EntryPrice+PriceScale*ProfitTickCount2,"",1,1);
ExitLong("bp3",atlimit,EntryPrice+PriceScale*ProfitTickCount3);
ExitLong("bl",AtStop,avgEntryPrice-PriceScale*LossTickCount);
}
if MarketPosition == -1 Then
{
ExitShort("sp1",atlimit,EntryPrice-PriceScale*ProfitTickCount1,"",1,1);
ExitShort("sp2",atlimit,EntryPrice-PriceScale*ProfitTickCount2,"",1,1);
ExitShort("sp3",atlimit,EntryPrice-PriceScale*ProfitTickCount3);
ExitShort("sl",AtStop,avgEntryPrice+PriceScale*LossTickCount);
}
2024-07-22
685
글번호 181721