커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4818
글번호 230811
답변완료
부탁드립니다.
아래 지표에서 골든 데드크로스 날때 매수진입 청산 매도진입 청산이 동시에 이루어지도록 부탁드립니다.
var1 = Ma(c,5);
if var1 < var1[1] and var1[1] > var1[2] Then
plot1(L);
Else
NoPlot(1);
if var1 > var1[1] and var1[1] < var1[2] Then
plot2(H);
Else
NoPlot(2);
2015-06-24
119
글번호 87598
답변완료
39717 관련해서
답변2 진입식답변내용중
주간장시스템진입식은 buy("b",AtStop,OO[0]+(HH[1]-LL[1])*0.3); OR sell("s",AtStop,OO[0]-(HH[1]-LL[1])*0.3) 으로만 코딩하면되는데
복합장시스템에서 if HH[1] > 0 and LL[1] > 0 Then{
if HH[0] < OO[0]+(HH[1]-LL[1])*0.3 Then
를 추가하는 이유가 머죠 ? 주석과함께 설명부탁드립니다
주간장 9시-15시 야간장 2100-023000 일때
진입 조건식을 If BONGINDEX>1 AND time<020000 and entrcnt<1 then {
buy("B1", AtStop, BPS+Drange); bps= 첫봉종가
sell("S1", AtStop, BPS-Drange);} 로 작성하니 신호가 저녁12시지나서만 나옵니다 ..
참고로 dayoen 이 야간장시초가 (2100) 를 나타내고
일봉시가는 2100시초가 일봉종가는 다음날1500시종가로 해서 일봉이한개그려지네요//확인부탁
중국상품선물 은종목입니다
0900시를 장시작으로보고 023000 을 장 마감으해서 0900-0230 을 하루거래구간으로 ..
오전9시 시가 혹은 첫봉종가 + (전일0900에서0230사이고가 - 전일0900에서0230사이저가)를 전일변동폭으로해서 0230에 청산하면 기존 주간장데이시스템에 야간장데이타를 추가한거로 바도 되는건가요 ?
2015-06-24
122
글번호 87597
답변완료
배열의 평균
배열변수의 평균을 구하는 방법이 있나요?
시계열변수의 경우, 그냥 ma(변수, 기간) 으로 바로 계산이 가능한데,
배열변수는 어떻게 평균값을 계산하는지 궁금합니다.
이를테면,,, 다음과 갈은 배열이 있다고 했을때,
array: tmp[10](0);
요놈의 평균을, 다음과 같이 계산하려고 하면 오류가 나더라고요
ma(tmp, 10);
아니면 for문을 이용해서, 일일이 계산해야할까요?
2015-06-24
141
글번호 87595
답변완료
문의드립니다
안녕하세요.
수식을 만들었는데 무엇이 잘못되서 그런지 실행이 되지않읍니다.
보시고 간단하게 줄일것은 줄이고 틀린것은 수정부탁드립니다.
감사합니다.
######################
Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120);
Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0);
Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ;
value = sar(af,maxAF);
value1 = MACD(shortPeriod, longPeriod);
value2 = MACD(shortPeriod1, longPeriod1);
value3 = ma(c, shortPeriod2);
value4 = ma(c, longPeriod2);
##PAR조건
If crossup(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
If CrossDown(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
if H > var5 Then
var5 = H;
if L < var6 Then
var6 = L;
if crossUp(C, value) then
var8 = var4;
if CrossDown(C, value) then
var9 = var3;
if crossup(ma(c,5),var9) Then
var10 = var8;
if crossdown(ma(c,5),var8) Then
var10 = var9;
if crossup(ma(c,5),var10) then
var5= h;
if crossdown(ma(c,5),var10) then
var6= l;
if crossup(ma(c,5),var10) then
var7= var6;
if crossdown(ma(c,5),var10) then
var7= var5;
var11 =var6 + (var5-var6)*0.5;
If crossup(c, value) Then
{
var12 = H;
var13 = L;
}
If CrossDown(c, value) Then
{
var14 =h;
var15= l;
}
if var12 > var14 then
var16 = var12;
Else
var16 = var14;
if var13 < var15 then
var17 = var13;
Else
var17 = var15;
##cut loss
if ma(c,5) > var7 Then
var18 = var17;
Else
var18 = var16;
##trix
if index > 0 and date!=date[1] then
{
일간갭 = Open-Close[1]; //일간갭
갭누적 = 갭누적+일간갭; //일간갭 누적
}
GC = C - 갭누적;
value5 = ema(GC, shortPeriod);
value6 = ema(value5, shortPeriod);
value7 = ema(value6, shortPeriod);
TRIXGap = (value7-value7[1])/value7[1]*100;
OSC = trixgap;
##진입식
if T <= 0 and
ma5 > var7 and
value1 > 0 and
value2 > 0 and
value3 > value4 and
C > var11 and
osc > osc[1] And
crossup(c,value) Then{
T = 1;
HH = H;
}
if T >= 0 and
ma5 < var7 and
value1 < 0 and
value2 < 0 and
value3 < value4 and
C < var11 and
osc < osc[1] And
CrossDown(c,value) Then{
T = -1;
LL = L;
}
if T == 1 and crossup(C,HH) Then
buy("매수");
if MarketPosition == 1 and
value1 < 0 and osc < 0 and ma5 < var18 Then
ExitLong("매수청산");
if T == -1 and CrossDown(C,LL) Then
sell("매도");
if MarketPosition == -1 and
value1 > 0 and osc > 0 and ma5 > var18 Then
ExitShort("매도청산");
2015-06-24
126
글번호 87594
답변완료
수식 부탁드려요.
예를들어 MACD 가 MACD Signal 선을 골든크로스 했을때.
1번 수식
2계약 진입.
1계약은 진입 후 20틱 수익일때 청산
나머지 1계약은
30틱 수익후 10틱으로 내려오면 청산
40틱 수익후 15틱으로 내려오면 청산
50틱 수익후 20틱으로 내려오면 청산
2번 수식
프라이스 채널 지표를 이용했을때
프라이스채널 상단을 터치하고 다음봉 음봉으로 전환되면 매도 진입.
반대로 하단을 터치하고 양봉으로 전환되면 매수진입.
* 그리고 매수 매도 진입시 진입명을 정할 수 있는데.
진입한 진입가도 표시되게 할 수 있는 방법좀 부탁드립니다.
항상 감사합니다.
2015-06-24
129
글번호 87586
답변완료
지표식 작성간 로직문의
지표식 작성중에 문법로직에 대한 문의가 발생하여 문의드립니다.
원하는 지표는 다음과 같습니다.
1. 20일선 하향이탈 100건을 배열에 담는다.
2. 배열을 뒤져서 현재봉의 종가 또는 시가와 가장 근접한
봉의 위쪽, 봉의 아래쪽 값 두개를 찾아서 Plot으로 그려준다.
아래는 소스입니다.
Input: 일선1(5), 일선2(20);
Var: 종가변곡점2(0),
Cnt(0), Cnt1(0), Cnt2(0), 상위값(0), 하위값(0),
Array: 변곡발생[100](0), AA[100](0);
// 100개의 20일선 하향이탈을 기록한다.
If (CrossDown(C, 일선2)) Then
{
종가변곡점2 = (O + C) / 2;
변곡발생[0] = 종가변곡점2;
For Cnt = 1 To 100
{
변곡발생[Cnt] = 변곡발생[Cnt -1][1];
}
}
For Cnt1 = 0 To 99 {
AA[Cnt1] = Abs(C[1] - 변곡발생[Cnt1]);
MessageLog("인덱스: %f, 배열: %.2f", Cnt1, AA[Cnt1]);
}
하위값 = AA[0];
상위값 = AA[0];
For Cnt2 = 0 To 99 {
If (AA[Cnt2] < 하위값) Then {
하위값 = AA[Cnt2];
}
}
MessageLog("하위값: %.2f", 하위값);
//Plot3(상위값, "저항선", RED, DEF, 3);
Plot4(하위값, "지지선", BLUE, DEF, 3);
2015-06-24
152
글번호 87585
답변완료
시스템 수식 부탁드립니다.
코스피 200선물옵션 분봉에서
당일 5분봉 종가에서 위 or 아래 0.5 실시간(mit)진입
익절 0.5 손절 0.5로하고
당일청산 하고싶습니다.
저번에도 한번 부탁드렸는데... 시가에서 0.5로 되어있드라구용
5분봉 종가에서 0.5로 부탁드리겠습니다.~
2015-06-24
119
글번호 87581
답변완료
수식부탁드립니다.
if stime < 095900 then{
var1 = dayhigh;
var2 = daylow;
}
if stime >= 095900 Then{
if crossup(c,var1) Then
buy();
if CrossDown(c,var2) Then
sell();
}
SetStopLoss(0.6,PointStop);
SetStopProfittarget(0.8,PointStop);
SetStopEndofday(150000);
진입을 mit진입 하고싶습니다. (실시간 진입)
2015-06-24
112
글번호 87580
부득탐승 님에 의해서 삭제되었습니다.
2015-06-24
0
글번호 87578