커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3746
글번호 230811
답변완료
오류수정 요청드립니다
<1>아래와 같이 시스템식 입력하면 에서 연산자 앞 뒤 두데이터의 형태가 같아야 합니다.라고 오류가 뜨네요.. 수정부탁드립니다.
input:shortP(12),longP(26),midP(9);
var:macdVal(0),macdSig(0),disp(0);
macdVal=MACD(shortP,longP);
macdSig=ema(macdVal,midP);
disp=ma(C,5)/ma(C,60)*100>102;//③
if CrossUP(macdVal,macdSig)and disp then
Buy();
if CrossDown(macdVal,macdSig)then
ExitLong();
<2>아래 시스템식에서는 오류가 2군데 나와서 수식 수정부탁드립니다.
input:P1(20),P2(12),P3(10),P4(6),P5(5),P6(3),BaseLine(50);
var:Sto1(0),Sto2(0),Sto3(0);
Sto1=StochasticsK(P1,P2);
Sto2=StochasticsK(P3,P4);
Sto3=StochasticsK(P5,P6);
if Sto1>BaseLine and Sto1[2]<Sto1[1] and Sto1[1]<Sto1 and
Sto2>BaseLine and Sto2[2]<Sto2[1 and Sto2[1]<Sto2 and
Sto3[2]>Sto3[1] and Sto3[1]<Sto3 then
Buy();
if Sto1<BaseLine and Sto1[2]>Sto1[1] and Sto1[1]>Sto1 and
Sto2<BaseLine and Sto2[2]>Sto2[1] and Sto2[1]>Sto2 and
Sto3[2]<Sto3[1] and Sto3[1]>Sto3 then
Sell();
2019-06-28
168
글번호 129864
답변완료
수식부탁드립니다.
부탁드린대로 잘만들어주셔서 감사드립니다..
제가 스스로 응용하여 만들어보려했으나 부족한능력으로 한계가있어 다시문의드리게되었습니다.
1) 3계약중 첫번째1계약 목표가가 S1 .R1이었다면 진입가에서 +- 35틱 익절로 부탁드립니다. (SetStopProfittarget(PriceScale*35,PointStop)으로하니 2회이상진입 되더라구요..
2)당일 손절발생시에만 S3 = Dayhigh-PriceScale*120; 에서 매수 ,
R3 = Daylow+PriceScale*120; 에서 매도 진입,
청산은 70틱익절
3) 3번째계약은 목표가를 매수시 R3 , 매도시 S3으로 부탁드리고
트레일링스탑은 2차청산(S2,R2지점)이되면
S2,R2에서 위아래로 15틱이상움직엿을시 2차청산지점(S2,R2)에서 청산
S3 = Dayhigh-PriceScale*120;
R3 = Daylow+PriceScale*120;
4) 기존전략이 35틱 움직였을시 본절청산이었는데요
1번째계약이 S1,R1에서 청산되었을시, 나머지2,3계약은 본절에서 모두청산되게 부탁드립니다.
언제나 감사드립니다 항상행복하세요..
---------------------------------------------------------
안녕하세요
예스스탁입니다.
식을 수정했습니다.
1
input : xtime(050000);
var : R2(0),R1(0),S1(0),S2(0),entry(0);
var : Tcond(false),BX1(false),BX2(false),SX1(false),SX2(false);
if bdate != bdate[1] then
{
Tcond = true;
entry = 0;
}
if (sdate != sdate[1] and stime >= xtime) or
(sdate == sdate[1] and stime >= xtime and stime[1] < xtime) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("BX");
if MarketPosition == -1 Then
ExitShort("SX");
}
R2 = DayLow+PriceScale*90;
R1 = DayLow+PriceScale*55;
S1 = DayHigh-PriceScale*55;
S2 = DayHigh-PriceScale*90;
if MarketPosition(0) != 0 and MarketPosition(0) != MarketPosition(0)[1] Then
entry = entry+1;
if Tcond == true then
{
if MarketPosition <= 0 and entry < 1 Then
{
if H < S1 Then
buy("b1",AtStop,S1,3);
if L > S1 then
buy("b2",AtLimit,S1,3);
}
if MarketPosition >= 0 and entry < 1 Then
{
if L > R1 Then
sell("R1",AtStop,R1,3);
if H < R1 Then
sell("R2",AtLimit,R1,3);
}
if MarketPosition == 1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
BX1 = false;
BX2 = false;
}
if CurrentContracts < CurrentContracts[1] then
{
if (LatestExitName(0) == "bx11" or LatestExitName(0) == "bx12") Then
BX1 = true;
if (LatestExitName(0) == "bx21" or LatestExitName(0) == "bx22") Then
BX2 = true;
}
if BX1 == false Then
{
if H < R1 Then
ExitLong("bx11",AtLimit,R1,"",1,1);
if L > R1 Then
ExitLong("bx12",AtStop,R1,"",1,1);
}
if BX2 == false Then
{
if H < R2 Then
ExitLong("bx21",AtLimit,R2,"",1,1);
if L > R2 Then
ExitLong("bx22",AtStop,R2,"",1,1);
}
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*35 Then
ExitLong("bx3",AtStop,EntryPrice);
}
if MarketPosition == -1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
SX1 = false;
SX2 = false;
}
if CurrentContracts < CurrentContracts[1] then
{
if (LatestExitName(0) == "sx11" or LatestExitName(0) == "sx12") Then
SX1 = true;
if (LatestExitName(0) == "sx21" or LatestExitName(0) == "sx22") Then
SX2 = true;
}
if SX1 == False then
{
if L > S1 Then
ExitShort("sx11",AtLimit,S1,"",1,1);
if H < S1 Then
ExitShort("sx12",AtStop,S1,"",1,1);
}
if SX2 == false then
{
if L > S2 Then
ExitShort("sx21",AtLimit,S2,"",1,1);
if H < S2 Then
ExitShort("sx22",AtStop,S2,"",1,1);
}
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*35 Then
ExitShort("sx3",AtStop,EntryPrice);
}
}
SetStopLoss(PriceScale*20,PointStop);
즐거운 하루되세요
2019-06-29
184
글번호 129863
답변완료
오류 수정 요청
아래 시스템식중 ①②③에서 연산자 앞뒤 두 데이터의 형태가 같아야 합니다.
라고 오류가 뜨는데 그 이유를 알고 싶습니다.
================================================================================
input:shortPeriod(5),midPeriod(10),longPeriod(20),Percent(1),수렴조건(2),청산조건(1);
var:단기이평(0),중기이평(0),장기이평(0),정배열(0),역배열(0),최대(0),최소(0),이평수렴(0);
단기이평=ma(C,shortPeriod);
중기이평=ma(C,midPeriod);
장기이평=ma(C,longPeriod);
정배열 =단기이평>중기이평 and 중기이평>장기이평;//①
역배열 =단기이평<중기이평 and 중기이평<장기이평;//②
최대=max(단기이평,중기이평,장기이평);
최소=min(단기이평,중기이평,장기이평);
이평수렴 =최대[1]/최소[1]<=(1+Percent/100);//③
if CrossUp(단기이평,중기이평) and 정배열 and
((수렴조건 == 1 and AccumN(이평수렴,5)>0) or
(수렴조건 == 2 and 이평수렴)or
(수렴조건 == 3 and AccumN(이평수렴,3)==3))
then
Buy();
if(청산조건==1and!정배열)or
(청산조건 == 2 and 역배열 )
then
ExitLong();
if CrossDown(단기이평, 중기이평) and 역배열 and
(( 수렴조건 == 1 and AccumN( 이평수렴 ,5) > 0) or
( 수렴조건 == 2 and 이평수렴 ) or
( 수렴조건 == 3 and AccumN( 이평수렴 ,3) == 3))
then
Sell();
if ( 청산조건 == 1 and ! 역배열 ) or
( 청산조건 == 2 and 정배열 ) then
ExitShort();
2019-06-28
186
글번호 129861
답변완료
63070 번 수식
20 이평이 상승에서 하락 전환시 20 캔들 최고치를 표시한다(A)
20 이평이 하락에서 상승 전환시 20 캔들 최저치를 표시한다(B)
20 이평이 하락에서 상승 전환후 다시 하락 전환할 때 20캔들 최고치를 표시한다(C)
20 이평이 상승에서 하락 전환후 다시 상승 전환할 때 20캔들 최저치를 표시한다(D)
C 가 A 보다 낮은 상태에서 B 바닥 붕괴시 A~B 상향 대칭을 표시한다
C 가 A 보다 낮은 상태에서 B 바닥 붕괴시 B~A 하향 대칭을 표시한다
D 가 B 보다 높은 상태일때 C 천정 돌파시 C~B 상향 대칭을 표시한다
D 가 B 보다 높은 상태일때 A 천정 돌파시 A~B 상향 대칭을 표시한다
2019-06-28
190
글번호 129859
답변완료
질문드립니다
얼마전 다음과 같은 답변을 주셨습니다
------------------------
수식으로 틱봉차트에서 분봉 지표가 정확히 계산이 불가능 합니다.
랭귀지는 각봉의 시고저종가만 사용하는데
하나의 틱봉에서 시간경계로 값을 나눌수가 없습니다.
문의하신 내용은 참조데이타를 이용하셔야 합니다.
틱봉차트에 분봉데이타를 참조데이타로 추가하고 아래식 적용하시면 됩니다.
참조데이타는 차트왼쪽 상단의 종목선택버튼 중 오른쪽 클릭하면
선택해서 차트에 추가할수 있습니다.
기본차트와 같은 종목을 다른주기로 셋팅이 가능합니다.
input : P(15);
var1 = ma(C,P);
if crossup(c,var1) Then
buy();
if CrossDown(c,var1) Then
sell();
즐거운 하루되세요
-------------------------------------
이상과 같이 답변을 주셨길래
그래서 제가 보는 틱차트에
참조데이터로 5분봉을 추가했는데요
위에 주신 수식 시스템으로 넣으니까
5분봉에 대한 15 이평이 화살표가 아닌
틱차트에 대한 15 이평 화살표가 적용됩니다.
제가 뭔가 잘못 적용한건가요?
2019-06-28
204
글번호 129851
답변완료
잘 부탁드립니다
주말 열심히 공부 하겠습니다
잘 부탁드립니다
감사합니다
매수진입
- 1차 -> 스토케스틱(12.5.5) (18)이하에서 k 와 d 가 골든크로스 나면 현제봉 포함
이전 5개봉 중(최 저가)를 기준 수치로 확정합니다
- 2차 -> 최저가 봉 포함 (5개봉)의 최고가 와 최저가의 차이가 (20틱) 이상 상승 이며
- 3차 -> 최저가 봉 포함 (10개봉) 이하의 봉수로 최저가 가격 (+5틱) (-4틱)
범위에 도탈하고
- 4차 -> 스토케스틱 ( 5.3.3 )골든 크로스에 시장가 매수진입 입니다
매도진입
- 1차 -> 스토케스틱(12.5.5) (82)이상에서 k 와 d 가 데드크로스 나면 현제봉 포함
이전 5개봉 중(최 고가)를 기준 수치로 확정합니다
- 2차 -> 최고가 봉 포함 (5개봉)의 최고가 와 최저가의 차이가 (20틱) 이상 하락 이며
- 3차 -> 최고가 봉 포함 (10개봉) 이하의 봉수로 최저가 가격 +(5틱) -(4틱)
범위에 도탈하고
- 4차 -> 스토케스틱 ( 5.3.3 )데드 크로스에 시장가 매수진입 입니다
매수청산
스토(12.5.5 ) 데드크로스 발생시
매도청산
스토 (12.5.5) 골든크로스 발생시
손절틱//익절틱
손절(110틱)//익절(25틱)
**** () 수치들 최적화 가능하게 부탁 드립니다
선생님 잘 부탁 드립니다
늘 감사합니다
2019-06-28
200
글번호 129849
답변완료
수정부탁합니다
INPUTS: P(14),R(4), S(8), U(6),sto1(26),sto2(17);
var : Truestrength(0),T1(0),stok(0),T2(0),atrv(0),T3(0);
atrv = atr(p);
Truestrength = TSI(C, R, S, U);
stok = StochasticsK(sto1,sto2);
if atrv > atrv[1] Then
T1 = 1;
if atrv < atrv[1] Then
T1 = -1;
if Truestrength > Truestrength[1] Then
T2 = 1;
if Truestrength < Truestrength[1] Then
T2 = -1;
if stok > stok[1] Then
T3 = 1;
if stok < stok[1] Then
T3 = -1;
if T1 == 1 and
countif(T1==1 and *****클로즈업 검색조건****
T1[1] != 1,5) >= 1 and
Truestrength <= 50 and
T2 == 1 and
countif(T2==1 and *****클로즈업 검색조건****
T2[1] != 1,7) >= 1 and
stok <= 80 and
T3 == 1 and
countif(T3==1 and *****클로즈업 검색조건****
T3[1] != 1,7) >= 1 and
Then
find(1);
수정부탁합니다
2019-06-28
188
글번호 129848
답변완료
좋은 주말 되십시요^^
* 항상 많은 도움에 고맙습니다.
* 요청 사항
당일 9시1분 첫봉을 기준으로(1분봉)
- 양봉이면 +1점 음봉이면 -1점 도지면 0점
- 거래량이 전봉대비 크면 +1점 작으면 -1점 동일하면 0점
이렇게 누적 더하기 하여 지표선 좀 요청 드립니다.
* 고맙습니다.
2019-06-28
193
글번호 129846
답변완료
안녕하세요? 수식부탁드립니다.
안녕하세요?
수식부탁드립니다.
ㄱ). 60ma보다 5 P(5포인트) 적은 지(시)점에서 매수
ㄴ). 60ma보다 5 P(5포인트) 크면 시(지)점에서 매도
위의 매매수식
부탁드립니다.
감사합니다.
건강하세요.
2019-06-28
168
글번호 129843