커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8162
글번호 230811
답변완료
문의
첫째, 당일 피봇의 2차지지와저항을 고점저점을 잡고 0.618과 0.382의자리라인선과 종가선라인을 부탁드립니다.
둘째.아랫식 당일의 23.6%때마다 파동이 전환되서 고점저점을 잡아주는데요
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HH(0),LL(0),T(0);
if bdate != Bdate[1] Then{
T = 0;
HH = L;
LL = L;
}
if bdate == Bdate[1] Then{
if dayhigh > dayhigh[1] Then
T = 1;
if dayhigh < dayhigh[1] Then
T = -1;
}
if T == 1 and CrossDown(C,var5) Then
LL = L;
if T == -1 and CrossUp(C,var1) Then
HH = H;
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
plot1(HH,"H");
plot2(var1,"23.6");
plot3(var2,"38.2");
plot4(var3,"50.0");
plot5(var4,"61.8");
plot6(var5,"76.4");
plot7(LL,"L");
해당주와 해당월도 같은개념으로 적용변경된 수식 부탁드립니다.
1.해당주
input : Per1(50.0),Per2(55.0),Per3(65.0),Per4(120.0),Per5(130.0),Per6(135.0),Per7(265.0),Per8(275.0),Per9(280.0);
var : WH(0),WL(0),WH1(0),WL1(0),HH(0),LL(0),Didx(0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) and bdate != bdate[1] Then{
WH = H;
WL = L;
WH1 = WH[1];
WL1 = WL[1];
Didx = 0;
}
if bdate != bdate[1] Then
Didx = Didx+1;
if H > WH Then
WH = H;
if L < WL Then
WL = L;
if Didx == 1 and WH1 > 0 and WL1 > 0 then {
HH = max(WH,WH1);
LL = min(WL,WL1);
}
Else{
HH = WH;
LL = WL;
}
var1 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per5/100));
var6 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per6/100));
var7 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per7/100));
var8 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per8/100));
var9 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per9/100));
var11 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var12 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var13 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var14 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var15 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
var16 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per6/100));
var17 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per7/100));
var18 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per8/100));
var19 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per9/100));
plot1(var1);
plot2(var2);
plot3(var3);
plot4(var4);
plot5(var5);
plot6(var6);
plot7(var7);
plot8(var8);
plot9(var9);
plot10(var12);
plot11(var13);
plot12(var14);
plot13(var15);
plot14(var16);
plot15(var17);
plot16(var18);
plot17(var19);
2. 해당월
input : Per1(50.0),Per2(55.0),Per3(65.0),Per4(120.0),Per5(130.0),Per6(135.0),Per7(265.0),Per8(275.0),Per9(280.0);
var : MH(0),ML(0),MH1(0),ML1(0),HH(0),LL(0),Didx(0);
if bdate > bdate[1]+30 and bdate != bdate[1] Then{
MH = H;
ML = L;
MH1 = MH[1];
ML1 = ML[1];
Didx = 0;
}
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
Didx = Didx+1;
if H > MH Then
MH = H;
if L < ML Then
ML = L;
if Didx == 0 and MH1 > 0 and ML1 > 0 then {
HH = max(MH,MH1);
LL = min(ML,ML1);
}
Else{
HH = MH;
LL = ML;
}
var1 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per5/100));
var6 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per6/100));
var7 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per7/100));
var8 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per8/100));
var9 = 10^(LOG10(LL)+(LOG10(HH)-LOG10(LL))*(Per9/100));
var11 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var12 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var13 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var14 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var15 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
var16 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per6/100));
var17 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per7/100));
var18 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per8/100));
var19 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per9/100));
plot1(var1);
plot2(var2);
plot3(var3);
plot4(var4);
plot5(var5);
plot6(var6);
plot7(var7);
plot8(var8);
plot9(var9);
plot10(var12);
plot11(var13);
plot12(var14);
plot13(var15);
plot14(var16);
plot15(var17);
plot16(var18);
plot17(var19);
2016-12-05
197
글번호 104642
답변완료
안녕하세요 시스템 작성중 문의드립니다.
STAD 전략집을 따라서 코딩하고 있습니다.
기본 전략은
1차진입: 볼린저 밴드 하단 연속 2회 돌파시 다음봉 시가 매수진입
2차진입: 매수포지션 상태에서 볼린저밴드 하단에 리미트 주문진입
입니다. 1차진입 로직은 잘 구현이 된 것 같습니다. 그런데 2차 진입로직에서
사진에서 보다시피 2차매수진입 포인트가 현재봉기준의 볼린저밴드 하단이 아니고
이전 봉 기준의 볼린저 밴드에서 진입이 되었습니다. 그 이유를 알고싶습니다.
로직대로 매수포지션 상태에서 볼린저 하단을 하향돌파하면 추가 진입하려면 어떻게 해야할까요?
감사합니다.
2016-12-05
214
글번호 104633
답변완료
수식 부탁합니다.
안녕하세요?
수식좀 부탁드립니다.
*. 매수조건
1. 60MA 기울기가 상승이고.
2. 20MA 기울기가 상승일때.
3. 현재가는 60MA 가격보다 위에 있어야함.(60MA<현재가)
4. 현재봉이 5MA 위에 있을때 시가+2틱에서 매수.
*. 매도조건
1. 60MA 기울기가 하락이고.
2. 20MA 기울기가 하락일때.
3. 현재가는 60MA 가격보다 아래에 있어야함.(60MA>현재가)
4. 현재봉이 5MA 아래에 있을때 시가-2틱에서 매도.
2016-12-05
166
글번호 104632
답변완료
50850 관련 재문의 드립니다.
안녕하세요...관리자님...
말씀하신 바대로, 200봉으로 지정했는데도,
예상되는 결과가 나오질 않습니다...
수식을 적용했는데, 월봉 RSI Signal이 상승하는 종목만 검색되어야 하는데,
하락하는 종목이 검색되기도 하구요...
해서, 이상해서,
검색을 일봉, 주봉, 월봉을 클릭하여 각각 검색을 해봤는데,
결과는 이상하게도,
같은 종목들이 검색됩니다.
일봉, 주봉, 월봉의 RSI Signal과 각 봉의 5개봉 이동평균선이 다 틀릴텐데,
같은 종목이 검색되는것이 이상합니다.
제가 처음이라서 그런지 뭘 잘 못하고 있는 것인지 모르겠습니다.
바쁘시더라도, 함 잘 살펴봐 주시면 감사하겠습니다.
감사합니다.
(P.S)
현재봉 포함 5개봉의 RSI signal이 상승하는 것과,
5개봉 이동평균선이 하락하는 종목을 찾고 싶은 것입니다.
2016-12-05
176
글번호 104630
답변완료
input 변수 관련 문의 드립니다.
input변수의 변화에 따라 buycon 성립조건을 따로 설정하려 하려
아래와 같이 수식을 작성해 보았습니다.
op1, op2 값을 설정하는 방법이 잘못되었는지 진입자체가 되질 안네요.
수정 부탁 드립니다.
예)
input : op1(10), op2(20);
var : cma1(0), cma2(0);
cma1 = ma(c,op1);
cma2 = ma(c,op2);
var : buycon(false);
if op1==1 and op2==10 then
{ if 조건문 then
buycon = true; }
else if op1==2 and op2==10 then
{ if 조건문 then
buycon = true; }
else if op1==2 and op2==20 then
{ if 조건문 then
buycon = true; }
else buycon = false;
if buycon==true and 조건식 then
buy("buy1");
2016-12-05
173
글번호 104618
답변완료
수식수정좀 부탁드립니다.
다음과 같은 수식을 구했습니다.
근데 실행이 안되네요...
수정좀 부탁드립니다.
inputs:
MonthOfTrend( 12 ),
DayOfTrend( 19 ),
YearOfTrend( 2003 ),
ChannelPeriods( 34 ),
OverBoughtRegion( 75 ),
BearishPeriods( 21 ),
MultiplicationFactor( 3.2 ),
InitialStop( 10 ) ;
variables:
KeyDate( 0 ),
CountHoldingDays( false ),
HoldingDays( 0 ),
Index( 0 ),
OB( 0 ),
Bullish( 0 ),
Bearish( 0 ),
RangeA( 0 ),
StopLevel( 0 ),
BearStop( 0 ) ;
if CurrentBar = 1 then
begin
KeyDate = ELDate( MonthOfTrend, DayOfTrend,
YearOfTrend ) ;
end ;
if Date >= KeyDate and Date[1] < KeyDate then
CountHoldingDays = true ;
if CountHoldingDays then
HoldingDays = HoldingDays + 1 ;
Index = RSI( Close, ChannelPeriods ) ;
OB = Index - OverBoughtRegion ;
Bullish = Close - ( Close * OB * 0.01 ) ;
if HoldingDays > 0 then
begin
if BearishPeriods <> 0 then
begin
Bearish = Summation( AbsValue( Low - Low[1] ),
BearishPeriods ) / BearishPeriods ;
RangeA = Summation( Close - Low,
BearishPeriods ) / BearishPeriods ;
end ;
StopLevel = Close - ( ( Bearish + RangeA ) *
MultiplicationFactor ) ;
if StopLevel > BearStop[1] and
StopLevel > InitialStop then
BearStop = StopLevel
else if StopLevel > BearStop[1] and
StopLevel < InitialStop then
BearStop = InitialStop
else if StopLevel <= BearStop[1] then
BearStop = BearStop[1]
else
BearStop = StopLevel * HoldingDays ;
Plot1( High, "High" ) ;
Plot2( Low, "Low" ) ;
Plot3( Open, "Open" ) ;
Plot4( Close, "Close" ) ;
Plot5( Bullish, "BullishLn" ) ;
Plot6( BearStop, "BearStopLn" ) ;
Plot7( Bullish, "BullishBK" ) ;
Plot8( BearStop, "BearStopBK" ) ;
end ;
좋은 하루되세요..
2016-12-05
209
글번호 104608
답변완료
지표식 문의합니다.
일목균형표에서
전환선을 9, 기준선을 26, 후행스팬을 26, 선행스팬1을 3, 선행스팬2를 45로 해서 지표식좀 작성해주세요.
2016-12-05
188
글번호 104607
답변완료
볼린져밴드 신호
Input : Period(12), D(2);
var : value1(0),value2(0);
value1 = BollBandDown(Period,D); //하단밴드
value2 = BollBandUp(Period,D); //상단밴드
if crossup(C,value1) then
buy();
if crossdown(c,value2) then
sell();
시스템식에서 볼밴 상단 돌파시 매도 하단 돌파시 매수 신호식인데 캡쳐에서 보시는 바와 같이 상단을 돌파해도 하단을 돌파해서 신호가 나오지 않는 경우가 있는데 왜 그런지.. 진입시기는 모든 시입시기로 체크해 놓은 상태입니다.
2016-12-04
251
글번호 104606
답변완료
종목검색으로 변경할수 있을까요?
var1 = ma(c,5);
var2 = ma(c,20);
var3 = ma(C,60);
if var1 > var2 and C > var3 and C > O Then
buy();
if var1 < var2 and C < var3 and C < O Then
sell();
2016-12-04
190
글번호 104605