커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3502
글번호 230811
답변완료
문의드립니다~
수식 1 / 수식 이름 A
V1=HIGHEST(H(1),P29);
V2=LOWEST(L(1),P29);
(C-V2)/(V1-V2)
1.
A가 0.51 상향 돌파 시 매수, 하향 돌파 시 매도
당일 익절 21틱( 수익청산 - 손절청산 - 매매수수료(왕복10불))
조건 미달 시 새벽 5시 매매종료
당일수익청산 시간 기준은 오후 3시부터 새벽5시까지
2.
A가 1.01 하향 돌파 시 매도,
A가 1.01 하향 돌파 후 0.01 을 하향 돌파하지 못하고 다시 1.01을 상향 돌파시 매수 스위칭
A가 0.01 상향 돌파 시 매수,
A가 0.01 상향 돌파 후1.01을 상향 돌파하지 못하고 다시 0.01을 하향 돌파 시 매도 스위칭
당일 익절 21틱( 수익청산 - 손절청산 - 매매수수료(왕복10불))
조건 미달 시 새벽 5시 매매종료
1.01 하향 돌파 매도 진입 후 미청산 시 0.01 하향 돌파는 진입 금지
0.01 상향 돌파 매수 진입 후 미청산 시 1.01 상향 돌파는 진입 금지
당일수익청산 시간 기준은 오후 3시부터 새벽5시까지
시스템 수식과 지표수식 같이 부탁드립니다~
지표수식에 1.01, 0.51, 0.01 선이 나올 수 있게 부탁드립니다~
감사합니다^^
2020-01-15
151
글번호 135146
답변완료
문의
당일 고가갱신 n회
당일 저가갱신 n회
수식 내용도 반영바랍니다.
********************************************************************
안녕하세요
예스스탁입니다.
if MarketPosition == 0 and #현재 무포지션이고
DayHigh(0) != DayHigh(0)[1] Then
buy("b2");
if MarketPosition == 0 and #현재 무포지션이고
DayLow(0) != DayLow(0)[1] then
sell("s2");
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 문의
> 청산이후라는 조건만 삭제하고 싶습니다.
즉, 무포지션일 때 당일고가나 저가갱신 시 진입하는 수식입니다.
*******************************************************************************
if MarketPosition == 0 and #현재 무포지션이고
countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수 Then #청산이후 당일고가 갱신이
n회이상 있었으면
buy("b2");
if MarketPosition == 0 and #현재 무포지션이고
countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수 Then #청산이후 당일저가 갱신이
n회이상 있었으면
sell("s2");
2020-01-15
149
글번호 135145
답변완료
65622 재문의 답변 부탁드립니다.
.
2020-01-14
144
글번호 135141
답변완료
수정문의 드립니다~
Input : 당일수익틱수(21),당일손실틱수(100);
input : t5(5),p13(13),p5(5);
var : j(0),n(0),d(0),kt(0),kts(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if sdate != sdate[1] Then
SetStopEndofday(050000);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
j = c-c[t5];
n = ema(ema(j,p13),p5);
d = ema(ema(abs(j),p13),p5);
kt = 100*n/d;
kts = ema(kt,6);
if Xcond == false and crossup(kt,60) Then
buy();
if Xcond == false and crossup(kt,-60) Then
buy();
if Xcond == false and CrossDown(kt,60) Then
sell();
if Xcond == false and CrossDown(kt,-60) Then
sell();
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
hts 접속하고 전략실행 후 첫 신호 진입 이후부터 조건이 성립되게 수식을 수정할 수 있을까요?
그리고 +60 하향 돌파 시 매도 진입하고 물량이 청산 안되었을 때 -60을 다시 하향 돌파하니 추가로 물량이 매도가 되는데
물량 보유시 추가 매도 되지 않게,
반대로도 -60 상향 돌파 시 매수 진입하고 물량이 청산 안되었을 때 +60을 다시 상향 돌파하면 추가로 매수 되지 않게 수정 부탁드립니다~
그리고 전략실행 시작하고 첫 신호나오면 매매수량을 1개로 했는데 2개씩 진입이돼서 스위칭때 자동으로 물량 청산되버는데.. 첫 신호에 1계약만 들어가게 하려면
피라미딩 설정할 때 진입 신호로 설정을 했다가 진입하고 나서 모든신호 진입으로 변경을 해야하나요?
첫 진입 때 1계약만 들어갈 수 있게 알려주세요
감사합니다.
2020-01-14
143
글번호 135140
답변완료
함수요청
안녕하세요?
아래 글번호 65633번 재질문입니다.
작성주신 스크립트를 한투에 적용해보면
HSIF20 3분봉상
1월 13일 10:24분봉의 저가가 볼린저밴드 상단 위에 위치하였으나
매도신호가 생성되지 않습니다.
===================================================================================
항셍지수선물 3분봉으로 거래를 하고자 하는데 T장(10:15~17:30)에서만 생성하고자 합니다.
해당봉의 저가가 볼린저밴드 상단 위에 위치해 있으면 익봉 시가 매도
해당봉의 고가가 볼린저밴드 하단 아래에 위치해 있으면 익봉 시가 매수
진입 후 종가가 볼린저밴드 중심선(20ma)을 크로스하면 익봉 시가에 청산
진입 기준으로 매매횟수가 최대 2회까지이며
17시에 시간청산하고자 합니다.
input : BBP(20),dv(2),매매횟수(2);
var : mav(0),bbup(0),BBdn(0),BBmd(0),entry(0);
BBmd = ma(C,BBP);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
if (sdate != sdate[1] and stime >= 101500) or
(sdate != sdate[1] and stime >= 101500 and stime[1] < 101500) Then
entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if stime >= 101500 and stime < 170000 then
{
if entry < 매매횟수 and L > bbup Then
sell("s",AtMarket);
if entry < 매매횟수 and H < bbdn Then
buy("b",AtMarket);
if MarketPosition == 1 and Crossup(C,bbmd) Then
ExitLong("bx",AtMarket);
if MarketPosition == -1 and Crossdown(C,bbmd) Then
ExitShort("sx",AtMarket);
}
SetStopEndofday(170000);
2020-01-14
152
글번호 135137
답변완료
수식부탁드립니다.
안녕하세요?
아래릐 수식을 골드크로스가 발생될때 상승률이 3%이내인 종목을 검색하려는 수식
부탁드립니다.
골드크로스 발생된후 상승률은 상관없습니다.
감사합니다.
Inputs: ShortPeriod(5),LongPeriod(20);
Variables: Fval(0),FvalFast(0),FvalSlow(0);
Fval = ((Close - Close[1]) * Volume) ;
FvalFast = Ema(Fval, ShortPeriod);
FvalSlow = Ema(Fval, LongPeriod);
IF crossup(fvalfast,FvalSlow) Then
FIND(1);
2020-01-14
127
글번호 135136
답변완료
문의
청산이후라는 조건만 삭제하고 싶습니다.
즉, 무포지션일 때 당일고가나 저가갱신 시 진입하는 수식입니다.
*******************************************************************************
if MarketPosition == 0 and #현재 무포지션이고
countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수 Then #청산이후 당일고가 갱신이
n회이상 있었으면
buy("b2");
if MarketPosition == 0 and #현재 무포지션이고
countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수 Then #청산이후 당일저가 갱신이
n회이상 있었으면
sell("s2");
2020-01-14
130
글번호 135130
답변완료
수식추가 부탁드립니다.
안녕하세요?
아래의 2가지 시스템 모두 하루매매횟수를 외부변수로 할수있게 부탁드립니다.
감사합니다.
1
input : P1(5),P2(20);
input : 매수음봉길이틱수(2),매수양봉길이틱수(2);
input : 매도양봉길이틱수(2),매도음봉길이틱수(2);
input : 익절틱수(50),손절틱수(50);
var1 = ma(C,P1);
var2 = ma(C,P2);
if MarketPosition == 0 and
countif(var1<var2,2) == 2 and
C[1] == O[1]-매수음봉길이틱수*PriceScale and
C[0] == O[0]+매수양봉길이틱수*PriceScale and
C[0] == O[1] Then
buy();
if MarketPosition == 0 and
countif(var1>var2,2) == 2 and
C[1] == O[1]+매도양봉길이틱수*PriceScale and
C[0] == O[0]-매도음봉길이틱수*PriceScale and
O[0] == C[1] Then
sell();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2
input : P1(5),P2(20);
input : 매수양봉길이틱수(2);
input : 매도음봉길이틱수(2);
input : 익절틱수(50),손절틱수(50);
var1 = ma(C,P1);
var2 = ma(C,P2);
if MarketPosition == 0 and
countif(var1<var2 and C == O+매수양봉길이틱수*PriceScale,3) == 3 and
C[0] == C[1]+PriceScale*1 and
C[1] == C[2]+PriceScale*1 Then
buy();
if MarketPosition == 0 and
countif(var1>var2 and C == O-매도음봉길이틱수*PriceScale,3) == 3 and
C[0] == C[1]-PriceScale*1 and
C[1] == C[2]-PriceScale*1 Then
sell();
2020-01-14
125
글번호 135127
답변완료
65627 재 질문이요~
65627 재 질문 드립니다~^^
2020-01-14
122
글번호 135126