커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3488
글번호 230811
답변완료
식 추가변경 부탁드립니다.
안녕하세요 아래 식 추가변경부탁드립니다.
1.
아래식은
매수 발생- 손절 발생(익절 발생)
하면 더이상 매매가 안되도록 되어있는데
2.
추가변경 부탁드리는 부분은
손절 발생시(익절 발생은 해당되지않음)
손절한 당일에만
한번 더 같은 설정가에 매수 발생 (익일에는 매수 발생 안됨)
매수 발생되었으면 손절or익절 발생(당일부터 발생, 손절or 익절가가 될때까지)
부탁드립니다.
-------------------------------------------------------------------
input : 날짜(20230302),매수가격(1000),익절가격(1200),손절가격(800);
if NextBarSdate >= 날짜 Then
{
if NextBarSdate != sDate Then
{
if MarketPosition == 0 and TotalTrades == 0 and NextBarOpen <= 매수가격 Then
Buy("b1",AtStop,매수가격);
}
Else
{
if MarketPosition == 0 and TotalTrades == 0 and DayHigh < 매수가격 Then
Buy("b",AtStop,매수가격);
}
if MarketPosition == 1 Then
{
ExitLong("bp",AtLimit,익절가격);
ExitLong("bl",AtStop,손절가격);
}
}
2023-08-07
1158
글번호 171266
답변완료
문의 드립니다
input:p1(48),Rsi변동폭(20);
Var:j(0),상승(100),하락(-100),양방향(2),추세(0),
파동선(0),Rsi파동선(0),방향(0),RsiV(0),Rsi추세선(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),
Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0);
RsiV =RSI(P1);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
Rsi고Bar[j] = Rsi고Bar[j] + 1;
Rsi저Bar[j] = Rsi저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then
{
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
Else
Rsi고Bar[0] = Rsi고Bar[0] + 1;
If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then
{
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
Else
Rsi저Bar[0] = Rsi저Bar[0] + 1;
If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then
{
고[0] = H;
고Bar[0] = 0;
}
Else
고Bar[0] = 고Bar[0] + 1;
If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then
{
저[0] = L;
저Bar[0] = 0;
}
Else
저Bar[0] = 저Bar[0] + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If Rsi저[0][1] + Rsi변동폭 > RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승;
If Rsi고[0][1] - Rsi변동폭 < RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 방향[1] == 하락 && 방향 == 상승 Then
{
For j = 18 DownTo 1
{
Rsi저[j+1] = Rsi저[j];
Rsi저Bar[j+1] = Rsi저Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
고[0] = H;
고Bar[0] = 0;
}
Else If 방향[1] == 상승 && 방향 == 하락 Then
{
For j = 18 DownTo 1
{
Rsi고[j+1] = Rsi고[j];
Rsi고Bar[j+1] = Rsi고Bar[j];
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
저[0] = L;
저Bar[0] = 0;
}
Else If 방향[1] == 하락 && 방향 == 하락 Then
{
If Rsi고[1] < Rsi고[0] &&
Rsi고[0][1] - Rsi변동폭 <= RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 > RsiV Then
{
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
If 고[1] < 고[0] &&
고[0] > H Then
{
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
}
}
Else If 방향[1] == 상승 && 방향 == 상승 Then
{
If Rsi저[1] > Rsi저[0] &&
Rsi저[0][1] + Rsi변동폭 >= RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 < RsiV Then
{
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
If 저[1] > 저[0] &&
저[0] < L Then
{
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
}
}
If Rsi파동선[1] != Rsi파동선 Then{
if 방향 == 하락 and Rsi파동선 >= 65 then
sell();
if 방향 == 상승 and Rsi파동선 <= 35 then
buy();
}
----------------------
위 수식어에 추가 하고자 합니다.
1. 이동평균선 300선 위에서 매도 신호는 매수로 전환
2. 이동평균선 300선 아래에서 매수 신호는 매도로 전환
3. 익절 100틱 손절 100틱
4. 위 수식어를 해외선물에 적용하고 있습니다.
중복체결로 계약수가 늘어 나는데 수식어나 설정하는 별도의 방법이 있는지
문의 드립니다.
2023-08-08
977
글번호 171265
답변완료
수식문의
수고하십니다.
아래수식으로 30분기준,검색기간 500봉으로 검색하였는데 검색이 안됩니다.
수정 또는 조언 부탁드립니다
Input : DayPeriod(20),P1(60),P2(120),NC(12), Mult(1.01),SV(100000);//Nc=60일선과 120일선 사이의 횡보캔들 수
Var : T(0),S(0),Cnt(0),Sum(0),Dayma(0);
Sum = 0;
For cnt = 0 to Dayperiod-1
{
Sum = Sum + DayClose(Cnt);
}
Dayma = Sum/DayPeriod;
Var1 = Ma(C,P1);
Var2 = Ma(C,P2);
if CrossDown(C,Var1) Then
{
T = 1;
if Var1 > Var2 and T[1] == -1 and Index <= S+NC and C >= DayClose(1)*Mult and
C > Dayma and C>O and DayVolume(0)>SV Then
Find(1);
}
if CrossDown(c,var1) Then
{
T = -1;
S = Index;
}
if T == -1 and C < Var2 Then
T = -2;
2023-08-07
764
글번호 171264
답변완료
해외선물 긴급상황
나스닥 골드 오일... 호가창과 캔들이 따로놀아요.....
호가는 정상 / 캔들은 멈춰있어요
도와주세요
껐다켜도 안되네요
2023-08-07
752
글번호 171263
답변완료
다른 신호 손절개별로
안녕하세요.
아래와 같이 알려주신대로 다른 신호에 대한 손절을 구분해서 문제없이 사용해오고 있었는데,
두 신호가 동시에 발생해서 진입하게 되는 경우 각각 손절이 작동하지 않는것을
발견했습니다. latestEntryName이 애매해져서 그런거 같은데,
다르게 구분하는 방법이 없을까요?
----------------------------------------------------------
if CurrentContracts > CurrentContracts[1] or MarketPosition != MarketPosition[1] Then
{
if LatestEntryName(0) == "A" Then
var6 = LatestEntryPrice(0);
if LatestEntryName(0) == "B" Then
var7 = LatestEntryPrice(0);
}
if var6 > 0 Then
ExitShort("A손절",AtStop,var6*(1+cut_s1/100),"A");
if var7 > 0 Then
ExitShort("B손절",AtStop,var7*(1+cut_s2/100),"B");
2023-08-07
767
글번호 171262
회원 님에 의해서 삭제되었습니다.
2023-08-18
73
글번호 171260
답변완료
문의 드립니다.
안녕하세요.
더우신데 고생 많으십니다.
항상 도움 주셔서 감사드립니다.
시스템식 부탁드리겠습니다.
Condition1 = A > B > C ;
if Condition1 == True and Condition1[1] == False Then
Buy("매수진입") ;
Condition2 = A < B < C ;
if Condition2 == True and Condition2[1] == False Then
Sell("매도진입") ;
A B C는 제가 작성하겠습니다.
진입조건
Condition1 = a > b > c 가 만족하면 만족하는 봉 시가에 매수주문 20틱 익절 (2분동안 체결 안될시 취소)
Condition2 = a > b > c 가 만족하면 만족하는 봉 시가에 매도주문 20틱 익절 (2분동안 체결 안될시 취소)
청산조건
Condition1 발생 매수진입 후 Condition2 발생시 매수시장가 손절 후 Condition2 매도진입(익절20틱)
Condition2 발생 매도진입 후 Condition1 발생시 매도시장가 손절 후 Condition1 매수진입(익절20틱)
또는 반대조건이 발생하지 않으면 20틱 손절
포지션 진입상태에서 같은 신호 발생시 추가 진입 안함
PS. Condition1 Condition2 진입신호시 현재봉에 바로 주문이 들어가지 않고
진입신호가 발생완성된캔들 다음캔들에 주문이 들어간다면
신호발생완성캔들 시가보다 가격이 낮으면 시가에 주문이 들어가게 해주시고
신호발생완성캔들 시가보다 가격이 높다면 시장가에 들어가게 해주세요
항상 감사드립니다.^^
2023-08-07
717
글번호 171259
회원 님에 의해서 삭제되었습니다.
2023-08-08
36
글번호 171258
lbh1119 님에 의해서 삭제되었습니다.
2023-08-07
10
글번호 171257