커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1635
글번호 230811
답변완료
식수정
var : B(0),S(0);
if MarketPosition <= 0 and CrossUp(C,DayOpen) Then
Buy("b");
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
B = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
B = LatestExitPrice(0);
ExitLong("bx",AtStop,B+PriceScale*50);
if MaxEntries < 7 Then
Buy("bb",AtLimit,B-PriceScale*50);
}
if MarketPosition >= 0 and CrossDown(C,DayOpen) Then
Sell("s");
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
S = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
S = LatestExitPrice(0);
ExitShort("sx",AtStop,S-PriceScale*50);
if MaxEntries < 7 Then
Sell("ss",AtLimit,S+PriceScale*50);
}
수정
안녕하세요
위식에서
1차 매수.매도 조건을 당일 일봉상 시작가로
해주세요
시가에서 상승시 매수
시가에서 하락시 매도
2022-11-01
1053
글번호 163439
아트정 님에 의해서 삭제되었습니다.
2022-11-01
0
글번호 163438
답변완료
문의 드립니다!
안녕하세요!
아래 수식은 일전(79325번)의 질문에 답변해주신 수식인데요
아주 유용하게 잘 사용하고있습니다
아래와같이 한번더 수정 부탁드립니다
1, 이 수식에 세로선이 발생토록 추가
* 세로선은 1)N틱전 발생으로 사용자지정이 가능토록 하여주시고 2)두께와 3)색상도 역시 사용자지정이 가능토록 부탁드립니다
* 세로선 발생대상은 Plot11부터 Plot18까지의 선이 캔들과 N틱전 만날 경우가 되겠습니다
2, 기존수식에 음성신호 발생부분이 있으나 이것이 미발생되는 경우가 더 많은것같습니다
따라서 이 기존부분은 삭제하고 위 1에서 수정된 수식에의거 새롭게 음성신호가 발생되도록 수정이 가능할런지요?
수식을 검증하는 단계에서 자꾸 새로운 기능이 필요하게되어 이렇게 매번 번거롭게 해드리게되네요
항상 상세한 설명과함께 성의껏 도와주심에 진심으로 감사드립니다!!!
---------------------------------------------------------------------------------------
data5에 대한 내용을 추가하셔야 합니다.
input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5);
var : cond11(false,data1),cond21(false,data1);
var : cond12(false,data1),cond22(false,data1);
var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1);
var : v1(0,Data1),v2(0,Data1),v3(0,Data1),v4(0,Data1);
v1 = data1(highD(0));
v2 = data1(LowD(0));
v3 = data5(highD(0));
v4 = data5(LowD(0));
plot1(v1,"data1고가");
plot2(v2,"data1저가");
plot3(v3,"data5고가");
plot4(v4,"data5저가");
cond11 = data5(highD(0)) >= data1(highD(0)-PriceScale*2);
cond21 = data1(lowD(0)) <= data5(lowD(0)+PriceScale*2);
if Cond11 == true and cond11[1] == false Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩꼬끼오.wav");
TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL1,White);
TL_SetSize(TL1,굵기1);
}
if Cond21 == true and cond21[1] == false then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩꼬끼오.wav");
TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL2,Yellow);
TL_SetSize(TL2,굵기2);
}
cond12 = data1(LowD(0)) <= data5(lowD(0)+PriceScale*2);
cond22 = data5(highD(0)) >= data1(highD(0)-PriceScale*2);
if Cond12 == true and cond12[1] == false Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩꼬끼오.wav");
TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL3,White);
TL_SetSize(TL3,굵기3);
}
if Cond22 == true and cond22[1] == false then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩꼬끼오.wav");
TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL4,Yellow);
TL_SetSize(TL4,굵기4);
}
var : d1month(0,Data1),d1nday(0,Data1),d1week(0,Data1),d1cond(False,Data1);
var : d1EX(false,Data1),d1HH(0,Data1),d1LL(0,Data1),d1OO(0,Data1),d1CC(0,Data1);
var : d1DD(0,Data1),d1HH1(0,Data1),d1LL1(0,Data1),d1OO1(0,Data1);
var : d1var5(0,Data1),d1var6(0,Data1);
d1month = data1(int(date/100)-int(date/10000)*100);
d1nday = data1(date - int(date/100)*100);
d1week = data1(DayOfWeek(date));
#선물만기
#if d1Month%3 == 0 and d1nday >= 8 and d1nday <= 14 and d1week == 4 then
if d1nday >= 8 and d1nday <= 14 and d1week == 4 then#옵션만기
d1EX = true;
Else
d1EX = false;
if d1EX == false and d1EX[1] == true Then
{
d1cond = true;
d1DD = data1(sDate);
d1HH = data1(H);
d1LL = data1(L);
d1OO = data1(O);
d1CC = data1(C);
d1HH1 = d1HH[1];
d1LL1 = d1LL[1];
d1OO1 = d1OO[1];
}
if d1Cond == true then
{
if data1(H) > d1HH Then
d1HH = data1(H);
if data1(L) < d1LL Then
d1LL = data2(L);
d1Var5 = d1LL+(d1HH-d1LL)*0.00;
d1Var6 = d1LL+(d1HH-d1LL)*1.00;
plot5(d1Var5);
plot6(d1Var6);
}
var : d5month(0,Data5),d5nday(0,Data5),d5week(0,Data5),d5cond(False,Data5);
var : d5EX(false,Data5),d5HH(0,Data5),d5LL(0,Data5),d5OO(0,Data5),d5CC(0,Data5);
var : d5DD(0,Data5),d5HH1(0,Data2),d5LL1(0,Data5),d5OO1(0,Data5);
var : d5var5(0,Data5),d5var6(0,Data5);
d5month = data5(int(date/100)-int(date/10000)*100);
d5nday = data5(date - int(date/100)*100);
d5week = data5(DayOfWeek(date));
#선물만기
#if d5Month%3 == 0 and d5nday >= 8 and d5nday <= 14 and d5week == 4 then
if d5nday >= 8 and d5nday <= 14 and d5week == 4 then#옵션만기
d5EX = true;
Else
d5EX = false;
if d5EX == false and d5EX[1] == true Then
{
d5cond = true;
d5DD = data5(sDate);
d5HH = data5(H);
d5LL = data5(L);
d5OO = data5(O);
d5CC = data5(C);
d5HH1 = d5HH[1];
d5LL1 = d5LL[1];
d5OO1 = d5OO[1];
}
if d5Cond == true then
{
if data5(H) > d5HH Then
d5HH = data5(H);
if data5(L) < d5LL Then
d5LL = data5(L);
d5Var5 = d5LL+(d5HH-d5LL)*0.00;
d5Var6 = d5LL+(d5HH-d5LL)*1.00;
plot7(d5Var5);
plot8(d5Var6);
}
if v1 == d1Var5 Then
value1 = v1;
if v2 == d1Var5 Then
value2 = v2;
if v3 == d5Var5 Then
value3 = v3;
if v4 == d5Var5 Then
value4 = v4;
if v1 == d1Var6 Then
value5 = v1;
if v2 == d1Var6 Then
value6 = v2;
if v3 == d5Var6 Then
value7 = v3;
if v4 == d5Var6 Then
value8 = v4;
if value1 > 0 Then
Plot11(value1);
if value2 > 0 Then
Plot12(value2);
if value3 > 0 Then
Plot13(value3);
if value4 > 0 Then
Plot14(value4);
if value5 > 0 Then
Plot15(value5);
if value6 > 0 Then
Plot16(value6);
if value7 > 0 Then
Plot17(value7);
if value8 > 0 Then
Plot18(value8);
2022-11-01
697
글번호 163436
러블리 님에 의해서 삭제되었습니다.
2022-11-01
1
글번호 163435
러블리 님에 의해서 삭제되었습니다.
2022-11-01
32
글번호 163434
답변완료
atstop으로 매수 매도시
1.백테스트상 분봉과 틱봉에 차이가 나는 이유가 있나요?
특정가격 도달시 매수라면 분봉 일봉 틱봉 관계 없이 같아야 하는게
맞는 것 같아서요.
2.
before=Weekhigh(1)-Weeklow(1);
eok=100*(Weekclose(1)-Weeklow(1))/before;
주봉상 IBS를 구하는 수식인데 eok<25로 하면 신호가 뜨지 않는데 혹시
수식에 잘못된 곳이 있는가요? week관련 사용자 함수는 등록 되어있고
잘 사용되어지고 있습니다.
항상 감사합니다.
2022-11-01
1007
글번호 163433
답변완료
수식요청
안녕하세요
수식 부탁드림니다
매수
볼밴 중심선을 양봉으로 돌파시
첫봉에서 진입
매도
볼밴 중심선을 음봉으로 하향시
첫봉에서 진입
2022-11-01
1050
글번호 163432
답변완료
data2, data3의 값 저장 수식 좀 부탁드립니다.
분할진입으로 하고 있습니다.
1차 진입: data1 차트에서 매수집입 시 data2, data3 의 가격을 각각 저장.
2차 진입: data1 차트에서 매수집입 시 data2, data3 의 가격을 각각 저장.
3차 진입: data1 차트에서 매수집입 시 data2, data3 의 가격을 각각 저장.
1차,2차,3차 진입시 data2, data3의 값을 덮어서 저장하지 않고
시점마다 각각 저장하는 수식 좀 부탁드리겠습니다.
2022-11-01
1214
글번호 163431
답변완료
감사합니다
1,,,, X표친 지표가 차트 위에 만 표시되게 부탁 드립니다
Input:length(10);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),
TL1(0),처리구분(""),T(0),TL2(0),TL3(0);
var : hh(0),ll(0),ii(0),diff(0),TL41(0),TL42(0),TL43(0),TL44(0),TL45(0),TL46(0);
Array:고점[10,5](0),저점[10,5](0);
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If var1 == sDate[sBar] and Var2 == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
}
var1 = sDate[sBar];
var2 = sTime[sBar];
#TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetExtRight(TL2,False);
TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL2,2);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If var1 == sDate[sBar] and Var2 == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL3);
}
var1 = sDate[sBar];
var2 = sTime[sBar];
#TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetExtRight(TL3,False);
TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]);
TL_SetColor(TL3,RED);
TL_SetSize(TL3,2);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
TL_SetSize(TL1,0);
TL_SetColor(TL1,Black);
TL_SetEnd(TL2,sdate,stime,고점[1,1]);
TL_SetEnd(TL3,sdate,stime,저점[1,1]);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,true);
####### 차트에만 표시되게 부탁드립니다
2022-10-31
1643
글번호 163430