커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3498
글번호 230811
답변완료
새해 복 많이 받으십시오. 질문 드립니다.
예전에 주셨던 MACD를 차트 바탕에 까는 수식입니다.
input : short(12),long(26),sig(9);
var : MACDV(0),MACDS(0);
MACDV = (ema(C,short)ema(C,long))/ema(C,long)*100;
MACDS = ema(MACDv,sig);
if MACDV > MACDS Then
{
      plot1(99999999,"라인1");
      plot2(0,"라인2");
}
Else
{
      plot1(0,"라인1");
      plot2(99999999,"라인2");
}
첨부한 그림들의 빨간 동그라미 부분처럼
macd 변환이 딱 한틱봉에서만 발생한 경우
음성 신호를 주는 수식 가능할까요?
최종 완성이후 음성신호를 주려면 결국 다음봉까지 완료가 되어야 할텐데
그것도 좋고,
다음봉이 완성되기 전에 실시간으로 음성신호가 나와도 좋습니다.
새해 복 많이 받으십시오. 감사합니다.
2020-01-21
221
글번호 135336
답변완료
식 부탁합니다
수고 많으십니다.
아래 지표식에 검색 표시를 할 수 있도록 식 부탁합니다.
검색 표시할 내용은 아래 식중에 소리로 알려주는
If var1[1]>var1 or var2[1]<var2 or var3[1]>var3 Then{
PlaySound("C:₩예스트레이더₩data₩Sound₩sound8.wav");}을 충족하는 검색이
될 수 있도록 부탁합니다. 가능하면 과거에 발생한 것은 검색 표시되지 않도록 하고
당일만 검색 표시되도록 해주길 바랍니다.
------- 아 래 --------
If O>C[1] && C<O[1] Then
var1 = O;
If O<=C[1] && O>O[1] && C<O[1] Then
var2 = O;
If O>O[1] && C<O[1] Then
var3 = O;
If var1[1]>var1 or var2[1]<var2 or var3[1]>var3 Then{
PlaySound("C:₩예스트레이더₩data₩Sound₩sound8.wav");}
plot1(var1, "A", RED);
plot2(var2, "B", GREEN);
plot3(var3, "C", YELLOW);
감사합니다.
2020-01-22
195
글번호 135335
답변완료
틱봉을 분봉으로 만들어서 청산하기
# 해외선물_ 틱봉 100틱 설정
# 매수 진입 후, 30분봉이 두번 연속 양봉이 나오면 이익청산
# 매도 진입 후, 30분봉이 두번 연속 음봉이 나오면 이익청산
위의 코딩 부탁드립니다.
아래처럼 여기저기 따와서 코딩했는데 안되네요..
도움되실까 하여 아래 제가 여기저기 따온 코드를 수록하였습니다.
# 진입 : 골든크로스 매수/ 데드크로스로 매도 -------------------------------------------------------------
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy("매수");
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell("매도");
}
input : convert(30);
var : S1(0), D1(0), TM(0), TF1(0), rng1(0), rng2(0), OOO1(0), OOO2(0), CCC1(0), CCC2(0), cnt(0);
Array : OO[10](0), CC[10](0);
if bdate != bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1; # TM = TimeToMinutes(stime) - S1
Else
TM = TimeToMinutes(stime)+1440-S1; # 아니면 TM = TimeToMinutes(stime) + 1440 - S1
TF1 = TM % convert; # TF1 = TM 나누기 convert(30)의 '나머지'
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then # TF[1]이 보다 유일하게 커질때가 30분 정각이다.(틱봉에선 반영이 잘 안되지만, 그래도 근사값을 구할수는 있다)
{
OO[0] = O;
CC[0] = C;
for cnt = 1 to 99
{
OO[cnt] = OO[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
}
if OO[1] != OO[2] Then
{
rng1 = CC[1]-OO[1];
rng2 = CC[2]-OO[2];
OOO1 = OO[1];
OOO2 = OO[2];
CCC1 = CC[1];
CCC2 = CC[2];
}
// 청산<익절> ---------------------------------------------------------------------------------------------------------------
if MarketPosition == 1 Then
{
if OOO1 > CCC1 and OOO2 > CCC2 Then # 첫번째 봉 음봉 and 두번째 봉 음봉 (2개 연속 봉 같은방향)
ExitLong("2차 매수익절_1안", AtLimit, 0, "매수");
else if CurrentContracts == 1 Then
ExitLong("2차 매수본절익절_1안", atstop, EntryPrice, "매수", 1, 1);
}
else if MarketPosition == -1 Then
{
if OOO1 < CCC1 and OOO2 < CCC2 Then # 첫번째 봉 양봉 and 두번째 봉 양봉 (2개 연속 봉 같은방향)
ExitShort("2차 매도익절_1안", AtLimit, 0, "매도");
else if CurrentContracts == 1 Then
ExitShort("2차 매도본절익절_1안", atstop, EntryPrice, "매도", 1, 1);
}
// 손절
SetStopLoss(10, PointStop);
2020-01-21
205
글번호 135334
답변완료
문의 드립니다.
aroon지표 신호식좀 부탁드립니다.
빨강색과 파란색이 크로드 업,다운할때 신호좀 부탁드립니다.
2020-01-21
195
글번호 135333
답변완료
질문 올립니다.
늘 친절하신 가르치심에 감사드립니다.
"한권으로 끝내는 시스템 트레이딩" 책 240쪽 위에서 5번째 줄에 보면, "전 봉 종가를 기준으로"라고 되어 있는데, 241쪽 소스 제6라인에서 보면, C-ATR(20)*YoYoMult라고 되어 있는데, 혹시 C[1]-ATR(20)*YoYoMult라야 되는 것은 아닌가 해서 질문 올립니다.
((242쪽 코드 제11라인에서 보면 C[1]+ATR(20)*SpikeMult라고 되어 있는 것과 같은 맥락으로, 241쪽에서도 C가 아니라, C[1]이 아닐까 싶은 생각이 들어서요...))
감사합니다.
2020-01-21
191
글번호 135332
답변완료
검색식 통합 부탁드리겠습니다.
답변주신 내용으로 변형해보려 했으나, 한계입니다.
아래 두 개의 글에 있는 검색식을 하나로 합해서 표현하려면 어떻게 해야 할 까요?
글번호 : 64999
글번호 : 65707
부탁드리겠습니다.
2020-01-21
173
글번호 135331
답변완료
문의드립니다
모든 신호는 항생을 기준으로 하고 매수매도만 미니항생으로 해보려고 하는데 미니항생에 Data2를 불러와서 짜봐도 잘 되지 않습니다
아래식을 위 처럼 운용하려면 어떻게 식을 짜야하나요?
Input: FastLen(10), SlowLen(500), ChLen(30), TrailBar(160), stopPer(1.0), 최소수익1(0.4),수익감소1(20), Ratio(0.2);
Vars: FastMA(0), SlowMA(0),LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999), ReCnt(0), MP(0), BH(0),BL(0), ShotMaxRatio(0), LongMaxRatio(0);
FastMA = ma(C , FastLen );
SlowMA = ma(C , SlowLen );
if!(stime >= 033500 and stime <= 040000) then{
If CrossUp(FastMA , SlowMA) and index > 1 then {
LEntryPrice = Highest(H , TrailBar )[1];
LCount = index;
LongMaxRatio = FastMA * (1+((Ratio/100)));
}
If MarketPosition <> 1 AND index < LCount + ChLen AND LEntryPrice <= LongMaxRatio then
Buy ("매수진입", atstop,LEntryPrice);
If CrossDown(FastMA , SlowMA) and index > 1 then {
SEntryPrice = Lowest(L , TrailBar )[1];
SCount = index;
ShotMaxRatio = FastMA * (1-((Ratio/100)));
}
If MarketPosition <> -1 AND index < SCount + ChLen AND SEntryPrice > ShotMaxRatio then
Sell ("매도진입", atstop,SEntryPrice );
}
If MarketPosition == 1 then {
LCount = -999;
ExitLong ("매수청산", atstop, Lowest(L , TrailBar ));
BH = highest(H,BarsSinceEntry);
if BH >= EntryPrice*(1+최소수익1/100) Then
ExitLong("bx1",AtStop,BH-(BH-EntryPrice)*(수익감소1/100));
}
If MarketPosition == -1 then {
SCount = -999;
ExitShort ("매도청산", atstop, Highest(H , TrailBar ));
BL = Lowest(L,BarsSinceEntry);
if BL <= EntryPrice*(1-최소수익1/100) Then
ExitShort("sx1",AtStop,BL+(EntryPrice-BL)*(수익감소1/100));
}
SetStopLoss(stopPer, PercentStop);
if sTime == 034800 Then
{
exitlong("장마감매수청산");
exitshort("장마감매도청산");
}
2020-01-21
186
글번호 135325
답변완료
함수요청
안녕하세요?
아래 전략에 대하여 스크립트 작성 요청드립니다.
항셍지수선물 1분봉(data1), 30분봉(data2)으로 T장(10:15~17:30)에서 거래를 하고자합니다.
기본 종목의 10시 15분봉 시가가 볼린저밴드 하단을 이탈하고 음봉 발생 익봉 시가 매도
기본 종목의 10시 15분봉 시가가 볼린저밴드 상단을 돌파하고 양봉 발생 익봉 시가 매수
참조 종목의 저가가 볼린저밴드 하단보다 작으면 익봉 시가에 매도청산
참조 종목의 고가가 볼린저밴드 상단보다 크면 익봉 시가에 매수청산
17시에 시간 강제청산
진입기준으로 N번 이하로 제어하고 싶습니다.
2020-01-21
187
글번호 135324
답변완료
고가 저가 문의
전일의 최고가 dayhigh(1), 전전일의 최고가 dayhigh(2)중에서 더 큰 값을 취하고
=> 이것을 'B'라고 하고,
전일의 최저가 daylow(1), 전전일의 최고가 daylow(2)중에서 더 작은 값을 취하고
=> 이것을 'S'이라고 하고,
이것의 차이값을 알고 싶습니다.
rang = B-S
수식으로 부탁드립니다. 결국 이전 2일간의 최고가와 최저가의 값으 찾고 싶은 건데,
2일을 변수를 써서 다른 일수로도 테스트 할 수 있도록 가능할까요?
부탁드립니다
2020-01-21
175
글번호 135323