커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1807
글번호 230811
회원 님에 의해서 삭제되었습니다.
2022-06-27
35
글번호 160198
답변완료
피라미딩 관련 질문
안녕하세요! 예스트레이더 참 잘 이용하고 있습니다. 간단한 터틀 트레이딩에 자금관리와 피라미딩을 적용했는데, 피라미딩에서 문제가 있습니다. 매수,매도 최초진입 바로 다음 봉에서 피라미딩 조건이 발생하는 경우에는 피라미딩이 적용되지 않는 것 같습니다. 진입 바로 다음봉이 아닌 상황에서는 피라미딩이 올바르게 적용되는데 말이죠.. 수식은 아래와 같습니다.
항상 도움 주셔서 감사드립니다.
input : capital(1000000000),ATRperiod(20),num(3),ABC(0.01);
Var : Nprice(0),E_num(0),N(0);
N=ATR(ATRperiod);
Nprice=(ATR(ATRperiod)*2)*bigpointvalue;
E_num=Int((capital+(NetProfit*bigpointvalue)*ABC)/Nprice);
/////////////////////////////////////////////////////////
input : period(20),period1(20);
Var1=Highest(H,period);
Var2=Lowest(L,period);
if MarketPosition == 0 And CrossUp(C,Var1[1]) Then
Begin
buy("매수",Def,Def,E_num);
Var30=Index;
End;
If MarketPosition == 1 and crossup(c,latestEntryPrice+N[Index-Var30]) and CurrentEntries<num Then
Begin
buy("매수 피라미딩",Def,Def,E_num);
Var30=Index;
End;
if MarketPosition == 1 Then
Begin
ExitLong("매수청산",AtStop,Lowest(L,period1));
ExitLong("매수 손절",Atstop,entryprice-N[BarsSinceEntry]*2);
ExitLong("매수 피라미딩 손절",AtStop,LatestEntryPrice-(2*N[Index-Var30]));
End;
/////////////////////////////////////////////////////////
If MarketPosition == 0 And CrossDown(C,Var2[1]) Then
Begin
Sell("매도",Def,Def,E_num);
Var40=Index;
End;
If MarketPosition == -1 and CrossDown(C,LatestEntryPrice-N[Index-Var40]) and CurrentEntries<num Then
Begin
Sell("매도 피라미딩",Def,Def,E_num);
Var40=Index;
End;
If MarketPosition == -1 Then
Begin
ExitShort("매도청산",Atstop,Highest(H,period1));
ExitShort("매도 손절",Atstop,entryprice+N[BarsSinceEntry]*2);
ExitShort("매도 피라미딩 손절",AtStop,LatestEntryPrice+(2*N[Index-Var40]));
End;
MessageLog("%.2f %.2f %.2f",LatestEntryPrice-N[Index-Var40],CurrentEntries,LatestEntryPrice);
2022-06-26
1241
글번호 160197
답변완료
문의 드립니다.
input : 익절틱수(120),손절틱수(20);
if NextBarSdate != sDate Then
{
if NextBarOpen > C Then
Sell("s",AtStop,NextBarOpen+PriceScale*-18);
if NextBarOpen < C Then
Sell("sx",AtStop,NextBarOpen-PriceScale*-18);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 수식어는 일봉상 시가가 전일대비 갭상 갭하일때 둘다 Sell 주문 수식어 입니다.
그래프의 사각형 노란색은 일봉의 역배열인 단순 이동평균선 1,5일선 데드후 골든
의 사이 입니다.
위 수식어를 1,5일선 데드후 골든의 사이에서만 진입및 청산이 되게 수정 해 주셨으면
합니다.
-----------------------------------------
input : 익절틱수(140),손절틱수(20);
if NextBarSdate != sDate Then
{
if NextBarOpen > C Then
Buy("b",AtStop,NextBarOpen+PriceScale*-18);
if NextBarOpen < C Then
Buy("bx",AtStop,NextBarOpen-PriceScale*-18);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 수식어는 일봉상 시가가 전일대비 갭상 갭하일때 둘다 Buy 주문 수식어 입니다.
일봉의 정배열인 단순 이동평균선 1,5일선 골든후 데드의 사이에서만 진입및 청산이 되게
수정 해 주셨으면 합니다.
-------------------------------------------------
input : 익절틱수(150),손절틱수(30);
if NextBarSdate != sDate Then
{
if NextBarOpen > C Then
{
Buy("b",AtStop,NextBarOpen+PriceScale*1);
Sell("s",AtStop,NextBarOpen-PriceScale*1);
}
if NextBarOpen < C Then
{
ExitLong("bx",AtStop,NextBarOpen-PriceScale*1);
ExitShort("sx",AtStop,NextBarOpen+PriceScale*1);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 일봉매매 수식어를 5분봉으로 하고자 합니다
1. 매매시간은 아침7시부터 익일 아침 5시50분 (24시에 신호가 나오는것은 금지)
으로 하여주시고 썸머타임기간의 수식어도 포함
2022-06-27
1440
글번호 160196
답변완료
지표식 문의 드립니다
안녕하세요
rule based trading 블로그에 올리신 다우이론 시스템 식입니다
제가 수식을 이해를 못해서요
차트에 나오는 추세선을 지표식으로 바꾸고 싶습니다
지표식으로 부탁드립니다
input:swingPeriod(5);
Var:신고가(False), 신저가(False), j(0),jj(0),최종꼭지점(""),추세구간(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
var : TL1(0);
var : HighStop(0), LowStop(0);
# 추세 판정
신고가 = Highest(H,swingPeriod) == H ;
신저가 = Lowest (L,swingPeriod) == L ;
If 신고가 == True and 신저가 == True Then { // 신고가 신저가 동시 발생
If 최종꼭지점 == "저점" Then {
If 저[1,1] > L Then
추세구간 = -1;
Else
추세구간 = 1;
}
Else If 최종꼭지점 == "고점" Then {
If 고[1,1] < H Then
추세구간 = 1;
Else
추세구간 = -1;
}
}
Else If 신고가 == True Then //신고가 발생
추세구간 = 1;
Else If 신저가 == True Then //신저가 발생
추세구간 = -1;
# 상승추세 구간
If 추세구간 == 1 Then {
If 최종꼭지점 == "저점" Then {
For j = 3 DownTo 2 {
For jj = 1 To 4 {
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,gray);
}
Else If 고[1,1] < H Then { // 1번 고점보다 높은 고가 출현
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
# 하락추세 구간
If 추세구간 == -1 Then {
If 최종꼭지점 == "고점" then {
For j = 3 DownTo 2 {
For jj = 1 To 4 {
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,gray);
}
Else If 저[1,1] > L then {
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
# 직전 스윙고가, 스윙저가
if 추세구간 == 1 Then
HighStop = 고[2,1];
Else
HighStop = 고[1,1];
if 추세구간 == -1 Then
LowStop = 저[2,1];
Else
LowStop = 저[1,1];
# 매매식
if MarketPosition <> 1 Then
Buy("B", AtStop, HighStop);
if MarketPosition <> -1 Then
Sell("S", AtStop, LowStop);
2022-06-26
1773
글번호 160195
답변완료
틱챠트에서
안녕하세요
틱챠트에서 지난 한시간동안의 최저가를 구하고 싶습니다.
분챠트에서는 봉의 갯수로 쉽게 파악이 되는데 틱챠트로 구하는 방법을 모르겠습니다;;
항상 감사합니다
2022-06-26
1446
글번호 160194
답변완료
DMI 지표 관련
안녕하세요, 항상 감사드립니다.
DMI 지표에서 PDI가 30 이상인 경우 DMI 지표의 90 라인에 마킹을 하고 싶습니다. 마킹 왼쪽에 "PDI>30"이라는 문자도 표시하는 수식 부탁드립니다.
미리 감사드립니다.
2022-06-26
1272
글번호 160193
답변완료
특정일 가격 검색
업무에 수고가 많으십니다.
특정일(22년6월2일)을 Input(220602) 에 입력후 해당data# 고가, 저가를 리턴하는
수식을 알고 싶습니다.
감사합니다.
2022-06-26
1258
글번호 160192
2wnwn 님에 의해서 삭제되었습니다.
2022-06-26
21
글번호 160191
답변완료
문의 드립니다!
안녕하세요!
아래수식을 전월물이 아닌 전전월물 기준으로 수정 부탁드립니다
감사합니다!
------------------------------------------------------------------------------------
var : month(0),nday(0),week(0);
var :EX(false),HH(0),LL(0),OO(0),CC(0),DD(0),HH1(0),LL1(0),OO1(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
#선물만기
#if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
if nday >= 8 and nday <= 14 and week == 4 then#옵션만기
EX = true;
Else
EX = false;
if EX == false and EX[1] == true Then{
Condition1 = true;
DD = sDate;
HH = H;
LL = L;
OO = O;
CC = C;
HH1 = HH[1];
LL1 = LL[1];
OO1 = OO[1];
}
if Condition1 == true then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = HH;
var2 = LL;
var3 = var1-var2;
plot1(var1,"Maxi");
plot2(var2+var3*0.500,"중심");
plot3(var2,"Mini");
if sDate == DD Then
{
Var4 = DayOpen;
Var5 = DayHigh;
Var6 = DayLow;
}
Plot4(Var4,"첫날시가",IFf(oo1 < DayOpen(0) ,MAGENTA,MAGENTA));
if HH1 > 0 and LL1 > 0 Then
{
Plot5(HH1,"전월물최고");
Plot6(LL1,"전월물최저");
}
}
2022-06-25
1207
글번호 160190