커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3741
글번호 230811
답변완료
수식 여쭤봅니다~
안녕하세요~
수식에서
2차매수가 일어나지 않아 다시 문의 드립니다.
개별주식
1분봉 차트에서 적용하는 수식입니다.
1차매수는 오늘 시가에서 매수
2차매수는 전일종가 대비 -2% 에서 매수 입니다.
1분봉에서 적용중인데
오늘시가 매수는 잘일어나는데
1차매수후 하락하여 전일 일봉 종가 대비 -2% 도달시에 2차매수가
일어나지 않습니다.
감사합니다~
ps .피라미딩 - 다른신호만 허용으로 체크를 안해서 그럴까요?
----------------------------------
input : 금액(300000),매수1(60),매수2(40);
var : trade(false);
if bdate != date[1] Then
trade = true;
if MarketPosition == 0 and TotalTrades > TotalTrades[1] Then
trade = false;
if NextBarSdate != sdate and
NextBarOpen >= c and NextBarOpen <= C*1.04 Then
{
buy("b1",AtMarket,DEF,Floor((금액*(매수1/100))/NextBarOpen));
buy("b2",Atlimit,NextBarOpen*0.98,Floor((금액*(매수2/100))/(NextBarOpen*0.98)));
}
if MarketPosition == 1 then
{
if trade == true and
MaxEntries == 1 and
stime >= 90000 and stime < 93000 and
dayopen(0) >= DayClose(1) and
dayopen(0) <= DayClose(1)*1.04 Then
buy("b2.",Atlimit,dayopen(0)*0.98,Floor((금액*(매수2/100))/(dayopen(0)*0.98)));
if countif(LatestExitName(0) == "bp1",BarsSinceEntry) < 1 Then
ExitLong("bp1",atlimit,AvgEntryPrice*1.03,"",Floor(CurrentContracts*0.7),1);
if countif(LatestExitName(0) == "bp1",BarsSinceEntry) < 1 Then
ExitLong("bp2",atlimit,AvgEntryPrice*1.06,"",Floor(CurrentContracts*0.7),1);
ExitLong("bp3",atlimit,AvgEntryPrice*1.09);
if LatestExitName(0) == "bp1" or LatestExitName(0) == "bp2" then
{
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)*0.98);
}
if countif(LatestExitName(0) == "bl1",BarsSinceEntry) < 1 Then
ExitLong("bl1",AtStop,AvgEntryPrice*0.95,"",floor(CurrentContracts*0.5),1);
ExitLong("bl2",AtStop,AvgEntryPrice*0.93);
}
SetStopEndofday(151800);
2019-07-04
251
글번호 130026
답변완료
문의
ATM연결-2단계 콜옵션차트를 이용합니다.
수식 내용에 전일 오픈가격을 참조하는 내용이 있습니다.
6월13일 진입시 참고한 전일 오픈가격은
차트상 12일 오픈가격 5.80을 참고하는 것인지요?
************************************************************************************
input : 목표가(4.65),거래횟수(1);
var : Entry(0),T1(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
if entry < 거래횟수 and DayOpen(1) > 목표가 and C < O then
{
if NextBarOpen > 목표가 Then
sell("",AtStop,목표가);
Else
sell("",atlimit,목표가);
}
2019-07-04
281
글번호 130024
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1 .기타
이 수식이요. 앞의 질문 2번 수식인데요. 본 수식은 해당 레인지 돌파하면 그 방향 진입하는 거고 수정 요청 드린 건 이전 진입이 수익이면 앞선 진입과 반대 방향 진입, 이전 진입이 손실이면 수식대로 진입하는 내용인데
실행해보니 그냥 이전이 수익이더라도 그 방향으로 가고 아니어도 그 방향으로 가는 것 같습니다.
Inputs: InitMin(90);
Variables: SessStartMin(0), TradeTime(0), SetHigh(0), SetLow(0), LongFlag(False), ShortFlag(False);
#conversion of hour-based time to minute-based time
SessStartMin = TimeToMinutes(90000);
TradeTime = TimeToMinutes(sTime);
input : 진입횟수(1),손절률(1),익절률(1);
var : count(0),T1(0);
input : 진입시간(90000),제한시간(150000),청산시간(153400),특정수익(3);
var : Tcond(false),pl(0),ps(0);
SetStopLoss(손절률,PercentStop);
SetStopProfittarget(익절률,PercentStop);
if (sdate != sdate[1] and stime >= 청산시간) or
(sdate == sdate[1] and stime >= 청산시간 and stime[1] < 청산시간) then
{
Tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) then
{
Tcond = true;
T1 = TotalTrades;
}
if (sdate != sdate[1] and stime >= 제한시간) or
(sdate == sdate[1] and stime >= 제한시간 and stime[1] < 제한시간) then
{
Tcond = false;
}
if MarketPosition == 0 Then
count = TotalTrades-T1;
Else
count = TotalTrades-T1+1;
if Count < 진입횟수 and Tcond == true then
{
#Setup - establishment of the initial range
If TradeTime <= SessStartMin + InitMin Then
{
If Date <> Date[1] Then
{
SetHigh = High;
SetLow = Low;
LongFlag = True;
ShortFlag = True;
}
Else
{
If High > SetHigh Then
SetHigh = High;
If Low < SetLow Then
SetLow = Low;
}
}
Else
{
#Entries once the initial period has ended
if MarketPosition == 0 Then
{
pl = PositionProfit(1);
ps = MarketPosition(1);
}
Else
{
pl = PositionProfit(0);
ps = MarketPosition(0);
}
If LongFlag AND CrossUp( Close , SetHigh) Then
{
if pl <= 0 or (PL > 0 and ps != 1) Then
Buy();
}
If ShortFlag AND CrossDown(Close , SetLow) Then
{
if pl <= 0 or (pl > 0 and ps != -1) then
Sell();
}
}
}
#Long Protective Exit
If MarketPosition == 1 Then
{
LongFlag = False;
ExitLong("",atstop,SetLow );
ExitLong("BS",atlimit,EntryPrice+특정수익 );
}
#Short Protective Exit
If MarketPosition == -1 Then
{
ShortFlag = False;
ExitShort("",atstop,SetHigh );
ExitShort("SB",atlimit,EntryPrice-특정수익 );
}
input: TsValue(80);
var: Hvalue(0),Lvalue(0);
If MarketPosition() == 1 Then {
Hvalue = Highest(H,BarsSinceEntry+1);
ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale);
}
If MarketPosition() == -1 Then {
Lvalue = Lowest(L,BarsSinceEntry+1);
ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale);
}
2.
궁금해서 그러는데요. 작성해주신 2번 전략은 정확히 어떻게 작동하는 건가요? 본 전략이랑 성과가 다르긴 한 것 같은데 차트만 봐서는 뭐가 다른지 잘 모르겠습니다.
if pl <= 0 or (PL > 0 and ps != 1) Then
Buy();
여기로 이전 수익이랑 마켓 포지션 나누어 놓은 것 같기는 한데요. 정확히 어떻게 작동하는지 궁금합니다.
3. 앞선 질문의 3번 전략도요. 제가 보기엔 진입횟수도 적고 뭔가 제가 생각한 방향으로 안 나왔습니다. 첨부파일 2와 같은 것처럼 진입하게 하고 싶었거든요.
4. 1번 수식도 본수식(특정시간 인트라데이 돌파전략)의 매수 매도 조건을 만약 이전 수익이 특정 수익이상일 때 반대로 (원래 buy 수식이면 sell로, 그러니까 원래는 정방향 진입인데 특정 수익이 발생한 다음 매매에서는 역방향 진입)하는 거였는데 트레일링 스탑에만 있네요.
글로 어설프게 쓰다보니 설명을 잘 못하는 듯 합니다. 수식 도움 좀 부탁드립니다.
2019-07-04
295
글번호 130019
답변완료
검색식 부탁드립니다
항상 도움주셔서 감ㅅ합니다.
5분봉 저가가 우상사 우상향 하는 종목 검색이 가능 할까요?!
2019-07-04
260
글번호 130018
답변완료
산식검토
이렇게하면 양봉도 함께 검색되는 이유가 뭔지요?
음봉만 검색할수있게 부탁드립니다
If DayOpen(0)>DayClose(0) and DayClose(0)/DayClose(1)<0.90
Then
Condition1 = true;
Else
Condition1 = false;
if Condition1[n] == true Then
find(1);
2019-07-04
270
글번호 130017
답변완료
문의 합니다
문의 합니다.
선물거래에서 예;100틱봉차트에서 차트가 사승또는 하락할때 10틱이오르면 10틱 20틱 30틱...등 숫자가 오른만큼 숫자로 표시되고 상승.하락화살표신호뒤에 매수.매도등이 표시되는 차트를 어덯게 설정하는지요? 설정하는 순서 방법을 알려 주세요.부탁 드립니다.
2019-07-03
296
글번호 130016
답변완료
종목 검색식에 관해 문의 드립니다.
안녕하세요?
예스랭귀지 '종목 검색식'에 관한 문의를 드리겠습니다. ^^
다음은 제가 사용 중인 '영웅문4의 수식'입니다.
(다음의 함수는 60분봉 차트에서 표현된 일봉 상 고가(DayHigh()....)와 저가(DayLow()....)입니다.)
AA = (max(nPredayhigh(3),nPredayhigh(2),PreDayHigh(),DayHigh())+min(nPredaylow(3),nPredaylow(2),PreDayLow(),DayLow()))/2
CROSSUP(C,AA) THEN FIND(1);
AA 값의 설명 : (MAX(3봉전 전일 고가, 2봉전 전일 고가, 전일 고가, 금일 고가) + MIN(3봉전 전일 저가, 2봉전 전일 저가, 전일 저가, 금일 저가)) / 2
60분봉의 종가(C)가 AA를 크로스업하는 '종목 검색식'을 알고 싶습니다.
2019-07-04
351
글번호 130015
답변완료
타주기 지표식
항상 감사드립니다
아래 지표식을 타주기에 적용코저합니다
주챠트:크루드 10틱봉
타주기챠트:크루드 50틱봉
***지표식 ***
input : Period(23);
var:t1(0),H1(0),H2(0),H3(0),L1(0),L2(0),L3(0);
var1 =(AccumN(iff(C-C[1]>0,C-C[1],0),Period)/AccumN(iff(C-C[1]>0,C-C[1],C[1]-C),Period)*100);
if var1 <= 25 Then
var2 = O;
if var1 >= 75 Then
var3 = H;
var4=(var2+var3)/2 ;
plot1(var2,"RSI25",BLUE,def,1.0);
plot2(var3,"RSI75",red,def,1.0);
plot3(var4,"중심선",pink,def,3.5) ;
감사합니다
2019-07-03
277
글번호 130014
답변완료
문의
전일중심가에서 전일중심가라는 글이나오고 숫자가 나오게 부탁드립니다, 전일고가, 전일 저가도 똑같이 글과 숫자가 나오게 부탁드립니다.글자크기와 색은 따로 정할수 있도록 부탁드립니다.
2019-07-03
273
글번호 130013