커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6295
글번호 230811
답변완료
문의드립니다
안녕하세요 항상고맙습니다
다름이 아니라 시간에 따라 옵션진입조건을 다르게 하고싶은데 어떻게 해야 될지 몰라서 문의드립니다
일단 변수에 시간을 선언했구요
var firstEntryStartTime = 90000; // 9시 진입 시작 시간
var firstEntryEndTime = 93000; // 9시 30분까지 진입 가능 시간
var stopTime = 93000; // 9시 30분 이후 포지션 스톱 시간
var secondEntryStartTime = 110000; // 11시 진입 시작 시간
var secondEntryEndTime = 130000; // 1시까지 진입 가능 시간
이렇게하고나서
function Main_OnU*dateMarket(sItemCode, lU*dateID)
{
var d = new Date();
var HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds();
if (dayOfWeek == "수")
{
// // 첫 번째 진입 조건: 9시 ~ 9시 30분 사이에만 진입 허용
if (HHMMSS >= firstEntryStartTime && HHMMSS <= firstEntryEndTime)
{
옵션진입체크();
}
// 두 번째 진입 조건: 11시 ~ 1시 사이에만 진입 허용
else if (HHMMSS >= secondEntryStartTime && HHMMSS <= secondEntryEndTime)
{
옵션진입체크();
}
// 9시 30분 이후 첫 번째 진입 종료
else if (HHMMSS > stopTime && T != 0)
{
Main.MessageList("9시 30분 이후 포지션 스톱");
Main_OnStop(); // 포지션 스톱 처리
이렇게 매수조건에 따로 함수로 불러오는게 맞는건지
아니면 매수진입식에
// 콜 매수 조건
if (MarketData1.current >= MarketData1.open && 외인순매수 > 500 && HHMMSS >= firstEntryStartTime && HHMMSS <= firstEntryEndTime ) {
CallCode = "";
CallPrice = 0;
for (var i = -Option1.lowersATM; i <= Option1.uppersATM; i++) {
var optionPrice = Option1.GetCurrent(0, i);
if (optionPrice >= 0.05 && optionPrice <= 0.29 && (CallPrice === 0 || optionPrice < CallPrice)) {
CallPrice = optionPrice;
CallCode = Option1.GetATMCallRecent(i);
}
}
if (CallPrice > 0) {
CBEID = Account1.OrderBuy(CallCode, 옵션수량, Option1.GetCurrent(CallCode), 0);
Main.MessageList("콜 옵션 매수 진입1");
BuyPrice = CallPrice;
if (T >= 0 && 진입 == true) {
// 콜 옵션 매수 조건: 현재가가 시가 기준 위 10틱 이내에서 캔들의 저가가 존재할 때
if (MarketData1.current > MarketData1.open
&& MarketData1.current <= MarketData1.open + MarketData1.GetTickSize() * 10
&& 외인순매수 > 500
&& HHMMSS >= secondEntryStartTime
&& HHMMSS <= secondEntryEndTime) {
각각 이렇게 넣는게 맞는건지 매수진입조건에 넣으면 저위에 따로 함수부른건 필요없을것 같은데 그럼 지워도 되는건지 여쭤봅니다
2024-11-19
762
글번호 185433
유경완 님에 의해서 삭제되었습니다.
2024-11-19
54
글번호 185432
답변완료
가로 수평선의 연장(과거 기록도 보존)
1-1 위 위 사진은 붉은 기둥위에 해당 캔들에 붉은색 박스만 생겼음(과거에) 이 박스안에 캔들들의 고가와 저가 선을 수평으로 다음 붉은 캔들이 있을 때까지 연장해달라는 의미임
1-2 바로 위 사진은 현재 진행형 수평선으로 가장 최신 수평선은 이렇게 나타난다(그런데 과거는 단순히 박스형태로만 나타난다)
2-1. 현재이 수평선만 표기되어 있고 과거에서는 붉은 기둥 부분의 캔들들만 박스처럼 처리 되었는데 과거도 수평선 2개가 유지 되어 새로운 붉은 기둥캔들이 생겨 대체 될 때까지 유지 되도록 부탁합니다.
2-2. 그리고 수평선의 색깔 및 굵기 그리고 두 고저 수평선 사이에 넣을 색도 고를 수 있게 변수로 처리해주시면 감사합니다.
아래는 관련 수식입니다.
var : box(0),TL1(0),TL2(0);
Input: ADXPeriod(14), ADXThreshold(10); // 사용자 입력 변수
Condition1 = ADX(ADXPeriod) > ADXThreshold;
if Condition1 == False Then
{
if Condition1[1] == true Then
{
var1 = sDate;
var2 = sTime;
var3 = h;
var4 = l;
var5 = 0;
box = Box_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var4);
Box_SetColor(box,Cyan);
Box_SetFill(box,true);
TL_Delete(TL1);
TL_Delete(TL2);
TL1 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3);
TL2 = TL_New(sDate,sTime,var4,NextBarSdate,NextBarStime,var4);
TL_SetColor(TL1,Cyan);
TL_SetColor(TL2,Cyan);
TL_SetExtRight(TL1,true);
TL_SetExtRight(TL2,true);
}
Else
{
if var1 > 0 Then
var5 = var5+1;
if var3 > 0 and h > var3 Then
var3 = h;
if var4 > 0 and l < var4 Then
var4 = l;
Box_SetBegin(box,var1,var2,var3);
Box_SetEnd(box,sDate,sTime,var4);
TL_SetBegin(TL1,var1,var2,var3);
TL_SetBegin(TL2,var1,var2,var4);
TL_SetEnd(TL1,sDate,sTime,var3);
TL_SetEnd(TL2,sDate,sTime,var4);
}
}
Else
var5 = 0;
Plot1(var5,"봉수",Red);
2024-11-19
677
글번호 185431
답변완료
재문의 드립니다.
var :a(0),b(0),x(0),y(0),z(False);
a=ema(c,20);
b=iff(a>a[1],a,0);
if b > 0 Then
x = L;
y=lowest(x,1);
z=CrossUp(c,y);
if z == true Then
var1 = L;
if var1 > 0 and CrossUp(C,var1) Then
Find(1);
위 if문에서 아래 if 문으로 수정 부탁드리겠습니다.
1. CrossUp 은 단순이평 5일선과 var1 이 크로스업 입니다.
2. C(1) > var1 and
C(1) < C and
1봉전 종가 대비 0봉이 3%이상 and
20봉중 최고가 and
var1 과 0봉의종가 가 10% 미만 . find
( 예 , var1이 이평선으로 생각하고 var1선에서 10% 이상 상승 하지 않은 종목을
검색 하고자 합니다.)
1.2 번 다시한번 부탁 드립니다..
종목 검색식과 지표 화살표 나오게 다시 한번 부탁 드리겠습니다.
------------------------------------------------------
항상 감사드립니다..수고 하세요
2024-11-19
709
글번호 185426
답변완료
문의드립니다.
var1 = var1 + 1;
Var2 = std(C,var1);
Plot1(Var2);
이렇게 전 구간 표준편차를 구해볼려고 했는데,
맨앞 1000봉 만 계산되고 그 이후로는 그래프가 끊어지던데 왜 그런건가요??
2024-11-19
764
글번호 185423
답변완료
문의드립니다
틱차트에서
최근 1분간의 누적거래대금 지표를
나타내고 싶습니다
예)
삼성전자 1틱차트 에서
90001 에서 90101 까지 누적거래대금
90002 에서 90201 까지 누적거래대금
....
2024-11-19
683
글번호 185416
답변완료
문의 드립니다
안녕하세요
트레이딩 코드 전환 부탁드립니다
lengthGroupTitle = "LENGTH LEFT / RIGHT"
colorGroupTitle = "Text Color / Label Color"
leftLenH = input.int(title="Pivot High", defval=10, minval=1, inline="Pivot High", group=lengthGroupTitle)
rightLenH = input.int(title="/", defval=10, minval=1, inline="Pivot High", group=lengthGroupTitle)
textColorH = input(title="Pivot High", defval=color.black, inline="Pivot High", group=colorGroupTitle)
labelColorH = input(title="", defval=color.white, inline="Pivot High", group=colorGroupTitle)
leftLenL = input.int(title="Pivot Low", defval=10, minval=1, inline="Pivot Low", group=lengthGroupTitle)
rightLenL = input.int(title="/", defval=10, minval=1, inline="Pivot Low", group=lengthGroupTitle)
textColorL = input(title="Pivot Low", defval=color.black, inline="Pivot Low", group=colorGroupTitle)
labelColorL = input(title="", defval=color.white, inline="Pivot Low", group=colorGroupTitle)
ph = ta.pivothigh(leftLenH, rightLenH)
pl = ta.pivotlow(leftLenL, rightLenL)
drawLabel(_offset, _pivot, _style, _color, _textColor) =>
if not na(_pivot)
label.new(bar_index[_offset], _pivot, str.tostring(_pivot, format.mintick), style=_style, color=_color, textcolor=_textColor)
drawLabel(rightLenH, ph, label.style_label_down, labelColorH, textColorH)
drawLabel(rightLenL, pl, label.style_label_up, labelColorL, textColorL)
감사합니다
2024-11-19
686
글번호 185415
답변완료
문의 드립니다.
수식1
PI = 3.14159;
M = avg (C, period);
ST = Stdev (C, period);
e =2.178;
분모1 = sqrt(2* Pi * ST * ST);
분모2 = 2*ST * ST;
분자2 = -(C-M) * (C-M);
Y = 1/분모1 * pow(e, 분자2/분모2)*100;
S = eavg(Y,signal);
ValueWhen(1,S<S(1) && S(1) > S(2) ,C(1))
수식2
PI = 3.14159;
M = avg (C, period);
ST = Stdev (C, period);
e =2.178;
분모1 = sqrt(2* Pi * ST * ST);
분모2 = 2*ST * ST;
분자2 = -(C-M) * (C-M);
Y = 1/분모1 * pow(e, 분자2/분모2)*100;
D = dema(Y,signal);
ValueWhen(1,D<D(1) && D(1) > D(2) ,C(1))
period 10
signal 6
키움수식인데 예스로 좀 바꿔주세요.
2024-11-19
676
글번호 185409
야바바 님에 의해서 삭제되었습니다.
2024-11-20
31
글번호 185408