커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4439
글번호 230811
답변완료
답변에 대한 추가 질문 부탁드리겠습니다.
물타기 10회를 하고 싶은데요..
CCI(20) <-200이하일때 매수진입을 최초 1회 그리고 두번째,세번째 신호는 무시 4번째 신호에
추가 매수 진입 ++++
그렇게 할수 있는 수식을 부탁드리겠습니다.
매수청산은 일괄 매도 입니다.
================================================================
안녕하세요
예스스탁입니다.
var1 = CCI(20);
var2 = Diplus(30);
var3 = DiMinus(30);
if var1 < -200 Then
buy();
if Crossup(var2, var3 ) Then
ExitLong();
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 수식좀 부탁드려요
> 매수진입
CCI저점 CCI(20) < -200
매수 청산
Crossup(DIPlus(30), DIMinus(30) )
수식 부탁드리겠습니다
2018-09-20
160
글번호 122176
답변완료
수식문의드립니다
수정해주셔서 그부분은 해결되었는데 당일 챠트에서는 안먹히고 시장종료때까지 유지되더라고요 그전날까지는 잘 먹히다가 왜 당일차트에는 매수매도조건식이 갑자기 안먹힐까요? 제가 장중손실부분이 문제인거 같아서 값을 수정해서 넣어봤는데 되었다 안되었다 합니다 장중손실수식이 매수매도조건식에 영향을 줄수있는건가요? 한번 봐주세요
if daypl <= -PriceScale*10 Then
Condition1 = true
수정해주신거
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수(20),당일누적손실틱수(15);
Var : N1(0),dayPl(0),당일누적수익(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익 = PriceScale*당일누적수익틱수;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ Then
{
buy("b");
}
if /*매도진입조건*/ Then
{
sell("s");
}
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));
}
}
2
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수1(20),당일누적수익틱수2(10),당일누적손실틱수(80);
Var : N1(0),dayPl(0),당일누적수익1(0),당일누적수익2(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익1 = PriceScale*당일누적수익틱수1;
당일누적수익2 = PriceScale*당일누적수익틱수2;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
Condition1 = false;
}
daypl = NetProfit-N1;
if daypl <= -PriceScale*10 Then
Condition1 = true;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp1",1) == true or
IsExitName("dbp2",1) == true or
IsExitName("dbl",1) == true or
IsExitName("dsp1",1) == true or
IsExitName("dsp1",2) == true or
IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ crossup(C,ma(C,20)) Then
{
buy("b");
}
if /*매도진입조건*/ CrossDown(C,ma(C,20)) Then
{
sell("s");
}
if MarketPosition == 1 then
{
if Condition1 == false then
ExitLong("dbp1",atlimit,EntryPrice+((당일누적수익1-daypl)/CurrentContracts));
Else
ExitLong("dbp2",atlimit,EntryPrice+((당일누적수익2-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
if Condition1 == false then
ExitShort("dsp1",atlimit,EntryPrice-((당일누적수익1-daypl)/CurrentContracts));
Else
ExitShort("dsp2",atlimit,EntryPrice-((당일누적수익2-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));
}
}
2018-09-20
148
글번호 122174
답변완료
거래시간 수정 요청
* 새벽 특정 시간 24시 이후부터는 거래가 안되는데 수정좀 요청 드립니다.
input : 시스템적용일(20180919), 시스템적용시간(080000) ;
if sdate >= 시스템적용일 and stime >= 시스템적용시간 Then {
var : cnt(0),Xcnt(0),Ecnt(0) ;
Ecnt = 0; for cnt = 0 to 20 { if sdate == EntryDate(cnt) Then Ecnt = Ecnt+1; }
if date != date[1] Then Xcnt = 0 ;
var1 =ma(c,3) ;
var2 =ma(c,9) ;
if CrossUp(c,var1) Then buy();
if CrossDown(var1,var2) Then Sell();
}
* 고맙습니다.
2018-09-20
192
글번호 122173
답변완료
수식 변경 부탁드려요!
안녕하세요!
아래는 볼린저밴드 상단과 하단을 돌파하면 소리가 나는 식입니다!
이때 하단 돌파시 매도 상단 돌파시 매수 화살표 신호가 동시에 나타나는 식을
만들고 싶습니다!
그리고 하단돌파후 다시 하단 상승돌파하면 매수신호와 알람이 나오도록 부탁드립니다!
상단식도 동일 합니다!
Input : Period(20), MultiD(2);
var : MAv(0),BBup(0),BBdn(0);
MAv = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
Plot1(MAv, "이평");
Plot2(BBup, "상단밴드");
Plot3(BBdn, "하단밴드");
If CrossDown(C, BBup) or
CrossUp(c, BBup) or
CrossDown(C, BBdn) or
CrossUp(c, BBdn)
then
PlaySound("C:NHTrader₩YesLang₩sound2.wav");
----------------------------------------------------------------------------------------
볼린저밴드 중심선(20)을 하락통과후 내려가던 주가가 다시 상승하지만 볼린저밴드 중심선을
상승통과하지 못하고 눌림만 받고 재차 하락시 매도 신호와 알람이 나오게끔 부탁드려요!
(볼린저밴드 중심선 상승통과 신호도 동일한 조건으로 부탁드립니다!)
2018-09-20
178
글번호 122172
답변완료
기준선 수식 문의드립니다.
일목균형표 기준선
장 매매시간 (1015 ~ 020000)
당일 누적수익(손실분과 수익분 합산) 계산하여 +50틱 수익 달성시 매매종료
일목균형표 기준선 돌파시 매수진입
일목균형표 기준선 이탈시 매수청산 - 매도진입 (스위칭)
일목균현표 기준선 재돌파시 매도청산 - 매수진입 (스위칭) - *반복*
장 마감시간 (152000)에 모든 시그널 청산
2018-09-20
174
글번호 122171
답변완료
수식요청드립니다.
조건은 이렇습니다.
테마이평10선에서 캔들 종가가 상향돌파(완성봉기준)시 매수진입
캔들 종가가 하향돌파(완성봉기준)시 매도진입
포지션이있을경우 이전포지션 청산후 반대포지션으로 진입
예) 매수포지션일경우 하향돌파시 매수청산후 매도진입 입니다.
1. 트레이딩시간 설정(09:00~05:00)
2. 손,익절틱수 설정(50틱)
3. 트레이딩 시간내 목표이익틱수 도달시 당일 매매마감(50틱)
4. 트레이딩 시간내 손실목표틱수 도달시 다일 매매마감(50틱)
부탁드립니다.^^
2018-09-19
163
글번호 122170
요타 님에 의해서 삭제되었습니다.
2018-09-19
0
글번호 122169
대박대박 님에 의해서 삭제되었습니다.
2018-09-19
35
글번호 122168
답변완료
수식문의드립니다
아래처럼 답변 주셔서 돌려봤는데 안되서 Tcount 문제인가해서 기본값을 true로하고 시작종료시간 수식 지우고 했더니 챠트중에 맨처음 부분만 적용되고 끝나네요 ㅠㅠ
왜그런걸까요? 틱봉이라서 시간이 안먹히는건가요 아님 어떤 문제가 있는건가요?
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수1(20),당일누적수익틱수2(10),당일누적손실틱수(80);
Var : N1(0),dayPl(0),당일누적수익1(0),당일누적수익2(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익1 = PriceScale*당일누적수익틱수1;
당일누적수익2 = PriceScale*당일누적수익틱수2;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond == true;
Xcond = false;
N1 = NetProfit;
Condition1 = false;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
daypl = NetProfit-N1;
if daypl <= -PriceScale*10 Then
Condition1 = true;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp1",1) == true or IsExitName("dbp2",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp1",1) == true or IsExitName("dsp1",2) == true or IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ Then
{
buy("b");
}
if /*매도진입조건*/ Then
{
sell("s");
}
if MarketPosition == 1 then
{
if Condition1 == false then
ExitLong("dbp1",atlimit,EntryPrice+((당일누적수익1-daypl)/CurrentContracts));
Else
ExitLong("dbp2",atlimit,EntryPrice+((당일누적수익2-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
if Condition1 == false then
ExitShort("dsp1",atlimit,EntryPrice-((당일누적수익1-daypl)/CurrentContracts));
Else
ExitShort("dsp2",atlimit,EntryPrice-((당일누적수익2-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));
}
}
2018-09-19
187
글번호 122162