커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6177
글번호 230811
답변완료
문의드립니다.
매번 감사합니다.
1. 코딩 변환 부탁드립니다.
inputs:
LookbackLength( 400 ),
RSILength( 14 ),
Fib1( 23.6 ),
Fib2( 31.1 ),
Fib3( 100 ),
PlotRSI( “Yes” ) ;
variables:
RawRSI( 0 ),
RangeHigh( 0 ),
RangeLow( 100 ),
ChartRange( 0 ),
Trendline1( 0 ),
Trendline2( 0 ),
Trendline3( 0 ) ;
RawRSI= RSI( Close, RSILength ) ;
if BarNumber > LookbackLength then
begin
RangeHigh = Highest(RawRSI,LookbackLength ) ;
RangeLow = Lowest(RawRSI, LookbackLength ) ;
ChartRange = RangeHigh - RangeLow ;
Trendline1 = Fib1/100*ChartRange + RangeLow ;
Trendline2 = Fib2/100*ChartRange + RangeLow ;
Trendline3 = Fib3/100*ChartRange + RangeLow ;
if PlotRSI = “Yes” or PlotRSI = “yes” then
Plot1( RawRSI )
else
Plot1( RangeLow + ChartRange / 2 ) ;
Plot2( TrendLine1 );
Plot3( TrendLine2 ) ;
Plot4( Trendline3 ) ;
end ;
2.
inputs:
Opt1( 7 ),
Opt2( 16 ),
Opt3( 2 ),
Opt4( 0.4 ),
Opt5( 1 ),
Opt6( 0.3 ),
Opt7( 0.6 ) ;
variables:
NH( 0 ),
NL( 0 ),
Ratio( 0 ),
Diff( 0 ),
Signal( 0 ) ;
NH = Close data2 ; { Advancing Issues }
NL = Close data3 ; { Declining Issues }
Ratio = NH / ( NH + NL ) ;
Diff = XAverage( Ratio, Opt1 )
- XAverage( Ratio, Opt2 ) ;
Signal = XAverage( Diff, Opt3 ) ;
{Long Entry}
if Ratio > Opt4 and Signal > Diff then
Buy next bar at market ;
{Long Exit}
if Ratio < Opt6 and Signal < Diff then
Sell next bar at market ;
{Short Entry}
if Ratio < Opt5 and Signal < Diff then
SellShort next bar at market ;
{Exit Short }
if Ratio > Opt7 and Signal < Diff then
BuyToCover next bar at market ;
Strategy: CCI – Breadth Momentum
{ Based on Trading Systems Using Multiple Indicators
by Dennis Peterson, Case #2, Momentum combined with CCI }
inputs:
Opt1( 6 ),
Opt2( 6 ),
Opt4( 9 ),
Opt5( -140 ),
Opt6( 4 ),
Opt7( 30 ),
Opt8( 180 ),
Opt9( -130 ) ;
variables:
NH( 0 ),
NL( 0 ),
Ratio( 0 ),
Diff( 0 ),
Signal( 0 ),
LongCCI( 0 ),
ShortCCI( 0 ) ;
NH = Close data2 ; { Advancing Issues }
NL = Close data3 ; { Declining Issues }
Ratio = NH / ( NH + NL ) ;
LongCCI = CCI( Opt1 ) ;
ShortCCI = CCI( Opt2 ) ;
Diff = XAverage( Ratio, 7 ) - XAverage( Ratio, 16 ) ;
Signal = XAverage( Diff, 2 ) ;
{ Long Entry }
if ( Ratio > .4
and Lowest( LongCCI, Opt4 ) < Opt5 )
or ( Signal > Diff
and Lowest( LongCCI, Opt4 ) < Opt5 )
then
Buy next bar at market ;
{ Long Exit }
if Ratio < .6
and Signal < Diff
and LongCCI > Opt8
then
Sell next bar at market ;
{Short Entry}
if Highest( ShortCCI, Opt6 ) > Opt7 then
SellShort next bar at market ;
{Short Exit}
if Ratio > .6
and Signal > Diff
and ShortCCI < Opt9
then
BuyToCover next bar at market ;
2018-02-28
390
글번호 117043
답변완료
질문드립니다.
input : P1(5),P2(10),P3(20),P4(50),P5(100);
var : cnt(0),sumV1(0,Data2), sumV2(0,Data2), sumV3(0,Data2), sumV4(0,Data2), sumV5(0,Data2),mav1(0,data2),mav2(0,data2),mav3(0,data2),mav4(0,data2),mav5(0,data2), cnt2(0),cnt3(0),cnt4(0),cnt5(0);
Array : C2[100](0,data2);
array : 이평[5[;
if data2(bdate != bdate[1]) Then{
for cnt = 1 to 99{
C2[cnt] = C2[cnt-1][1];
}
}
C2[0] = data2(c);
if C2[P1] > 0 then
if C2[P2] > 0 then
if C2[P3] > 0 then
if C2[P4] > 0 then
if C2[P5] > 0 then
{
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
sumV4 = 0;
sumV5 = 0;
for cnt = 0 to P1
{
sumV1 = sumV1+C2[cnt];
}
이평[1] = sumv1/P1;
for cnt = 0 to P2
{
sumV2 = sumV2+C2[cnt];
}
이평[2] = sumv2/P2;
for cnt = 0 to P3
{
sumV3 = sumV3+C2[cnt];
}
이평[3] = sumv3/P1;
for cnt = 0 to P4
{
sumV4 = sumV4+C2[cnt];
}
이평[4] = sumv4/P1;
for cnt = 0 to P5
{
sumV5 = sumV5+C2[cnt];
}
이평[5] = sumv5/P1;
}
data2차트에 일봉차트이평을 불러오는것인데 맞는지 모르겠습니다.
Array : H2[100](0,data2),L2[100](0,data2),c3[100](0,data2);
if data2(bdate != bdate[1]) Then{
for cnt2 = 1 to 99{
H2[cnt] = H2[cnt-1][1];
}
}
if data2(bdate != bdate[1]) Then{
for cnt3 = 1 to 99{
L2[cnt] = L2[cnt-1][1];
}
}
if data2(bdate != bdate[1]) Then{
for cnt4 = 1 to 99{
c3[cnt] = c3[cnt-1][1];
}
}
H2[0] = data2(H);
L2[0] = data2(L);
c3[0] = data2(c);
dayhigh daylow dayclose를 data2에 사용하기위해 답변하신 로직으로 구상했는데 이것도 이렇게 사용하면 될까요? 어디가 문제인지 올바로 출력되지는않습니다만..
2018-02-28
223
글번호 117033
답변완료
안녕하세요
고점을 찍은 후 0.8이상 하락한 후 다시 0.9이상 상승했을때 매수
식으로 나타낼수있나요? 감사합니다
2018-02-28
188
글번호 117030
답변완료
시스템식 부탁드립니다.
거래대상은 선물이며
매수식 : crossup(ma(c,5),ma(c,20))
매수청산식 : crossdown(ma(c,5),ma(c,20))
매수식에 의해 매수가 된 후
가격이 -10틱이 되면 손절이 되고
가격이 +10틱 터치하면 매수청산식이 발동하도록 할 수 있나요
+10틱 되기 전까진 청산식이 발동하지 않도록 하고 싶습니다.
2018-02-28
198
글번호 117029
답변완료
질문있습니다
차트가 그 상황까지의 고점을 30분이내 뚫지못하고 다섯번이상 터치하면 매도하는 전략
식으로 나타낼수있나요??
2018-02-28
187
글번호 117028
답변완료
부탁드림니다
오류사항을 좀 바로잡아 주세요.
dp>dm일때의 라인과 dp<dm일때의 dmiv라인의 색상을 바꾸려 합니다.
Input: P1(14),Period(14);
VAR: DMIv(0),DP(0),DM(0),dpp(0),dmm(0);
DMIv = DMI(P1);
DP = DIPlus(Period);
DM = DIMinus(Period);
Dpp = DMIv and dp>dm ;
Dmm = DMIv and dp<dm ;
Plot4(DP, "DIPlus");
Plot5(DM, "DIMinus");
Plot6(Dpp, "D+",iff(dpp>dpp[1],red,blue),def,iff(dpp>dpp[1],0,1));
Plot7(Dmm, "D-",iff(dmm>dmm[1],red,blue),def,iff(dmm>dmm[1],0,1));
2018-02-28
234
글번호 117027
답변완료
함수 변경이여..
핏봇 분봉 함수 수정좀 부탁드립니다.
[공식] 은 이런데요..
피봇포인트 = (전일고가+전일저가+전일종가)/3
2차저항 = 피봇포인트+전일고가-전일저가
1차저항 = 피봇포인트*2-전일저가
1차지지 = 피봇포인트*2-전일고가
2차지지 = 피봇포인트-전일고가+전일저가
제가 원하는 수식은
피봇포인트 = (당일고가+당일저가)/2
2차저항 = (피봇포인트+전일고가+오늘고가)/3
1차저항 = (피봇포인트+2차저항)/2 ---->피봇포인트와 2차저항 중간선
1차지지 = (피봇포인트+2차지지)/2 ---->피봇포인트와 2차지지 중간선
2차지지 = (피봇포인트+전일저가+오늘저가)/3
제가 만든건 피봇포인트만 맞고 아무리해도 안되네요ㅠ
Pivot = (DayHigh(0)+DayLow(0))/2;
R1 = 2*Pivot-DayLow(0);
R2 = (Pivot+DayHigh(0)+DayHigh(1))/3;
S1 = 2*Pivot-DayHigh(0);
S2 = (Pivot+DayLow(0)+DayLow(1))/3;
꼭 부탁드립니다.
2018-02-28
220
글번호 117026
답변완료
문의 드립니다
예스스팟에서 스마트폰을 문자알림을 보내려면 어떻게 해야 하나요 ?
2018-02-28
195
글번호 117025
답변완료
함수요청
안녕하세요?
함수 수정요청드립니다.
아래의 식에서 최근 5개봉을 당일 봉으로 한정하고자 합니다.
즉 아침에 시가봉이 생성되면 직전 전일 봉을 포함하여 카운팅하지 않고 당일 봉에서만 계산하여 매매하고자 합니다.
if MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 5)) then{
buy("b",AtStop,highest(H,5));
sell("s",AtStop,lowest(H,5));
}
SetStopProfittarget(PriceScale*50,PointStop);
SetStopLoss(PriceScale*10,PointStop);
2018-02-28
199
글번호 117024