커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3450
글번호 230811
답변완료
검색식 부탁 드립니다.
수고 많으십니다!
1봉전~5봉전 까지 상한가 나온종목 중에서 5일 이평선을 이탈 하는 종목을 검색 하고 싶습니다.
검색식 부탁 드립니다. 꾸~~벅!
2021-04-15
921
글번호 148053
답변완료
부탁드립니다
#,안녕하세요.
국선에서 전일의 변동폭을 당일에 시가기준으로 스윙하이로우로 출력부탁드립니다.
"언제나 많은 도움에 항상 감사드립니"
2021-04-15
897
글번호 148052
답변완료
문의
음봉의 거래량이 앞봉의 거래량보다 많어면 그음봉의 캔들위에 검은점이 나오게 부탁드립니다.
2021-04-15
858
글번호 148049
답변완료
문의 드립니다
안녕하세요
아래 사항에 대해 두가지 문의 드립니다
1 아래 문법이 적용되는지
2 지표 작성후 f4늘 눌러 문법검증하고 f5를 누르면 지표속성창이 나타난다고 하는데
어떻게 f5를 누르면 지표속성창이 나타나는지 부탁 드립니다
감사합니다.
Inputs: FastMovAvg1(12), SlowMovAvg1(26), MACDMovAvg1(9);
Var : MACDV1(0,data1) , MACDS1(0,data1);
MACDV1 = (ema((c),FastMovAvg1))-(ema(((c)),SlowMovAvg1));
MACDS1 = (ema(MACDv1,MACDMovAvg1));
var1 = MACDV1;
var2 = MACDS1;
if (var1 > var2) Then
var3 = 1;
if (var1 < var2) Then
var3 = -1;
if var3 == 1 then
{
plot1(9999999999,"라인1");
plot2(0,"라인");
}
if var3 == -1 Then
{
plot1(0,"라인1");
plot2(9999999999,"라인");
2021-04-15
1004
글번호 148041
답변완료
수식어 부탁드립니다
var : entry(0);
input : StartTime(070000),EndTime(055000),xtime(055500);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
var : Tcond(false);
if sDate != sDate[1] then
SetStopEndofday(xtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
}
if bdate != bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if MarketPosition <= 0 and entry < 1 Then
buy("b",atlimit,dayhigh-PriceScale*120);
if MarketPosition == 1 Then
exitlong("bx",atlimit,lowest(L,BarsSinceEntry)+PriceScale*60);
if MarketPosition >= 0 and entry < 1 Then
sell("s",atlimit,daylow+PriceScale*3500);
if MarketPosition == -1 Then
ExitShort("sx",atlimit,Highest(H,BarsSinceEntry)-PriceScale*120);
if sdate != sdate[1] Then
SetStopEndofday(55000);
if bdate != bdate[1] Then
SetStopEndofday(0);
---------------------------
기존의 하늘색 buy(-120) 청산( +60)에서 청산싯점인 (+60)은 최저점에서 (+60)으로 신호가 나옵니다 .
노란색 buy(=120)이후 바로 (+60) 청산이 되는 buy, sell수식어로 부탁드립니다.
2021-04-15
994
글번호 148040
답변완료
수식 수정 요청부탁드립니다.
안녕하세요. 어제 작성해주신 수식으로 시뮬레이션을 해봤는데 약간 제 생각과
다르게 되는것 같아서 수정 좀 부탁드립니다.
제가 원하는 것은 0.77260에 1계약 매수 들어가면 피라미딩식으로 0.77270에 매수가 되고,
또 0.77280에 매수가 되고 그 다음에 흐름이 바뀌어 0.77270이 되었을 때는 직전에 매수했던
1계약이 매수 청산 된 후에 다시 0.77280이 되면 다시 매수가 진행되는 시스템을 원하거든요.
근데 아래 식으로는 거래내역을 보니 좀 다르게 진행이 되는것 같더라구요.
요약하자면 추세를 따라가면서 1계약씩 늘려가다가 되돌림이 되면 1계약씩 줄여나가고, 최초
매수했던 수량까지 다 손절이 되면, 그 다음부터는 매도로 신규진입되면서 1계약씩 피라미딩
진행되는것을 원합니다.
장대양봉이나, 장대음봉이 나왔을 경우 수익을 극대화하고자 하는 방법을 원하거든요.
보시고, 수정 좀 부탁드립니다.
===============================================================
input : 최초진입(1);
var : LP(0);
if sDate != sDate[1] Then
SetStopEndofday(55500);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
LP = 0;
if 최초진입 == 1 Then
Buy("b1",AtMarket,DEF,1);
if 최초진입 == -1 Then
Sell("s1",AtMarket,DEF,1);
}
Else
{
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
LP = LatestExitPrice(0);
Buy("bb",AtStop,LP+0.001,1);
ExitLong("bx",AtStop,LP-0.001,"",1,1);
}
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
LP = LatestExitPrice(0);
Sell("ss",AtStop,LP-0.001,1);
ExitShort("sx",AtStop,LP+0.001,"",1,1);
}
if MarketPosition == 0 and LP > 0 Then
{
Buy("b",AtStop,ExitPrice(1)+0.001,1);
Sell("s",AtStop,ExitPrice(1)-0.001,1);
}
}
즐거운 하루되세요
> 바다가좋아 님이 쓴 글입니다.
> 제목 : 수식 추가 수정 요청부탁드립니다.
> 안녕하세요. 어제 전량 청산 조건으로 수식 작성 부탁드렸는데 하나씩 청산하는
전략으로도 시뮬레이션을 해보고 싶어서요.
< 요청 사항 >
1. 피라미딩으로 수량 증가하면서 늘려가다가 그 반대방향으로 진행시에는 그 방향으로
하나씩 청산(손절) 되면서, 다 청산 되면 신규 매수 or 매도 진입이 되는 방식으로
만들었으면 합니다. 흐름을 따라가면서 계약수를 하나씩 증가시키거나, 감소시키고자
합니다.
2. 매매종목 : 해외선물(Australian Dollar) (5분봉 기준)
3. 매매 예시
1) 최초 시장가 1계약 매수 or 매도
2) 매수 or 매도와 동시에 손절(+- 0.001pt)만 설정
3) 최초 매수 or 매도한 가격 기준으로 수익 진행시 +0.001포인트마다 1계약씩
추가 매수 or 매도
ex) AUD 기준 0.76545 1계약 매수 -> 0.76645 추가 1계약 매수 ->
0.76745 추가 1계약 매수 -> 0.76845 추가 1계약 매수 -> 이후 가격이 0.76745로
되돌림 되었을 때는 먼저 0.76845에서 매수했던 1계약만 매수 청산(손절) ->
0.76745 에서 1계약 매수청산(손절) -> 0.76645 1계약 매수 청산(손절)
-> 0.76545 1계약 매수청산(손절) -> 이후 가격이 0.76445까지 내려가면 0.76445
1계약 매도 진입 -> 0.76345 1계약 매도 -> 0.76245 추가 1계약 매도 -> (반복)
4) 각 추가매수 or 추가매도한 계약별로 진입할 때마다 손절(-0.001포인트) 설정
5) 청산은 장 종료시에 시장가로 일괄 청산 설정(익일 05:55분)
6) 아~ 그리고 처음에 매수로 진행하지 않고, 시장 상태에 따라 제가 매수 or 매도를
한 후에 위의 방법대로 설정되어 시스템이 움직일 수 있도록 만들었으면 합니다.
항상 감사드립니다. 그럼 수고하세요.
2021-04-15
941
글번호 148039
답변완료
늘 감사합니다
5계약 진입
1 . 이평선 5 10 20 30 40
2 . 주가가 이평선 30 40 돌파 이탈 한 마지막 자리 고점 저점 기억
매번기억하고 이전 기억값은 삭재
3 . 이평선 20 선 과 주가 (현재가격) 이격도 관계
hts 처음 접속하고 시스템 적용하면 직전 2번 조건 기억하기
(2번 조건을 기억할수 없다면 변수에 손으로 적어준다 )
손절1 20틱 5계약
손절2 5 이평선이 20 이평선 이탈시 5계약 (매도금지)
현 조건에서 5 이평선이 20 이평선을 돌파하면 -- 추가 매수3
청산3 20 이평선과 주가 이격이 100 이상이면 1계약
청산4 20 이평선과 주가 이격이 90 이상나왔고 10 이평선이 양에서 음으로 변하면 1계약
현 포지션에서 청산 3 4 나올때 마다 차트에 표시
예)- 한번 청산 나오면 "청산1"
두번째 청산 나오면 "청산2"
세번재 청산 나오면 "청산3"매수 -- 5 이평선이 30 40 이평선을 돌파하면 -- 매수1
매수1 진입해서 손절이 나오면
마지막 (기억한 가격) 가격을 돌파하면(즉 매수1 에 고정) -- 매수2
네번째 청산 나오면 "청산4"
다섯번째 청산 나오면 "완청"
이런 형식으로요 Condition11 = true;
T3 = Text_New(sdate,stime,H," 청산1");
Text_SetColor(T3, 255);
Text_SetStyle(T3,2,1);
매도 -- 5 이평선이 30 40 이평선을 이탈하면 -- 매도1
매도1 진입해서 손절이 나오면
마지막 (기억한 가격) 가격을 돌파하면(즉 매도1 에 저정) -- 매도2
손절1 20틱
손절2 5 이평선이 20 이평선 돌파시 5계약 (매수금지)
현 조건에서 5 이평선이 20 이평선을 이탈하면 -- 추가 매도3
청산3 20 이평선과 주가 이격이 100 이상이면 1계약
청산4 20 이평선과 주가 이격이 90 이상나왔고 10 이평선이 음에서 양으로 변하면 1계약
현 포지션에서 청산 3 4 나올때 마다 차트에 표시
예)- 한번 청산 나오면 "청산1"
두번째 청산 나오면 "청산2"
세번재 청산 나오면 "청산3"
네번째 청산 나오면 "청산4"
다섯번째 청산 나오면 "완청"
이런 형식으로요 Condition11 = true;
T3 = Text_New(sdate,stime,H," 청산1");
Text_SetColor(T3, 255);
Text_SetStyle(T3,2,1);
2021-04-15
1068
글번호 148038
답변완료
[재문의]어제 문의한 수식이 잘 작동하지 않아요
안녕하세요
자꾸 수정해서 죄송합니다
아래 숫자가 표현되는 위치만 수정해주신다면 정말 감사드리겠습니다
1.LL과 HH지점에 숫자가 표현되어야 하는데 조건식 완성봉에서 숫자나옵니다
(예를 들어 'L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2]' 조건이 완성되는 봉에 '+1'이 나옵니다. 제 의도는 L[2]에 숫자가 표현되는 것입니다)
노고에 감사합니다
------
#변경된수식
var : LL(0),HH(0),tx1(0),tx2(0);
if var2 == 0 and (LL == 0 or (LL > 0 and L > LL)) and L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2] Then
{
var1 = var1+1;
LL = L[2];
tx1 = Text_New(sDate,sTime,H,"+"+NumToStr(var1,0));
Text_SetStyle(tx1,2,1);
PlotPaintBar(H,L,"강조",black);
}
else
{
if L < LL Then
{
var1 = 0;
ll = 0;
}
}
if var1 == 0 and (HH == 0 or (HH > 0 and H < HH)) and H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2] Then
{
var2 = var2+1;
HH = H[2];
tx2 = Text_New(sDate,sTime,L,"-"+NumToStr(var2,0));
Text_SetStyle(tx2,2,0);
PlotPaintBar(H,L,"강조",gray);
}
Else
{
if H > HH Then
{
var2 = 0;
hh=0;
}
}
2021-04-15
1036
글번호 148037
답변완료
시스템 의뢰
수고 하십니다 !
현재가 에서 7틱 이상 하락 하고 1 이평선 이 5 이평선 을 크로즈업 할때 2틱 아래로
매수 하고 ,
현재가 에서 7틱 이상 상승 하고 1 이평선 이 5 이평선 을 크로즈다운 할때 2틱 위로
매도 하는 시스템 을 부탁 드립니다.
***** 수고 하세요 *****
2021-04-15
963
글번호 148036