커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7470
글번호 230811
답변완료
조건 추가 부탁드립니다.
아래식에 진입조건 한가지 추가해 주세요.
현재식은 진입 가격이 피봇 기준선 +1틱 이하로 하락시 진입인데요.
-진입은 최소한 전일 종가대비 -3%이하로 하락시 진입
(즉, 피봇 기준선이 전일 종가대비 0%~-3%일 때에는 피봇기준선 +1틱에서 진입하지 않고, 전일 종가대비 -3%까지 하락하면 진입)
====================================
var : cnt(0),count(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
var : xVol1(0),xvol2(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
count = 0;
for cnt = 0 to 20{
if EntryDate(cnt) == sdate Then
count = count+1;
}
if stime >= 090000 and stime < 093000 and count < 1 and dayhigh < dayopen*1.04 and DayVolume <= DayVolume(1)*0.30 Then{
if dayopen >= DayClose(1)*0.98 and dayopen < DayClose(1)*1.06 Then
buy("b1",AtLimit,Pivot+PriceScale*3);
if dayopen >= DayClose(1)*1.06 Then
buy("b2",atlimit,DayClose(1));
}
if MarketPosition == 1 Then{
if CodeCategoryEx == 11 and BasePrice < 50000 Then{
xvol1 = int(int(CurrentContracts*(1/3))/10)*10;
xvol2 = int(int(CurrentContracts*(1/2))/10)*10;
}
Else{
xvol1 = int(CurrentContracts*(1/3));
xvol2 = int(CurrentContracts*(1/2));
}
exitlong("bp1",atlimit,EntryPrice*1.05,"",Xvol1,1);
exitlong("bp2",atlimit,EntryPrice*1.065,"",Xvol2,1);
exitlong("bp3",atlimit,EntryPrice*1.08);
if Highest(H,BarsSinceEntry) >= EntryPrice*1.05 Then
exitlong("btr",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5);
exitlong("bl",AtStop,EntryPrice*0.955);
if stime == 100000 and DayVolume >= DayVolume(1)*0.8 Then
ExitLong("bx");
if sdate == EntryDate and stime >= 103000 Then
ExitLong("bx1",AtLimit,EntryPrice*1.015);
}
SetStopEndofday(140000);
2015-02-16
160
글번호 83268
답변완료
재차 질문드립니다.
If CrossDown(value, 0) and condition1 == false Then
Sell(a);
If CrossDown(value, 0) and condition2 == false Then
Sell(b);
제가 제대로 설명을 드리지 못했던거 같네요.
예를 들어 현재봉에서 condition1은 사실이고 condition2는 거짓이라고 한다면
sell(a)는 발생하지 않는데요 그러나 sell(b)가 발생됩니다.
지금 현재봉에서는 어떤 매도주문도 발생하지 않아야 하는데 말입니다.
어떤식으로 식을 작성해야 할까요?
답변 감사드립니다.
=======================================================================
안녕하세요
예스스탁입니다.
작성하신 식은
value가 0을 하향이탈하는 봉에서 conditon1이나 condition2 중 하나라도
false이면 신호가 발생합니다.
식을 아래와 같이 구성하시면
특정조건 만족할때 condition1이 false이면 매도주문하고
특정조건 만족할때 condition2가 false이면 매도주문합니다.
각각 작성했으므로 상대 condition하고는 무관합니다.
특정조건식은 기존의 하향이탈을 사용했습니다.
각 매도에 맞게 지정하시면 됩니다.
If CrossDown(value, 0) and condition1 == false Then
Sell();
If CrossDown(value, 0) and condition2 == false Then
Sell();
즐거운 하루되세요
> 알고리즘 님이 쓴 글입니다.
> 제목 : 수식 질문드려요
> Input : Period(9) ;
Var : value(0);]
var1 = ma(c,5);
var2 = ma(c,20);
value = CCI(Period);
condition1 = crossup(c,var1) and atc;
condition2 = crossup(c,var2) and atc;
If CrossDown(value, 0) and (condition1 == false or condition2 ==false) Then
Sell();
이렇게 작성하니깐 어느곳(condition1,2)에서나 매도주문이 발생을 하네요
즉 condition1이 true여서 매도가 발생안되어야 하는데 condition2가 false여서
매도 주문이 발생합니다.
condition1이 거짓일때는 condition2에 무관하게 매도주문이 발생하고
또한 별도로 condition1과 관계없이 condition2가 false이면은 매도 주문이 발생하게
하고 싶은데 어떻게 해야되는지요?
If CrossDown(value, 0) and condition1 == false Then
Sell(a);
If CrossDown(value, 0) and condition2 == false Then
Sell(b);
제가 제대로 설명을 드리지 못했던거 같네요.
예를 들어 현재봉에서 condition1은 사실이고 condition2는 거짓이라고 한다면
sell(a)는 발생하지 않는데요 그러나 sell(b)가 발생됩니다.
지금 현재봉에서는 어떤 매도주문도 발생하지 않아야 하는데 말입니다.
어떤식으로 식을 작성해야 할까요?
답변 감사드립니다.
2015-02-16
162
글번호 83261
답변완료
조건검색식 제작의뢰 합니다
수고많으십니다
검색식 제작을 검토의뢰 하고져 합니다
1분봉에서 캔들이 선행스팬2을 돌파할때 해당되는 종목 찾은 검색식을 의뢰합니다
이때 1000 이평선은 캔들 아래있을때 한해서 검색식을 만들어 주시면 감사하겠습니다
검색식 작성하신후 반드시 검색종목이 나오시는지 확인하여 주시면 더욱 감사하겠습니다
2015-02-16
220
글번호 83248
답변완료
조건검색식 제작의뢰 합니다
수고많으십니다
검색식 제작을 검토의뢰 하고져 합니다
1분봉에서 캔들이 선행스팬2을 돌파할때 해당되는 종목 찾은 검색식을 의뢰합니다
이때 1000 이평선은 캔들 아래있을때 한해서 검색식을 만들어 주시면 감사하겠습니다
검색식 작성하신후 반드시 검색종목이 나오시는지 확인하여 주시면 더욱 감사하겠습니다
2015-02-16
212
글번호 83247
답변완료
차트 신호표시
연결선물차트에 이평선 골든크로스시 매수 적색화살표
이평선 데드크로스시 매도 청색화살표를 표시하고 싶습니다.
다시 말씀드리자면,
현재가가 5이평을 골든크로스시, 10이평을 골든크로스시, 20이평을 골든크로스시,
60이평을 골든크로스시, 120이평을 골든크로스시 ---> 매수 적색화살표
현재가가 5이평을 데드크로스시, 10이평을 데드크로스시, 20이평을 데드크로스시,
60이평을 데드크로스시, 120이평을 데드크로스시 ---> 매도 청색화살표
수고하십시요
2015-02-16
172
글번호 83244
답변완료
문의합니다
안녕하세요
옵션입니다
스토캐스틱지표에서 12.3.3을사용합니다
침체에서탈출시 매슈수익10틱청산 수익안주고 하락시에는 침체늪에있을때 최저점을 이탈하락하면은 매도진입 수익10틱청산 수익안주고 상승하면은 앞침체있을때최저점(매수에서매도로전환된가격)을 돌파하면은 매수
이렇게반복되도록 부탁합니다
그러니까 수익청산되면은 다시침체들어갈때까지무포 침체탈출시앞시스템반복
2015-02-16
154
글번호 83242
답변완료
부탁합니다.
다음 조건에 맞는 시스템식을 부탁드립니다.
1) 준비단계
a) P1단기이동평균선 > P2중기이동평균선 > P3장기이동평균선 이면 상승추세로
b) P1단기이동평균선 < P2중기이동평균선 < P3장기이동평균선 이면 하락추세로 간주 합니다.
c) N 지수이동평균선을 구합니다.
d) 첫 번째 봉에서, 현재봉의 시가에 이전 W개 봉의 변동성에 X를 곱한 값을 더해 상방 밴드로 정의 합니다.
e) 현재 봉의 시가에 이전 W개 봉의 변동성에 X를 곱한 값을 빼서 하방 밴드로 정의 합니다.
f) 지수이동 평균이 상단 밴드를 돌파하면 , 상단 밴드는 하단 밴드가되고, 새 하단 밴드에 이전 W개 봉의 변동성의 X배 값을 더하여 새로운 상단 밴드를 만듭니다.
g) 지수이동 평균이 하단 밴드를 돌파하면, 하단 밴드는 상단 밴드가 되고, 새 상단 밴드에 이전 W개 봉의 변동성의 X배 값을 빼서 새로운 하단 밴드를 만듭니다.
2) 매수진입
시장이 상승 추세이고, 지수이동평균이 상단 밴드를 돌파하면 그 봉의 종가에 매수
3) 매도진입
시장이 하락 추세이고, 지수이동평균이 하단 밴드를 돌파하면 그 봉의 종가에 매도
4) 청산
가격이 하단 밴드에 닿으면 매수포지션 청산, 가격이 상단 밴드에 닿으면 매도포지션을 청산 합니다.
2015-02-16
166
글번호 83241
답변완료
문의드립니다.
안녕하세요
일봉차트에서
var1=Lowest(L[30],150); 최저가 var1 이후에 상승하여
최근 최고가 var2를 찍고
var2>var1*1.5 && var2>ma(c,60)
이후 하락하여 최근최저가 var3는
var3<(var1+var2)/2 && var3<ma(c,60) && var3>var1 (최근최저가var3는 이전최저가 var1 보다 큼)
var3 이후 상승하여
당일종가가 60이평을 상향돌파한 종목을 검색하라는 수식을 알려주세요.
수고하세요.
2015-02-16
159
글번호 83237
답변완료
추가시
추가시 하나 부탁합니다
질문1
기준선을 제 이미로 정해서 돌파시 이탈시
아래 식에서 매수는 양봉시만 매도는 음봉시만 추가좀 부탁합니다
if crossup((c+O)/2,var1) Then
buy("b",OnClose,def,10);
if CrossDown((c+O)/2,var1) Then
sell("s",OnClose,def,10);
2015-02-15
205
글번호 83235