커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7482
글번호 230811
답변완료
문의 드립니다.
항상 도움 주셔서 감사합니다.
문1) 아래와 같이 청산로직을 코딩하였는데
제대로 되는것 같지 않습니다.
도움 부탁드립니다.
첨부 그림 맨 하단을 보면
청산범위(수익 +10틱, 손실 -10틱)을 여러차례 벗어났지만
청산이 되지 않았습니다.
맨하단 위까지는 제대로 청산이 된것 같은데
마지막 포지션만 제대로 청산이
되지 않고 매매시간에 의해 청산이 되었습니다.
참고로 T_buy나 T_sell에 대한 포지션 진입도
동일 로직입니다.
도움 부탁드립니다.
종목은 유로FX 12월물 1분봉이고요
2014.11.18일 21시13분 포지션 진입건에 대해
문의 드립니다.
if sTime >= 080400 or stime < 065000 Then {
If MarketPosition == 0 Then {
Buy("Buy",OnClose,def,vol);
}
if MarketPosition == 0 and 조건만족시 Then {
Sell("T_sell",OnClose,def,vol);
}
If MarketPosition == 0 Then {
sell("Sell",OnClose,def,vol);
}
if MarketPosition == 0 and 조건만족식 Then {
Buy("T_buy",OnClose,def,vol);
}
if stime == 065000 or (stime > 065000 and stime[1] < 065000) Then{
ExitLong("B_Off");
ExitShort("S_Off");
}
if MarketPosition == 1 and IsEntryname("T_buy") == true Then {
var3 = highest(H,BarsSinceEntry);
if var3 >= EntryPrice-PriceScale*10 and var3 < EntryPrice+PriceScale*10 then
ExitLong("t_bx0",AtStop,EntryPrice-PriceScale*10);
if var3 >= EntryPrice+PriceScale*15 and var3 < EntryPrice+PriceScale*20 then
ExitLong("t_bx1",AtStop,EntryPrice+PriceScale*15);
if var3 >= EntryPrice+PriceScale*20 and var3 < EntryPrice+PriceScale*25 then
ExitLong("t_bx2",AtStop,EntryPrice+PriceScale*20);
if var3 >= EntryPrice+PriceScale*25 and var3 < EntryPrice+PriceScale*30 then
ExitLong("t_bx3",AtStop,EntryPrice+PriceScale*25);
if var3 >= EntryPrice+PriceScale*30 then
ExitLong("t_bx4",AtStop,EntryPrice+PriceScale*30);
}
if MarketPosition == -1 and IsEntryname("T_sell") == true Then {
var4 = lowest(L,BarsSinceEntry);
if var4 <= EntryPrice+PriceScale*10 and var4 > EntryPrice-PriceScale*10 then
ExitShort("t_sx0",AtStop,EntryPrice+PriceScale*10);
if var4 <= EntryPrice-PriceScale*15 and var4 > EntryPrice-PriceScale*20 then
ExitShort("t_sx1",AtStop,EntryPrice-PriceScale*15);
if var4 <= EntryPrice-PriceScale*20 and var4 > EntryPrice-PriceScale*25 then
ExitShort("t_sx2",AtStop,EntryPrice-PriceScale*20);
if var4 <= EntryPrice-PriceScale*25 and var4 > EntryPrice-PriceScale*30 then
ExitShort("t_sx3",AtStop,EntryPrice-PriceScale*25);
if var4 <= EntryPrice-PriceScale*30 then
ExitShort("t_sx4",AtStop,EntryPrice-PriceScale*30);
}
#============================================
if MarketPosition == 1 and IsEntryname("T_buy") != true Then {
var1 = highest(H,BarsSinceEntry);
if var1 < EntryPrice-PriceScale*10 then
ExitLong("bx",AtMarket);
if var1 >= EntryPrice-PriceScale*10 and var1 < EntryPrice+PriceScale*10 then
ExitLong("bx0",AtStop,EntryPrice-PriceScale*10);
if var1 >= EntryPrice+PriceScale*15 and var1 < EntryPrice+PriceScale*20 then
ExitLong("bx1",AtStop,EntryPrice+PriceScale*15);
if var1 >= EntryPrice+PriceScale*20 and var1 < EntryPrice+PriceScale*25 then
ExitLong("bx2",AtStop,EntryPrice+PriceScale*20);
if var1 >= EntryPrice+PriceScale*25 and var1 < EntryPrice+PriceScale*30 then
ExitLong("bx3",AtStop,EntryPrice+PriceScale*25);
if var1 >= EntryPrice+PriceScale*30 then
ExitLong("bx4",AtStop,EntryPrice+PriceScale*30);
}
if MarketPosition == -1 and IsEntryname("T_sell") != true Then {
var2 = lowest(L,BarsSinceEntry);
if var1 > EntryPrice+PriceScale*10 then
ExitLong("sx",AtMarket);
if var2 <= EntryPrice+PriceScale*10 and var2 > EntryPrice-PriceScale*10 then
ExitShort("sx0",AtStop,EntryPrice+PriceScale*10);
if var2 <= EntryPrice-PriceScale*15 and var2 > EntryPrice-PriceScale*20 then
ExitShort("sx1",AtStop,EntryPrice-PriceScale*10);
if var2 <= EntryPrice-PriceScale*20 and var2 > EntryPrice-PriceScale*25 then
ExitShort("sx2",AtStop,EntryPrice-PriceScale*20);
if var2 <= EntryPrice-PriceScale*25 and var2 > EntryPrice-PriceScale*30 then
ExitShort("sx3",AtStop,EntryPrice-PriceScale*25);
if var2 <= EntryPrice-PriceScale*30 then
ExitShort("sx4",AtStop,EntryPrice-PriceScale*30);
}
2014-11-19
171
글번호 80519
답변완료
수식문의드립니다
분봉에서 피붓포인트와 1-2차지지 저항을 기준으로 지지돌파면 매수 저항 이탈이면 매도 단 돌시 양봉이면 매수 하락시 음봉이면 매도 시스템 가능하면 부탁드립니다
2014-11-19
135
글번호 80518
답변완료
문의 합니다.
stochastics 과 한개의 이동평균선 var1에서
1. sochastics의 현재의 골든크로스와 직전의 골든크로스 시점의
이동평균선 var1상의 C 값과
2. stochastics의 현재의 데드크로스와 직전의 데드크로스 시점의
이동평균선 var1상의 C 값을 출력하는 지표식을 부탁드립니다.
2014-11-19
123
글번호 80517
답변완료
고가나 저가일 때 이동평균값을 기억하는 방법 문의합니다
안녕하세요
예스랭귀지 공부를 하고 있는데
수식작성 어려운 부분을 아래와 같이 문의드립니다.
1.고가 혹은 저가 발생시
그때의 20일 이동평균값을
기준선으로 설정하는 방법을 알고 싶습니다.
2.고점과 저점이 여러개인 경우
그때의 20일 이동평균값을 각각 기억하게
하고 싶습니다.
미리 감사드립니다.
2014-11-19
139
글번호 80516
답변완료
질문드립니다.
초보입니다.
참조데이터 2가 양봉일때 주종목 매수하는 식을 알고 싶습니다.
또 참조데이터 2와 참조데이터 3의 봉크기의 합이 3point 이상일때 주종목 매수하는 식도
부탁드립니다.
단 참조데이터가 첫봉이 안 나온 상태에서 전일의 마지막봉이 양봉인 경우
이를 불러와서 주종목이 매수 되는 경우가 있어서 ...
참조데이터에서도 금일의 첫봉이 완성된후 이를 참조할 수 있게 부탁드립니다.
( 아래와 같이 적으면 뭐가 틀리는거지요?
봉크기와 상관없이 거래가 되는걸로 나오는데요..... ^^;
예를 들어 봉크기의 합이 3point 보다 크면 매수하라~~
)
ab2 = Abs(data2(c)-data2(o));
ab3 = Abs(data3(c)-data3(o));
if (ab2 + ab3)> 3
Then
buy();
라고 적으면 문제가 있나요? ^^;
미리 감사의 말씀 전합니다. ^^
2014-11-19
142
글번호 80515
답변완료
부탁드립니다.
안녕하세요.
해외선물에 시스템을 적용해 보려고 합니다.
1) 전일 일봉상의 고가와 저가를 range로 하고
2) 당일 분봉 차트에서 전일 일봉상의 종가에 (range * 일정 비율(n%))을 플러스한 값을 상승목표
3) 당일 분봉 차트에서 전일 일봉상의 종가에 (range * 일정 비율(n%))을 마이너스한 값을 하락목표
4) 매수는 3)하락목표 달성시 분봉 완성전이라도 해당 값에서 매수
5) 매도는 2)상승목표 달성시 분봉 완성전이라도 해당 값에서 매도
6) 4) 매수후 청산은 5)달성시에 실행
7) 5) 매도후 청산은 4)달성시에 실행
8) 4) 매수후 로스컷은 분봉차트 종가가 3)하락목표 아래서 형성될 때
9) 5) 매도후 로스컷은 분봉차트 종가가 4)상승목표 위에서 형성될 때
따라서, 로스컷 되지 않는다면, 매수 청산과 동시에 매도 진입, 매도 청산과 동시에 매수 진입됩니다.
그리고, 해외선물의 경우 일봉상의 시고저종이 분봉으로 보는 시고저종과 차이가 납니다.
해외선물 일봉을 형성하는 시고저종 시간을 그대로 분봉에도 적용하였으면 합니다.
즉, 현재, 분봉으로 보면 우리나라 시간에 맞춰 밤 12시에는 새로운 시가가 형성되는 것으로 나타나는데, 상기의 시스템을 적용할 때에는 일봉을 형성하는 시작시간과 끝나는 시간을 분봉에도 그대로 적용하였으면 합니다. 우리나라 시간으로는 실제 일봉이 2일에 걸쳐 나타나는 것 같아 시간대를 실제 거래되는 시간으로 맞추었으면 합니다.
감사합니다.
2014-11-18
131
글번호 80514
답변완료
수식 문의드립니다
매수조건
스토캐스틱 (5,3,3) 골든크로스
매도조건
스토캐스틱 (20,12,12) 데드크로스
손절매조건
4%
2014-11-18
143
글번호 80513
승부사1 님에 의해서 삭제되었습니다.
2014-11-18
0
글번호 80512
답변완료
질문 드립니다.
아래의 수식을 사용함에 있어서 경우의 수를 좀 물어보고 싶은데요.
직장인이다보니 장중 대응이 어려워서 전날 종목을 검색해서 다음날 시스템을 걸어 놓고
거래를 합니다.
전날 검색상에 선정된 종목이 스토캐스틱(5,3,3) 골든, (10,6,6) 골든을 확인하고 다음날
(20,12,12)가 골든크로스 신호가 발생될때 매수를 하게되면 가장 이상적인 상황인데.
Q. 만약 전날 검색상에 스토캐스틱(20,12,12)가 골든크로스 신호가 발생되어 매수신호가
(마자막 봉에)발생된 경우 다음날 첫봉에서 시스템으로 매수가 가능한지요??
var1 = StochasticsK(5,3);
var2 = StochasticsD(5,3,3);
var3 = StochasticsK(10,6);
var4 = StochasticsD(10,6,6);
var5 = StochasticsK(20,12);
var6 = StochasticsD(20,12,12);
Condition1 = var1 > var2 and var3 > var4 and var5 > var6;
if Condition1 == true and Condition1[1] == false Then
buy();
if CrossDown(var5,var6) Then
ExitLong();
SetStopLoss(4,PercentStop);
2014-11-18
145
글번호 80511