커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7212
글번호 230811
답변완료
함수요청
안녕하세요?
함수요청드립니다.
해외선물 크루드오일을 거래하고자 합니다.
진입: 개장 1분봉으로 당일시가 > 전일종가이면 익봉 시가에 매수,
당일시가 < 전일종가이면 익봉 시가에 매도
청산: 당일 종가매매(혹은 익일 시가청산)
진입기준으로 일 1회입니다.
2019-03-06
197
글번호 126760
답변완료
문의
안녕하세요
시초가에서10틱상승시매수진입시초가이탈청산매도는반대이며 손실이40틱이면진입금지
손실을빼고이익40틱이면종료되는수식부탁합니다;
2019-03-06
185
글번호 126759
답변완료
단순 스토캐스틱 매수/매도 신호 매매 도와주세요
안녕하세요 공부한지 얼마안된 완전 새내기입니다
300틱 차트에서 스토캐스틱 10.6.6 골든 크로스일때 포지션 없을땐 매수 포지션있으면 매도청산후 매수, 데드크로스일때 포지션 없으면 매도 포지션있으면 매수청산후 매도
수식을 배우고싶습니다 도와주세요 ㅠㅠ
계약수 1계약 (2계약 3계약 으로도 바꾸는 방법 알려주시면 감사하겠습니다)
2019-03-06
234
글번호 126758
답변완료
문의합니다.
수고하십니다.
아래 수식은 2개 라인만 나오는데
가능하다면 중간 라인까지 상,중,하로 3개가 나오게 해주십시오.
input : P1(20),al(30),ah(70);
var : R(0);
R=RSI(P1);
if crossup(r,aL) Then
var1 = L;
if CrossDown(r,ah) Then
var2 = H;
plot1(var1);
plot2(var2);
2019-03-06
218
글번호 126757
답변완료
지표 관련 문의
이전 게시물에서 체결강도 관련 설명을,
수식에서 체결강도는 upvol,downvol 데이터를 이용.
직전체결보다 높은 가격에 체결된 거래량은 upvol,
직전 체결가격보다 낮은 가격에 체결된 거래량은 downvol로 집계
직전체결가와 같은 체결가격이면 이전상승이나 하락쪽으로 집계
된다고 들었습니다.
또,
해당 데이터는 선물사별로 제공되는 곳도 있고 제공되지 않는 곳도 있다고
하셨는데요, (해선기준)
질문 :
그림에서 처럼,
현재가창을 보면 해당 데이타가 이미 제공되고 있는거 아닌가요?
실시간으로 나오는 이 매수/매도 체결량 숫자를 해당 봉 안에서
각각 쌓아주면 up,downvol이 될거 같은데요.
제가 어떤 부분에 대해 잘못이해하고 있는지 질문드리고 싶습니다.
2019-03-06
305
글번호 126756
답변완료
확인 요청 드립니다.
< 61567번 글>
* 전일 해주신 로직이 반영이 안되어 다시 부탁 드립니다. <그림참조>
아래 처럼 변경 적용 했는데 제가 의도 했던거랑 안되네요.
다시 한번 부탁 드립니다.
* <그림1> 처럼 목표수익이 30틱 나면 그후에
두가지 경우가 발생 합니다.
MarketPosition ==1경우 (BUY()매수로 수익 경우)
목표수익 30틱후 10틱이 줄어 20틱 이하로 수익이 줄어 들면 매도A
목표수익 30틱후 수익이 늘어 나면서 5일선이 20일선 크로스다운 하면 매도B
MarketPosition == -1 경우 (SELL() 매도로수익 경우) ▶ 그림2 경우 입니다.
목표수익 30틱후 10틱이 줄어 20틱 이하로 수익이 줄어 들면 매도C
목표수익 30틱후 수익이 늘어 나면서 5일선이 20일선 크로스업하면 매도D <그림2>
로직이 필요 합니다.
부탁좀 드리겠습니다.
<제가 적용한 로직>
if MarketPosition == 1 then{ ExitLong("30만원달성1",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
{ if c < o and c<ma(c,5) then exitlong("bx");} }
if MarketPosition == -1 then{ExitShort("30만원달성2",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
{ if c > o and c>ma(c,5) then ExitShort("sx"); } }
로직 수정좀 부탁 드리겠습니다.
######### 지난번 글 < 61567번 글> ###############
안녕하세요
예스스탁입니다.
1
var : T(0);
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if crossup(var1,var2) then
{
var3 = highest(H,50);
var4 = lowest(L,50);
T = 1;
if var3 >= var4+PriceScale*30 Then
T = 2;
}
if CrossDown(var1,var2) then
{
var3 = highest(H,50);
var4 = lowest(L,50);
T = -1;
if var3 >= var4+PriceScale*30 Then
T = -2;
}
if T == 2 and crossup(c,var3) Then
buy();
if T == -2 and CrossDown(c,var4) Then
sell();
2
if MarketPosition == 1 Then
{
ExitLong("목표30만원달성1",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
if c < o and c<ma(c,5) then
exitlong("bx");
}
if MarketPosition == -1 Then
{
ExitShort("목표30만원달성2",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
if c > o and c>ma(c,5) then
ExitShort("sx");
}
즐거운 하루되세요
2019-03-06
245
글번호 126755
답변완료
수식 문의드립니다.
안녕하세요
61546에 대해서 추가로 답변 문의 드렸습니다.
확인 부탁드립니다.
ㅠㅠ
2019-03-05
222
글번호 126754
답변완료
수식문의요
수식1
이평 = ma(c,기간,종류);
이평고점=valuewhen(1,crossdown(이평,이평(1)),이평(1));
이평저점=valuewhen(1,crossup(이평,이평(1)),이평(1));
if(이평>(이평저점+이평저점*비율)and 이평>이평(1),ma(c,기간,종류),이평고점);
수식2
이평 = ma(c,기간,종류);
이평고점=valuewhen(1,crossdown(이평,이평(1)),이평(1));
이평저점=valuewhen(1,crossup(이평,이평(1)),이평(1));
if(이평<(이평저점-이평저점*비율)and 이평<이평(1),ma(c,기간,종류),이평고점);
수식3
이평 = ma(c,기간,종류);
이평고점=valuewhen(1,crossdown(이평,이평(1)),이평(1));
이평저점=valuewhen(1,crossup(이평,이평(1)),이평(1));
if(이평>(이평저점+이평저점*비율) and 이평>이평(1),ma(c,기간,종류)-오프셋,0);
수식4
이평 = ma(c,기간,종류);
이평고점=valuewhen(1,crossdown(이평,이평(1)),이평(1));
이평저점=valuewhen(1,crossup(이평,이평(1)),이평(1));
if(이평<(이평저점-이평저점*비율) and 이평<이평(1),ma(c,기간,종류)+오프셋,0);
기간 20
종류 삼각
비율 0.1
오프셋 0.1
예스로 변경부탁드립니다 감사합니다
2019-03-05
246
글번호 126752
답변완료
수식변경 요청드립니다.
안녕하세요. 요청드릴 사항은
아래 수식은 진입 시 3개가 진입되며 수익청산 시 순차적으로 원하는 익절값에 따라 청산되도록 되어 있습니다. 이것을 진입 시 3개의 물량이 동시에 진입하여 익절틱수1에 도달하여 1개의 물량이 수익청산될 때 나머지 2개의 물량을 본절로 추적손절매 되도록 요청드립니다.
input : 거래시간 (1), 시작시간 (220000), 끝시간 (045000),익절틱수1(10),익절틱수2(15),익절틱수3(20),손절틱수 (15);
Input : 전환선기간 (5), 기준선기간1(26), 기준선기간2(1), 선행스팬2기간(52), short(12), long(26), sig(9),BBP(120), 당일누적손실틱수 (100);
Var : MACDv(0), MACDsig(0),macdosc(0), Condition3(false);
var : 전환선 (0), 기준선1(0), 기준선2(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0), Xcond(false),N1(0),daypl(0),당일누적손실 (0);
var1 = MACD(short, long);
var2 = ema(MACDv,sig);
var3 = ma(C,BBP);
전환선 = (Highest(High, 전환선기간 ) + Lowest(Low, 전환선기간 )) / 2;
기준선1 = (Highest(High, 기준선기간1 ) + Lowest(Low, 기준선기간1 )) / 2;
기준선2 = (Highest(High, 기준선기간2 ) + Lowest(Low, 기준선기간2 )) / 2;
선행스팬1 = (전환선 [25] + 기준선2 [25]) / 2 ;
선행스팬2 = (Highest(High, 선행스팬2기간 )[25] + Lowest(Low, 선행스팬2기간 )[25]) / 2;
if 거래시간 == 1 then
condition3 = (stime>=시작시간 or stime<=끝시간);
Else if 거래시간 == 2 then
condition3 = (stime>=시작시간 and stime<=끝시간);
Else
condition3 = true;
if 거래시간 == 1 or 거래시간 == 2 then
{
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Xcond = false;
N1 = NetProfit;
}
}
else
{
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
}
당일누적손실 = PriceScale*당일누적손실틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
# 매수/매도청산
if MarketPosition == 0 and
TotalTrades == TotalTrades[3] and
Xcond == false and
Condition3 == true and var3 > var3[1] and var1 > var2 and 전환선 > 기준선1 and crossup(C,전환선 ) and C > O Then
{
Buy("b",OnClose,def,3);
ExitLong("bp1.",atlimit,C+PriceScale*익절틱수1,"",1,1);
ExitLong("bp2.",atlimit,C+PriceScale*익절틱수2,"",1,1);
ExitLong("bp3.",atlimit,C+PriceScale*익절틱수3);
}
# 매도/매수청산
if MarketPosition == 0 and TotalTrades == TotalTrades[3] and
Xcond == false and
Condition3 == true and var3 < var3[1] and var1 < var2 and 전환선 < 기준선1 and CrossDown(C,전환선 ) and C < O Then
{
Sell("s",OnClose,def,3);
ExitShort("sp1.",atlimit,C-PriceScale*익절틱수1,"",1,1);
ExitShort("sp2.",atlimit,C-PriceScale*익절틱수2,"",1,1);
ExitShort("sp3.",atlimit,C-PriceScale*익절틱수3);
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*익절틱수1 then
ExitLong("bp1",atlimit,EntryPrice+PriceScale*익절틱수1,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*익절틱수2 then
ExitLong("bp2",atlimit,EntryPrice+PriceScale*익절틱수2,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*익절틱수3 then
ExitLong("bp3",atlimit,EntryPrice+PriceScale*익절틱수3);
}
if MarketPosition == -1 Then{
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*익절틱수1 Then
ExitShort("sp1",atlimit,EntryPrice-PriceScale*익절틱수1,"",1,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*익절틱수2 Then
ExitShort("sp2",atlimit,EntryPrice-PriceScale*익절틱수2,"",1,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*익절틱수3 Then
ExitShort("sp3",atlimit,EntryPrice-PriceScale*익절틱수3);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간 ) Then{
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
if MarketPosition == 1 then
{
ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));
}
2019-03-05
236
글번호 126751