커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7445
글번호 230811
답변완료
부탁드립니다
수고하십니다
지그 재그 패턴수식입니다
*타원형 0.8은 2번245.05 - 1번244.25 차이값입니다
*타원형 0.55은 2번245.05 - 3번244.50 차이값입니다
이런식으로 수치가 나타나게 할수있는지요?
2015-10-08
233
글번호 91083
답변완료
종가주문 관련
안녕하세요.
Buy("BUY",onclose,def,value1);
로 주문을 내면 봉완성후 다음 시가에 주문이 나가는데
봉환성시 종가로 주문을 내려면 어떻게 해야할까요?
2015-10-08
149
글번호 91081
답변완료
종목 검색
B1=if(eavg(C,12)-eavg(C,26) >eavg(eavg(C,12)-eavg(C,26),9), 1,-1);
B2=if(C > avg(C, Period1), 1, -1);
B3=if((C - C(period2)) / C(period2) * 100 > 0, 1, -1) ;
B4=if(eavg((C-lowest(L, sto1)) / (highest(H, sto1) - lowest(L, sto1)) * 100, sto2)>50, 1, -1);
A=B1+B2+B3+B4;
BW_sig=(eavg(A,signal))*Bfr
침제 -3에 있는 종목을 검색 하고 싶내요
부탁 드려요 .. 감기 조심 하세요
2015-10-08
171
글번호 91077
답변완료
수식 부탁 드립니다....
수고가 많으시죠...^^
1, RSI 70이상이 20봉 이내에 있고 macd 데드크로스에 매도신호
- macd 골든크로스에 매도청산
2, RSI 30이하가 20봉 이내에 있고 macd 골든크로스에 매수신호
- macd 데드크로스에 매수청산
RSI(14), macd(12,26) signal(9).
수식 부탁드립니다...
수고하세요...
2015-10-08
188
글번호 91073
답변완료
진입 및 손절 시점
안녕하세요.
제가 만드려고 하는 시스템은 봉 3개의 고가가 높아지고 마지막 봉이 최고가를 형성하고 도지 형태를 완성하면 다음 봉 시가에 매도합니다. 이때 손절선은 최고가인 도지봉의 고점으로 잡습니다. 매수는 반대의 경우가 됩니다.
제가 시험한 결과 매도 손절이 진입한 봉에서 이전 고가를 넘어가도 신호가 발생하지 않고 그 다음 봉에서 신호가 나옵니다. 진입한 봉이라도 전고점/전저점을 넘어가면 손절처리 하려면 어떻게 고쳐야 할까요?
If H > H[1] and H[1] > H[2] and
H == Highest(H, 3) and
body / height * 100 <= bodyRate and
{
If MarketPosition() != -1 Then
{
slHighPivot = Highest(H,3]);
Sell ("CdS", AtMarket);
}
}
If MarketPosition() == -1 Then
ExitShort("CdS_SL", AtStop, slHighPivot);
감사합니다.
2015-10-08
171
글번호 91071
답변완료
안녕하십니가!!질문좀..ㅎ?
CCI 쪽으로 시스템 을 만들어보고싶은데요
변수를 잘모르겠어가지고...수식은만들어보고있는데 문의좀드려요
매수진입
if(CCI_C(17)>-100&&CCI_N(1,3)<=-100,1,0)
(ccl값(17)이 -100보다 크고 1일전 ccl값(3)은 -100보다 작거나 같을때)
매수청산
if(CCI_C(17)<100&&CCI_N(1,3)>=100,1,0)
(ccl값(17이) 100보다 작고 1일전 ccl값(3)은 100보다 크거나 같을때)
매도진입
if(CCI_C(17)<100&&CCI_N(1,3)>=100,1,0)
(ccl값(17이) 100보다 작고 1일전 ccl값(3)은 100보다 크거나 같을때)
매도청산
if(CCI_C(17)>-100&&CCI_N(1,3)<=-100,1,0)
(ccl값(17)이 -100보다 크고 1일전 ccl값(3)은 -100보다 작거나 같을때)
수식은 어느정도 해볼려고하는데..
이런식으로 만들려고합니다
지표변수를 잘모르겠어가지고 문의드립니다~
2015-10-08
140
글번호 91067
답변완료
부탁 드립니다.
늘 만족한 답변에
깊이 감사 드립니다.
아래 44326번에서 답변한 수식에서
TL1,TL2,TL3가
종가가 아닌
실시간 으로 변동이 가능한지요?
미리 감사 드립니다.
var : TL1(0),TL2(0),TL3(0);
var : Tx1(0),Tx2(0),Tx3(0);
if Bdate != Bdate[1] Then{
var1 = sdate[1];
var2 = stime[1];
}
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL1 = TL_New(var1,var2,dayhigh,sdate,stime,dayhigh);
TL2 = TL_New(var1,var2,daylow,sdate,stime,dayLow);
TL3 = TL_New(var1,var2,(daylow+dayhigh)/2,sdate,stime,(dayLow+dayhigh)/2);
#추세선 우측연장
TL_SetExtRight(TL1,True);
TL_SetExtRight(TL2,True);
TL_SetExtRight(TL3,True);
#추세선 색상
TL_SetColor(TL1,BLACK);
TL_SetColor(TL2,BLACK);
TL_SetColor(TL3,RED);
#추세선 굵기
TL_SetSize(TL1,0);
TL_SetSize(TL2,0);
TL_SetSize(TL3,2);
Text_Delete(Tx1);
Text_Delete(Tx2);
Text_Delete(Tx3);
tx1 = Text_New(var1,var2,dayhigh,NumToStr(dayhigh,4));
tx2 = Text_New(var1,var2,daylow,NumToStr(dayLow,4));
tx3 = Text_New(var1,var2,(daylow+dayhigh)/2,NumToStr((daylow+dayhigh)/2,4));
#상하좌우정렬
Text_SetStyle(tx1,0,1);
Text_SetStyle(tx2,0,1);
Text_SetStyle(tx3,0,1);
#텍스트 색상
Text_SetColor(tx1,RED);
Text_SetColor(tx2,RED);
Text_SetColor(tx3,RED);
2015-10-08
135
글번호 91063
답변완료
시스템식 수정 부탁드립니다.
아래 보내주신 시스템식에서 매수타점과 매도타점을 좀더 용이하게 하기위해서 다음과 같이
외부변수를 추가로 할당할려고 합니다. 이에 맞게 시스템식 수정 부탁드립니다.
더불어 도움주심에 감사드립니다.
## 추가할 외부변수 설정 시작 ---------------------------------
input : 1차매수위치(2), 2차매수위치(3), 3차매수위치(4);
input : 1차매도위치(1), 2차매도위치(2), 3차매도위치(3);
## 추가할 외부변수 설정 끝 ---------------------------------
[설명]
첨부한 챠트에서 각각의 매수타점의 간격은 "최고점"-"V0.5" 간격차이만큼 모두 동일합니다.
따라서 이간격의 갯수를 1로 설정했을때
V1라인 즉 1차매수타점은 (최고점-V0.5)의 2개간격 -> input:1차매수위치(2) 에 해당
V2라인 즉 2차매수타점은 (최고점-V0.5)의 3개간격 -> input:1차매수위치(3) 에 해당
V3라인 즉 3차매수타점은 (최고점-V0.5)의 4개간격 -> input:1차매수위치(4) 에 해당
으로 변경해 주시고요
매도위치도 마찬가지로
1차매도위치(1)은 최저점에서 (최고점-V0.5)의 1개간격만큼 반등한 위치에서 매도
1차매도위치(1)은 최저점에서 (최고점-V0.5)의 1개간격만큼 반등한 위치에서 매도
로 변경해 주시면 감사하겠습니다.
-------------------------------------------------------------------------------------
input : 전략식시작일자(20151001), 전략식시작시간(090000), 전략총매수금액(1000000);
## 추가할 외부변수 설정 시작 ---------------------------------
input : 1차매수위치(2), 2차매수위치(3), 3차매수위치(4);
input : 1차매도위치(1), 2차매도위치(2), 3차매도위치(3);
## 추가할 외부변수 설정 끝 ---------------------------------
input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50);
##괄호안의 숫자는 총매수금액의 각 분할매수할 퍼센티지입니다.
input : 매도비중1차(20), 매도비중2차(30), 매도비중3차(50);
##괄호안의 숫자는 매수된 금액의 각 분할매도할 퍼센티지입니다.
input : Period(384);
var : CL(0),V0.5(0),V1(0),V2(0),V3(0);
var : mid(0),V4(0),V5(0),V6(0),V7(0);
var : diff(0),TF(0),cnt(0);
Array : HH[400](0),LL[499](0);
TF = TimeToMinutes(stime)%15;
if date != date[1] or (date == date and TF < TF[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 399{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[Period] > 0 Then{
var1 = HH[0];
var2 = LL[0];
var11 = HH[1];
var12 = LL[1];
for cnt = 0 to Period-1{
if HH[cnt] > var1 Then
var1 = HH[cnt];
if HH[cnt+1] > var11 Then
var11 = HH[cnt+1];
if LL[cnt] < var2 Then
var2 = LL[cnt];
if LL[cnt+1] < var21 Then
var21 = LL[cnt+1];
}
if var11 < var1 Then
CL = (var1+var2)/2;
V0.5 = var1-((var1-CL)/5)*1;
V1 = var1-((var1-CL)/5)*2; ## 1매수타점
V2 = var1-((var1-CL)/5)*3; ## 2매수타점
V3 = var1-((var1-CL)/5)*4; ## 3매수타점
mid = (var1+var2)/2;
V4 = var1-((var1-CL)/5)*5;
V5 = var1-((var1-CL)/5)*6;
V6 = var1-((var1-CL)/5)*7;
V7 = var1-((var1-CL)/5)*8;
if sdate >= 전략식시작일자 then{
if MarketPosition == 0 and stime >= 전략식시작시간 and
((stime < 120000 and O > C[1]*0.985) or (stime >= 133000 and C > V2)) Then{
if NextBarOpen > V1 Then
buy("1차매수",atlimit,V1,Floor((전략총매수금액*(매수비중1차/100))/C));
Else
buy("1차매수.",AtMarket,def,Floor((전략총매수금액*(매수비중1차/100))/C));
}
if MarketPosition == 1 then{
diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]);
if MaxEntries == 1 and L >= V2 and CurrentContracts == MaxContracts Then
buy("2차매수",atlimit,V2,Floor((전략총매수금액*(매수비중2차/100))/C));
if MaxEntries == 2 and L >= V3 and CurrentContracts == MaxContracts Then
buy("3차매수",atlimit,V3,Floor((전략총매수금액*(매수비중3차/100))/C));
if LatestExitName(0) == "1차매도" Then
Condition1 = true;
if LatestExitName(0) == "2차매도" Then
Condition2 = true;
if LatestExitName(0) == "3차매도" Then
Condition3 = true;
if Condition1 == false then
exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*1,"",Floor(MaxContracts*(매도비중1차/100)),1);
if Condition2 == false then
exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*2,"",Floor(MaxContracts*(매도비중2차/100)),1);
if Condition3 == false then
exitlong("3차매도",atlimit,lowest(L,BarsSinceEntry)+diff*3);
}
Else{
Condition1 = false;
Condition2 = false;
Condition3 = false;
}
}
}
-------------------------------------------------------------------------------------
2015-10-08
186
글번호 91060
답변완료
청산전략
최고누적수익에서 50% 하락시 청산 및 시스템정지하고자 하는 수식 부탁드립니다.
2015-10-08
128
글번호 91058