커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7294
글번호 230811
터닝 님에 의해서 삭제되었습니다.
2017-10-28
18
글번호 113721
답변완료
수식부탁드립니다.
(스토캐스틱%K값(20,5)이 %D값(20,5,5)을 상향 돌파할 때 매수)
(스토캐스틱%K값(20,5)이 %D값(20,5,5)을 하향 돌파할 때 매도)
2017-10-28
194
글번호 113720
답변완료
문의드립니다...
청산신호 발생시 진입을 제한하는 식을만들고싶은데
if TotalTrades > TotalTrades[1] Then{
if (IsExitName("매수청산",1)==true or IsExitName("매도청산",1)==true) then ???
then 다음에 어떻게 마무리를 지어야할지모르겠습니다 .. 위에식이 틀렸다면 올바른식으로
부탁드립니다.. 감사합니다
2017-10-28
180
글번호 113719
답변완료
문의드립니다.
안녕하세요.
진입신호 발생후 바로 일정 갯수의 캔들 이내에 목표진입 가격에 도달하면 진입시키는 식이 궁급합니다.
예를들면, 국내선물 매수진입 신호 발생 후, 다음 3개 캔들 이내에 신호종가(EP = C) 보다 4틱 아래로 내려오면 2계약 매수진입 시키는 것입니다.
아래는 제가 혼자 공부해 본겁니다. 맞게 한 건지 영 모르겠습니다;;
if 진입조건 then{
dni = index;
EP = C;
}
If index <= dni+3
then{
Buy("A매수", atlimit, EP-PriceScale*4, def,2);
SetStoploss(0.40,Pointstop);
SetStopProfittarget(0.80,PointStop);
}
2017-10-28
201
글번호 113718
답변완료
문의드립니다.
안녕하세요.
포지션 "진입횟수"를 "1일 3회"로 제한하는 함수식 부탁드립니다.
항상 감사합니다. 즐거운 주말 보내세요~
2017-10-27
177
글번호 113717
답변완료
종가 매수-시가 매도
1. 장마감 동시호가 때 시장가(종가)로 매수 --> 다음날 장시작 동시호가 때 시장가(시초가)로 매도
2. 오후 2시 30분에 시장가로 매수 --> 다음날 장시작 동시호가 때 시장가(시초가)로 매도
코딩 부탁드립니다~ 감사합니다
2017-10-29
198
글번호 113716
답변완료
1일전부터 5일전까지의 청산손익이?
1일전부터 5일전까지의 청산손익이 5포인트 이상일 경우 참이되는 조건식 부탁드립니다
2017-10-27
180
글번호 113715
답변완료
예스스팟
항상 감사드립니다.
다름아니고 수식작성의 답변은 즉각적으로 올라오는데 반하여
예스스팟의 질문내용은 일주일째 기다리고 있는데 답변이 없어서 말쓰드립니다.
기본적으로 예스스팟의 답변은 안하는 걸로 어디에서 보았는데
1. 간단한 답변은 해 주시는 것은 어떨지..
2. 답변이 시간상 어렵다면 예스스팟쪽만 답변 유료화를 하는것은 어떤지요..
수식은 연습이니까 언제든지 바꾸는 것에 대한 부담감이 없는 반면에
예스스팟은 실제 주문이 들어가는 것이라 함부로 건드리기가 힘드네요..
답변 부탁드립니다.
2017-10-27
213
글번호 113714
답변완료
장기 피보나치 시스템 신호 입니다! 검토 좀 부탁드려요!
아래는 장기 피보나치 신호 로직입니다!
5분에서 테스트를 하고 있는데요 몇가지 오류가 있는것 같습니다!
부탁드립니다!
1. 신호가 나왔다 안나왔다 합니다!
2. 신호가 5분 늦게 발생하는 문제가 있습니다.
예> 09:30분에 장기 로그선을 터치 했으면, 09:30분에 매도 신호가 나왔어야 하는데
그런데, 09:35분에 신호가 발생했습니다.
예> 장기 피보나치 로그선을 위로 주가가 뚫고 올라갔으면, 다음봉에서 매수가 되었어야
하는데, 5분 늦게신호가 발생합니다.
// 장기 피보나치 로그선 기법 시스템 코드 //-----------
Var : WH(0), WL(0); // WH : 주중 최고, DH : 일중 최고
var : DH(0), DL(0); // WL : 주중 최고, DL : 일중 최고
var : i(0), j(0); // 임시변수
var : MKPos(0); // Market Position
var : onetick(0.05); // 1틱 가치
var : logT(0); // 수동 손절을 하기 위해 대기가 필요한 변수
var : NoTick(2); // 수동 손절 틱수 : 2틱
array : FLog[7](0); // 장기 로그선 값을 저장할 배열
array : FLogPos[2](0); // 로그선의 위치 값을 저장(0~6), 매수 : 0, 매도 : 1MKPos = marketposition;
WH = 263.25;
WL = 226.90; // 장기 피보나치 로그선 값을 배열에 저장
FLog[0] = WH; // "연중 최고선"
FLog[1] = 10^((LOG10(WH) -(LOG10(WH)-LOG10(WL))*0.236)); //"중기 23.6선"
FLog[2] = 10^((LOG10(WH) -(LOG10(WH)-LOG10(WL))*0.382)); //"중기 38.2선"
FLog[3] = 10^((LOG10(WH) -(LOG10(WH)-LOG10(WL))*0.500)); //"중기 50선"
FLog[4] = 10^((LOG10(WH) -(LOG10(WH)-LOG10(WL))*0.618)); //"중기 61.8선"
FLog[5] = 10^((LOG10(WH) -(LOG10(WH)-LOG10(WL))*0.764)); //"중기 76.4선"
FLog[6] = WL; // "연중 최저선"
// 손절매(자동 손절) : 0.6P
SetStopLoss(12 * onetick, Pointstop);
// >>> 매수 <<<
// 현재 5분봉의 시가가 로그선의 값과 같거나 로그선 값의 아래에 있다가
// 현재 5분봉의 종가가 로그선의 위에 올라온 경우,
// 다음봉 이후로 저가가 로그선 1틱 위보다 같거나 작은 경우 시장가 매수for i = 0 to 6
{
if(MKPos == 0 ) and (O <= FLog[i]) and ( C > Flog[i]) then
{
logT = 1;
FLogPos[0] = i;
}
}
if (logT == 1) and (O >= (FLog[FLogPos[0]])) and (L <= (FLog[FLogPos[0]] + onetick * NoTick) )then
{
buy( "Buy" , AtStop, FLog[FLogPos[0]] + onetick * NoTick);
logT = 0;
}
// 매수 수동 손절 : 1틱 (MIT)
if (MKPos == 1) and (O >= FLog[FLogPos[0]]) and ( C < FLog[FLogPos[0]]) then
{
if (O <= FLog[FLogPos[0]]) and (H >= (FLog[FLogPos[0]] - onetick * NoTick )) then
{
ExitLong("exit_buy", atStop, FLog[FLogPos[0]] - onetick * NoTick );
// 매도로 스위칭
sell( "Sell_SW", AtStop, FLog[FLogPos[0]] - onetick * NoTick );
}
}
// >>> 매도 <<<
// 현재 5분봉의 시가가 로그선의 값과 같거나 로그선 값의 위에 있다가
// 현재 5분봉의 종가가 로그선의 아래로 내려온 경우,
// 다음봉 이후로 고가가 로그선 1틱 위보다 같거나 큰 경우 시장가 매도for i = 0 to 6
{
if(MKPos ==0) and (O >= FLog[i]) and ( C < Flog[i]) then
{
logT = 2;
FLogPos[0] = i;
// MessageLog("L75> logT : %.f Fiboline %.2f Position : %.f Open : %.2f Close : %.2f", logT, FLog[i], FlogPos[0], O, C);
}
}
if (logT == 2) and (O <= FLog[FLogPos[0]]) and (H >= (FLog[FLogPos[0]] - onetick * NoTick )) then
{
sell( "Sell", AtStop, FLog[FLogPos[0]] - onetick * NoTick );
logT = 0;
}
// MessageLog("L51> logT : %.f | Open %.2f <= %.2f | High %.2f >= %.2f MKPos : %.f", logT, O , FLog[FlogPos[0]], H, FLog[FlogPos[0]] - onetick, MKPos);
// 매도 수동 손절 : 1틱 (MIT)
if (MKPos == -1) and (O <= FLog[FLogPos[0]]) and ( C > FLog[FLogPos[0]]) then
{
// debug
messageLog("Line 95");
if (O >= FLog[FLogPos[0]]) and (L <= (FLog[FLogPos[0]] - onetick * NoTick )) then
{
ExitShort("exit_sell", atStop, FLog[FLogPos[0]] + onetick * NoTick );
// +매수로 스위칭
buy( "Buy_SW" , AtStop, FLog[FLogPos[0]] + onetick * NoTick );
}
}
// 매수 청산
// if (MKPos == 1) or (MKPos == -1) then /시간
if (stime == 153000) then
{
SetStopEndofday(1530);
}// messageLog("stime : %.f ", stime);
2017-10-27
315
글번호 113713