커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4689
글번호 230811
답변완료
문의드립니다.
if C > C[1] Then
var1 = 1;
if C < C[1] Then
var1 = -1;
if var1 == 1 Then
plot1(V,"1",RED);
Else
plot1(V,"1",BLACK);
거래량 수식어입니다. 위 수식에서 빨강색차트만나오고 검은색차트는 비워있게하는 수식어부탁립니다. 그리고 반대로 검은색차트만나오고 빨강색차트는 비워있게하는 수식어부탁드립니다. 항상 감사합니다.
2016-01-23
116
글번호 94712
답변완료
글번호 46065번(글번호 46052 재질문(251호)) 재질문
안녕하세요?
글번호 46052번을 재질문 드렸던 글번호 46065번 재질문입니다.
아래의 함수를 60분봉으로 CL.1을 돌려보면 그림 첨부와 같이 1/20 9시 시가에 매도신호가 떠야 하나 뜨지 않습니다.
(22일 16시 시가에도 매수신호가 발생하지 않았으며 기타 몇군데 관찰이 되고 있습니다.)
적용한 함수는 다음과 같습니다.
input : xtime(60000);
var : tcond(false),cond1(false),cond2(false);
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
if bdate != bdate[1] Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
var1 = ma(c,15);
var2 = ma(c,21);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] Then
buy("B");
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then
sell("S");
SetStopLoss(1.8,PercentStop);
SetStopProfittarget(3.2,PercentStop);
2016-01-23
152
글번호 94711
답변완료
수익수식검증 요청 및 추가사항[매도진입부분10틱~100틱까지]
===>100틱까지 매수진입후-->수익표시 수식을 만들었는되요
무엇이 잘못되었는지 검증이 아니되옵니다요
수식을 검정하여 주시고요
repeat---반드시 "매도진입후"~"매수진입후"는빼시고===>오직"틱"만 -->
현재 오른쪽에나오는것을 챠트왼쪽에 나오게 하여주세요
감사합니당~!!!
===>그리고 숫자뒤에30.00에서 30만나오게하여주시고
===>매도진입후는 40틱까지만되어있는데 이것도 100틱까지해야하는지요--
매수진입식과 매도진입식 똑같이해야 되는지요--->
===>매도와 매수진입후 100틱까지 수식을 "틱"표시되게 할려구요
항상 수고넘넘 많이 하시어
감사합니다
=================================================================
Input : Period1(3),Period2(3), shortPeriod(5), longPeriod(12), Period(5),Length1(14),Length2(3),Length3(3),rsiperiod(12),trixperiod(7);
Inputs: Length(7), Pval(0.01);
Variables: Mom(0),Tl(0),tx(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
var : DD(0),TT(0),TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0);
var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
If DayClose(1) > DayOpen(1) Then
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else If DayClose(1) < DayOpen(1) Then
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Mom = C- C[Length];
value1 = ema( c,period1);
value2 = ma(macd(shortperiod,longperiod),period);
value3 = StochasticsD(Length1,Length2,Length3);
value4 = rsi(rsiperiod);
value5 = trix(trixperiod);
value6 = highest(H, Period2);
value7 = lowest(l,period2);
if value1- value1[1] > 0 and value2 > value2[1] and value3 - value3[1] > 0 and value4 - value4[1] > 0 and value5 - value5[1] > 0
and (value6 + value7)/2 - (value6 + value7[1])/2 >0 and Mom > 0 AND Mom >= Mom[1] AND MarketPosition() <> 1 then
# 매수/매도청산
{
Buy("매수",onclose);
}
# 매도/매수청산
If value1- value1[1] < 0 and value2 < value2[1] and value3 - value3[1] < 0 and value4 - value4[1] < 0 and value5 - value5[1] < 0
and (value6 + value7)/2 - (value6 + value7[1])/2 < 0 and Mom < 0 AND Mom <= Mom[1] AND MarketPosition() <> -1 Then
{
Sell("매도",onclose);
}
var : TL1(0),TL2(0),TL3(0),TL4(0);
var : TX1(0),TX2(0),TX3(0),TX4(0);
if MarketPosition == 1 Then{
TL_Delete(tl1);
TL1 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*10,sdate,stime,EntryPrice+PriceScale*10);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,EntryPrice+PriceScale*10,"틱 "+NumToStr(PriceScale*10,2)+" 수익");
Text_SetStyle(Tx1,2,2);
TL_Delete(tl2);
TL2 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*20,sdate,stime,EntryPrice+PriceScale*20);
Text_Delete(tx2);
tx2 = Text_New(sdate,stime,EntryPrice+PriceScale*20,"틱 "+NumToStr(PriceScale*20,2)+" 수익");
Text_SetStyle(Tx2,2,2);
TL_Delete(tl3);
TL3 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*30,sdate,stime,EntryPrice+PriceScale*30);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,EntryPrice+PriceScale*30,"틱 "+NumToStr(PriceScale*30,2)+" 수익");
Text_SetStyle(Tx3,2,2);
TL_Delete(tl4);
TL4 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*40,sdate,stime,EntryPrice+PriceScale*40);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,EntryPrice+PriceScale*40,"틱 "+NumToStr(PriceScale*40,2)+" 수익");
Text_SetStyle(Tx4,2,2);
TL_Delete(tl5);
TL5 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*50,sdate,stime,EntryPrice+PriceScale*50);
Text_Delete(tx5);
tx5 = Text_New(sdate,stime,EntryPrice+PriceScale*50,"틱 "+NumToStr(PriceScale*50,2)+" 수익");
Text_SetStyle(Tx5,2,2);
TL_Delete(tl6);
TL6 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*60,sdate,stime,EntryPrice+PriceScale*60);
Text_Delete(tx6);
tx6 = Text_New(sdate,stime,EntryPrice+PriceScale*60,"틱 "+NumToStr(PriceScale*60,2)+" 수익");
Text_SetStyle(Tx6,2,2);
TL_Delete(tl7);
TL7 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*70,sdate,stime,EntryPrice+PriceScale*70);
Text_Delete(tx7);
tx7 = Text_New(sdate,stime,EntryPrice+PriceScale*70,"틱 "+NumToStr(PriceScale*70,2)+" 수익");
Text_SetStyle(Tx7,2,2);
TL_Delete(tl8);
TL8 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*80,sdate,stime,EntryPrice+PriceScale*80);
Text_Delete(tx8);
tx8 = Text_New(sdate,stime,EntryPrice+PriceScale*80,"틱 "+NumToStr(PriceScale*80,2)+" 수익");
Text_SetStyle(Tx8,2,2);
TL_Delete(tl9);
TL9 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*90,sdate,stime,EntryPrice+PriceScale*90);
Text_Delete(tx9);
tx9 = Text_New(sdate,stime,EntryPrice+PriceScale*90,"틱 "+NumToStr(PriceScale*90,2)+" 수익");
Text_SetStyle(Tx9,2,2);
TL_Delete(tl10);
TL10 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*100,sdate,stime,EntryPrice+PriceScale*100);
Text_Delete(tx10);
tx10 = Text_New(sdate,stime,EntryPrice+PriceScale*100,"틱 "+NumToStr(PriceScale*100,2)+" 수익");
Text_SetStyle(Tx10,2,2);
}
if MarketPosition == -1 Then{
TL_Delete(tl1);
TL1 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*10,sdate,stime,EntryPrice-PriceScale*10);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,EntryPrice-PriceScale*10,"틱 "+NumToStr(PriceScale*10,2)+" 수익");
Text_SetStyle(Tx1,2,2);
TL_Delete(tl2);
TL2 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*20,sdate,stime,EntryPrice-PriceScale*20);
Text_Delete(tx2);
tx2 = Text_New(sdate,stime,EntryPrice-PriceScale*20,"틱 "+NumToStr(PriceScale*20,2)+" 수익");
Text_SetStyle(Tx2,2,2);
TL_Delete(tl3);
TL3 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*30,sdate,stime,EntryPrice-PriceScale*30);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,EntryPrice-PriceScale*30,"틱 "+NumToStr(PriceScale*30,2)+" 수익");
Text_SetStyle(Tx3,2,2);
TL_Delete(tl4);
TL4 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*40,sdate,stime,EntryPrice-PriceScale*40);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,EntryPrice-PriceScale*40,"틱 "+NumToStr(PriceScale*40,2)+" 수익");
Text_SetStyle(Tx4,2,2);
}
if date != date[1] Then{
DD = sdate[1];
TT = stime[1];
}
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
TL_Delete(TL18);
TL11 = TL_New(dd,tt,dayopen,sdate,stime,dayopen);
TL12 = TL_New(dd,tt,dayopen(1),sdate,stime,dayopen(1));
TL13 = TL_New(dd,tt,DayHigh(1),sdate,stime,DayHigh(1));
TL14 = TL_New(dd,tt,daylow(1),sdate,stime,daylow(1));
TL15 = TL_New(dd,tt,DayClose(1),sdate,stime,DayClose(1));
TL16 = TL_New(dd,tt,pivot,sdate,stime,pivot);
TL17 = TL_New(dd,tt,var3,sdate,stime,var3);
TL18 = TL_New(dd,tt,(dayhigh+daylow)/2,sdate,stime,(dayhigh+daylow)/2);
Text_Delete(tx11);
Text_Delete(tx12);
Text_Delete(tx13);
Text_Delete(tx14);
Text_Delete(tx15);
Text_Delete(tx16);
Text_Delete(tx17);
Text_Delete(tx18);
tx11 = Text_New(sdate,stime,dayopen,"당일시가:"+NumToStr(dayopen,2));
tx12 = Text_New(sdate,stime,dayopen(1),"전일시가:"+NumToStr(dayopen(1),2));
tx13 = Text_New(sdate,stime,DayHigh(1),"전일고가:"+NumToStr(DayHigh(1),2));
tx14 = Text_New(sdate,stime,daylow(1),"전일저가:"+NumToStr(daylow(1),2));
tx15 = Text_New(sdate,stime,DayClose(1),"전일종가:"+NumToStr(DayClose(1),2));
tx16 = Text_New(sdate,stime,pivot,"피봇:"+NumToStr(pivot,2));
tx17 = Text_New(sdate,stime,var3,"디마크중심:"+NumToStr(var3,2));
tx18 = Text_New(sdate,stime,(dayhigh+daylow)/2,"당일중심:"+NumToStr((dayhigh+daylow)/2,2));
Text_SetStyle(Tx11,2,2);
Text_SetStyle(Tx12,2,2);
Text_SetStyle(Tx13,2,2);
Text_SetStyle(Tx14,2,2);
Text_SetStyle(Tx15,2,2);
Text_SetStyle(Tx16,2,2);
Text_SetStyle(Tx17,2,2);
Text_SetStyle(Tx18,2,2);
2016-01-25
204
글번호 94710
답변완료
수식 검토 부탁드립니다
안녕하세요 수고많으십니다
시가 기준하여 1포인트간격으로 5등분선 만들고 한구간에서 3번이상 매매하면 손실청산이던
이익청산이던 그 구간에서는 더이상 매매하지 않고 다음 구간으로 현재가가 상승하거나
하락할 때 매매하는 수식을 다음과 같이 만들었습니다
그런데 시물레이션을 해보니까 첨부된 그림과 같이 3번이상 되었는데도 신호가 나옵니다 무엇이 잘못되었는지 검토부탁드립니다
--수식--
input : Entry(3);
var : cnt(0);
var : upcnt1(0),upcnt2(0),dncnt1(0),dncnt2(0);
value1 = ma(C, 5);
value2 = ma(C, 20);
#각 구간별 진입횟수 카운트
upcnt1 = 0;
upcnt2 = 0;
dncnt1 = 0;
dncnt2 = 0;
for cnt = 0 to 100{
if sdate == EntryDate(cnt) Then
{
if EntryPrice(cnt) >= dayopen and EntryPrice(cnt) < dayopen+1 Then
upcnt1 = upcnt1+1;
if EntryPrice(cnt) >= dayopen+1 and EntryPrice(cnt) < dayopen+2 Then
upcnt2 = upcnt2+1;
if EntryPrice(cnt) < dayopen and EntryPrice(cnt) > dayopen-1 Then
dncnt1 = dncnt1+1;
if EntryPrice(cnt) <= dayopen-1 and EntryPrice(cnt) < dayopen-2 Then
dncnt2 = dncnt2+1;
}
}
if CrossUP(value1, value2) Then{
if c >= dayopen and c < dayopen+1 and upcnt1 < Entry Then
buy("b1");
if c >= dayopen+1 and c < dayopen+2 and upcnt2 < Entry Then
buy("b2");
if c < dayopen and c >= dayopen-1 and dncnt1 < Entry Then
buy("b3");
if c <= dayopen-1 and c < dayopen+2 and dncnt2 < Entry Then
buy("b4");
}
if CrossDown(value1, value2) Then{
if c >= dayopen and c < dayopen+1 and upcnt1 < Entry Then
sell("s1");
if c >= dayopen+1 and c < dayopen+2 and upcnt2 < Entry Then
sell("s2");
if c < dayopen and c >= dayopen-1 and dncnt1 < Entry Then
sell("s3");
if c <= dayopen-1 and c < dayopen+2 and dncnt2 < Entry Then
sell("s4");
}
2016-01-22
185
글번호 94709
답변완료
수식요청
안녕하세요.
귀사에서 제공하는 파라볼릭(종가) 신호에 하기조건을 추가한 수식 요청드립니다.
* 추가 사항 : Price Osc 0선 이상에서 매수금지 / 이하에서 매도 금지
Input수치 변경 가능하도록 부탁드립니다.
감사합니다.
2016-01-22
133
글번호 94708
답변완료
문의 드립니다.
1. 시스템 설정에서 시간자동정정 주문에서
청산만 시간자동정정이 가능하도록 할 수 있는 방법이 있나요?
2. 그리고 setstop 관련 식으로 청산 주문 들어간 것들도
시간자동정정 주문이 가능한가요?
3. 주문식 자체에서 +1틱이나 시장가 등으로 체결 방식을 만들어
줄 수 있는지도 궁굼합니다.
감사합니다. 좋은 주말 보내세요
2016-01-22
122
글번호 94707
답변완료
부탁드립니다
전일종가대비 상승 하락 등락율 을 1 2 3 4 5 6 7............길게해주심좋코요
특정주가대비 (지정가)상승하락등락율 1234567...........가능하시면 같이해주시면
부탁드립니다
건강하시고 건승하시길 기원합니다 항상애써주셔서 다시금 감사드립니다
2016-01-22
133
글번호 94706
답변완료
데이타 문의드립니다
api나 dde나 다른 방법 통해
10시 11:20 1:30분 정도에 제공되는
기관순매수 금액이나 수량(잠정)
외국인순매수 금액이나 수량(잠정)
외국계순매수 수량
10종목 정도를
1분마다 엑셀로 가져올 수 있는 방법이 있는지?
원하는 종목의
매도호가 10개의 합
매수호가 10개의 합
을 가져올 수 있는지?
궁금합니다
2016-01-22
198
글번호 94705
답변완료
문의드립니다
9시부터 14시30분 까지
진입
이평선20 과 이평선 50
위면 매수
아래면 매도
청산
이평선20 과 이평선 50
아래면 매수청산
위면 매도청산
피라미딩
기본 진입과 청산 신호가 위와같이 있고
피라미딩으로 10 봉 지날때 1계약 추가
전체 프로핏타겟
기본진입+피라미딩 1계약 추가 되고
전체 수익이 10포인트 이면 청산
감사합니다
2016-01-22
128
글번호 94704