커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
2545
글번호 230811
답변완료
함수요청
안녕하세요?
국내선물 30분봉으로 포지션매매를 하고자 합니다.
20ma 상향돌파 : 매수
20ma 하향이탈 : 매도
MACD 오실레이터 음전환 : 매수청산
MACD 오실레이터 양전환 : 매도청산
*30분봉 기준으로 완성이후 익봉 시가매매입니다.
2021-12-28
634
글번호 154904
답변완료
부탁 드립니다.
도움에 늘 감사 합니다.
MACD를 타주기
1)틱봉용
2)일봉용 부탁 드립니다.
첨부 수식은 macd의 오래전 올려주신 타분봉용 수식 입니다.
input : Atime1(60);
input : short(12),long(26),sig(9);
var : mav(0),dis(0),SS(0),LL(0),MACDV(0),MACDS(0);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0);
var : TF1(0),ema11(0),ema12(0),idx1(0),Xema11(0),Xema12(0),XMACDS1(0),MACDV1(0),MACDS1(0);
var : Didx(0),ema51(0),ema52(0),idx5(0),Xema51(0),Xema52(0),XMACDS5(0),MACDV5(0),MACDS5(0);
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
Didx = Didx + 1;
Xema51 = ema51[1];
Xema52 = ema52[1];
XMACDS5 = MACDS5[1];
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%Atime1;
if bdate != bdate[1] or (TF1 < TF1[1] and bdate == bdate[1]) Then{
idx1 = idx1 + 1;
Xema11 = ema11[1];
Xema12 = ema12[1];
XMACDS1 = MACDS1[1];
}
if idx1 <= 1 then {
ema11 = C;
ema12 = C;
MACDV1 = (ema11-ema12)/ema12*100;
MACDS1 = MACDV1;
}
else{
ema11 = C * EP1 + Xema11 * (1-EP1);
ema12 = C * EP2 + Xema12 * (1-EP2);
MACDV1 = (ema11-ema12)/ema12*100;
MACDS1 = MACDV1 * EP3 + XMACDS1 * (1-EP3);
}
plot4(MACDV1);
plot5(MACDS1);}
타틱용 참고자료)
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
ii = 0;
}
Else
ii = ii +1;
if D1 > 0 then
{
TF = ii%nbar;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
idx = idx+1;
2021-12-27
799
글번호 154903
답변완료
수식 문의
아래 수식은 업다운볼의 차이를 페인트바로 표현한 수식입니다.
아래의 수식에 몇가지 조건을 더하고 싶은데
실력이 미천하여 도움을 구하고자 합니다.
-- 아 래 ---
if upvol > downvol Then
PlotPaintBar(H,L,"1",Rgb(242,150,97));
Else
PlotPaintBar(H,L,"1",rgb(103,153,255));
----------------
여기에 조건을 더하여,
1. 직전봉의 (upvol - downvol)의 값이 양수이고,
현재봉의 값이 음수이고,
2. 그 절대값이 직전봉의 절대값의 x배 이하면
ex : 직전봉값 abs(+1000*0.7) > 현재봉값 abs(-500)
직전봉의 색깔을 유지 합니다.
(직전봉의 값이 양수여도 전전봉의 색깔과 값에 따라
빨간색일수도 파란색일 수도 있음)
3. 그 절대값이 직전봉의 절대값의 x배 이상이면
rgb(103,153,255)(파란색) 색깔을 입힙니다.
4. 직전봉의 (upvol - downvol)의 값이 음수이고,
현재봉의 값이 양수이고,
5. 그 절대값이 직전봉의 절대값의 x배 보다 작으면
ex : 현봉값 abs(+100) < 직전봉값 abs(-500*0.7)
직전봉의 색깔을 유지 합니다.
(직전봉의 값이 음수여도 전전봉의 색깔과 값에 따라
빨간색일수도 파란색일 수도 있음)
6. 그 절대값이 직전봉의 절대값의 x배 보다 크면
(rgb(103,153,255) 빨간색) 색깔을 입힙니다.
즉,
(전봉값 * x) 보다 높은 절대값이 나오면 파란색/빨간색으로 칠하되,
그렇지 않으면 전봉의 색깔을 따라가도록 하고 싶습니다.
2021-12-27
841
글번호 154888
회원 님에 의해서 삭제되었습니다.
2021-12-27
199
글번호 154877
답변완료
문의드립니다
많은 도움을 주시니 감사 드립니다.
아래 시스템에서지금의 매수매도 방법은
매수는 상승추세선의 전저점을 하락추세 캔들이 깨고 내려갈 때 곧 전저점 지수 -1틱에 즉시 시장가 청산하고,
역방향 매수진입은 계속되는 하락추세 중에서 이전 전저점 지수 대비 -50틱 이상 하락추세가 나온 경우 지정가 매수진입하였습니다.
매도는 하락추세선의 전고점을 상승추세 캔들이 깨고 올라갈 때 곧 전고점 지수 +1틱에 즉시 시장가 청산하고,
역방향 매도진입은 계속되는 상승추세 중에서 이전 전고점 지수 대비 +50틱 이상 상승추세가 나온 경우 지정가 매도진입하였습니다.
이것을 아래와 같은 방식으로 수정 부탁드립니다.
먼저
역방향 매수진입은
상승추세선을 하락추세선이 깨고 내려갈 때 곧 상승추세선 또는 계속되는 상승추세선의 마지막 전저점을 기준하여 -50틱에 지정가 매수합니다.
역방향 매도진입은
하락추세선을 상승추세선이 깨고 올라갈 때 곧 하락추세선 또는 계속되는 하락추세선의 마지막 전고점을 기준하여 +50틱에 지정가 매도합니다.
다음
매수진입 물량의 청산은
하락추세선을 상승추세선이 깨고 올라갈 때 곧 하락추세선 또는 계속되는 하락추세선의 마지막 전고점을 캔들이 추세를 깨고 올라갈 때 곧 마지막 전고점 지수 +1틱에 시장가 청산한다.
매도진입 물량의 청산은
상승추세선을 하락추세선이 깨고 내려갈 때 곧 상승추세선 또는 계속되는 상승추세선의 마지막 전저점을 캔들이 추세를 깨고 내려갈 때 곧 마지막 전고점 지수 -1틱에 시장가 청산한다.
#상승추세선의 전저점
if T == 1 Then
var1 = 저점[1,1];
#하락추세선의 전고점
if T == -1 Then
var2 = 고점[1,1];
if MarketPosition <= 0 Then
{
#최근 상승추세선의 전저점에서 50틱 하락하면 매수진입
if var1 > 0 Then
Buy("b",AtLimit,var1-PriceScale*50);
}
if MarketPosition == 1 Then
{
#최근 하락추세선의 전고점에서 1틱 상승하면 매수포지션 청산
if Var2 > 0 Then
ExitLong("bx",AtLimit,Var2+PriceScale*1);
}
if MarketPosition >= 0 Then
{
#최근 하락추세선의 전고점에서 50틱 상승하면 매도진입
if Var2 > 0 Then
Sell("s",AtLimit,Var2+PriceScale*50);
}
if MarketPosition == -1 Then
{
#최근 상승추세선의 전저점에서 1틱 하락하면 매도포지션 청산
if var1 > 0 Then
ExitShort("sx",AtLimit,Sx-PriceScale*1);
}
2021-12-27
1223
글번호 154870
답변완료
문의
if 090000 에서 100000 사이에 buy 포지션 진입 then
{
청산수식
}
if 110000 에서 120000 사이에 sell 포지션 진입 then
{
청산수식
}
수식 완성 바랍니다.
2021-12-27
812
글번호 154869
답변완료
부탁드립니다
파라볼릭 매수매도 신호와 adx(14)가 35이상일 경우만 신호 나오고, adx(14)가 20아래로 있을 떄는 신호가 나오지 않도록 그리고 청산은 파라볼릭이 변형(매수신호후 파라볼릭 매도전환, 매도신호후 파라볼릭 매수전환)되었을 때로 수식 부탁드립니다. 감사드리고 좋은 하루 되세요.
2021-12-27
917
글번호 154868
답변완료
추세선 부탁드립니다.
If crossup(var1,var2) Then{
var3=Index;
var4=Lowest(L,Index-var6+1); //최근파동 저점
var5=var4[1]; // 그전파동 저점
}
If crossdown(var1,var2) Then{
var6=Index;
var7=Highest(H,Index-var3+1); //최근파동 고점
var8=var7[1]; //그전파동 고점
}
아래의 경우에 한정하여 추세선이 나타나게끔 하고 싶습니다.
(1) 최근 파동의 저점이 그전파동의 저점보다 클 경우에만 두 저점을 연결(연장)하는 우상향 지지추세선
(2) 최근파동의 고점이 그전파동의 고점보다 낮아지는 경우에 한하여 두 고점을 연결(연장)하는 우하향 저항추세선
부탁드립니다.
2021-12-26
715
글번호 154867
맴맴잉 님에 의해서 삭제되었습니다.
2021-12-26
2
글번호 154866