커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5560
글번호 230811
답변완료
볼린저벤드 종목검색식 질문드립니다.
첫 질문 드립니다
0봉전 일봉 15, 2.00 볼린저벤드 상한선이 상승추세
조건식을 알고 싶습니다.
2021-06-02
1855
글번호 149547
답변완료
아래 72677번 재문의 드립니다
안녕하세요
만들어주신 수식 매우 유용하게 활용이 될듯합니다
정말 감사합니다!
1, 헌데 아래 수식에서는 기준이되는 캔들(A캔들)이 기본챠트인 data1 인거같습니다만
저의 경우에는 이것이 보조챠트인 data2나 daya3등으로 매일 다르게 지정이 됩니다
(* data1은 해당이 안됩니다)
그리고 B,C,D 캔들도 매일 다른 보조챠트들로 설정이 됩니다
* 따라서 A캔들이 data3 이고 B,C,D 캔들이 각각 data 5,9,12 라는 가정하에서 한번더 설명 부탁드리겠습니다
2, 아래 수식을 그대로 활용할 경우 혹시 data1이 풋캔들이 되는 경우에도 똑같이 적용이 가능한가요?
data1이 콜캔들인 경우에는 제대로 작동이 되나, 풋캔들로 놓고 적용해보니 제대로 작동이 안되고 지표가 0선에 놓이네요
매번 도와주심에 다시한번 감사드립니다!
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다!
>
안녕하세요
예스스탁입니다.
풋캔들의 데이타번호를 알수 없어 data2,data3,data4로 작성해 드립니다.
각 데이타의 시초가와와 data1의 시초가를 비교해 자장 근접한 데이타의
값으로 그리게 됩니다.
var : D2(0,Data2),D3(0,data3),D4(0,data4);
D2 = abs(Data2(OpenD(0))-Data1(openD(1)));
D3 = abs(Data3(OpenD(0))-Data1(openD(1)));
D4 = abs(Data4(OpenD(0))-Data1(openD(1)));
if min(D2,D3,D4) == D2 Then
{
value2 = data2(HighD(0));
value3 = data2(LowD(0));
Value4 = (value2+Value3)/2;
}
Else if min(D2,D3,D4) == D3 Then
{
value2 = data3(HighD(0));
value3 = data3(LowD(0));
Value4 = (value2+Value3)/2;
}
Else if min(D2,D3,D4) == D2 Then
{
value2 = data4(HighD(0));
value3 = data4(LowD(0));
Value4 = (value2+Value3)/2;
}
plot2(value2,"당일고");
plot3(value3,"당일저");
plot4(value4,"중간선");
즐거운 하루되세요
> 유로파54 님이 쓴 글입니다.
> 제목 : 문의 드립니다!
> 안녕하세요!
1, 아래수식을 사용하여 그림과같은 챠트로 당일의 장이 마감되었을때
* 2개의 선은 콜캔들(즉 A캔들)에 지표가 적용된 선입니다
2, 다음날 장 시작과 동시에 이 A갠들과 가장 근접한 가격의 풋캔들(예:B,C,D캔들 중)에 자동으로 아래 지표가 적용될수있는 방법이 있을지 문의드립니다
3, 즉, 장 시작후 A,B 캔들의 위치가 그대로일수도 있으나 장전 가격 변동폭이 큰경우에는 D캔들이 A캔들과 가장 가까운 캔들이 될수도있기때문에 이럴때 자동으로 D캔들에 지표가 적용되었으면하는것입니다
* 기준이 되는 A캔들은 콜캔들이 될수도 풋캔들이 될수도 있습니다
매번 찬절히 도와주심에 짐심으로 감사드립니다!!!
======================================================================================
value2 = DayHigh(0);
value3 = DayLow(0);
Value4 = (value2+Value3)/2;
plot2(value2,"당일고");
plot3(value3,"당일저");
plot4(value4,"중간선");
2021-06-02
1917
글번호 149538
답변완료
문의 합니다
수고 많으십니다
아래 수식 중 해당 진입시그널 발생시 익절라인과 손절라인을 설정할수 있는지요?
예시) 익절라인 30틱, 손절라인 20틱 설정하여 라인표시
(익절.손절 틱수 조정가능하도록 하고 라인색상 선택 또는 설정(블루,레드)
감사합니다.
input : 틱(20);
var : RR(0), TL(0),TX1(0),TX2(0);
if MarketPosition == 1 Then
{
rr = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*틱));
if rr > rr[1] Then{
tx1 = Text_New(sdate,stime,H,NumToStr(RR*틱,0)+"틱");
Text_SetStyle(tx1,1,2);
}
TL_Delete(TL);
TL_New(EntryDate,EntryTime,L[BarsSinceEntry],sdate,stime,L[BarsSinceEntry]);
Text_Delete(Tx2);
tx2 = Text_New(sdate,stime,L[BarsSinceEntry],NumToStr(L[BarsSinceEntry],2));
}
if MarketPosition == -1 Then
{
rr = Floor((EntryPrice-lowest(L,BarsSinceEntry))/(PriceScale*틱));
if rr > rr[1] Then{
tx1 = Text_New(sdate,stime,H,NumToStr(RR*틱,0)+"틱");
Text_SetStyle(tx1,1,2);
}
TL_Delete(TL);
TL_New(EntryDate,EntryTime,H[BarsSinceEntry],sdate,stime,H[BarsSinceEntry]);
Text_Delete(Tx2);
tx2 = Text_New(sdate,stime,H[BarsSinceEntry],NumToStr(H[BarsSinceEntry],2));
}
2021-06-02
1708
글번호 149533
답변완료
수식작성
input : StartTime(70000),EndTime(55000),Xtime(55500);
var : Tcond(false),entry(0);
var : B1(0),B2(0),BX1(0),BX2(0);
var : S1(0),S2(0),SX1(0),SX2(0);
if sdate != sDate[1] Then
SetStopEndofday(Xtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*-0.236;
B2 = DayLow(1)+(DayHigh(1)-DayLow(1))*-0.382;
BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.990;
BX2 = DayHigh(1);
S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*-0.236;
S2 = DayHigh(1)+(DayHigh(1)-DayLow(1))*-0.382;
SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.000;
SX2 = DayHigh(1);
if Tcond == true Then
{
if (MarketPosition == 0 or (MarketPosition == 1 and MaxEntries == 1)) Then
{
if entry < 5 and L > B1 Then
Buy("b1",AtLimit,B1);
if entry < 5 and L > B2 Then
Buy("b2",AtLimit,B2);
}
if MarketPosition == 1 Then
{
ExitLong("bx1",AtLimit,BX1,"B1");
ExitLong("bx2",AtLimit,BX2,"B2");
}
if (MarketPosition == 0 or (MarketPosition == -1 and MaxEntries == 1)) Then
{
if entry < 5 and H < S1 Then
Sell("S1",AtLimit,S1);
if entry < 5 and H < S2 Then
Sell("S2",AtLimit,S2);
}
if MarketPosition == -1 Then
{
ExitShort("sx1",AtLimit,SX1,"S1");
ExitShort("sx2",AtLimit,SX2,"S2");
}
}
SetStopProfittarget(PriceScale*150,PointStop);
SetStopLoss(PriceScale*25,PointStop);
------------------------
s2 신호후 청산이 s1 처럼 나오질 않아서 질문 드립니다.
그리고 buy 진입후 청산 1회 , sell 진입후 청산 1회로 수식어 변경 부탁드립니다.
2021-06-02
1751
글번호 149527
답변완료
시스템에서 지표함수 활용 가능여부?
시스템에서 지표함수 활용 가능여부?
수식작성은 지표함수에서만 작성 가능한데
만약 신호를 강조함수에서 당겨와서 적용하고 싶다고 하면 가능한지 궁금합니다.
예를 들면,
강조창에 모멘텀을 가져와서 모멘텀이 크면 사고 작으면 팔고 이런식으로 상호 지표간에
교차하여 활용할 수 있는지 궁금합니다.
2021-06-02
1730
글번호 149526
답변완료
잔고금액 확인 후 발주수량 산출방법
잔고금액 확인 후 발주수량 산출방법
현금잔고가 10,000원이라고 확인이 되면 이중 50%에 해당하는 수량만큼
발주를 하고 청산 후 금액이 변동이 발생하면 신규 발주시에는
다시 변경된 금액기준으로 50%를 적용하여 발주하라는 수식을 만들고 싶습니다.
2021-06-02
1669
글번호 149525
답변완료
시스템 검증 작업 시 과거 특정 기간 데이터 적용 가능여부
시스템 검증 작업 시 과거 특정 기간 데이터 적용 가능여부
백테스팅을 진행할 때 항상 현재부터 과거 100개봉, 1000개봉 이렇게
일괄 적용이 되는데 특정기간에 전략을 검토하려면 특정 구간만 잘라서
테스트를 할 수 있으면 좋을텐데 그런 기능 또는 방법이 있는지 궁금합니다.
2021-06-02
1560
글번호 149524
답변완료
수식 수정 의뢰드립니다
안녕하세요!
부족한 실력이지만 직접 만들어 본건데 전일중간값 과 당일중간값의 지표가 이상하게 출력이 되네요!
확인 좀 부탁드립니다!
제가 원하는건 콜과 풋옵션 교차챠트의 전일 중간값 과 당일 중간값의 가격선이 나타나도록 하는 겁니다!
그리고 중간값 가격선에 가격이 텍스트로 표시 될 수 있도록 부탁드립니다!
항상 노고에 감사드립니다!
//=========== 지표 출력 ==============
//---- 전일가격 ----
plot1(Data1(HighD(1)), "자기전고");
plot2(Data1(LowD(1)), "자기전저");
plot3(Data2(HighD(1)), "상대전고");
plot4(Data2(LowD(1)), "상대전저");
plot5(((Data1(HighD(1))-(Data1(lowD(1))+(Data2(HighD(1))-(Data2(lowD(1))))/2))), "전일중간값");
//---- 당일가격 ----
plot6(Data1(HighD(0)), "자기당고");
plot7(Data1(LowD(0)), "자기당저");
plot8(Data2(HighD(0)), "상대당고");
plot9(Data2(LowD(0)), "상대당저");
plot10((Data1(HighD(0))+ Data1(lowD(0))/2), "당일중간값");
plot11((Data2(lowD(0))+ Data2(highD(0))/2), "당일중간값1");
--------------------------------------------------------------------
다음은 국내선물에서 사용하는 피보나치 수식입니다!
해외선물에서도 사용할 수 있도록 적용시간 기준을 수정해 주세요!
1. 전일 9시 ~ 익일 0시 까지의 진폭을 당일 9시부터 적용
2. 전일 9시 ~ 익일 5시 까지의 진폭을 당일 9시부터 적용
(항생용은 별도로 만들어주세요)
input : n1(23.6),n2(38.2),n3(50.0),n4(61.8),n5(76.4),n6(100),n7(123.6),n8(138.2),n9(150),n10(161.8),n11(176.4),n12(200),n13(223.6),n14(261.8);
var1 = dayhigh(1)-daylow(1);
plot1(DayOpen+var1*(n1/100));
plot2(DayOpen+var1*(n1/100)+0.05);
plot3(DayOpen+var1*(n2/100));
plot4(DayOpen+var1*(n2/100)+0.05);
plot5(DayOpen+var1*(n3/100));
plot6(DayOpen+var1*(n3/100)+0.05);
plot7(DayOpen+var1*(n4/100));
plot8(DayOpen+var1*(n4/100)+0.05);
plot9(DayOpen+var1*(n5/100));
plot10(DayOpen+var1*(n5/100)+0.05);
plot11(DayOpen+var1*(n6/100));
plot12(DayOpen+var1*(n6/100)+0.05);
plot13(DayOpen+var1*(n7/100));
plot14(DayOpen+var1*(n7/100)+0.05);
plot15(DayOpen+var1*(n8/100));
plot16(DayOpen+var1*(n8/100)+0.05);
plot17(DayOpen+var1*(n9/100));
plot18(DayOpen+var1*(n9/100)+0.05);
plot19(DayOpen+var1*(n10/100));
plot20(DayOpen+var1*(n10/100)+0.05);
plot21(DayOpen+var1*(n11/100));
plot22(DayOpen+var1*(n11/100)+0.05);
plot23(DayOpen+var1*(n12/100));
plot24(DayOpen+var1*(n12/100)+0.05);
plot25(DayOpen+var1*(n13/100));
plot26(DayOpen+var1*(n13/100)+0.05);
plot27(DayOpen+var1*(n14/100));
plot28(DayOpen+var1*(n14/100)+0.05);
plot29(DayOpen-var1*(n1/100));
plot30(DayOpen-var1*(n1/100)-0.05);
plot31(DayOpen-var1*(n2/100));
plot32(DayOpen-var1*(n2/100)-0.05);
plot33(DayOpen-var1*(n3/100));
plot34(DayOpen-var1*(n3/100)-0.05);
plot35(DayOpen-var1*(n4/100));
plot36(DayOpen-var1*(n4/100)-0.05);
plot37(DayOpen-var1*(n5/100));
plot38(DayOpen-var1*(n5/100)-0.05);
plot39(DayOpen-var1*(n6/100));
plot40(DayOpen-var1*(n6/100)-0.05);
plot41(DayOpen-var1*(n7/100));
plot42(DayOpen-var1*(n7/100)-0.05);
plot43(DayOpen-var1*(n8/100));
plot44(DayOpen-var1*(n8/100)-0.05);
plot45(DayOpen-var1*(n9/100));
plot46(DayOpen-var1*(n9/100)-0.05);
plot47(DayOpen-var1*(n10/100));
plot48(DayOpen-var1*(n10/100)-0.05);
plot49(DayOpen-var1*(n11/100));
plot50(DayOpen-var1*(n11/100)-0.05);
plot51(DayOpen-var1*(n12/100));
plot52(DayOpen-var1*(n12/100)-0.05);
plot53(DayOpen-var1*(n13/100));
plot54(DayOpen-var1*(n13/100)-0.05);
plot55(DayOpen-var1*(n14/100));
plot56(DayOpen-var1*(n14/100)-0.05);
plot57(DayOpen);
plot58(DayOpen(1));
2021-06-02
1647
글번호 149523
답변완료
수식 문의
항상 수식 작성에 도움 주셔서 감사합니다.
- 볼린저밴드는 종가로 적용이 되기 때문에 현재봉이 아직 확정되지 않은 상태에서는
현재봉의 움직임에 따라 상하단 밴드도 같이 움직이는 경우가 많이 있습니다.
그래서 현재봉의 움직임과 상관없이 상하단 밴드가 움직이지 않도록 하기 위하여
현재봉의 시가로 적용하는 볼린저밴드 수식을 부탁 드립니다.
* 볼밴(20.2)의 경우
1. 현재봉만 시가를 적용하고, 1일전~19일전까지는 종가를 적용하는 수식
2. 현재봉~19일전까지 모두 시가를 적용하는 수식
2021-06-02
1377
글번호 149522