커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5451
글번호 230811
답변완료
답변 주신 내용에 추가하고자 하는 내용이 있어 문의드립니다.
안녕하세요
답변주신 수식에 추가하고 싶은 사항이 있어서 글 올리게 되었습니다.
---------------------------------------------------------------------
답변 주신 내용은
input : P1(5),P2(20),P3(60);
var1 = ma(C,P1);
var2 = ma(C,P2);
var3 = ma(C,P3);
value1 = max(var1,var2,var3);
value2 = min(var1,var2,var3);
value3 = (value1-value2)/value2*100;
plot1(value3);
입니다.
-----------------------------------------------------
상기 수식에
Input으로 변경 가능한 "A"라는 기준선이 추가될 수 있도록 변경하고 싶고
추가적으로 지표의 그래프가 "A"라는 기준선에 닿거나 넘으면 넘는 곳에
색깔의 변경이나 화살표 혹은 다른 모양이 발생하여 시각적으로 향상될 수 있으면
좋겠습니다.
감사합니다.
2020-02-06
233
글번호 135695
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
아래의 4개의 지표선들을 테투리로 하여 4개선 모두의 안쪽을 색채우기 하고자 합니다.
수식을 어떻게 작성해야 하는지요? 부탁드립니다.
1. 다음 수식의 plotno1 선
Input : 기간1(120);
value1 = Ceiling((기간1 + 1) * .5);
value2 = ma(ma(C, value1),value1);
input : 기간2(120);
var : Hval(0),Lval(0),MID(0);
Hval = highest(H,기간2);
Lval = Lowest(L,기간2);
MID = Lval + (Hval-Lval)/2;
input : Period(120);
var : Hval1(0),Lval1(0),UPV1(0),MID1(0),DOWNV1(0);
Hval1 = highest(H,Period);
Lval1 = Lowest(L,Period);
UPV1 = Hval1 - (Hval1-Lval1)/3;
MID1 = Lval1 + (Hval1-Lval1)/2.8;
DOWNV1 = Lval1 + (Hval1-Lval1)/3;
input : P4(9),P5(26);
Var : 기준선(0), 전환선(0);
전환선 = (Highest(High, P4) + Lowest(Low, P4)) / 2;
기준선 = (Highest(High, P5) + Lowest(Low, P5)) / 2;
Var4 = ma(전환선,P4);
Var5 = ma(기준선,P5);
plot2(Var4);
plot3(Var5);
input : 가중이평기간(7);
value10 = wma(c,가중이평기간);
Condition1 = value10 > max(value2,mid,Var5);
Condition2 = value10 < min(value2,mid,Var5);
if Condition1 == true and Condition1[1] == false Then
value99 = Min(value2,mid,Var5);
if Condition2 == true and Condition2[1] == false Then
value99 = Max(value2,mid,Var5);
plot1(value99);
기간값은 수정가능하게 부탁드립다.
2. 삼각가중평균 20선(기간값은 수정가능하게 부탁드립니다.)
3. 적합이동평균 20선(기간값은 수정가능하게 부탁드립니다.)
4. tirone levels 지표 중심선 50선(기간값은 수정가능하게 부탁드립니다.)
항상 감사드립니다. 수고하세요!!!
2020-02-06
277
글번호 135691
답변완료
지표 질문입니다
1.
현재 포함 최근 10캔들 동안 형성된 양봉 시가와 음봉 시가를 표시하는 수식을 부탁드립니다
2.
현재 포함 최근 10캔들 동안 형성된 양봉 시가 가운데 양봉 몸통이 가장 큰 양봉 시가를 표시하는 수식을 부탁드립니다
3.
현재 포함 최근 10캔들 동안 형성된 음봉 시가 가운데 음봉 몸통이 가장 큰 음봉 시가를 표시하는 수식을 부탁드립니다
4.
현재 포함 최근 10캔들 동안 형성된 양봉 시가 가운데 양봉 몸통이 가장 큰 양봉 시가와 현재 포함 최근 10캔들 동안 형성된 음봉 시가 가운데 음봉 몸통이 가장 큰 음봉 시가를 표시하는 수식을 부탁드립니다
몸통=시가-종가
2020-02-06
241
글번호 135686
답변완료
수식전환 부탁드립니다.
시스템 수식으로 전환부탁드립니다.
Ten = input(10, minval=1, title="Tenkan-Sen")
Kij = input(5, minval=1, title="Kijun-Sen")
sks1 = input(true, title="Show Kijun")
sks2 = input(true, title="Show Kijun #2")
mult2 = input(4, minval=1, title="Kijun #2 TF Multiplier")
sks3 = input(true, title="Show Kijun 3")
mult3 = input(16, minval=1, title="Kijun #3 TF Multiplier")
div =input(2, minval=1, title="Tenkan Divider for Trigger")
trig = input(false, title="Tenkan-Kijun Cross as Trigger")
source = close
donchian(len) => avg(lowest(len), highest(len))
TS1a = donchian(Ten)
TS1b = donchian(Ten/div)
KS1 = donchian(Kij)
TS2a = donchian(Ten*mult2)
TS2b = donchian(Ten*mult2/div)
KS2 = donchian(Kij*mult2)
TS3a = donchian(Ten*mult3)
TS3b = donchian(Ten*mult3/div)
KS3 = donchian(Kij*mult3)
TG1 = trig ? TS1a : TS1b
TG2 = trig ? TS2a : TS2b
TG3 = trig ? TS3a : TS3b
KScol = TG1 > KS1 ? green : TG1 < KS1 ? red : yellow
KS2col = TG2 > KS2 ? green : TG2 < KS2 ? red : yellow
KS3col = TG3 > KS3 ? green : TG3 < KS3 ? red : yellow
//plot for Tenkan and Kijun
p2 = plot(sks1 and KS1 ? KS1 : na, title="Kijun ", linewidth = 2, transp=0, color = KScol)
p3 = plot(sks2 and KS2 ? KS2 : na, title="Kijun x4", linewidth = 3, transp=0, color = KS2col)
p4 = plot(sks3 and KS3 ? KS3 : na, title="Kijun x16", linewidth = 4, transp=0, color = KS3col)
2020-02-06
387
글번호 135685
답변완료
부탁드립니다.
안녕하세요...데이타2라인 데이타3라인 수식부탁드립니다.
데이타3라인은 라인이 거꾸로그려지게해주세요.
1.데이타 2라인
2.데이타 3라인 (라인이 거꾸로그려지게요.)
수고하세요...꾸벅
2020-02-06
222
글번호 135684
답변완료
문의드립니다
Input:length(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0),tx(0);
Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(0);
Array:고점[10,2](0),저점[10,2](0);
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{ If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL11);
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then
TL_Delete(TL2);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
// TL11 = TL_New(sDate[index-고점[2,2]],sTime[index-고점[2,2]],c[index-고점[2,2]],sDate[1],sTime[1],c[index-고점[2,2]]);
//Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL_SetColor(TL1,BLACK);
//TL_SetColor(TL11,BLACK);
TL_SetSize(TL1,1);
//TL_SetSize(TL11,1);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL11);
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
TL_Delete(TL3);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
//TL11 = TL_New(sDate[index-저점[2,2]],sTime[index-저점[2,2]],c[index-저점[2,2]],sDate[1],sTime[1],c[index-저점[2,2]]);
//Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL_SetColor(TL1,BLACK);
//TL_SetColor(TL11,BLACK);
TL_SetSize(TL1,1);
//TL_SetSize(TL11,1);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
mav = ma(C,20);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
if 고점[1,2] > 저점[1,2] then
{
TL14 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],h[index-고점[1,2]]-PriceScale*3,sDate,sTime,h[index-고점[1,2]]-PriceScale*3);
TL_SetColor(TL13,GRAY);
TL_SetSize(TL13,0);
TL_SetExtRight(TL13,true);
TL_SetColor(TL14,BLUE);
TL_SetSize(TL14,2);
TL_SetExtRight(TL14,true);
TL_SetColor(TL15,GRAY);
TL_SetSize(TL15,0);
TL_SetExtRight(TL15,true);
}
if 고점[1,2] < 저점[1,2] then
{
TL15 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],L[index-저점[1,2]]+PriceScale*3,sDate,sTime,L[index-저점[1,2]]+PriceScale*3);
TL_SetColor(TL13,GRAY);
TL_SetSize(TL13,0);
TL_SetExtRight(TL13,true);
TL_SetColor(TL14,GRAY);
TL_SetSize(TL14,0);
TL_SetExtRight(TL14,true);
TL_SetColor(TL15,MAGENTA);
TL_SetSize(TL15,2);
TL_SetExtRight(TL15,true);
}
plot1(index-고점[1,2]);
plot2(index-저점[1,2]);
1시간마다 파동이시작되게 할수있는지요?가능하다면 부탁드립니다~~
2020-02-06
245
글번호 135683
답변완료
문의드립니다
청산식만 테스트를 해보고 싶은데 아래와 같은 방식이 가능할지 궁금합니다.
N봉내 저점과 고점이 N% 이상 차이 날 경우 추세초입(첫봉종가)에 진입한것으로 가정 하고 N% 추적청산식 발동
항상 노고에 감사드립니다.
2020-02-06
236
글번호 135682
답변완료
수정 부탁드립니다.
안녕하세요?
금일 실전거래를 해봤는데, 아래와같은 문제점이 있습니다.
체결내역과 성능보고서가 다릅니다. 성능보고서는 첫번째매매 익절 두번째매매 손절, 3번째매매 손절이고 체결내역은 현시간(1:50)까지도 포지션보유중입니다. (당일강제청산설정 오전11:20으로 되있습니다)
---> 지금다시보니 11시20분에 주문이나가서 미체결 되어서 11시20분에는 청산이 안되었네요. 이부분은 문제가없습니다.
신호차트도 첨부하였사오니, 진단후 수정부탁드립니다.
감사합니다.
1. 일일매매횟수 1회로 설정해놓았는데, 계속 매매가됩니다.
2. 현재까지 거래된내역을 보면 매수를 처음하였는데, 청산하기전에 추가매수가 들어갔습니다.
3. 익절/손절 지정범위를 모두 1포인트씩(지정범위) 해놓았는데, 현재 손절범위를 훨씬 넘어서서 포지션을 보유하고있습니다.
<의도한 내용>
***진입 --> 양봉과 음봉의 몸통길이 각각 외부변수
양봉에 매수 (몸통길이 외부변수)틱
음봉에 매도 (몸통길이 외부변수)틱
***청산
익절 (외부변수)틱
손절 (외부변수)틱
***재진입
하루 매매횟수 외부변수
익절 후 다음신호 발생시 진입
손절 후 손절과 동시에 반대방향 포지션 진입
<수식>
input :양봉틱수(5),음봉틱수(5),익절틱수(50),손절틱수(50),진입횟수(3);
var : entry(0);
if bdate != bdate[1] Then
{
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if MarketPosition == 0 and C == O+양봉틱수*PriceScale and entry < 진입횟수 Then
{
buy("b");
sell("bs1",AtStop,c-PriceScale*손절틱수);
}
if MarketPosition == 0 and C == O-음봉틱수*PriceScale and entry < 진입횟수 Then
{
sell("s");
buy("sb1",AtStop,c+PriceScale*손절틱수);
}
if MarketPosition == 1 Then
sell("bs",AtStop,EntryPrice-PriceScale*손절틱수);
if MarketPosition == 1 Then
buy("sb",AtStop,EntryPrice+PriceScale*손절틱수);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
2020-02-06
287
글번호 135681
답변완료
키움수식을 에스트레이더로 바꾸어주세요
1 MA(2*MA(가격, Period/2, 가중) - MA(가격, Period, 가중), Sqrt(Period), 가중)
period 52
가격 종가
2 A=MA(2*MA(가격, Period/2, 가중) - MA(가격, Period, 가중), Sqrt(Period), 가중);
sscH0=Highest(A,P1);
가격 종가
period 14
P1 20
이평선 상승할때는 빨강 하락할때는 파랑 이평선 칼라도 넣어주세요 2가지 입니다
부탁합니다 참고로 NH트레이더 쓰고 있읍니다
2020-02-06
331
글번호 135680