커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3192
글번호 230811
동동이아빠 님에 의해서 삭제되었습니다.
2020-08-31
17
글번호 141945
답변완료
수식 수정 부탁드립니다.
작성해 주신 아래 수식이 정상적으로 작동하지 않습니다.
수정을 부탁드립니다.
안녕하세요
예스스탁입니다.
input : StartTime(83000),EndTime(053000);
var : Tcond(false);
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if Tcond == true Then
{
if MarketPosition == 0 and
CountIf(C>O and C>C[1],4) == 4 Then
{
Buy();
var1 = O[1];
Var2 = O[3];
}
if MarketPosition == 1 Then
{
if CountIf(C>O,BarsSinceEntry) < 2 Then
ExitLong("bx1",AtStop,var1);
if CountIf(C>O,BarsSinceEntry) == 2 Then
ExitLong("bx2",AtStop,EntryPrice);
if CountIf(C>O,BarsSinceEntry) >= 3 Then
ExitLong("bx3",AtStop,Var2);
if Highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*60 Then
ExitLong("bx4",AtStop,Highest(H,BarsSinceEntry)-(Highest(H,BarsSinceEntry)-EntryPrice)*0.5);
}
if MarketPosition == 0 and
CountIf(C<O and C<C[1],4) == 4 Then
{
Sell();
var3 = O[1];
Var4 = O[3];
}
if MarketPosition == 1 Then
{
if CountIf(C<O,BarsSinceEntry) < 2 Then
ExitShort("sx1",AtStop,var1);
if CountIf(C<O,BarsSinceEntry) == 2 Then
ExitShort("sx2",AtStop,EntryPrice);
if CountIf(C<O,BarsSinceEntry) >= 3 Then
ExitShort("sx3",AtStop,Var2);
if lowest(l,BarsSinceEntry) <= EntryPrice-PriceScale*60 Then
ExitShort("sx4",AtStop,lowest(l,BarsSinceEntry)-(EntryPrice-Lowest(L,BarsSinceEntry))*0.5);
}
}
즐거운 하루되세요
> 종호 님이 쓴 글입니다.
> 제목 : 수식 문의드립니다.
> 해외선물입니다.
무포지션시 신규 매매시간은 오후 8시 30분 부터 그 다음낭 새벽 5시 30분까지만 무포지션시 신규 매매 거래가 되게 하고
5시 40분 이후 잔고가 있으면 잔고청산합니다.
매수:
무포지션에서 전봉 종가보다 < 현재봉 종가가 큰 양봉이 연속으로 4개 발생하면
즉 최초양봉 종가< 2번째 양봉 종가 <3번째 양봉 종가<현재봉 양봉 종가
매수합니다.
매수 손절과 청산 :
매수후 양봉이 2개 발생 하기전에 종가가 아닌 현재가가 위의 3번째 양봉의 시가를 깨면 손절합니다.
또
매수후에 양봉이 2개 발생하면 종가가 아닌 현재가가 매수가를 깨면 손절합니다.
또
매수후에 양봉이 3개 발생하면 종가가 아닌 현재가가 매수후에 최초양봉의 시가를 깨면 청산합니다.
매수 익절 :
매수후 수익이 60틱 이상이 나면 최고 수익 대비 50% 로 종가가 아닌 현재가가 수익이 떨어지면 익절합니다.
매도 수식도 반대논리로 똑같이 부탁드입니다.
2020-08-31
674
글번호 141944
답변완료
시스템 수식 문의드립니다.
아래 수식에 총 4개의 신호가 있는데요
현재 수식의 수익 표시는 "첫번째 매수신호" , "첫번째 매도신호" 진입가격을 기준으로
차트상에 수익이 표시됩니다.
이것을 "두번째 매수신호" , "두번째 매도신호" 의 진입가격 기준으로 수익표시를 하려고
하면 수식을 어떻게 수정해야 하나요?
평균가격이 아닌 두번째 신호의 진입가격을 기준으로 수익을 표시하고 싶습니다.
if
CrossUp(C,ma(c,120))
and (MarketPosition == 0 or MarketPosition == -1)
Then
{
buy("첫번째 매수신호");
}
if
EntryPrice-PriceScale*30 > C
and CurrentContracts == 1
Then
{
buy("두번째 매수신호");
}
//-----------------------------------
if
CrossDown(C,ma(c,120))
and (MarketPosition == 0 or MarketPosition == 1)
Then
{
Sell("첫번째 매도신호");
}
if
EntryPrice+PriceScale*30 < C
and CurrentContracts == 1
Then
{
Sell("두번째 매도신호");
}
//실시간 수익틱수표시
var : pp(0),ll(0),tx3(0),tx4(0);
if MarketPosition == 1 Then
{
pp = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*1));
ll = Floor((EntryPrice-lowest(L,BarsSinceEntry))/(PriceScale*1));
if pp > pp[1] Then
{
tx3 = Text_New(sdate,stime,H+PriceScale*3,NumToStr(pp*1,0)+"틱");
Text_SetStyle(tx3,2,1);
Text_SetSize(tx3,10);
Text_SetColor(tx3,RED);
}
if ll > ll[1] Then
{
tx4 = Text_New(sdate,stime,L+PriceScale*3,NumToStr(-ll*1,0)+"틱");
Text_SetStyle(tx4,2,1);
Text_SetSize(tx4,10);
Text_SetColor(tx4,BLUE);
}
}
if MarketPosition == -1 Then
{
pp = Floor((EntryPrice-lowest(L,BarsSinceEntry))/(PriceScale*1));
ll = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*1));
if pp > pp[1] Then
{
tx3 = Text_New(sdate,stime,L-PriceScale*3,NumToStr(pp*1,0)+"틱");
Text_SetStyle(tx3,2,0);
Text_SetSize(tx3,10);
Text_SetColor(tx3,RED);
}
if ll > ll[1] Then
{
tx4 = Text_New(sdate,stime,H-PriceScale*3,NumToStr(-ll*1,0)+"틱");
Text_SetStyle(tx4,2,0);
Text_SetSize(tx4,10);
Text_SetColor(tx4,BLUE);
}
}
2020-08-31
710
글번호 141943
답변완료
수정 의뢰드립니다!
안녕하세요!
아래 수식은 지난번에 만들어 주신 수식입니다.
A) 지표 속성 > 챠트 표시 > 선을 일자 그래프로 바꾸었을때 표시되는 선들이
우측으로 장이 끝날때까지 연장되게 끔 수정을 부탁드립니다.
선의 색상과 굵기는 변경할 수 있도록 해주세요!
var1 = DayHigh(0)-DayLow(0);
Plot1(Dayhigh+var1);
Plot2(DayLow-var1);
--------------------------------------------
B) 장이 시작되고 첫봉이 완성되면 첫봉의 고가와 저가의 진폭을
1. 첫봉의 고가 + 진폭 = 봉의 위쪽에 짧은 가격선 표시
2. 첫봉의 저가 - 진폭 = 봉의 아래쪽에 짧은 가격선 표시
예 ) 첫봉의 고가와 저가
고가 : 287.95
저가 : 287.60
진폭 : 0.35
고가 위쪽에 가격선 표시 : 288.30
저가 아래쪽에 가격선 표시 : 287.25
---------------------------------------------
C) 장이 시작되고 10분동안 최고가 와 최저가의 진폭을
1. 최고가 + 진폭 = 위쪽에 짧은 가격선 표시
2. 최저가 - 진폭 = 아래쪽에 짧은 가격선 표시
10분이라는 시간 설정은 제가 조정 할 수 있도록 부탁드립니다.
예) 금일 9시 10분까지
고가 : 287.95
저가 : 287.30
진폭 : 0.65
위쪽에 가격선 표시 : 288.60
아래쪽에 가격선 표시 : 288.65
2020-08-31
628
글번호 141942
묻어가는자 님에 의해서 삭제되었습니다.
2020-08-31
5
글번호 141925
답변완료
수식문의드립니다
1.
일목균형표 기준선이 전환선을 상승돌파할시 매수하고, 선행스팬1이 스팬2를 하락돌파(구름대파랑)시 청산
일목균형표 기준선이 전환선을 하락돌파할시 매도하고, 선행스팬1이 스팬2를 상승돌파(구름대빨강)시 청산
2.
선행스팬1이 스팬2를 상승돌파(구름대빨강)시 매수, 단 종가가 선행스팬2로 부터 5틱이내일 경우에만 매수진입하며, 선행스팬1이 스팬2를 5틱 초과 상승하여 매수진입못하였을경우, 5틱이내로 내려오면 진입한다(구름대빨강유지시). 매수진입후 20틱이상 손실시 1계약 추가 매수.(물타기 딱한번만) 물타기 포함 100틱수익 또는 손실시 청산
매도는 반대로 부탁합니다. 감사합니다.
2020-08-31
608
글번호 141924
답변완료
질문드립니다.
안녕하세요. 항상 감사드립니다. 질문이 세가지입니다.
1.
현재 스토케스틱 일정조건 달성시 신호 나오는 지표 사용중입니다.
컨디션1
tx = Text_New(sDate,sTime,H,"●");
Text_SetSize(tx,20);
Text_SetColor(tx,BLUE); // 파랑색
Text_SetStyle(tx,2,1);
PlaySound("C:₩예스트레이더₩data₩Sound₩1분봉신호.wav");
이런식인데,
조건이 발생되어 신호음이 잘 들리는데,
저 원그래프는 안뜰 때가 많습니다.
관찰해보니 소리가 4-5번 들린 후에 원그래프가 뜨는 식이네요.
이건 조건 입력한 부분에 문제가 있는건가요?
2. 타주기 지표를 조건으로 사용할 수 있는걸로 알고 있습니다.
1분봉 차트에서, 120틱봉의 스토캐스틱을 조건으로 쓰고싶은데
수식을 알려주시면 감사하겠습니다. (대강 12,5 stok가 80이상 일 때) 정도로만요.
이것은 차트상에 데이터를 추가 안해도 되는거지요?
3. 6101 차트상에서,
해당 캔들에 마우스를 갖다대면 시가 고가 저가 종가가 나왔으면 하는데
이런 기능은 없나요? 캔들별로 가격대가 나왔으면 좋겠습니다.
감사합니다.
2020-08-31
567
글번호 141923
답변완료
GetPositionQuantity 값이 계속 0으로 나옵니다.
//account="XXXX-YYYY-11"; //첫번째 계좌 번호 (장기)
account="XXXX-XXXX-11"; //두번째 계좌 번호 (단기)
account_qty = GetPositionQuantity(SymbolCode,account); //보유수량
MessageLog("보유수량: %.0f", account_qty);
노트북1에서 첫번째 계좌번호로 실행 할때는 보유 수량이 그대로 잘 나옵니다.
그런데 노트북2에서 두번째 계좌번호로 실행하면 보유 수량이 계속 0으로 나옵니다.
기본 설정에서 계좌비밀번호 설정시 가원장 생성에 체크히였습니다.
무엇이 문제일까요?
2020-08-31
689
글번호 141922
답변완료
수식 문의입니다.
var: 상관도(0);
input: 상관기간(25);
상관도 = Data3(Correlation(Data3((c-c[1])/c[1]),Data4((c-c[1])/c[1]),상관기간));
data3은 다우산업 일봉 (다우 종합이 아니라 산업입니다)
data4는 나스닥 종합 일봉입니다.
25일 동안의 주가상승률의 상관계수를 구하고자하는데, 지난번에 알려주신 수식을 응용하여 위와 같이 작성하였습니다.
그리고 이걸 지표로 만들어서 확인해보니 엑셀에서 계산값과 값이 다릅니다..
특히나 이 값의 경우 매일 매일 값이 바뀌어야 정상일텐데, 일정기간 동안 값이 똑같이 찍히는 경우가 많습니다(그림 참조).
혹시 위의 수식에 오류가 있는지 궁금합니다.
참고로 엑셀로 계산한 값도 함께 첨부했습니다.
감사합니다.
2020-08-31
855
글번호 141921