커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6202
글번호 230811
답변완료
문의 드립니다.
안녕하세요
Input : shortPeriod(12), longPeriod(26), Period(9);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
If CrossUP(value1, value2) Then
{
buy("bMACD");
}
If CrossDown(value1, value2) Then
{
sell("sMACD");
}
}
상기 수식에서
매수 진입후 최대 수익 대비 하락으로 익절을 낸 후 가격의 위치가
볼린져 밴드 중앙 이평 아래에 있을 경우 재진입하는 수식 추가 부탁드립니다.
매도 진입후 최대 수익 대비 하락으로 익절을 낸 후 가격의 위치가
볼린져 밴드 중앙 이평 위에 있을 경우 재진입하는 수식 추가 부탁드립니다.
감사합니다.
2017-10-22
117
글번호 113533
답변완료
부탁 드립니다.
도움 주심에 감사 드립니다.
분봉 타주기에 사용 하던 수식을
질문1)분봉에서 일봉 지표를
질문2)분봉에서 주봉 지표를
질눈3)분봉에서 월봉 지표를
질문4)일봉에서 주봉 지표를
질문5)일봉에서 월봉 지표를
볼려고 합니다.
수정 부탁 드립니다.
input : 분주기(60),P100(50);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : HV1(0),HV2(0),HV3(0);
var : HH1(0),HH2(0),HH3(0);
var : LL1(0),LL2(0),LL3(0);
Array : HH[100](0),LL[100](0),OO[100](0),CC[100](0),VV[100](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(100000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if bdate != bdate[1] or (bdate == bdate[1] and TF < TF[1]) Then{
OO[0] = O;
HH[0] = H;
LL[0] = L;
VV[0] = 0;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
VV[cnt] = VV[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
VV[0] = VV[0]+v;
if HH[P100] > 0 Then{
HV1 = VV[0];
HH1 = HH[0];
LL1 = LL[0];
for cnt = 0 to P100-1{
if VV[cnt] > HV1 Then
HV1 = VV[cnt];
if HH[cnt] > HH1 Then
HH1 = HH[cnt];
if LL[cnt] < LL1 Then
LL1 = LL[cnt];
}
HV2 = 0;
HV3 = 0;
HH2 = 0;
HH3 = 0;
LL2 = 9999999999;
LL3 = 99999999;
/////////////////////////////////////////
#########################################
for cnt = 0 to P100-1{
if VV[cnt] > HV2 and VV[cnt] < HV1 Then
HV2 = VV[cnt];
if HH[cnt] > HH2 and HH[cnt] < HH1 Then
HH2 = HH[cnt];
if LL[cnt] < LL2 and LL[cnt] > LL1 Then
LL2 = LL[cnt];}
/////////////////////////////////////////////////////////////////////////////
############################################################################
/////////////////////////////////////////
#########################################
for cnt = 0 to P100-1{
if VV[cnt] > HV3 and VV[cnt] < HV2 Then
HV3 = VV[cnt];
if HH[cnt] > HH3 and HH[cnt] < HH2 Then
HH3 = HH[cnt];
if LL[cnt] < LL3 and LL[cnt] > LL2 Then
LL3 = LL[cnt];}
/////////////////////////////////////////////////////////////////////////////
############################################################################
}}
2017-10-22
133
글번호 113532
답변완료
볼린저밴드
볼린저밴드 상단에 다아을때 매도신호
볼린저밴드 하단에 다아을때 매수신호
부탁드립니다
2017-10-22
204
글번호 113531
답변완료
TRIX지표
TRIX 지표 에서 TRIX선과 시그날선 교차 하면서 골드크러스에는 빨강 데드클로스에서는
청색선으로 변동되는 수식을 원합니다
2017-10-22
160
글번호 113530
답변완료
부탁드립니다
수고하십니다
해외선물오일틱챠트에서 오전10시에 시작되는 시가선을
1일전~5일전동안 긋고 오른쪽으로 연장하는 가격표시 수식을부탁드립니다
2017-10-21
155
글번호 113529
답변완료
부탁드립니다
수고하십니다
아래수식을 5지그재그선에중간에선을긋고오른쪽으로연장하는가격표시수식을부탁드립니다
Input:length(12),X(1);
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),TL11(0),tx11(0),t(0),TL22(0),Tx22(0),tx23(0),tx24(0),tl23(0),tl24(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
{
T = 1;
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);
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);
}
if X == 1 Then{
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
}
TL_Delete(TL11);
TL11 = TL_New(sDate[sBar],sTime[sBar],(저점[1,1]+고점[1,1])/2,sDate[eBar],sTime[eBar],(저점[1,1]+고점[1,1])/2);
TL_SetExtRight(TL11,true);
Text_Delete(tx11);
tx11 = Text_New(sdate,stime,(저점[1,1]+고점[1,1])/2,NumToStr((저점[1,1]+고점[1,1])/2,2));
if H < 고점[2,1] Then
TL_SetColor(TL1,red);
Else
TL_SetColor(TL1,MAGENTA);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
#추가부분
if T[1] != T Then{
TL22 = TL_New(sDate[index-고점[2,2]],sTime[index-고점[2,2]],(고점[2,1]+저점[1,1])/2,sDate[index-저점[1,2]],sTime[index-저점[1,2]],(고점[2,1]+저점[1,1])/2);
TL_SetExtRight(TL22,true);
tx22 = Text_New(TL_GetEndDate(TL22),TL_GetEndTime(TL22),(고점[2,1]+저점[1,1])/2,NumToStr((고점[2,1]+저점[1,1])/2,2));
TL23 = TL22[1];
TL24 = TL23[2];
TL_Delete(TL24);
Tx23 = Tx22[1];
Tx24 = Tx23[2];
Text_Delete(Tx24);
}
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
TL_SetExtLeft(TL2,false);
TL_SetExtRight(TL2,false);
if X == 1 Then
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL2,BLUE);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
}
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
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);
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);
}
if X == 1 Then{
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
}
TL_SetColor(TL1,blue);
TL_Delete(TL11);
TL11 = TL_New(sDate[sBar],sTime[sBar],(저점[1,1]+고점[1,1])/2,sDate[eBar],sTime[eBar],(저점[1,1]+고점[1,1])/2);
TL_SetExtRight(TL11,true);
Text_Delete(tx11);
tx11 = Text_New(sdate,stime,(저점[1,1]+고점[1,1])/2,NumToStr((저점[1,1]+고점[1,1])/2,2));
if L > 저점[2,1] Then
TL_SetColor(TL1,blue);
Else
TL_SetColor(TL1,cyan);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
#추가부분
if T[1] != T Then{
TL22 = TL_New(sDate[index-저점[2,2]],sTime[index-저점[2,2]],(저점[2,1]+고점[1,1])/2,sDate[index-고점[1,2]],sTime[index-고점[1,2]],(저점[2,1]+고점[1,1])/2);
TL_SetExtRight(TL22,true);
tx22 = Text_New(TL_GetEndDate(TL22),TL_GetEndTime(TL22),(저점[2,1]+고점[1,1])/2,NumToStr((저점[2,1]+고점[1,1])/2,2));
TL23 = TL22[1];
TL24 = TL23[2];
TL_Delete(TL24);
Tx23 = Tx22[1];
Tx24 = Tx23[2];
Text_Delete(Tx24);
}
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
TL_SetExtLeft(TL3,false);
TL_SetExtRight(TL3,false);
if X == 1 Then
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetColor(TL3,RED);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL3,true);
}
}
}
TL_SetSize(TL1,3);
TL_SetSize(TL2,2);
TL_SetSize(TL3,2);
plot1(T);
2017-10-20
147
글번호 113528
답변완료
문의 드립니다.
좋은 주말 보내세요..
질문 : 매수 시점의 지표값
현재 시점의 지표값
매수 시점의 지표값을 var1 이라 하고 현재시점의 지표값을 var2 라 했을때
현재 수익이고 지표값도 상승하였을때
예를들어 var2 - var1 이 200 보다 작다면 청산
부탁 드립니다.
질문 2 ;
현재거래가 오늘 두번째 거래이고 동일방향이라면 즉, 매수만 두번째라면
0.5 이상 수익일때 무조건 청산
부탁 드립니다.
2017-10-20
123
글번호 113527
진팡이 님에 의해서 삭제되었습니다.
2017-10-20
12
글번호 113525
답변완료
문의드립니다..
사용자 가격설정에서 atstop..atlimit의 차이가 뭔가요..
제가 매수청산에서 atstop 은 지정가로..atlimit는 시장가로 놓았는데
똑같이 시장가로 처리가 되는데요..
atstop...은 손실중일때이고.atlimit...는 수익중일때 아닌가요?
또 진입시 매도에 시장가로 하려면 뭘선택해야 하나요?
atstop..atlimit 다 시장가로 선택해야 하나요?
하나만 선택해도 되는건지..
진입시에도 청산과동시에 진입하는거와 그냥 단독진입과 차이를 둘수 있는건가요?
onclose/atmarket도 궁금합니다..
예를 들어 매수 수익중 청산은 시장가이고 손실중 청산은 지정가..
이고 매도진입은 시장가 일 경우 가능 할지요..설명부탁바랍니다.
답변바랍니다...수고 하세요
2017-10-20
138
글번호 113524