커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8139
글번호 230811
답변완료
부탁드립니다.
var : SonarV(0),SonarSig(0);
var : SMIv(0),T(0);
var : TRIXv(0),TRIXsig(0),entry(0);
var1 = SAR(af,maxAF);
SonarV = SONAR(SonarP);
SonarSig = ema(SonarV,SonarS);
SMIv = ema(ema(c-(highest(H,g) + lowest(L,g))*0.5, r),s) * 100 /
(0.5 * ema(ema(highest(H,g)-lowest(L,g),r),s)) ;
TRIXv = TRIX(TrixP);
TRIXsig = ema(TRIXv,TrixS);
if SMIv > SMIv[1] Then
T = 1;
if SMIv < SMIv[1] Then
T = -1;
if bdate != bdate[1] Then
entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
Condition1 = MarketPosition(1) == 1 and IsExitName("StopProfittarget",1) == true;
Condition2 = MarketPosition(1) == -1 and IsExitName("StopProfittarget",1) == true;
If C > var1 and SonarSig > SonarSig[1] and TRIXsig > TRIXsig[1] and T == 1 Then
{
if entry == 0 or
(entry >= 1 and MarketPosition == -1) or
(entry >= 1 and MarketPosition == 0 and Condition1 == false) or
(entry >= 1 and MarketPosition == 0 and Condition1 == true and
countif(C < var1 or SonarSig < SonarSig[1] or TRIXsig < TRIXsig[1] or T == -1,BarsSinceExit(1)) >= 1) Then
Buy();
}
# 매도/매수청산
If C < var1 and SonarSig < SonarSig[1] and TRIXsig < TRIXsig[1] and T == -1 Then
{
MessageLog("%s %s %.f",Condition1,Condition2,entry);
if entry == 0 or
(entry >= 1 and MarketPosition == 1) or
(entry >= 1 and MarketPosition == 0 and Condition2 == false) or
(entry >= 1 and MarketPosition == 0 and Condition2 == true and
countif(C > var1 or SonarSig > SonarSig[1] or TRIXsig > TRIXsig[1] or T == 1,BarsSinceExit(1)) >= 1) Then {
Sell();
}
}
if MarketPosition == 1 and C < var1 and TRIXsig < TRIXsig[1] and T == -1 Then{
ExitLong();
}
if MarketPosition == -1 and C > var1 and TRIXsig > TRIXsig[1] and T == 1 Then{
ExitShort();
}
SetStopProfittarget(PriceScale*익절틱수, PointStop);
1. 상기식에서 진입은 09시에서 새벽 02시까지만 진입이되도록 부탁드립니다.
( 초보라 괄호가 제대로 안맞은지 잘안되네요.ㅠ )
2. 상기식의 매도에 있는 중괄호가 매수에는 없는데...
어떤 의미가 있는건가요? 아님 작성이 안된건가요?
( 신호발생에는 문제는 없는것 같은데 초보라 궁금해서 문의드립니다.)
BarsSinceExit(1)) >= 1) Then {
Sell();
}
2015-07-01
183
글번호 87876
답변완료
주문수량 계산
안녕하십니까. 수고많으십니다.
아래내용 문의드립니다.
1. 주식100만원 어치 매수 및 청산 (아래처럼 하려니 잘안되내요..간단히 주석도 좀 부탁드립니다.)
input : 투자금액(100000);
if crossup(c,ma(c,5)) Then{
if CodeCategoryEx == 11 and BasePrice < 50000 Then{ <-- 이 부분 주석부탁.
vol1 = int(int((투자금액)/C)/10)*10;
}
Else{
vol1 = int((투자금액)/C);
}
buy("b",OnClose,def,vol1);
}
2. 주식선물 100만원 / 5이평 골든데드로 처리
조건 만족시 일봉으로 당일 종가매수
조건 만족시 일봉으로 익일 시가매도
3. 선물 최초계좌 1억원기준 이후 70%만 증거금 사용한 계약수 / 5이평 골든데드로 처리
조건 만족시 일봉으로 당일 종가매도 (2번과 반대)
조건 만족시 일봉으로 익일 시가매수 (2번과 반대)
감사합니다.
2015-07-01
193
글번호 87875
답변완료
수식문위 드립니다
아래 수식에서 색을 추가하고 싶습니다
macd osc 값이 0.01~+0.03까지는 분홍색....+0.031부터는 빨강색
macd osc 값이 -0.01~-0.03까지는 하늘색,,,,-0.031부터는 파란색
감사합니다
2015-07-01
244
글번호 87874
답변완료
수식 수정 및 추가
안녕하세요.
받은 수식입니다.
수식 수정 및 추가 그리고 오류 수정 부탁드립니다.
Input : Period1(10),Period2(20);
var : NP(0),PreNP(0),dayPL(0);
NP = NetProfit;
if bdate != bdate[1] Then
PreNP = NP[1];
dayPL = NP-preNP;
value1 =LRS(C,Period1);
value2 =LRS(C,Period2);
Condition1 = value1 > 0 and value2 > 0;
Condition2 = value1 < 0 and value2 < 0;
if dayPL < 1 then{
if Condition1[1] == true and Condition1[2] == false Then
buy("b",AtMarket);
if Condition2[1] == true and Condition2[2] == false Then
sell("s",AtMarket);
}
if MarketPosition == 1 Then{
if CrossDown(value1,value2) Then
ExitLong();
if CrossDown(value1,0) or CrossDown(value2,0) Then
ExitLong();
}
if MarketPosition == -1 Then{
if CrossUp(value1,value2) Then
ExitShort();
if CrossUp(value1,0) or CrossUp(value2,0) Then
ExitShort();
}
**(다르게 매매되어 있습니다.)
매수 : 기준점 0을 기준으로 상향돌파 (0 상향돌파 분봉 아님) 후 다음 분봉 완성 즉시
또는 0 아래서 골든 크로스 발생 후 다음 분봉 완성 즉시
0이나 0 아래서 골든크로스 한가지만 만족하여도 매수입니다.
청산 : 변수 20과 변수 10의 데드크로스시, 또는 기준점 0에서 포지션 정리(포지션없음으로)
(미적용 되었습니다)
** 포지션 정리 후 선물 1포인트 이상의 수익 발생시 당일 추가 매매 없게 하고 싶습니다.
**(다르게 매매되어 있습니다.)
매도 : 기준점 0을 기준으로 하향돌파 (0 하향돌파 분봉 아님) 후 다음 분봉 완성 즉시
또는 0 위에서 데드 크로스 발생 후 다음 분봉 완성 즉시
0이나 0 위에서 데드크로스 한가지만 만족하여도 매도입니다.
청산 : 변수 20과 변수 10의 골든 크로스시, 또는 기준점 0에서 포지션 정리(포지션없음으로)
(미적용 되었습니다)
** 포지션 정리 후 선물 1포인트 이상의 수익 발생시 당일 추가 매매 없게 하고 싶습니다.
그리고 아래의 내용을 추가 합성 부탁드립니다.
(호가 잔량 이평이 매수세가 강할 때 매수만, 매도세가 강할 때 매도만 수식입니다,)
Input : Period(5);
var : AsksMA(0),BidsMA(0);
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
if BidsMa > AsksMA Then{
buy();
}
if BidsMa < AsksMA Then{
sell();
}
if MarketPosition == 1 and CrossDown(BidsMa,AsksMA) Then
ExitLong();
if MarketPosition == -1 and CrossUp(BidsMa,AsksMA) Then
ExitShort();
매번 감사합니다 ^^
2015-07-01
165
글번호 87873
답변완료
수식 변경요청 드립니다.
아래수식에서 처음신호 발생봉 종가 기준으로
-> 두번째 신호가 수익일 경우 -> 처음 수익을 제외한 당일손실제한 강제청산
-> 두번째 신호가 손실일 경우 -> 처음 손실을 포함한 당일손실제한 강제청산
수식 으로 변경요청 드립니다.
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0);
NP = NetProfit;
if date != date[1] Then
preNP = NP[1];
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,EntryPrice+당일손실-dayPL);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,EntryPrice-당일손실+daypl );
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------
Value1 = Highest(H, BarsSinceEntry-100);
if BCount+SCount < N and daypl > 당일손실 Then
Buy("매수추적청산",AtStop, Value1-ATR(15)*5);
Value2 = Lowest(L, BarsSinceEntry-100);
if BCount+SCount < N and daypl > 당일손실 Then
sell("매도추적청산",AtStop, Value2-ATR(15)*5);
감사합니다.
2015-07-01
179
글번호 87866
회원 님에 의해서 삭제되었습니다.
2015-07-01
28
글번호 87861
답변완료
조건식
NH 트레이더를 사용하고 있읍니다.
아래의 조건을 동시 만족하는 종목을 검색하려고 합니다. 도움주시면 감사하겠읍니다.
1. 20봉전 대량거래(20일 평균거래량의 2배이상) 발생하면서 7%이상의 양봉 발생
2. 0봉전 기준 20일동안 주가등락폭은 20% 이내
3. 0봉전 기준으로 21일동안의 최고종가는 20봉전 발생한 양봉의 종가보다 작거나 같을것
2015-07-01
183
글번호 87860
답변완료
부탁드립니다.
답변 감사합니다.
1. data4(60분차트)에서 macd와 시그날의 골든크로스 발생시 3차추가매수
- 단, 3차매수신호발생 가격이 data2(20분차트)상의 1차신호발생가의 이하이면 매수하고, 아니면 매수하지 않는다. )
2. 그리고 목표수익 10%에 도달했을때 보유물량의 50% 를 매도-
나머지 물량은 아래 청산조건 그대로 하고요
위의 조건들을 아래식에 추가할 경우에 어떻게 표현하는지-
부탁 드립니다.감사합니다.
input : short(12),long(26),sig(9);
var : MACDV2(0,data2), MACDS2(0,data2);
var : MACDV3(0,data3), MACDS3(0,data3);
var : MACDV4(0,data4), MACDS4(0,data4);
MACDV2 =data2(MACD(short,long));
MACDS2 = data2(ema(MACDV2,sig));
MACDV3 =data3(MACD(short,long));
MACDS3 = data3(ema(MACDV3,sig));
MACDV4 =data4(MACD(short,long));
MACDS4 = data4(ema(MACDV4,sig));
if MarketPosition == 0 and crossup(MACDV2,MACDS3) Then
buy("b1");
if MarketPosition == 1 and MaxEntries == 1 and
C < EntryPrice and Crossup(MACDV3,MACDS3) Then
buy("b2");
if MarketPosition == 1 Then{
if CurrentContracts == MaxContracts and CrossDown(MACDV2,MACDS2) Then{
if MACDV4 > MACDS4 Then
exitlong("bx1",OnClose,def,"",int(MaxContracts*0.5),1);
if MACDV4 < MACDS4 Then
exitlong("bx2");
}
if CrossDown(MACDV4,MACDS4) Then
exitlong("bx");
}
2015-07-01
157
글번호 87859
답변완료
문의합니다.
어제 문의에 대한 답변 매우 감사합니다 ^^
오늘도 하나 문의드립니다~
지표를 만든건데요.
아래의 식으로으로
변수10, 변수20 2가지를 기준으로 합니다.
기준점 0을 기준으로 상향돌파시 다음 분봉 완성 된 후 그 다음 분봉 시작시 매수,
변수 20과 변수 10의 데드크로스시, 또는 기준점 0에서 포지션 정리(포지션없음으로)
포지션 정리 후 선물 1포인트 이상의 수익 발생시 당일 추가 매매 없게 하고 싶습니다.
기준점 0을 기준으로 하향돌파시 다음분봉 완성 된 후 그 다음 분봉 시작시 매도,
변수 20과 변수 10의 골든 크로스시, 또는 기준점 0에서 포지션 정리(포지션없음으로)
포지션 정리 후 선물 1포인트 이상의 수익 발생시 당일 추가 매매 없게 하고 싶습니다.
시스템 매매식으로 수정 부탁드립니다.
감사합니다.
Input : Period1(20);
value1 =LRS(C,Period1);
if value1>0 Then
plot1(value1,"기울기",red);
Else
if value1 < 0 Then
plot1(value1,"기울기",BLUE);
PlotBaseLine1(0);
2015-07-01
162
글번호 87858