커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3544
글번호 230811
답변완료
수식 부탁드립니다
var:HH(0),LL(0);
Var1 = (Highest(high,1)+Lowest(low,1))/2;
Var2 = (Highest(high,1)+Lowest(low,1))/2;
if CrossUp (Var1,var2) Then
{HH=H; LL=L;}
IF VAR1>VAR2 Then
{
IF H>HH THEN HH=H;
IF L<LL Then LL=L;
}
var3 = PriceScale * 1;
Plot2(ll + var3);
위에 수식을 a 라고 하면 위에 수식이 현재가 (c) 를 돌파 검색 수식
부탁드립니다 분봉으로 검색 수식 부탁드립니다
그리고 이수식을 a 라고 했을때 현재가 (c) 를 돌파하면 매수신호 나오게
시스템 수식도 부탁드립니다 감사합니다
2021-01-17
994
글번호 145516
답변완료
시스템 수식 좀 요청 드립니다.
* 많은 도움에 고맙 습니다.
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if MarketPosition == 0 and crossup(var1,var2) then buy("SS1",OnClose,DEF,1);
if MarketPosition == 0 and crossdown(var1,var2) then sell("DD1",OnClose,DEF,1);
if 추가매수1 ;
if 추가매수2 ;
if 추가매수3 ;
상기 로직으로 진입 하였을때
* <요청 사항>
- 계약수가 4개 이상 이고 손실이 20포인트 이상 났다가
손실이 5포인트 까지 올라오면 청산 수식 좀 부탁 드립니다.
즉 매수로 1계약 진입 하여 2,3,4까지 추가매수 하여 총4계약 있는데
손실이 -20포인트 넘었다가
손실이 복구 되어 손실이 -5포인트 까지 줄어들면 매수 손실 청산
매도로 1계약 진입 하여 2,3,4까지 추가매수 하여 총4계약 있는데
손실이 20포인트 넘었다가
손실이 복구 되어 손실이 5포인트 까지 줄어들면 매도 손실 청산
* 고맙 습니다. 수고하십시요.
2021-01-18
938
글번호 145515
답변완료
문의합니다
안녕하세요
일봉에서 피라미딩 누적 매수를 합니다
첨부된 사진처럼 매일 연속해서 매수되지 않고
한 주일에 한번씩만 매수가 누적되도록 진입 회수를 조절을 하고싶습니다
부탁드립니다
2021-01-17
1104
글번호 145514
답변완료
수식 문의드립니다.
if NextBarSdate == sdate then
{
if MarketPosition == 0 and DayHigh < dayopen+(DayHigh(1)-DayLow(1))*0.4 Then
buy("b",AtStop,dayopen+(DayHigh(1)-DayLow(1))*0.4);
}
if MarketPosition == 1 and NextBarSdate != sdate Then
ExitLong("bx",AtMarket);
변동성돌파 식 사용 중입니다
매수 매도 시간이 1분봉, 5분봉, 10틱 봉으로 바꿀때마다 달라지는것 같습니다.
예를들어 시가 매도면 1분봉일때는 9시1분, 5분봉일때는 9시5분으로 설정됩니다..
신호가 나왔을때 즉시 매수 매도가 일어나게 할 수 있을까요??
그리고 셋째줄의 DayHigh < dayopen+(DayHigh(1)-DayLow(1))*0.4 은 어떤의미로 들어간건지 궁금합니다. dayhigh는 하루중 가장 높은 가격인데 조건 가격이 그보다 더 높아진다는게 이해가 잘 안갑니다.
2021-01-17
1073
글번호 145513
답변완료
ntime
ntime 229680은 시간으로 몇시인지요?
2021-01-17
1248
글번호 145512
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2021-01-17
8
글번호 145511
답변완료
시스템 자동매매 문의드립니다.
전략실행차트를 분활하고 종목을 선정해서 시스템을 자동매매로
실행되도록 설정하였습니다.
근데 하루가 지나서 새로 로그인을 하면 적용한 시스템이 `시스템 시험적용`으로
바뀝니다. 다시 일일이 자동매매로 정정해줘야하는 불편이 있습니다.
1. 위 방법대로 하는게 맞는건가요?
2. 설정이 안바뀌게 하는방법
3. 좀더 편하게 설정하는 방법 있으면 가르쳐주세요.
감사드립니다.^^
2021-01-17
1280
글번호 145510
답변완료
수치표시 Text를 왼쪽에서 오른쪽으로 좀 변경 부탁드립니다.
Input:length(10),ClsPxUseBit(0),inRange(10),waveLineSize(1),displPRC(1),선색(MAGENTA),선두께(1);
Var:j(0),jj(0),jjj(0),HH(0),LL(0),lastHi(0),lastLo(0),lastVertex(""),procBit(""),
TL1(0),TL2(0);
Array:PK[50,4](0),VL[50,4](0), // 1:Price, 2:BarNumber, 3:Date, 4:Time
basePK[5](0),baseVL[5](0); // 0:N/A, 1:Price, 2:BarNumber, 3:Date, 4:Time
//==========================================
HH = IFF(ClsPxUseBit == 1,C,H);
LL = IFF(ClsPxUseBit == 1,C,L);
If CurrentBar == 1 Then Begin
PK[1,1] = HH;
VL[1,1] = LL;
End ;
Condition1 = Highest(HH,length) == HH and lastHi <> HH;
Condition2 = Lowest (LL,length) == LL and lastLo <> LL;
procBit = "";
If Condition1 and Condition2 Then Begin
If lastVertex == "Valley" Then procBit = "Peak" ;
Else procBit = "Valley";
End
Else If Condition1 Then procBit = "Peak" ;
Else If Condition2 Then procBit = "Valley";
//==========================================
If procBit == "Peak" Then Begin
lastHi = HH;
If lastVertex == "Valley" Then Begin
For j = 50 DownTo 2 Begin
For jj = 1 To 4 Begin
PK[j,jj] = PK[j-1,jj];
End ;
End ;
PK[1,1] = HH;
PK[1,2] = INDEX;
PK[1,3] = Date;
PK[1,4] = Time;
TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]);
TL_SetSize(TL1,waveLineSize);
TL_SetColor(TL1,WHITE);
basePK[1] = 0;
For j = 1 To inRange Begin
If basePK[1] < PK[j,1] Then Begin
For jjj = 1 To 4 Begin
basePK[jjj] = PK[j,jjj];
End ;
End ;
End ;
End
Else If PK[1,1] < HH Then Begin
PK[1,1] = HH;
PK[1,2] = INDEX;
PK[1,3] = Date;
PK[1,4] = Time;
TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]);
End ;
lastVertex = "Peak";
End ;
//==========================================
If procBit == "Valley" Then Begin
lastLo = LL;
If lastVertex == "Peak" then Begin
For j = 50 DownTo 2 Begin
For jj = 1 To 4 Begin
VL[j,jj] = VL[j-1,jj];
End ;
End ;
VL[1,1] = LL;
VL[1,2] = INDEX;
VL[1,3] = Date;
VL[1,4] = Time;
TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]);
TL_SetSize(TL1,waveLineSize);
TL_SetColor(TL1,WHITE);
baseVL[1] = 0;
For j = 1 To inRange Begin
If baseVL[1] > VL[j,1] or baseVL[1] == 0 Then Begin
For jjj = 1 To 4 Begin
baseVL[jjj] = VL[j,jjj];
End ;
End ;
End ;
End
Else If VL[1,1] > LL then Begin
VL[1,1] = LL;
VL[1,2] = INDEX;
VL[1,3] = Date;
VL[1,4] = Time;
TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]);
End ;
lastVertex = "Valley";
End ;
//==========================================
Array: fr[7,4](0); // 1:Rate, 2:Price, 3:Trendline ID, 4:Text ID
If CurrentBar == 1 Then Begin
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
End ;
If basePK[1] > 0 and baseVL[1] > 0 Then Begin
If baseVL[2][1] <> baseVL[2] or basePK[2][1] <> basePK[2] Then Begin
If TL2 > 0 Then TL_Delete(TL2);
TL2 = TL_New(baseVL[3],baseVL[4],baseVL[1],basePK[3],basePK[4],basePK[1]);
TL_SetSize(TL2,4);
TL_SetColor(TL2,RGB(253,227,2));
If baseVL[2] < basePK[2] Then Begin
for j = 1 to 7 Begin
If fr[j,3] > 0 Then TL_Delete(fr[j,3]);
fr[j,2] = basePK[1] - ((basePK[1] - baseVL[1]) * fr[j,1]);
fr[j,3] = TL_New(baseVL[3],baseVL[4],fr[j,2],Date,Time,fr[j,2]);
TL_SetColor(fr[j,3],선색);
TL_SetSize(fr[j,3],선두께);
If displPRC == 1 Then Begin
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(baseVL[3],baseVL[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 1, 2);
Text_SetColor(fr[j,4],black);
End ;
End ;
End
Else If basePK[2] < baseVL[2] Then Begin
for j = 1 to 7 Begin
If fr[j,3] > 0 Then TL_Delete(fr[j,3]);
fr[j,2] = baseVL[1] + ((basePK[1] - baseVL[1]) * fr[j,1]);
fr[j,3] = TL_New(basePK[3],basePK[4],fr[j,2],Date,Time,fr[j,2]);
TL_SetColor(fr[j,3],선색);
TL_SetSize(fr[j,3],선두께);
If displPRC == 1 Then Begin
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(basePK[3],basePK[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 1, 2);
Text_SetColor(fr[j,4],black);
End ;
End ;
End ;
End
Else Begin
for j = 1 to 7 Begin
TL_SetEnd(fr[j,3],Date,Time,fr[j,2]);
End ;
End ;
End ;
2021-01-17
1353
글번호 145509
답변완료
Data1과 Data2사용시
data1과 data2 모두 10분봉 사용
data1에서 날짜가 바뀌면 data1과 data2를 이용, 새로이 지표를 1회만 계산하고자 함
문제)
data1은 15시 20분 데이터(전일자 마지막 데이터)가 없고, 익일 시가 데이터가 있음
data2는 15시 20분 데이터(전일자 마지막 데이터)가 있고, 익일 시가 데이터가 있음
이 경우 data1은 data2에 비교해서 당일자 마지막 봉이 없어서 (비어있어서),
위의 경우에 날짜가 바뀌는 것을 1회가 아니라 2회로 인식해서,
지표 계산을 2회에 걸쳐 함.
이 경우 1회만 지표를 계산하게 하려고 합니다. 어찌해야 할까요.
2021-01-17
1266
글번호 145508