커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7769
글번호 230811
답변완료
수식부탁드립니다.
안녕하세요.
혹시나해서 다시 글을 올려봅니다.
항상 수고가 많으십니다.
아래의 식에서 분할진입을 적용해보고 싶습니다.
제가 수식을 작성해보려고 하는데 잘 안되서 도움을 부탁드립니다.
input : 자본금(50000000);
var : 매매당손절금액(0),진입시점의변동성(0),주문가능계약수(0);
매매당손절금액 = int(자본금*0.02);
진입시점의변동성 = var8*500000;
주문가능계약수 = int(매매당손절금액/진입시점의변동성);
var : cond(false,data2);
var1 = data2(c);
var2 = data2(h);
var3 = data2(L);
Var4 = Lowest(close,100)[1];
Var5 = Lowest(close,100)[1];
Var6 = Highest(close,100)[1];
Var7 = Highest(close,100)[1];
Var8 = atr(60);
if stime > 100000 and stime < 140000 Then{
if data2(date) != data2(date[3]) Then
cond = False;
if data2(c)>data2(o) and data2(c)>data2(dayhigh[1]) Then{
cond = True;
if cond == True and data2(c) > data2(o) and data2(C[1]) > data2(o[1]) and data2(c[2]) > data2(o[2]) and data2(c[3]) > data2(o[3]) then{
buy("매수",OnClose,def,주문가능계약수);
cond = False;
}}}
if stime > 100000 and stime < 140000 Then{
if data2(c)<data2(o) and data2(c)<data2(daylow[1]) then sell("매도",OnClose,def,주문가능계약수);
}
if MarketPosition == 1 Then{
Exitlong("매수손절",AtStop,EntryPrice-var8[BarsSinceEntry]);
if stime > 100500 and stime < 143000 then {
If CrossDown(close,Var4) Then ExitLong("매수반대청산1",Onclose);
SetStopEndofday(150400);
}
}
if MarketPosition == -1 Then{
ExitShort("매도손절",AtStop,EntryPrice+var8[BarsSinceEntry]);
if Lowest(var3,BarsSinceEntry) <= var1[BarsSinceEntry]*0.990 and
var1 >= Lowest(var3,BarsSinceEntry)+(var1[BarsSinceEntry]-Lowest(var3,BarsSinceEntry))*0.8 Then ExitShort("매도되돌림");
if stime > 100500 and stime < 140000 then {
If Crossup(close,Var6) Then ExitShort("매도반대청산1",Onclose);
SetStopEndofday(150400);
}
}
위의 식에서
추가진입은 균등한 계약수로
매수진입후 Var8 = atr(60)만큼 가격이 상승할때마다 추가진입 4회까지
매도진입후 Var8 = atr(60)만큼 가격이 하락할때마다 추가진입 4회까지
청산은
두가지 경우로 작성 부탁드립니다.
어느 것이 더 나은지 알아보고자 합니다.
1)일괄청산
매수의 경우 추가 진입할 때마다 Var8 = atr(60)만큼 청산가격을 올리는 방식
매도의 경우 추가 진입할 때마다 Var8 = atr(60)만큼 청산가격을 내리는 방식
2)분할청산
각각의 진입에 대한 손절은 각각의 진입가격대비 Var8 = atr(60)만큼 손실이 날 때
위의 1),2)청산조건을 제외하고는
원래의 식에서 설정한 조건에 맞으면 일괄청산되게 적용하고자 합니다.
추가질문입니다.
아래 조건에서 바로 진입하지 않고,
if data2(c)<data2(o) and data2(c)<data2(daylow[1]) then sell("매도",OnClose,def,주문가능계약수);
위와같은 조건 만족된 후,
그 시점에서의 주종목의 가격이 Var8 = atr(60) 만큼 추가 하락하면
그때 매도진입하는 진입식을 부탁드립니다.
감사합니다...
2009-06-04
845
글번호 22567
답변완료
이평선
연결선물그래프
동시호가에는 봉이 아니고,
그냥, line 형대의 bar가 생깁니다.
3시 15분에 만들어지는 이 bar도 이평선 그리는데에 계산되는 값인가요?
2009-06-04
657
글번호 22565
첸졉 님에 의해서 삭제되었습니다.
2009-06-03
8
글번호 22562
답변완료
다음과 같은 시스템식 부탁드립니다.
5분봉 선물시스템에서...
어제 종가대비 오늘 시가의 차이가 0.5p이상이고, 현재시각으로부터 오전10시사이에
볼린저밴드(20,2)>0.008인 경우가 존재했고, 현재봉 음봉이면 매도.
어제 종가대비 오늘 시가의 차이가 0.5p미만이고, 현재시각으로부터 오전9시 사이에
볼린저밴드(20,2)>0.008인 경우가 존재했고, 현재봉 음봉이면 매도.
부탁드려요...감사합니다.
2009-06-03
503
글번호 22557
답변완료
수식부탁드립니다.
매수 조건은
전전일 고가와 전일 고가를 거래량이 증가하면서 돌파하면 매수
청산은
수익이 5%면 매도
수익중 고점대비 5%가 빠지면 매도
손절은
-5%면 손절
어제의 저점이나 저점을 이탈하면 손절 입니다.
수고하세요~
2009-06-03
421
글번호 22556
Polaris 님에 의해서 삭제되었습니다.
2009-06-03
1
글번호 22555
스테디어드밴서 님에 의해서 삭제되었습니다.
2009-06-03
0
글번호 22554
노단 님에 의해서 삭제되었습니다.
2009-06-03
61
글번호 22553
답변완료
질문드립니다.
A 지표가 움직이고 주가는 양봉 음봉을 랜덤하게 그리는 상황입니다.
만일 주가가 양봉5개 이렇게 움직인다면
A 지표가 주가의 양봉5개중 같은 방향으로 움직일때부터 봉색깔이 바뀔때까지의 값을
누계해서 합으로 나타내려면 방법은요?
즉, 양봉 5개중 A지표는 처음(1봉)에 저번봉의 값보다 작다가 2봉부터
저번봉보다 값이커진다면 2봉부터 값을 더해서 봉색깔이 음으로 바뀌기전인 5봉째까지의 값을 누계해서 보이는 것입니다.
수고하세요.
2009-06-03
607
글번호 22548