커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4611
글번호 230811
답변완료
재문의
좋은 답변 감사드립니다.
수정된 기준에 따라 아래 수식을 수정해 주시면 감사하겠습니다.
옆에 간략하게 주석을 달아주시면 좋겠습니다.
1.차트환경
해외선물
7일이평선(기울기에 따라 우상향은 빨강, 우하향은 파랑색 선으로 표시)
현재봉이 위치한 7일선의 수평값(7일선과 완성봉이 교차하는 점의 현재값)을 기준으로 위아래 틱값 차이를 구한다.
T1 = 7일선 수평값-완성봉의 저가
T2 = 완성봉의 고가-7일선 수평값
라고 할때
2.진입-수정
매수: 7일선에서 5개봉이 연속으로 우상향 중일때 봉이 7일선 아래로 크로스다운하여
T1 >= 25틱 이면 다음 봉에서 매수진입
매도: 7일선에서 5개봉이 연속으로 우하향 중일때 봉이 7일선 위로 크로스업하여
T2 >= 25틱 이면 다음 봉에서 매도진입
3.손절
50틱
4.본절-수정
수익이 40틱을 초과하면 손절값=진입값+2틱(매수시, 매도시는 -2틱) 으로 손절라인 이동
5.익절-수정
수익이 100틱 이상이면
트레일링스탑 시작(20틱 뒤로 밀릴때까지는 현재 포지션을 계속유지하며 20틱 뒤로 밀리면 청산)
수익이 100틱 미만이면
현재봉의 저점이 직전 봉의 저점을 2회연속 돌파하면 2회째 저점 돌파후 즉시 청산(매수진입시)
현재봉의 고점이 직전 봉의 고점을 2회연속 돌파하면 2회째 고점 돌파후 즉시 청산(매도진입시)
6.수익-수정
익절, 손절 표시 출력
진입가와 손절가 또는 익절가의 차액도 괄호안에 출력
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
var : mav(0),T(0),T1(0),T2(0),value(0);
mav = ma(C,7);
if mav > mav[1] Then
T = 1;
if mav < mav[1] Then
T = -1;
if T == 1 and T[1] != 1 Then
Condition1 = false;
if T == -1 and T[1] != -1 Then
Condition2 = false;
if T == 1 Then{
if CrossDown(c,mav) Then{
value = mav;
Condition1 = true;
}
if Condition1 == true then{
T1 = abs(value-L)/PriceScale;
T2 = abs(H-value)/PriceScale;
if T1 >= 25 Then
buy("b",AtMarket);
}
}
if T == -1 Then{
if CrossUp(c,mav) Then{
value = mav;
Condition2 = true;
}
if Condition2 == true then{
T1 = abs(value-L)/PriceScale;
T2 = abs(H-value)/PriceScale;
if T2 >= 25 Then
sell("s",AtMarket);
}
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*50 Then
ExitLong("매수손절1",AtStop,EntryPrice-PriceScale*50);
else
ExitLong("매수손절2",AtStop,EntryPrice+PriceScale*2);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*100 and countif(T == -1,2) == 2 Then
ExitLong("매수익절1");
if countif(L < L[1],2) == 2 Then
ExitLong("매수익절2",AtStop,L-PriceScale);
}
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*50 Then
ExitShort("매도손절1",AtStop,EntryPrice+PriceScale*50);
else
ExitShort("매도손절2",AtStop,EntryPrice-PriceScale*2);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*100 and countif(T == 1,2) == 2 Then
ExitShort("매도익절1");
if countif(H > H[1],2) == 2 Then
ExitShort("매도악절2",AtStop,H+PriceScale);
}
즐거운 하루되세요
> 웹피 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
항상 도움주셔서 감사합니다.
아래와 같이 하려는데 수식 부탁드립니다.
1.차트환경
해외선물
7일이평선(기울기에 따라 우상향은 빨강, 우하향은 파랑색 선으로 표시)
현재봉이 위치한 7일선의 수평값(7일선과 완성봉이 교차하는 점의 현재값)을 기준으로 위아래 틱값 차이를 구한다.
T1 = 7일선 수평값-완성봉의 저가
T2 = 완성봉의 고가-7일선 수평값
라고 할때
2.진입
매수: 7일선이 우상향 중일때 봉이 7일선 아래로 크로스다운하여
T1 >= 25틱 이면 다음 봉에서 매수진입
매도: 7일선이 우하향 중일때 봉이 7일선 위로 크로스업하여
T2 >= 25틱 이면 다음 봉에서 매도진입
3.손절
50틱
4.본절
수익이 50틱을 초과하면 손절값=진입값+2틱(매수시, 매도시는 -2틱) 으로 손절라인 이동
5.익절
수익이 100틱 이상이면
M1 = 7일선의 방향이 바뀐후 2개봉 연속 바뀐 방향 유지하면 청산
M2 = 3회 연속 직전 봉의 저점을 돌파하면 3회째 저점 돌파후 즉시 청산(매수진입시)
3회 연속 직전 봉의 고점을 돌파하면 3회째 고점 돌파후 즉시 청산(매도진입시)
이라고 할때
M1 또는 M2 중에서 먼저 발생하는 쪽을 택하여 청산
6.수익
익절, 손절 표시 출력
2016-06-09
113
글번호 98901
답변완료
수식을 알고 싶습니다.
수식을 알고자 합니다.
감사합니다.
매수진입(매도청산)
macd 10,30,10 macd 선이 기준선 0선 아래에서 상승반전
and
stochastic slow 수치 10,5,5 과매도권(20)에서 상승반전
매도진입(매수청산)
macd 10,30,10 macd 선이 기준선 0선 위에서 하락반전
and
stochastic slow 수치 10,5,5 과매수권(80)에서 하락반전
2016-06-09
119
글번호 98896
수다리 님에 의해서 삭제되었습니다.
2016-06-09
0
글번호 98886
답변완료
부탁드립니다.
var1=data9(Oi)-data9(dayOi(1));
data9의 당일미결증감을 위와같이 표시했는데, 잘 안 되네요.
뭐가 잘못된 건가요?
2016-06-09
120
글번호 98885
답변완료
dema검색식
안녕하세요
dema이평선중 단기, 중기선이 골든크로스, 데드크로스발생시 점과함께 playsound 발생식 부탁드립니다
감사합니다
2016-06-09
111
글번호 98884
답변완료
수식 문의드립니다.
고민은 하다가 익익영업일에 일괄 청산하는 걸로 최종세팅을 했고,
기존에 주셨던 부분이 잘 안먹히는 경우가 있어서 임의로 수정을 했습니다.(휴일이 있을 때마다 수정을 해줘야하는 단점이 있네요 ㅠ)
그리고 시가 돌파시 재진입 부분에서 안정적으로 진입하기 위해서
"최초 진입 이후 시가 대비 2% 이상 하락 후 상승하여 시가 돌파"로 수정을 하고 싶습니다.
input: 매수금액1(3000000),매수금액2(3000000),지정일(20160609);
var : Ev(0),Xv(0),Xcond(false),Nday(0);
if bdate != bdate[1] Then{
Nday = Nday+1;
Xcond = false;
}
if TotalTrades > TotalTrades[1] and (LatestExitName(1) == "BL1" or LatestExitName(1) == "BL2") Then
Xcond = true;
if MarketPosition == 0 and NextBarSdate == 지정일 and Xcond == false and
NextBarOpen < C*1.05 and
dayindex == 0 Then
buy("b",OnClose,def,Floor(매수금액1/C));
if MarketPosition == 1 Then{
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BL1" Then{
Condition11 = true;
Xcond = true;
}
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BL2" Then{
Condition12 = true;
Xcond = true;
}
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP1" Then
Condition21 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP2" Then
Condition22 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP3" Then
Condition23 = true;
if sdate == EntryDate and stime < 110000 and crossup(c,dayopen) Then
buy("bb",OnClose,def,Floor(매수금액2/C));
if CurrentContracts > CurrentContracts[1] Then{
Ev = AvgEntryPrice;
Xv = Floor(MaxContracts*(1/3));
}
if MaxEntries >=1 Then{
if Condition11 == false Then
exitlong("BL1",AtStop,AvgEntryPrice*0.97,"",xv,1);
if Condition12 == false Then
exitlong("BL3",AtStop,AvgEntryPrice*0.96);
if Condition21 == false Then
exitlong("BP1",AtLimit,AvgEntryPrice*1.05,"",xv,1);
if Condition22 == false Then
exitlong("BP2",AtLimit,AvgEntryPrice*1.10,"",xv,1);
if Condition23 == false Then
exitlong("BP33",AtLimit,CloseD(1)*1.28);
if MaxEntries == 1 and
highest(H,BarsSinceEntry) >= EntryPrice*1.05 Then
ExitLong("btr",AtStop,highest(H,BarsSinceEntry)*0.90);
}
// if sdate > Nday[BarsSinceEntry]+1 and stime == 144500 Then
If DayOfWeek(지정일) == 1 Then {
if (DayOfWeek(sdate)==3 or DayOfWeek(sdate)==4 or DayOfWeek(sdate)==5) and stime>=143000 Then
exitlong("bx월-수");
}
If DayOfWeek(지정일) == 2 Then {
if (DayOfWeek(sdate)==4 or DayOfWeek(sdate)==5 or DayOfWeek(sdate)==1) and stime>=143000 Then
exitlong("bx화-목");
}
If DayOfWeek(지정일) == 3 Then {
if (DayOfWeek(sdate)==5 or DayOfWeek(sdate)==1 or DayOfWeek(sdate)==2) and stime>=143000 Then
exitlong("수-금");
}
If DayOfWeek(지정일) == 4 Then {
if (DayOfWeek(sdate)==1 or DayOfWeek(sdate)==2 or DayOfWeek(sdate)==3) and stime>=143000 Then
exitlong("bx목-월");
}
If DayOfWeek(지정일) == 5 Then {
if (DayOfWeek(sdate)==2 or DayOfWeek(sdate)==3 or DayOfWeek(sdate)==4) and stime>=143000 Then
exitlong("bx금-화");
}
}
else{
Condition11 = false;
Condition12 = false;
Condition21 = false;
Condition22 = false;
Condition23 = false;
}
2016-06-09
100
글번호 98880
답변완료
지표식 문의드립니다.
매번 성실한 답변 감사드립니다.
n봉전부터 전일까지 양봉이 연속으로 발생하여(1개이상) 첫양봉의 시가에서 마지막양봉의 종가상승률이 20%이상일때 상승률의 50%에 수평선을 긋는 지표식 부탁드립니다.
추가로
n봉전부터 전일까지 양봉이 연속으로 발생하여 첫양봉의 시가에서 마지막양봉의 종가
상승률이 20%이상이고 이후 저가가 상승률의 50%이하로 내려간적이 있고 현재가는
상승률의 50%이상인 종목검색식도 부탁드립니다.
감사합니다.
2016-06-09
114
글번호 98879
aaaaa 님에 의해서 삭제되었습니다.
2016-06-09
35
글번호 98878
답변완료
아무리 해보아도 잘 안되어서 문의 합니다,,,
포지션 진입을 한 후에(자의로 진입하므로 포지션 진입가를 시스템에 입력가능하도록 함)
청산하려고 할 때 시스템 신호가 나오도록 하고 싶습니다
청산조건은 매수 포지션의 경우, 진입가 (본인이 진입후에 시스템에 입력함)보다
현재봉 이전의 10개봉을 진입가와 비교하여서 5개이상이 진입가보다 낮으면 청산하려 합니다.
이 때 비교하는 봉갯수는 시스템에 입력해서 조절이 가능하도록 하고 싶구요
물론 매도는 반대로 해야 되겠지요,,,
간단할 것 같은데 잘 안되어서 도움 요청 드립니다
감사합니다,,,
2016-06-09
109
글번호 98876