커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7513
글번호 230811
답변완료
수식 부탁드립니다.
전일 동시간대 보다 많은 거래량의 상황에서 시가보다 4% 상승하면 매수
매수후 12% 상승하면 보유주식의 30% 매도
12% 상승한 후 15% 상승하지 못하고 다시 12%로 하락하면 잔량 매도
12% 상승 후 15% 상승하면 보유주식의 40% 매도
15% 상승한 후 20% 상승하지 못하고 다시 15%로 하락하면 잔량 매도
15% 상승 후 20% 상승하면 보유주식의 30% 매도
손절매는 2%입니다.
또한 매수후 2거래일동안 12%에 도달 못하고 또 손절포인트까지 하락하지 않아도
매도
각 매매에서 시스템트레이딩 설정창 매매탭에서 가격(예로 시장가, 현재가,
현재가+-1호가등)을 설정하면 매매식에서는 따로 매매가격을 설정하지 않아도
되는지 궁급합니다.
노고에 감사드리며 오늘도 좋은 하루 되세요
2014-03-30
129
글번호 73959
답변완료
수식작성 부탁드려요
1. 2분봉 기준으로
25이평 50 이평 75이평 125 이평이 정배열이고
현재가 가격이 50이평을 돌파하면 매수 만 한다.
익절은 C p
손절은 D p 로
하고 하루 2번만 진입 하고
오후 3시에 장 종료 함
2. 근데 궁금 한 점이 전날
시그날이 종료 된 상태에서
다음날 정배열 상태이고 시가가 50 이평을 돌파한 상태이면
시가에 매수가 되는 지요?
3. 매수하고 A포인트이익일때 익절 또는 최대이익 대비 B포인트 하락할때
익절 그리고 매매 종료도 1번 문장에서 포함 시켜 주세요.
2014-03-31
143
글번호 73958
회원 님에 의해서 삭제되었습니다.
2014-03-30
54
글번호 73957
답변완료
부탁합니다
var1 = BollBandUp(20,2);
var2 = BollBandDown(20,2);
if C >= O Then{
if C > var1+0.5 then
ExitShort();
Else
buy();
}
if C <= O Then{
if C < var2-0.5 Then
ExitLong();
Else
sell();
}
if MarketPosition == 1 and crossup(c,var1+0.5) Then
ExitLong("bx");
if MarketPosition == -1 and crossdown(c,var1-0.5) Then
ExitShort("sx");
2번수식(요요청산)
input : ATRPeriod(20),N(1.5);
if crossup(c,ma(c,5)) Then
buy("매수");
if marketposition() == 1 Then
exitlong("YoEX",atstop,C-N*ATR(ATRPeriod));
if marketposition() == -1 Then
exitlong("YoSX",atstop,C+N*ATR(ATRPeriod));
MessageLog("%.2f",MarketPosition);
3번수식 스파이크청산
4번수식 추적청산
위4식을 동시에 사용할수있게해주세요
감사합니다
2014-03-31
153
글번호 73956
답변완료
예스 글로벌 프로 잔고함수 관련
value1 = getnumpositions(getaccount(1));
if marketposition == 1 then
if value == 2 then
if c <= entryprice - 0.0065 then exitlong();
if value == 1 then setstoptrailing(100,var1,percentstop);
잔고함수를 처음 써보는데, 시뮬레이션 차트로는 잔고 변화 시뮬레이션이 불가능한 것 같아서 이렇게 질문드립니다.
제가 원하는 건 계좌에 두 종목이 있다가 한 종목이 청산되면 이후부터 stop trailing 주문이 작동하게 하는 건데요. 위와 같이 수식을 쓰면 제가 원하는대로 되는지 궁금합니다.
또 다른 궁금한 점은 예를 들어 9시에 한 종목이 청산이 되었는데 8시 반에 이미 stop trailing 주문이 발동될 조건이 충족된 경우, 9시에 종목 청산과 동시에 8시 반 기준 stop trailing 주문이 나간 것으로 인식이 되나요? 아니면 9시 이후에 stop trailing 주문 조건이 만족될 경우 주문이 나가는 식으로 인식이 되나요?
끝으로 제가 계좌번호가 하나밖에 없는데 그럼 getaccount(1) 이라고 적으면 되는건가요?
답변 부탁드립니다.
2014-03-30
216
글번호 73955
답변완료
부탁합니다
거래량
1일전 거래량을 100으로 가정
오늘의 거래량 150이상
2일전 거래량은 30~40사이
3일전 거래량은 45~60사이
4일전 거래량은 10~25사이
오늘의 봉은 3%이상 양봉
2014-03-30
158
글번호 73954
답변완료
문의드립니다
아래지표를 Data2에 적용하고 싶습니다.
늘 감사드립니다.
input : Atime(60),RSIP(9),RSISP(10);
var : rSI2(0),RSIS2(0);
var : RSigSum(0),Rcount2(0),RSIsig(0);
Var : RCounter(0), RDownAmt(0), RUpAmt(0), RUpSum(0), RDownSum(0), RUpAvg(0), RDownAvg(0);
var : RDindex(0), RPreUpAvg(0), RpreDownAvg(0),Rcnt1(0),TF(0);
Array : RC[100](0),RSIV1[100](0);
TF = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (TF < TF[1] and stime > stime[1]) Then{
for Rcnt1 = 1 to 99{
RC[Rcnt1] = RC[Rcnt1-1][1];
RSIv1[Rcnt1] = RSIv1[Rcnt1-1][1];
}
RPreUpAvg = RUpAvg[1];
RpreDownAvg = RDownAvg[1];
RDindex = Rdindex + 1;
}
RC[0] = C;
If RDindex == RSIP Then Begin
RUpSum = 0;
RDownSum = 0;
For RCounter = 0 To RSIP - 1 Begin
RUpAmt = C[RCounter] - C[RCounter+1];
If RUpAmt >= 0 Then
RDownAmt = 0;
Else Begin
RDownAmt = -RUpAmt;
RUpAmt = 0;
End;
RUpSum = RUpSum + RUpAmt;
RDownSum = RDownSum + RDownAmt;
End;
RUpAvg = RUpSum / RSIP;
RDownAvg = RDownSum / RSIP;
End
If RDindex > RSIP Then {
RUpAmt = RC[0]-Rc[1];
If RUpAmt >= 0 Then
RDownAmt = 0;
Else
{
RDownAmt = -RUpAmt;
RUpAmt = 0;
}
if RDindex <=1 Then {
RUpAvg = 1;
RDownAvg = 1;
}
Else {
RUpAvg = (RPreUpAvg * (RSIP - 1) + RUpAmt) / RSIP;
RDownAvg = (RpreDownAvg * (RSIP - 1) + RDownAmt) / RSIP;
}
}
If RUpAvg + RDownAvg <> 0 Then
RSIv1[0] = 100 * RUpAvg / (RUpAvg + RDownAvg);
Else
RSIv1[0] = 0;
RSI2 = RSIv1[0];
RSigSum = 0;
for Rcount2 = 0 to RSISP-1{
RSigSum = RSigSum+RSIv1[Rcount2];
}
RSIS2 = RSigSum/RSISP;
plot1(RSI2);
plot2(RSIS2);
PlotBaseLine1(50, "기준선 50", YELLOW);
2014-03-30
166
글번호 73953
답변완료
부탁드립니다.
고,저 이동평균입니다.
이동평균선이
하방으로 바뀌면 고가 이평만 나오고,,,,
반대로 상방으로 바뀌면 저가 이평만 나오도록 부탁드립니다.
Input : Period1(3), Period2(13),Period3(55);
Var1 = ma(H,period1);
Var2 = ma(L,period1);
Var3 = ma(H,period2);
Var4 = ma(L,period2);
Var5 = ma(H,period3);
Var6 = ma(L,period3);
Plot1(Var1, "3고");
Plot2(Var2, "3저");
Plot3(Var3, "13고");
Plot4(Var4, "13저");
Plot5(Var5, "55고");
Plot6(Var6, "55저");
if var1 > var1[1] Then
Plot1(Var1, "3고",GREEN);
Else
Plot1(Var1, "3고",GRAY);
if Var2 > Var2[1] Then
Plot2(Var2, "3저",GREEN);
Else
Plot2(Var2, "3저",GRAY);
if Var3 > Var3[1] Then
plot3(Var3,"13고",RED);
Else
plot3(Var3,"13고",BLACK);
if Var4 > Var4[1] Then
plot4(Var4,"13저",RED);
Else
plot4(Var4,"13저",BLACK);
if Var5 > Var5[1] Then
plot5(Var5,"55고",MAGENTA);
Else
plot5(Var5,"55고",blue);
if Var6 > Var6[1] Then
plot6(Var6,"55저",MAGENTA);
Else
plot6(Var6,"55저",blue);
2014-03-30
120
글번호 73952
답변완료
[STAD_05] Stochastics OverBS
Inputs: Length(12), OBought(70), OSold(30), SetUpLen(6), EntryPoint(0.1), ExitPoint(1.0);
Vars: KVal(0), DVal(0), BuySetup(0), SellSetup(0), BuyPeriod(99), SellPeriod(99), BuyStop(0), SellStop(0);
var : Factor(0.5);
-----------------------------------------------------------------------------
질문1 내부변수 BuyPeriod(99), SellPeriod(99), Factor(0.5) (0)이아닌(99) (0.5)
인 이유를 알고싶습니다
//Stochastic Line Calculations
if CurrentBar > 1 then {
Kval = Kval[1] + (Factor*(FastK(Length)-Kval[1])); //기본stochasticsk와 다른 방식의 stochasticsk
Dval = ((Dval[1]*2) + Kval)/3; //다른 방식의 StochasticsD
}
//Entry Setups
IF KVal < OSold AND CrossUp( KVal , DVal) Then Begin
BuySetup = Highest(High, 2);
BuyStop = Low;
BuyPeriod = 0;
End;
IF KVal > OBought AND CrossDown( KVal , DVal) Then Begin
SellSetup = Lowest(Low, 2);
SellStop = High;
SellPeriod = 0;
End;
---------------------------------------------
//Counters
IF MarketPosition == 1 Then
BuyPeriod = SetUpLen + 1;
Else
BuyPeriod = BuyPeriod + 1;
IF MarketPosition == -1 Then
SellPeriod = SetUpLen + 1;
Else
SellPeriod = SellPeriod + 1;
-----------------------------------------
질문2 이부분 설명좀 달아주시면 감사하겠습니다
부탁드립니다
//Entry Signals
if EntriesToday(date) < 1 then {
IF BuyPeriod <= SetUpLen Then
Buy("",atstop,BuySetup + EntryPoint);
IF SellPeriod <= SetUpLen Then
Sell("",atstop,SellSetup - EntryPoint);
}
//System Exits
IF CrossDown( KVal , DVal ) AND KVal > OSold Then Begin
BuyPeriod = SetUpLen;
ExitLong();
End;
IF CRossUp( Kval , DVal) AND KVal < OBought Then Begin
SellPeriod = SetUpLen;
ExitShort();
End;
//Stops
ExitLong("",atstop, BuyStop-ExitPoint);
ExitShort("",atstop, SellStop+ExitPoint);
태그저장 취소
2014-03-29
172
글번호 73951