커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7321
글번호 230811
답변완료
거래시간 1번 거래 질문
예스글로벌로 해외금리선물 T-note 10Year 거래를 하려고합니다.
그런데 장이 예스글로벌기준 17:00시 시작 다음 날 16:00마감인데
장시작후에 전략상 한번만 진입하면 그다음에는 진입안하고
청산하려고합니다.
결국 거래가 1번만 일어나게하고싶은데
하루단위로 하면 날짜가 넘어가게되더군요
혹시 방법이 없나 문의드립니다.
2017-04-13
177
글번호 108753
답변완료
문의드립니다.
항상 수고많으십니다.
아래와 같이 화면에 텍스트를 출력하는데 가끔씩 텍스트가 화면 밑으로 또는 위로 숨어 버려서 텍스트 내용을 읽을 수 없을때가 많습니다.
혹시 항상 화면 중앙에 출력한다던가 하는식으로 텍스트가 위,아래로 숨지않게 할 수 있다면 수식 좀 부탁합니다.
if mav2 > mav2[1] Then{ //20일선 우상향 이면
tx = Text_New(sdate,stime,L-PriceScale*8,"상승추세");
Text_SetStyle(tx,2,2);
}
수고하세요...
2017-04-13
164
글번호 108752
답변완료
52837 재질의드립니다.
다시한번 질의드립니다.
1.분봉차트에서 종가가 분봉의 20일 이평선과 같거나 위에 형성될때
전 고가와 새로 생성된 고가를 선으로 연결
이때 저가는 수평선으로 표시
2.분봉차트에서 종가가 분봉의 20일 이평선과 같거나 아래에 형성될때
전 저가와 새로 생성된 저가를 선으로 연결
이때 고가는 수평선으로 표시
#전 고,저점이라함은 갱신되는 고,저점에서 가장 가까운 위치의 고,저가
부탁드립니다.말로 표현키가 많이 어렵네요^^
2017-04-13
167
글번호 108748
답변완료
수식 부탁드립니다
1.
20 캔들 천정에서 10번째 음봉 매수
20 캔들 바닥에서 10번째 양봉 매도
2.
20 캔들 천정에서 1.0 하락 매수
20 캔들 바닥에서 1.0 상승 매도
2017-04-13
165
글번호 108742
답변완료
ETF 6 _williamsR
아래 수식을 보조차트로 이용하여
1.KODEX200 ETF 거래할 수 있는 수식(선물 BUY)을 부탁드립니다.
2.KODEX인버스 ETF 거래할 수 있는 수식(선물 SELL)도 부탁드립니다.
둘 다 data2 참조차트 이용한 수식입니다
늘 고맙습니다.
-아래-
input : stoPeriod(12), stoP1(5), WillP(14);
var : 스토캐스틱(0), Williams(0);
스토캐스틱 = stochasticsK(stoPeriod, stoP1);
Williams = WILLR(WillP);
//WilliamsR이 -80선을 상향돌파할 때 매수
if CrossUp(Williams, -80) then
buy();
// 스토캐스틱이 80선을 하향이탈하거나 20선을 하향이탈할 때 매수청산
if CrossDown(스토캐스틱, 80) or CrossDown(스토캐스틱, 20) then
ExitShort();
//스토캐스틱이 80선을 하향이탈할 때 매도
if CrossDown(스토캐스틱, 80) then
sell();
//WilliamsR이 -20선을 상향돌파 혹은 스토캐스틱이 20선을 상향돌파할 때 매도청산
if CrossUp(Williams, -20) or CrossUp(스토캐스틱, 20) then
exitshort();
2017-04-13
190
글번호 108741
답변완료
ETF 5 _ ture strength
아래 수식을 보조차트로 이용하여
1.KODEX200 ETF 거래할 수 있는 수식(선물 BUY)을 부탁드립니다.
2.KODEX인버스 ETF 거래할 수 있는 수식(선물 SELL)도 부탁드립니다.
둘 다 data2 참조차트 이용한 수식입니다
부탁 드립니다.
-아래-
INPUTS: R(4), S(8), U(6), ZEROLINE(0), SMTHLEN(3);
VALUE1 = TSI(C, R, S, U);
VALUE2 = Ema(TSI(C, R, S, U), SMTHLEN);
if crossup(value1,value2) Then{
var1 = value1;
var2 = var1[1];
var3 = c;
var4 = var3[1];
if var4 > 0 and var1 > var2 and var3 < var4 Then
buy();
}
if CrossDown(value1,value2) Then{
var11 = value1;
var12 = var11[1];
var13 = c;
var14 = var13[1];
if var14 > 0 and var1 < var2 and var3 > var4 Then
sell();
}
2017-04-13
163
글번호 108740
답변완료
초록색 라인을 지우고 싶어요.
가운데 초록색 라인을 안보이게 지우고 싶어요.
안보이게 또는 된다면 키고 끄고 가능하다면 해주세요.
안된다면 안보이게 지워 주셔도 됩니다 ^^
항상 감사합니다 ^^
--------------------------------------------------------------------------------
Input:length(12),per1(23.7),per2(38.2),per3(50.0),Per4(61.8),per5(74.6);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),diff(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Highest(H,length) == H and lastHiVal <> H;
Condition2 = Lowest(L,length) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],
sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,4);
TL_SetColor(TL1,GREEN);
if turnPntArr[1] != turnPntArr[1][1] and barArr[3] > 0 Then{
if turnPntArr[2] == "Hi" then{
value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[3]],sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]);
value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]],sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]);
diff = abs(L[barArr[3]]-H[barArr[4]]);
value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per1/100));
value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per2/100));
value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per3/100));
value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per4/100));
value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per5/100));
TL_SetColor(value1,blue);
TL_SetColor(value2,blue);
TL_SetColor(value3,blue);
TL_SetColor(value4,blue);
TL_SetColor(value5,blue);
TL_SetColor(value6,blue);
TL_SetColor(value7,blue);
}
Else{
value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[3]],sdate[barArr[2]],stime[barArr[2]],H[barArr[3]]);
value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]],sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]);
diff = abs(L[barArr[4]]-H[barArr[3]]);
value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per1/100));
value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per2/100));
value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per3/100));
value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per4/100));
value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per5/100));
TL_SetColor(value1,RED);
TL_SetColor(value2,red);
TL_SetColor(value3,RED);
TL_SetColor(value4,red);
TL_SetColor(value5,RED);
TL_SetColor(value6,red);
TL_SetColor(value7,red);
}
}
TL_Delete(value11);
TL_Delete(value12);
TL_Delete(value13);
TL_Delete(value14);
TL_Delete(value15);
TL_Delete(value16);
TL_Delete(value17);
TL_Delete(value21);
TL_Delete(value22);
TL_Delete(value23);
TL_Delete(value24);
TL_Delete(value25);
TL_Delete(value26);
TL_Delete(value27);
if turnPntArr[1] == "Hi" then{
value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]);
value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]);
diff = abs(L[barArr[3]]-H[barArr[2]]);
value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100));
value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100));
value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100));
value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100));
value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100));
TL_SetColor(value11,blue);
TL_SetColor(value12,blue);
TL_SetColor(value13,blue);
TL_SetColor(value14,blue);
TL_SetColor(value15,blue);
TL_SetColor(value16,blue);
TL_SetColor(value17,blue);
value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[1]],sdate,stime,H[barArr[1]]);
value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]],sdate,stime,L[barArr[2]]);
diff = abs(L[barArr[2]]-H[barArr[1]]);
value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per1/100),sdate,stime,L[barArr[2]]+diff*(per1/100));
value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per2/100),sdate,stime,L[barArr[2]]+diff*(per2/100));
value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per3/100),sdate,stime,L[barArr[2]]+diff*(per3/100));
value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per4/100),sdate,stime,L[barArr[2]]+diff*(per4/100));
value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per5/100),sdate,stime,L[barArr[2]]+diff*(per5/100));
TL_SetColor(value21,RED);
TL_SetColor(value22,red);
TL_SetColor(value23,RED);
TL_SetColor(value24,red);
TL_SetColor(value25,RED);
TL_SetColor(value26,red);
TL_SetColor(value27,red);
}
Else{
value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]);
value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]);
diff = abs(L[barArr[3]]-H[barArr[2]]);
value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per1/100));
value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per2/100));
value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per3/100));
value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per4/100));
value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per5/100));
TL_SetColor(value11,RED);
TL_SetColor(value12,red);
TL_SetColor(value13,RED);
TL_SetColor(value14,red);
TL_SetColor(value15,RED);
TL_SetColor(value16,red);
TL_SetColor(value17,red);
value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[1]],sdate,stime,L[barArr[1]]);
value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]],sdate,stime,H[barArr[2]]);
diff = abs(L[barArr[1]]-H[barArr[2]]);
value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100),sdate,stime,H[barArr[2]]-diff*(per1/100));
value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100),sdate,stime,H[barArr[2]]-diff*(per2/100));
value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100),sdate,stime,H[barArr[2]]-diff*(per3/100));
value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100),sdate,stime,H[barArr[2]]-diff*(per4/100));
value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100),sdate,stime,H[barArr[2]]-diff*(per5/100));
TL_SetColor(value21,blue);
TL_SetColor(value22,blue);
TL_SetColor(value23,blue);
TL_SetColor(value24,blue);
TL_SetColor(value25,blue);
TL_SetColor(value26,blue);
TL_SetColor(value27,blue);
}
2017-04-13
176
글번호 108739
답변완료
조금 어려울 수도 있는 시스템, 지표 하나 부탁드리겠습니다.
data1과 data2의 스프레드를 이용해보려고 합니다.
지표) 데이터 1과 데이터 2의 차이의 절대값으로 된 별도의 지표를 하나 그려보고 싶습니다.
시스템) 이렇게 완성된 지표에 이평선과 같은 개념을 접목해, 이 지표와 지표에 접목된 이평선이 골든크로스를 그리면 매도, 데드크로스를 그리면 매수를 해보고 싶습니다.
2017-04-13
165
글번호 108738
답변완료
문의드립니다.
안녕 하세요.
1.단순이동평균 60일선이 상승중이고 트릭스보조지표(10.9) 0선 밑에서 골드크로스 발생 하고
5일선이 20일선을 골드크로스시 매수진입 하고 10틱 이상 수익후 50% 하락시 청산 후 다음매수신호 발생시 매수진입
2.단순이동평균 60일선이 하락중이고 트릭스보조지표 (10.9) 0선 위에서 데드크로스 발생하고 5일선이 20일선을 데드크로스시 매도만 진입하고 10틱 이상 수익후 50% 하락시 청산 후 다음 매도신호발생시 매도진입
공통사항= 진입후 50% 하락하지않을경우 다음 신호( 매수진입시 데드크로스발생,매도진입시 골드크로스 발생햇을때 청산 )
감사합니다.
2017-04-13
154
글번호 108737