커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6177
글번호 230811
답변완료
문의 드립니다
수고 많으십니다
아래수식을 수정부탁 드립니다
1. 90일선을 기준으로
90일선 아래에서 5일선과 20일선이 데드크로스시만 매도신호
2. 90일을 기준으로
90일 위에서 5일선과 20일선이 골든크로스시만 매수신호
input : MA1(5),MA2(20),MA3(90);
var1 = ma(c,MA1);
var2 = ma(C,MA2);
var3 = ma(C,MA3);
if CrossUp(var1,var2) and c > var3 Then
buy();
if CrossDown(var1,var2) and c < var3 Then
sell();
2022-03-14
1089
글번호 157161
답변완료
종목검색식 부탁합니다
검색조건 :
1.당일 주가는 240일 이평선위에 있을것
2.당일 macd(12.26.9)선이 0선위에 있을것
3.당일 캔들이 20일 또는 60일 신고가 일 것
4.일옥균형표 구름대가 양선(붉은색) 일것
위 4가지 조건을 동시에 만족하는 종목 검색식 부탁합니다
2022-03-14
1067
글번호 157160
답변완료
문장 연결 부탁 드립니다.
* 아래 문장 좀 구성 요청 드립니다.
* <질문1>
문장: "60틱 수익후 이후 수익이 10틱 으로 줄어 들면" 청산 로직좀 봐 주십시요.
SetStopProfittarget(PriceScale*80,PointStop) ;
SetStopLoss(PriceScale*30,PointStop);
if MarketPosition == -1 and IsEntryName("DD3") == true Then {
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*60 Then{
exitShort("DD3cut1",AtLimit,EntryPrice-PriceScale*10);} }
위문장이 아닌가요?
if MarketPosition == -1 and IsEntryName("DD3") == true Then { if L <= EntryPrice-PriceScale*60 Then Condition2 = true;
if Condition2 == true Then ExitShort("DD3CUT2",AtLimit,EntryPrice-PriceScale*10); Else Condition2 = False; }
이문장도 안되는데 수정좀 부탁 드립니다.
<질문2> 아래 두문장을 매수식으로 표현좀 부탁 드립니다.
## 원식1
if CrossDown(mav1 ,mid) Then {TX57 = Text_New_Self (sdate,stime,mid,"●");
## 원식2
if CrossUp(LRLv - PriceScale*23 , VAR87 - PriceScale*13) Then { Tx03 = Text_New(sdate,stime,MA(L,5)-1.0 ,"●");
##
if CrossDown(mav1 ,mid) 이후 첫번재 신호(CrossUp(LRLv - PriceScale*23 , VAR87 - PriceScale*13) ) 발생 하면 buy();
즉 CrossDown(mav1 ,mid) 신호가 먼저 발생 하고
다음에 신호(CrossUp(LRLv - PriceScale*23 , VAR87 - PriceScale*13) ) 발생 하면
매수 로직이 필요 합니다.
* 고맙습니다, 수고하십시요.
2022-03-14
989
글번호 157159
답변완료
시스템식 문의 드립니다.
-------------------------------------------------------
위에 글을 검색했을때 미수주문도 거래가 가능하다고 하셨는데
종목별로 증거금률이 다르다보면 미수가능한 주문 금액도 틀릴텐데..
혹시 예를 들어서 매수주문이 나갈때 주문가능한 총 주식수 (미수포함) x 0.5
이렇게도 주문 가능할까요?
Buy("1타점매수",AtLimit,1타점매수,Floor(투자금액/C));
==>
Buy("1타점매수",AtLimit,1타점매수,주문가능한 총 주식수 (미수포함) x 0.5);
이런식으로도 가능한지 궁금합니다.
2022-03-14
1239
글번호 157158
답변완료
부탁드립니다
$안녕하세요
아래식에서 그림파일참조해서value1,value2와 value3,value4가 crossup과crossdown할때
중복되지 않고 겹치는 부분이 없도록 수정부탁드립니다,
Input : af(0.02), maxAF(0.2);
var1 = CSAR(af,maxAF);
if CrossUp(C,var1) Then
{
value1 = H;
Value2 = DayLow;
}
if CrossDown(C,var1) Then
{
value3 = L;
Value4 = DayHigh;
}
if value1 > 0 Then
{
Plot1(value1,"H");
Plot2(value2,"LL");
}
if value3 > 0 Then
{
Plot3(value3,"L");
Plot4(value4,"HH");
}
2022-03-14
1199
글번호 157157
몬테카를로 님에 의해서 삭제되었습니다.
2022-03-14
19
글번호 157156
답변완료
문의 드립니다.
틱챠트에서 분단위 봉갯수를 나타내는 수식 부탁드립니다.
2022-03-14
1145
글번호 157155
답변완료
76328 수식 수정 부탁드립니다
만들어주신 수식 적용결과 위 차트에서
353.75 천정~354.95 천정 연결 수식
354.95 천정~355.95 천정 연결 수식
355.95 천정~355.50 천정 연결 수식
355.50 천정~353.40 천정 연결 수식
352.45 바닥~352.50 바닥 연결 수식
352.50 바닥~353.30 바닥 연결 수식
353.30 바닥~353.70 바닥 연결 수식
353.70 바닥~352.60 바닥 연결 수식
추가 부탁드립니다
1.전일과 분리되어 당일 부터 시작되는 종가 파라볼릭 차트에서
<파라볼릭 양전환시>
현재 파라볼릭 양전환 상태의 천정
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정
D-3 파라볼릭 양전환 상태의 천정
D-4 파라볼릭 양전환 상태의 천정
D-5 파라볼릭 양전환 상태의 천정
D-6 파라볼릭 양전환 상태의 천정..파라볼릭 양전환 상태의 천정 7개를 선6개로 연결 표시
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥
D-3 파라볼릭 음전환 상태의 바닥
D-4 파라볼릭 음전환 상태의 바닥
D-5 파라볼릭 음전환 상태의 바닥
D-6 파라볼릭 음전환 상태의 바닥
D-7 파라볼릭 음전환 상태의 바닥..파라볼릭 음전환 상태의 바닥 7개를 선6개로 연결 표시
<파라볼릭 음전환시>
현재 파라볼릭 음전환 상태의 바닥
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥
D-3 파라볼릭 음전환 상태의 바닥
D-4 파라볼릭 음전환 상태의 바닥
D-5 파라볼릭 음전환 상태의 바닥
D-6 파라볼릭 음전환 상태의 바닥..파라볼릭 음전환 상태의 바닥 7개를 선6개로 연결 표시
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정
D-3 파라볼릭 양전환 상태의 천정
D-4 파라볼릭 양전환 상태의 천정
D-5 파라볼릭 양전환 상태의 천정
D-6 파라볼릭 양전환 상태의 천정
D-7 파라볼릭 양전환 상태의 천정..파라볼릭 양전환 상태의 천정 7개를 선6개로 연결 표시
2.전일과 연속되어 진행되는 종가 파라볼릭 차트에서
<파라볼릭 양전환시>
현재 파라볼릭 양전환 상태의 천정
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정
D-3 파라볼릭 양전환 상태의 천정
D-4 파라볼릭 양전환 상태의 천정
D-5 파라볼릭 양전환 상태의 천정
D-6 파라볼릭 양전환 상태의 천정..파라볼릭 양전환 상태의 천정 7개를 선6개로 연결 표시
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥
D-3 파라볼릭 음전환 상태의 바닥
D-4 파라볼릭 음전환 상태의 바닥
D-5 파라볼릭 음전환 상태의 바닥
D-6 파라볼릭 음전환 상태의 바닥
D-7 파라볼릭 음전환 상태의 바닥..파라볼릭 음전환 상태의 바닥 7개를 선6개로 연결 표시
<파라볼릭 음전환시>
현재 파라볼릭 음전환 상태의 바닥
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥
D-3 파라볼릭 음전환 상태의 바닥
D-4 파라볼릭 음전환 상태의 바닥
D-5 파라볼릭 음전환 상태의 바닥
D-6 파라볼릭 음전환 상태의 바닥..파라볼릭 음전환 상태의 바닥 7개를 선6개로 연결 표시
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정
D-3 파라볼릭 양전환 상태의 천정
D-4 파라볼릭 양전환 상태의 천정
D-5 파라볼릭 양전환 상태의 천정
D-6 파라볼릭 양전환 상태의 천정
D-7 파라볼릭 양전환 상태의 천정..파라볼릭 양전환 상태의 천정 7개를 선6개로 연결 표시
감사합니다
*******************************************************************
안녕하세요
예스스탁입니다.
1
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0),CSarv(0);
var : T(0),cnt(0);
Array : hh[10](0),hd[10](0),ht[10](0),Htl[10](0);
Array : ll[10](0),ld[10](0),lt[10](0),ltl[10](0);
if Index == 0 or (Bdate != Bdate[1]) Then
{
Direction = 0;
SAR_Value = C;
AF_Value = 0.02;
HighValue = H;
LowValue = L;
EP = 0;
}
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = low;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = High;
}
}
CSarv = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if Close > Close[1] then Direction = 1;
else
if Close < Close[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if Close < Close[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if Close > Close[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(Low, LowValue);
HighValue = max(High, HighValue);
}
}
if CrossUp(C,CSarv) Then
{
t = 1;
hh[0] = h;
hd[0] = sDate;
ht[0] = sTime;
For cnt = 1 to 9
{
hh[cnt] = hh[cnt-1][1];
hd[cnt] = hd[cnt-1][1];
ht[cnt] = ht[cnt-1][1];
htl[cnt] = htl[cnt-1][1];
}
if hh[1] > 0 Then
{
htl[0] = TL_New(hd[1],ht[1],hh[1],hd[0],ht[0],hh[0]);
TL_SetColor(htl[0],RED);
}
TL_Delete(htl[2]);
}
if CrossDown(C,CSarv) Then
{
t = -1;
ll[0] = l;
ld[0] = sDate;
lt[0] = sTime;
For cnt = 1 to 9
{
ll[cnt] = ll[cnt-1][1];
ld[cnt] = ld[cnt-1][1];
lt[cnt] = lt[cnt-1][1];
ltl[cnt] = ltl[cnt-1][1];
}
if ll[1] > 0 Then
{
ltl[0] = TL_New(ld[1],lt[1],ll[1],ld[0],lt[0],ll[0]);
TL_SetColor(ltl[0],BLUE);
}
TL_Delete(ltl[2]);
}
if t == 1 Then
{
if hh[0] > 0 and h > hh[0] Then
{
hh[0] = h;
hd[0] = sDate;
ht[0] = sTime;
TL_SetEnd(htl[0],hd[0],ht[0],hh[0]);
}
}
if t == -1 Then
{
if ll[0] > 0 and l < ll[0] Then
{
ll[0] = l;
ld[0] = sDate;
lt[0] = sTime;
TL_SetEnd(ltl[0],ld[0],lt[0],ll[0]);
}
}
Plot1(t,"CSar",IFf(c>CSarv,RED,BLUE));
2
Input : AF(0.02), AFMAX(0.2);
Var : CSarv(0);
var : T(0),cnt(0);
Array : hh[10](0),hd[10](0),ht[10](0),Htl[10](0);
Array : ll[10](0),ld[10](0),lt[10](0),ltl[10](0);
CSarv = CSar(af,afmax);
if CrossUp(C,CSarv) Then
{
t = 1;
hh[0] = h;
hd[0] = sDate;
ht[0] = sTime;
For cnt = 1 to 9
{
hh[cnt] = hh[cnt-1][1];
hd[cnt] = hd[cnt-1][1];
ht[cnt] = ht[cnt-1][1];
htl[cnt] = htl[cnt-1][1];
}
if hh[1] > 0 Then
{
htl[0] = TL_New(hd[1],ht[1],hh[1],hd[0],ht[0],hh[0]);
TL_SetColor(htl[0],RED);
}
TL_Delete(htl[2]);
}
if CrossDown(C,CSarv) Then
{
t = -1;
ll[0] = l;
ld[0] = sDate;
lt[0] = sTime;
For cnt = 1 to 9
{
ll[cnt] = ll[cnt-1][1];
ld[cnt] = ld[cnt-1][1];
lt[cnt] = lt[cnt-1][1];
ltl[cnt] = ltl[cnt-1][1];
}
if ll[1] > 0 Then
{
ltl[0] = TL_New(ld[1],lt[1],ll[1],ld[0],lt[0],ll[0]);
TL_SetColor(ltl[0],BLUE);
}
TL_Delete(ltl[2]);
}
if t == 1 Then
{
if hh[0] > 0 and h > hh[0] Then
{
hh[0] = h;
hd[0] = sDate;
ht[0] = sTime;
TL_SetEnd(htl[0],hd[0],ht[0],hh[0]);
}
}
if t == -1 Then
{
if ll[0] > 0 and l < ll[0] Then
{
ll[0] = l;
ld[0] = sDate;
lt[0] = sTime;
TL_SetEnd(ltl[0],ld[0],lt[0],ll[0]);
}
}
Plot1(t,"CSar",IFf(c>CSarv,RED,BLUE));
즐거운 하루되세요
> 유튜버 님이 쓴 글입니다.
> 제목 : 지표 질문입니다
> 1.전일과 분리되어 당일 부터 시작되는 종가 파라볼릭 차트에서
<파라볼릭 양전환시>
현재 파라볼릭 양전환 상태의 천정
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정...파라볼릭 양전환 상태의 천정 3개를 연결선으로 표시
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥
D-3 파라볼릭 음전환 상태의 바닥...파라볼릭 음전환 상태의 바닥 3개를 연결선으로 표시
<파라볼릭 음전환시>
현재 파라볼릭 음전환 상태의 바닥
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥...파라볼릭 음전환 상태의 바닥 3개를 연결선으로 표시
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정
D-3 파라볼릭 양전환 상태의 천정...파라볼릭 양전환 상태의 천정 3개를 연결선으로 표시
2.전일과 연속되어 진행되는 종가 파라볼릭 차트에서
<파라볼릭 양전환시>
현재 파라볼릭 양전환 상태의 천정
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정...파라볼릭 양전환 상태의 천정 3개를 연결선으로 표시
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥
D-3 파라볼릭 음전환 상태의 바닥...파라볼릭 음전환 상태의 바닥 3개를 연결선으로 표시
<파라볼릭 음전환시>
현재 파라볼릭 음전환 상태의 바닥
D-1 파라볼릭 음전환 상태의 바닥
D-2 파라볼릭 음전환 상태의 바닥...파라볼릭 음전환 상태의 바닥 3개를 연결선으로 표시
D-1 파라볼릭 양전환 상태의 천정
D-2 파라볼릭 양전환 상태의 천정
D-3 파라볼릭 양전환 상태의 천정...파라볼릭 양전환 상태의 천정 3개를 연결선으로 표시
감사합니다
2022-03-14
1177
글번호 157154
답변완료
지표수식 의미 질문
죄송합니다. 수식 전체 내용 올리고 알고 싶은 부분만 맨 앞에 올립니다.
아래 수식의 의미를 알고 싶습니다.
감사합니다.
if nextTrend == 1 Then
{
maxLowPrice = max(lowPrice, maxLowPrice);
if highma < maxLowPrice and close < iff(isnan(low[1])==true,low,Low[1]) Then
{
trend = 1;
nextTrend = 0;
minHighPrice = highPrice;
}
}
else
{
minHighPrice = min(highPrice, minHighPrice);
if lowma > minHighPrice and close > iff(isnan(high[1])==true,high,high[1]) Then
{
trend = 0;
nextTrend = 1;
maxLowPrice = lowPrice;
}
}
아래 수식 전체 내용
-------------------------------------------------------------------------------
input : amplitude(2),channelDeviation(2);
var : trend(0),nextTrend(0),maxLowPrice(0),minHighPrice(0);
var : up(0),down(0),atrHigh(0),atrLow(0),arrowUp(0),arrowDown(0);
var : atr2(0),dev(0),highPrice(0),lowPrice(0),highma(0),lowma(0),ht(0);
atr2 = atr(100) / 2;
dev = channelDeviation * atr2;
highPrice = Highest(H,4);
lowPrice = Lowest(L,4);
highma = ma(high, 4);
lowma = ma(low, 4);
if nextTrend == 1 Then
{
maxLowPrice = max(lowPrice, maxLowPrice);
if highma < maxLowPrice and close < iff(isnan(low[1])==true,low,Low[1]) Then
{
trend = 1;
nextTrend = 0;
minHighPrice = highPrice;
}
}
else
{
minHighPrice = min(highPrice, minHighPrice);
if lowma > minHighPrice and close > iff(isnan(high[1])==true,high,high[1]) Then
{
trend = 0;
nextTrend = 1;
maxLowPrice = lowPrice;
}
}
if trend == 0 Then
{
if IsNaN(trend[1]) == False and trend[1] != 0 Then
{
up = iff(IsNaN(down[1]) == true,down,down[1]);
arrowUp = up - atr2;
}
else
{
up = iff(IsNan(up[1]) == true, maxLowPrice , max(maxLowPrice, up[1]));
}
atrHigh = up + dev;
atrLow = up - dev;
}
else
{
if isnan(trend[1]) == False and trend[1] != 1 Then
{
down = iff(IsNan(up[1]) == true, up , up[1]);
arrowDown = down + atr2;
}
else
{
down = iff(IsNan(down[1]) == true, minHighPrice ,min(minHighPrice, down[1]));
}
atrHigh = down + dev;
atrLow = down - dev;
}
ht = iff(trend == 0 , up , down);
plot1(ht, "HalfTrend",iff(trend == 0 ,BLUE,RED));
plot2(atrHigh,"ATR High",RED);
plot3(atrLow, "ATR Low", BLUE);
2022-03-14
1236
글번호 157153