커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7731
글번호 230811
답변완료
수식 부탁드립니다.
번거롭게 해서 죄송하지만 이번 식 좀 예스로 변환 부탁드립니다.
//+------------------------------------------------------------------+
//| //| Ramdass - Conversion only
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Aqua
//---- input parameters
extern int RISK=3;
extern int CountBars=300;
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,234);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| ASCTrend1sig |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=1000) CountBars=950;
SetIndexDrawBegin(0,Bars-CountBars+11+1);
SetIndexDrawBegin(1,Bars-CountBars+11+1);
int i,shift,counted_bars=IndicatorCounted();
int Counter,i1,value10,value11;
double value1,x1,x2;
double value2,value3;
double TrueCount,Range,AvgRange,MRO1,MRO2;
double Table_value2[1000];
value10=3+RISK*2;
x1=67+RISK;
x2=33-RISK;
value11=value10;
//----
if(Bars<=11+1) return(0);
//---- initial zero
if(counted_bars<11+1)
{
for(i=1;i<=0;i++) val1[CountBars-i]=0.0;
for(i=1;i<=0;i++) val2[CountBars-i]=0.0;
}
//----
shift=CountBars-11-1;
while(shift>=0)
{
Counter=shift;
Range=0.0;
AvgRange=0.0;
for (Counter=shift; Counter<=shift+9; Counter++) AvgRange=AvgRange+MathAbs(High[Counter]-Low[Counter]);
Range=AvgRange/10;
Counter=shift;
TrueCount=0;
while (Counter<shift+9 && TrueCount<1)
{if (MathAbs(Open[Counter]-Close[Counter+1])>=Range*2.0) TrueCount=TrueCount+1;
Counter=Counter+1;
}
if (TrueCount>=1) {MRO1=Counter;} else {MRO1=-1;}
Counter=shift;
TrueCount=0;
while (Counter<shift+6 && TrueCount<1)
{if (MathAbs(Close[Counter+3]-Close[Counter])>=Range*4.6) TrueCount=TrueCount+1;
Counter=Counter+1;
}
if (TrueCount>=1) {MRO2=Counter;} else {MRO2=-1;}
if (MRO1>-1) {value11=3;} else {value11=value10;}
if (MRO2>-1) {value11=4;} else {value11=value10;}
value2=100-MathAbs(iWPR(NULL,0,value11,shift)); // PercentR(value11=9)
Table_value2[shift]=value2;
val1[shift]=0;
val2[shift]=0;
value3=0;
if (value2<x2)
{i1=1;
while (Table_value2[shift+i1]>=x2 && Table_value2[shift+i1]<=x1){i1++;}
if (Table_value2[shift+i1]>x1)
{
value3=High[shift]+Range*0.5;
val1[shift]=value3;
}
}
if (value2>x1)
{i1=1;
while (Table_value2[shift+i1]>=x2 && Table_value2[shift+i1]<=x1){i1++;}
if (Table_value2[shift+i1]<x2)
{
value3=Low[shift]-Range*0.5;
val2[shift]=value3;
}
}
shift--;
}
return(0);
}
//+------------------------------------------------------------------+
위 식은 메타에 있는 수식으로 조건이 맞으면 매도는 ↓를 해당캔들위에 매수는 ↑를 해당 캔들 아래에 표시합니다.
bars는 현 차트의 캔들 개수이고 High와 Low는 Highest와 Lowest와 같은 뜻이 듯하고
iWPR 은 윌리엄의 % R 수식입니다.
예스로 변환 좀 부탁드립니다.
2011-04-15
924
글번호 37638
답변완료
문의드려요
안녕하세요 `
피보나치 수치로 , 매수 , 매도 표시가 나왔음 하는데요..
피보나치 수열값을 이용한 가격을 비교하여 화살표와 소리가 나왔음 합니다 진입,청산
피보나치 수치는 기본
예) 100에서 시작해서 76이나 61.8 밑으로 가면 밑으로 매도 표시 요런식
반대로 도마찬가지 , 이해 하시겟죠?
제가 두서가 없습니다 ㅠㅠ위로가면 매수 표시 아래로 가면 매도 표시 이렇게요 `
시스템으로 해야 죠? 100, 76.4 61.8 50, 38.2 요렇게 해주세요.
다시설명하면 , 기준 은 고점 이 생길것이고 저점이 생길것입니다.
제가 바꿀수있게 설정해주세요 ..
아니면수시로바꿀수없다면 2개의시스템으로 부탁드려요 .
하나는 고점 에서 부터의 피보나치 다른하나는 , 저점에서의 피보나치.
이렇게요 .
부탁드려요 ~
2011-04-15
790
글번호 37637
답변완료
타주기
안녕하세요?
5분봉 C 와 data2(C)를 이용하여 v라는 지표를 하나 만들었습니다.
이 지표가 0을 cross 하는 것에 따라서 매수건 매도건 진입을 하려고 합니다.
즉, if crossup(v,0) then buy(10개);
if crossdown(v,0) then sell(10개);
물론, 이 지표는 5분뿐 아니라 30분봉 차트에서도 잘 돌아갑니다.
제, 소원은 30분봉에서의 v 값이 0 이상이면 5분봉에서의 v 값으로는 매수진입만 하고,
30분봉에서의 v 값이 0 이하이면 5분봉에서의 v 값으로 매도진입만 하고 싶습니다.
어떻게 하면 되나요?
제 생각에
주종목에는 5분봉 선물, 제 1 참조종목으로는 5분봉 외인순매수량
제2 참조종목으로는 30분봉 선물, 제 3 참조종목으로는 30분봉 외인순매수량
뭐 이정도를 차트에 띄운 상태에서 어떻게 하면 되지 않을까 싶습니다.
감사합니다.
2011-04-15
727
글번호 37636
답변완료
타주기 참조
안녕하세요 질문입니다
아래식을 타주기 참조 로 변환 부탁드립니다
타주기 참조==> data2 종합지수(60분) 와 data3 다우산업(일간) 추가 해주세요
감사합니다 ^^
input : shortP(5),longP(20),Profit1(2),Loss1(1),Profit2(5),Loss2(2.5);
var : MAV1(0),MAV2(0),buyVal(0),Sellval(0);
MAV1 = ma(C, shortP);
MAV2 = ma(C, longP);
### 매수식
if crossup(MAV1,MAV2) then {
buy();
var1 = 0;
}
if marketposition() == 1 and h > entryprice() * (1 + Profit1/100) then {
var1 = 1;
buyVal = h;
}
if marketposition() == 1 and h > entryprice() * (1 + Profit2/100) then {
var1 = 2;
buyVal = h;
}
if var1 == 1 and C < buyVal * (1 - Loss1/100) then{
exitlong("TrailingStop1(매수)");
var1 = 0;
}
if var1 == 2 and C < buyVal * (1 - Loss2/100) then{
exitlong("TrailingStop2(매수)");
var1 = 0;
}
### 매도식
if crossdown(MAV1, MAV2) then {
sell();
var2 = 0;
}
if marketposition() == -1 and l < entryprice() * (1 - Profit1/100) then {
var2 = -1;
sellVal = l;
}
if marketposition() == -1 and l < entryprice() * (1 - Profit2/100) then {
var2 = -2;
sellVal = l;
}
if var2 == -1 and C > sellVal * (1 + Loss1/100) then{
exitshort("TrailingStop1(매도)");
var2 = 0;
}
if var2 == -2 and C> sellVal * (1 + Loss2/100) then{
exitshort("TrailingStop2(매도)");
var2 = 0;
}
2011-04-15
637
글번호 37635
하루우유 님에 의해서 삭제되었습니다.
2011-04-15
270
글번호 37634
하루우유 님에 의해서 삭제되었습니다.
2011-04-15
259
글번호 37633
답변완료
선물 일간 자동매매 주문 방법
일간차트 에서 선물매매 갭 을 방지하려면 시장가 사용하라구 하셨는데
식을 작성하려면 ???
매수=> buy();
매도=> sell();
이렇게 작성한것이 onclose 인가요? 아닌것같은데???
매수=> buy("atmarket");
매도=> sell("atmarket");
이렇게 하면 이미 시장가 적용했으니 추가로되었다 오류 나옵니다
매수=> buy("batmarket");
매도=> sell("satmarket");
이렇게 하면 검증이 되네요
일간 차트 매매 동시호가 의 갭 방지 하려면 방법은???
그런데 이상한점 한가지 시물레이션 장기간 테스트해보면 값이같아요 ㅜㅜㅜ
전문가님 의 조언 부탁합니다 감사^^
2011-04-15
775
글번호 37632
답변완료
시스템식
시간: 09:00 ~ 14:49
매수: 오늘종가가격이 어제종가에서 -1.5%이하 하락시 오늘종가에 매수 (피라미딩5)
매도: 매수한 총합계의 평균가격이 2.5% 이상 오를시 매도청산
2011-04-15
698
글번호 37631
답변완료
setstoploss 관련 문의
바로이전 신호가 setstoploss 가 발생햇는지 안했는지 어떻게 하면 알수 있나요 ??
2011-04-14
839
글번호 37630