커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4408
글번호 230811
답변완료
볼린저밴드 수식
볼린저밴드에서 상단을 벗어난 상태에서 전봉이 양봉일때 그 양봉의 고가를 갱신 후
윗꼬리 단 음봉으로 마무리하는 봉 매도 신호
하단을 벗어난 상태에서 전봉이 음봉일때 그 음봉의 저가를 갱신후
아래꼬리 단 양봉으로 마무리하는 봉 매수 신호
부탁드리립니다.
2018-07-06
284
글번호 120351
답변완료
수식문의
안녕하세요
1.
하기 수식에서 몇가지 전략을 추가하고 싶은데,
적용이 되지 않고 있습니다. 검토 부탁드립니다.
input : Period(20),dv(2);
input : ADXP(14);
var : ADXv(0,data1),DP(0,data1),DM(0,data1);
var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1);
var : BandB1(0,data1),HH1(0,data1),LL1(0,data1);
var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2);
var : T(0,data1);
BBmd1 = data1(ma(C,Period));
BBdn1 = data1(BollBandDown(Period,Dv));
BBUp1 = data1(BollBandUp(Period,Dv));
BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100);
BBmd2 = data2(ma(C,Period));
BBdn2 = data2(BollBandDown(Period,Dv));
BBUp2 = data2(BollBandUp(Period,Dv));
ADXv = data1(ADX(ADXP));
DP = data1(DiPlus(ADXP));
DM = data1(DiMinus(ADXP));
if crossup(BandB1,90) Then
HH1 = BandB1;
if BandB1 > 90 and BandB1 > HH1 Then
HH1 = BandB1;
if CrossDown(BandB1,10) Then
LL1 = BandB1;
if BandB1 < 10 and BandB1 < LL1 Then
LL1 = BandB1;
if CrossDown(BandB1,90) Then
{
T = 0;
if HH1 > 100 Then
T = -1;
if BBup2 < BBup1 then
T = -2;
}
if CrossUp(BandB1,10) Then
{
T = 0;
if HH1 < 0 Then
T = 1;
if BBdn2 > BBdn1 then
T = 2;
}
if T == -1 and BBup2 < BBup1 then
T = -2;
if T == 1 and BBdn2 > BBdn1 then
T = 2;
if T == -2 and T != T[1] and DP < ADXv Then
{
T = 0;
sell("s4");
}
if T == 2 and T != T[1] and DM < ADXv Then
{
T = 0;
buy("b4");
}
if MarketPosition == 1 and CrossDown(C,bbdn1) Then
exitlong();
if MarketPosition == -1 and CrossUp(C,bbup1) Then
ExitShort();
상기 수식에 하기 전략을 추가하고 싶습니다.
var1 = ADX(P);
if H >= BBup and BBup >=L Then
Condition1 = true;
Else
Condition1 = false;
if H >= BBdn and BBdn >=L Then
Condition2 = true;
Else
Condition2 = false;
if (Condition1 == true or Condition1[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C < O and C[1] > O[1] Then
sell("s3");
if (Condition2 == true or Condition2[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C > O and C[1] < O[1] Then
buy("b3");
var1 = ADX(P);
if var1 >= var1[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup and BBup >= L Then
{ buy("b1"); }
if var1 >= var1[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdown and BBdown >= L Then
{ sell("s1"); }
value1 = MACD(short, long);
value2 = ema(value1, Period);
# 매수/매도청산
If CrossUP(value1, value2) and C <= bbmd-PriceScale*10 Then
{
buy("b2");
}
# 매도/매수청산
If CrossDown(value1, value2) and C >= bbmd+PriceScale*10 Then
{
sell("s2");
}
감사합니다.
2018-07-08
176
글번호 120350
답변완료
문의합니다
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 1 )) and A 수식 then
buy("A 매수");
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 2)) and B 수식 Then
buy("B 매수");
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 3)) and C 수식 Then
sell("C 매도");
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 4)) and D 수식 Then
sell("D 매도");
청산식
#청산완료
if TotalTrades > TotalTrades[1] then
{
var1 = 0;
var2 = 0;
if IsEntryName("A 매수",1) == true Then
{
if PositionProfit(1) > 0 then
var1 == 2;
else
var1 == 4;
}
if IsEntryName("C 매도",1) == true then
{
if PositionProfit(1) > 0 Then
var1 == 4;
Else
var1 == 2;
}
if IsEntryName("B 매수",1) == true then
{
if PositionProfit(1) > 0 Then
{
var1 == 1;
var1 == 3;
}
Else
{
var1 == 1;
var1 == 3;
}
}
if IsEntryName("D 매도",1) == true then
{
if PositionProfit(1) > 0 Then
{
var1 == 1;
var1 == 3;
}
Else
{
var1 == 1;
var1 == 3;
}
}
}
1.
위의 식은
A 매수해서 이익이나면 B 매수로 손실이나면 D 매도로 진입하고
C 매도해서 이익이나면 D 매도료 손실이나면 B 매수로 진입하고
C 매수해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하고
D 매도해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하라라고
만든 함수인데 원하는데로 신호가 안나오네요
수정 부탁드립니다
2.
5 이평선과 10 이평선이 골드가 났을때 그때의 종가를 기준으로 이 종가를 201이평선이 돌파하면 5이평선과 10이평선이 골드가 났을때의 종가로 매수하라라는 함수를 알고 싶습니다
감사합니다
늘 승리하세요
2018-07-09
184
글번호 120349
답변완료
중심선 질문좀 드릴게요
현재 정배열인 종목이 120일의 고가와 저가의 중심선을 터치했을때 매수 함수좀 부탁드릴게요^^
2018-07-06
211
글번호 120347
답변완료
OBV 수식 부탁드립니다
OBV에서 시그널선이 추가되어 상승돌파시 매수 신호,하락 돌파시 매도 신호를
구현하고 싶습니다.
수식 부탁드립니다.
2018-07-06
224
글번호 120342
답변완료
20선 기준 상승 하락 구간 설정
안녕하세요?
20선을 기준으로 현재봉(3분)의 돌파와 이탈을 기점으로(수직선으로) 상승구간과 하락구간을 색상으로 나타낸는 방법을 문의드립니다.
감사합니다.
2018-07-06
199
글번호 120341
답변완료
수정 부탁드립니다.
아래 수식을 작성해주셔서 고맙습니다.
차트 우측 끝에 아래 선들이 위치한 가격도 표시되게 해주시면 고맙겠습니다.
------------------------------------
고정 숫자이므로 추세선으로 출력하시면 됩니다.
input : upLine1(7162.20),upLine2(7157.25),upLine3(7089.38),upLine4(7076.82),upLine5(7066.20),upLine6(7060.27),upLine7(6961.80),upLine8(6931.92);
var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0),tl8(0);
if index == 1 Then
{
tl1 = TL_New(sdate[1],stime[1],upline1,sdate,stime,upline1);
TL_SetExtRight(tl1,true);
tl2 = TL_New(sdate[1],stime[1],upline2,sdate,stime,upline2);
TL_SetExtRight(tl2,true);
tl3 = TL_New(sdate[1],stime[1],upline3,sdate,stime,upline3);
TL_SetExtRight(tl3,true);
tl4 = TL_New(sdate[1],stime[1],upline4,sdate,stime,upline4);
TL_SetExtRight(tl4,true);
tl5 = TL_New(sdate[1],stime[1],upline5,sdate,stime,upline5);
TL_SetExtRight(tl5,true);
tl6 = TL_New(sdate[1],stime[1],upline6,sdate,stime,upline6);
TL_SetExtRight(tl6,true);
tl7 = TL_New(sdate[1],stime[1],upline7,sdate,stime,upline7);
TL_SetExtRight(tl7,true);
tl8 = TL_New(sdate[1],stime[1],upline8,sdate,stime,upline8);
TL_SetExtRight(tl8,true);
}
즐거운 하루되세요
> 천왕봉 님이 쓴 글입니다.
> 제목 : 선 긋는 방법
> input : upLine1(7162.20),upLine2(7157.25),upLine3(7089.38),upLine4(7076.82),upLine5(7066.20),upLine6(7060.27),upLine7(6961.80),upLine8(6931.92);
plot1(upline1,"up1",BLACK);
plot2(upline2,"up2",BLACK);
plot3(upline3,"up3",BLACK);
plot4(upline4,"up4",BLACK);
plot5(upline5,"up5",BLACK);
plot6(upline6,"up6",BLACK);
plot7(upline7,"up7",BLACK);
plot8(upline8,"up8",BLACK);
위 괄호안의 가격이(예:7162.20) 첨부 그림B 같이 차트 우측 끝까지 선리 그려지고 가격이 표시되게 수정좀 해주세요.
일목균형표 때문에 선이 차트 우측 끝까지 표시가 안되는데 이것을 차트 우측 끝까지 표시되게 하려고 합니다.
2018-07-06
176
글번호 120338
답변완료
문의 드립니다.
질문 번호 58495에 관한 것인데
죄송하지만 600분봉 고가와 저가의 누적이평을
10분봉에 나타내고 싶으며
특정한 일부터 현재까지의 일봉의 고가와 저가의
누적이평을 분봉에 나타내고 싶습니다.
감사합니다.
2018-07-06
176
글번호 120337
답변완료
문의합니다
var : Buyentry(false);
BW_SEVEN = value;
if BW_SEVEN >= 7 and BW_SEVEN[1] < 7 Then
{
T1 = 2;
T2 = T1[1];
T3 = T2[1];
}
if BW_SEVEN < 7 and BW_SEVEN[1] == 7 Then
{
T1 = 1;
T2 = T1[1];
T3 = T2[1];
}
if BW_SEVEN <= -7 and BW_SEVEN[1] > -7 Then
{
T1 = -2;
T2 = T1[1];
T3 = T2[1];
}
if BW_SEVEN > -7 and BW_SEVEN[1] == -7 Then
{
T1 = -1;
T2 = T1[1];
T3 = T2[1];
}
var1 = ma(c,5);
var2 = ma(C,20);
Condition1 = T1 != T1[1] and T1 == 2 and T2 == 1 and T3 == 2 and CrossUp(var1,var2);
if T != T1[1] and T1 == 2 and T2 == -1 Then
Buyentry = true;
if MarketPosition <= 0 and C > O and Condition1[1] == true Then
buy();
if MarketPosition == 1 then
{
BuyEntry = false;
}
1.
시스템 정말 많은 도움이 됐습니다
그런데 한가지 잘못질문한것이 있는듯해서요
바이너리가 2번째에만 매매를 하고 싶습니다
매번이 아니라....
다시말해 바이너리가 7을 찍고 -7을 찍지 않고 다시올라가서 7을 찍으면
그때부터 매수(5이평선이 20이평선을 골드크로스)를 하고 다시 7이하로 내려오면 이후에는 매매하지 않고
-7을 찍고 다시 7을 찍고 다시한번 7을 내려가고 -7을 찍지 않고 다시 7을 올라오면 그때 매수(5이평선이 20이평선을 골드크로스)를 하고 제가 말주변이 없어 이렇게 표현을 하네요....
그림으로 첨부했습니다
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 1 )) and A 수식 then
buy("A 매수");
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 2)) and B 수식 Then
buy("B 매수");
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 3)) and C 수식 Then
sell("C 매도");
if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 4)) and D 수식 Then
sell("D 매도");
청산식
#청산완료
if TotalTrades > TotalTrades[1] then
{
var1 = 0;
var2 = 0;
if IsEntryName("A 매수",1) == true Then
{
if PositionProfit(1) > 0 then
var1 == 2;
else
var1 == 4;
}
if IsEntryName("C 매도",1) == true then
{
if PositionProfit(1) > 0 Then
var1 == 4;
Else
var1 == 2;
}
if IsEntryName("B 매수",1) == true then
{
if PositionProfit(1) > 0 Then
{
var1 == 1;
var1 == 3;
}
Else
{
var1 == 1;
var1 == 3;
}
}
if IsEntryName("D 매도",1) == true then
{
if PositionProfit(1) > 0 Then
{
var1 == 1;
var1 == 3;
}
Else
{
var1 == 1;
var1 == 3;
}
}
}
2.위의 식은
A 매수해서 이익이나면 B 매수로 손실이나면 D 매도로 진입하고
C 매도해서 이익이나면 D 매도료 손실이나면 B 매수로 진입하고
C 매수해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하고
D 매도해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하라라고
만든 함수인데 원하는데로 신호가 안나오네요
수정 부탁드립니다
감사합니다
늘 승리하세요
2018-07-06
208
글번호 120336