커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7717
글번호 230811
답변완료
알려주세요
아래 설명을 시스템식으로 알려주세요 ..... 감솨.
안녕하세요
예스스탁입니다.
최대수익대비하락은 지정된 수익이상이 발생하고
최고 수익에서 일정 pip하락하면 청산하게 됩니다.
20핍수익후 15핍이라고 설정하였으면
20핍이상 수익이 발생하고 30핍까지 수익이 올라갔다면
30핍에서 15핍 떨어지면 청산합니다.
2011-06-10
687
글번호 39638
답변완료
전거래의 최저점 구하는 방법
안녕하세요.
매도 재진입을 전저점을 이용해서 진입하려고 합니다.
전 거래의 진입시부터 청산시점까지 최저점을 구하려면 어떻게 해야하나요?
Lowest_Price = Lowest(L, BarsSinceEntry(1));
이렇게 하였더니, 저점을 청산이후에도 계속 추적하게 되네요.
위식처럼 했더니, 전저점보다 1포인트정도 하락하면 진입시키려고 하는데, 가격의 저점이 계속해서 1포인트이내로 야금야금 만들어지니까, 3포인트 넘게 하락해도 재진입이 안나오는 경우가 있더라구요.
전거래의 진입부터 청산까지만의 최저점을 구하려면 어떻게 해야하는지 알려주세요.
부탁드립니다.
감사합니다.
2011-06-10
733
글번호 39633
답변완료
시스템식 어떤것이 잘못되었는지한번 봐주세요..
input : P1(5),PL1(5),P2(2);
Input : shortPeriod(36), longPeriod(78), Period(27);
value1 = ema(C,shortPeriod);
value2 = ema(C,longPeriod);
MACD_OSC = (value1-value2)-ema(value1-value2,Period);
if stime >= 092000 and stime < 143000 Then{
if MACD_OSC-MACD_OSC(1) > 0
and abs(ma(C,120)-ma(C,60)) <= abs(ma(C(1),120)-ma(C(1),60))
and ma(C,60)-ma(C(1),60) > -0.003
and Crossup(C,ma(C,20)) then
buy("b",AtLimit,C+PriceScale);}
SetStopLoss(PriceScale*PL1,PointStop);
2011-06-10
766
글번호 39632
답변완료
다시 문의 드립니다.
안녕하세요
예스스탁입니다.
if index == 0 Then{
var1= L;
value1 = index;
plot1(L);
}
if L < var1 then{
var1 = L;
value1 = index;
plot1(L);
}
if index > value1 and CrossDown(ma(C,20),ma(C,100)) Then{
var2 = C;
value2 = index;
value3 = abs(var1-var2)/abs(value1-value2);
value4 = 0;
plot1(C);
}
value4 = value4+1;
if value1 < value2 and value1 > 0 then{
plot1(var2+value3*value4);
}
즐거운 하루되세요
///////////////////////////////////
위와 같은 지표로 적용해보면 첨부파일 1처럼 나오게됩니다.
조금더 수정하여서 하나의선으로 표현하지않고
아래그림처럼 여러개의선으로 부채꼴모양의 선이나오게 적용해보려면 어떻게 해야하나요?
2011-06-10
767
글번호 39630
둥이선생 님에 의해서 삭제되었습니다.
2011-06-10
0
글번호 39627
둥이선생 님에 의해서 삭제되었습니다.
2011-06-10
1
글번호 39624
답변완료
연속된 profittarget
수고하십니다.
n회 연속된 setstopprofittarget후에는 m봉후에 진입하라는 시스템식이 궁금합니다. 꼭 연속된 setstopprofittarget이어야 합니다.
그리고
isexitname("stopprofittarget",1)이면 이것이 현재봉에 청산된 것을 의미하는지
아니면 바로전에 setstopprofittarget으로 청산된 것을 의미하는지도 궁금합니다..
감사합니다.
2011-06-10
589
글번호 39623
답변완료
수식문의
지난번 아래 문의사항에 대하여 아래와 같이 작성 하여 주셨는데 전혀
수식이적용이 안되는데 어디에 오류가 있는지 수정부탁 드립니다
매수진입 이후에
스토케스틱(5,3,3)값 80 아래에서 k가 d를 데드크로스 하면 매수청산 하는
수식부탁드립니다
(단,이전데드크로스 시점의 가격보다 최근데드크로스시점의 가격이 적을것)
var1 = StochasticsK(5,3);
var2 = StochasticsD(5,3,3);
if CrossDown(var1,var2) Then{
value1 = var1;
value2 = value1[1];
}
if MarketPosition == 1 and CrossDown(var1,var2) and var1 < 80 and var1 < value2 Then
exitlong();
2011-06-10
600
글번호 39622
답변완료
로직부탁...
다음과 같은 거래를 그 아래와 같이 수식 작성해 보았는데 의도된 대로 잘 안됩니다.
수정부탁합니다.
data2,data3 차트까지 들어간 옵션창 3개를 띄워놓고 매매합니다.
<매수식>
공통매수조건 - (1) 9시1분봉과 9시20분봉 고가를 초과하면 매수.
(2) 현재가가 11만원 초과, 15만원 이하일 것.
첫번째 매수식 - 현재가가 data2와 data3보다 크면 매수하라.
두번째 매수식 - 현재가가 data2 현재가 보다는 크고 data3 현재가 보다는 작을 때, data3 종가가 9시1분봉 고가 및 9시20분봉 고가를 초과한 이후로부터 15만원 미만이었던 적이 없을 경우 매수하라.
세번째 매수식 - 현재가가 data2 현재가와 data3 현재가 보다 작을 때, data3 종가가 9시1분봉 고가 및 9시20분봉 고가를 초과한 이후로부터 15만원 미만이었던 적이 없을 경우 매수하라.
<매수청산식>
매수청산식은 대강 맞는 것 같은데 한번 검토 부탁합니다.
---------------------------------------------------------------------------------
input : ts1(8),ts2(6.5),ts3(5),fl1(10),fl2(20),fl3(100),sp1(8),sp2(10),sp3(11),sp4(12),sp5(13), maxbar(60);
Var : maxp(0),count(0),cnt(0);
Var : cond3(False,data3);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count +1;
}
if sTime==090100 Then
Var1=H;
Var2=data3(H);
if sTime==092000 Then
Var3=H;
Var4=data3(H);
If Data3(c)>var2 and Data3(c)>var4 Then
var5=BarIndex;
If Data3(sDate!=sDate[1]) Then
cond3=False;
If data3(sTime>092000 and sTime<=100000 and c<1.5 and BarIndex>=Var5) Then
cond3=True;
If MarketPosition() == 0 and count<1 and stime>092000 and stime<=100000 Then {
If c>1.1 and c<=1.5 Then {
If c>Var1 and c>Var3 and c>o and c>data2(c) and c>data3(c) Then
buy("매수3",onclose,DEF,3);
If c>Var1 and c>var3 and c>o and c>data2(c) and c<data3(c) and cond3==False Then
buy("매수3-1",onclose,DEF,3);
If c>Var1 and c>var3 and c>o and c<data2(c) and c<data3(c) and cond3==False Then
buy("매수3-2",onclose,DEF,3);
}
}
MaxP = Highest(H, BarsSinceEntry + 1);
If EntryName == "매수3" or EntryName == "매수3-1" or EntryName == "매수3-2" Then {
If marketPosition() == 1 Then {
if MaxP >= (EntryPrice * (1+fl1/100)) and MaxP < (EntryPrice * (1+fl2/100)) Then
ExitLong("이익보존3", Atstop, MaxP *(1-ts1/100),def,1);
if MaxP >= (EntryPrice * (1+fl2/100)) and MaxP < (EntryPrice * (1+fl3/100)) Then
ExitLong("이익보존3-1", Atstop, MaxP *(1-ts2/100),def,1);
If MaxP >= (EntryPrice * (1+fl3/100)) Then
ExitLong("이익보존3-2", Atstop, MaxP *(1-ts3/100),def,3);
}
If marketPosition() == 1 Then {
ExitLong("손절매3", Atstop, EntryPrice*(1-sp1/100),def,1);
ExitLong("손절매3-1", Atstop, EntryPrice*(1-sp3/100),def,1);
ExitLong("손절매3-2", Atstop, EntryPrice*(1-sp4/100),def,3);
}
If marketPosition() == 1 Then {
If MaxBar<=BarsSinceEntry+1 And MaxP<EntryPrice*(1+fl1/100) Then
ExitLong("기간청산3", Atmarket);
}
}
2011-06-10
585
글번호 39619