커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7528
글번호 230811
답변완료
청산식오류수정
항상감사드립니다
아래 특정진입조건에 대한(B1/B11,S1/S11) 진입청산식이 구현이 되질않습니다
수정부탁드립니다
var : cnt(0),count(0);
var1 = ma(c,9);
var2 = ma(c,26);
if CrossDown(var1,var2) Then
value1 = var2;
if var2 < value1 Then
value1 = var2; #매도라인#
if CrossUp(var1,var2) Then
value2 = var2;
if var2 > value2 Then
value2 = var2; #매수라인#
value3 = var2;
if date != date[1] Then{
value11 = value1[1];
value21 = value2[1];
value31 = value3[1];
}
################################
##### 삼각가중 이평 #####
################################
VAR: Length1(20),Length2(60);
Variables: TLen1(0),TRIma1(0),TLen2(0),TRIma2(0);
TLen1 = Ceiling((Length1 + 1) * 0.5);
TLen2 = Ceiling((Length2 + 1) * 0.5);
var23 = ma(ma(H, TLen1), TLen1);
var22 = ma(ma(C, TLen1), TLen1);
var21 = ma(ma(L, TLen1), TLen1);
var53 = ma(ma(H, TLen2), TLen2);
var52 = ma(ma(C, TLen2), TLen2);
var51 = ma(ma(L, TLen2), TLen2);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if (count == 0 and dayopen > value2 and value1==value11) Then
buy("B1");
if (stime == 151500 and NextBarOpen > value2) Then
buy("B11",AtMarket);
if (count == 0 and DayOpen < value1 and value2==value21) Then
sell("S1");
if (stime == 151500 and NextBarOpen < value1) Then
sell("S11",AtMarket);
if count == 1 Then{
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Condition3 = false;
if MarketPosition == 1 and Condition3 == false and value2 > value1 and value1 == value1[1] Then{
value7 = value1;
Condition3 = True;
}
}
if count >= 1 and Condition3 == true Then{
if crossup(c,value7) Then
buy("Bb1");
if CrossDown(c,value7) Then
sell("Bs1");
}
if count == 1 Then{
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Condition2 = false;
if MarketPosition == -1 and Condition2 == false and value2 >= value1 and value2 == value2[1] Then{
value6 = value2;
Condition2 = true;
}
}
if count >= 1 and Condition2 == true Then{
if crossup(c,value6) Then
buy("Sb1");
if CrossDown(c,value6) Then
sell("Ss1");
}
##### B1/B11,S1/S11 청산 #####
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
if CrossDown(c,var51) then
exitlong("eL11");
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
if crossup(c,var53) then
exitshort("eS11");
}
2013-12-09
157
글번호 70264
답변완료
수직선 긋기
Y축 뒤집기를 하면 수직선이 위에서 아래로 나오는데요
Y축뒤집기가 아닌 정상상태에서
수직선을 위에서아래로 긋는 방법을 알고 싶습니다
감사합니다
2013-12-09
162
글번호 70263
답변완료
수식문의 드립니다
36선이 200선 위에있고 36선을 2틱이상 돌파한 캔들이 되돌림하여 36선에
터치하는 즉시 진입이고
진입즉시 손절7틱 청산은 30틱이익이면 청산합니다
그리고 트레이딩 시간은 17 시부터 01 시까지로 제한하고 싶습니다
또는 뉴욕장에만 거래하거나 유럽장에만 거래하거나
시간을 정해놓고할수있도록 만들고 싶네요..
항상 감사합니다
2013-12-09
173
글번호 70262
답변완료
문의드립니다
선물지수행사가에 현재가를 %로 텍스트출력하길원합니다
예를 들어 현재가가 262.50을 돌파후 265까지 몇%남았는지 262.50에서는 몇%돌파했는지 알고 싶습니다
2013-12-09
154
글번호 70261
답변완료
지표의 출력 중단
항상 신속하고 상세하게 답변 주셔서
많은 도움을 받고 있습니다. 감사합니다.
첨부한 이미지와 같이
지표의 우측일부가 출력이 안되는 경우가 있는데요.
시간이 지나면 다시 니타납니다만,
새로고침 같은 버튼이나
간단없이 출력되게할 방안이 있는지요?
다른 차트는 그렇지않은데
이 차트만 나타나는 현상입니다.
2013-12-09
164
글번호 70260
답변완료
근접 행사가 구하기
항상 상세하고 신속하게 답변 주셔서
많은 도움을 받고 있습니다. 감사합니다.
전략차트 하나에
콜1개 풋5개가 포함되어 있을 때
콜과 가장 근접한 풋의 가격을 찾고자 합니다.
콜1 = 5
풋1 = 3.2
풋2 = 4.0
풋3 = 5.5
풋4 = 7.8
풋5 = 8.5 라고 할때
=min(abs(콜1-풋1), abs(콜1-풋2), abs(콜1-풋3), abs(콜1-풋4), abs(콜1-풋5))
위와 같이 하면 0.5가 리턴되는데요.
풋3의 값 5.5를 리턴 받고자 하는데
어떻게해야 할까요?
사실 콜의 숫자가 5개로 확장된 모델에
적용할 예정입니다.
혹시 for 문 등으로 간소화 할 방법이 있으면
가르쳐 주시길 부탁드립니다.
2013-12-09
168
글번호 70256
답변완료
시스템식 부탁드립니다.
1분봉 매매입니다.
1차 매수 백만원
2차 매수 백만원
3차 매수 2백만원
전일의 종가대비 7% 이상 상승했을 경우 부터 아래의 변동폭을 구한후에 매수를 함
변동폭 = 당일고가-Min(당일저가, 전일종가)
1차 매수 = 당일고가 - 변동폭*0.382
2차 매수 = 당일고가 - 변동폭*0.5
3차 매수 = 당일고가 - 변동폭*0.618
수익실현 = 1,2차 매수시에는 1.5% 수익실현
3차 매수시에는 0.4% 수익실현
* 1차 매수가 되어야만 2,3차 매수가 가능하며
1차 매수시에는 분봉의 이전 종가가 1차 매수 가격보다 위에 있었어야 함
* 1차 매수는 14:30분 이전까지만 매수 가능
* 2,3차 매수는 14:40분 이전까지만 매수 가능
* 수익실현 이후에 5분이내에는 재매수금지
* 14:49분 전량 청산
2013-12-09
145
글번호 70251
답변완료
옵션매매
안녕하세요.
아래와 같은 선물전략을 옵션전략으로 변환부탁드립니다.
(ex. Close -> Data2(C) )
아룰러 기준선물차트가 50틱차트라면 옵션도 동일하게 50틱으로 설정하는
것이 좋나요? 선물신호가 나옴과 동시에 옵션에 신호를 발생시키려면
어떤식으로 설정해야 하나요?
그럼 수고하세요.
Input : EntryTime1(90700), EntryTime2(90400);
Var : cnt(0), EntryCount(0), DayGap(0), Signal("");
Var : atrlen(30), ts(3);
DayGap = ABS(DayOpen - DayClose(1));
EntryCount = 0;
For cnt = 0 to 20
{
If Sdate == EntryDate(cnt) Then EntryCount = EntryCount + 1;
}
If Time < EntryTime1 and EntryCount < 1 Then
{
If CrossUp(C, MA(C, 10)) Then Buy("Buy", AtMarket);
If CrossDown(C, MA(C, 10)) Then Sell("Sell", AtMarket);
}
If Time >= 94000 Then
{
If MarketPosition == -1 and EntryCount == 1 Then
{
If PositionProfit < -0.5 Then
{
Buy("손절매수", AtMarket);
}
}
}
If Time >= 90200 Then
{
If MarketPosition == 1 and EntryCount == 1 Then
{
If EntryPrice - lowest(low,barsSinceEntry+1) > 0.8 Then
{
Buy("피라미딩매수",Atstop,lowest(low,barsSinceEntry+1)+atr(30)*3);
}
}
}
SetStopLoss(1.0, PointStop);
SetstopProfittarget(2.0, Pointstop);
If Marketposition == 1 then
{
If highest(high,barsSinceEntry+1) - EntryPrice > ProfitLimit Then
exitlong("매수청산",Atstop,highest(high,barsSinceEntry+1)-atr(atrlen)*ts);
}
If Marketposition ==-1 then
{
If EntryPrice - lowest(low,barsSinceEntry+1) > ProfitLimit Then
exitshort("매도청산",Atstop,lowest(low,barsSinceEntry+1)+atr(atrlen)*ts);
}
If Time >= 131000+TimeDelay Then Begin
ExitShort("DayEnd ExitShort");
ExitLong("DayEnd ExitLong");
End;
2013-12-09
181
글번호 70249
답변완료
지표식 검토 부탁드립니다.
안녕하세요?
아래의 지표식을 예전에 노트하여 출처가 기억나지 않아 문의 드립니다.
본 지표식을 적용하면 지표라인 4개 중에 2개만 표시되는데 공부가 부족하여
어떤 문제 때문인지 알 수 없는데 주석과 함께 알려주시면 감사하겠습니다.
Input:
N(70),
StartPrB(0.06),
StartPrS(0.06);
Vars:
Ind(0),
Plotgreen(0),
Plotred(0),
BuyZone1(0),
SellZone1(0),
CZone(0);
Ind = Average(PercentR(9),3);
Plotgreen = Mod(Index,2);
Plotred = Mod(Index,2);
BuyZone1=DZBuy(Ind, StartPrB, N);
SellZone1=DZSell(Ind, StartPrS, N);
CZone=DZBuy(Ind, 90, N);
Plot1(Ind,"Indicator");
If Plotgreen = 0 then
Plot2(BuyZone1,"Normal");
If Plotgreen = 1 then
Plot3(SellZone1,"Normal");
Plot4(CZone,"Center");
2013-12-09
181
글번호 70246