커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7433
글번호 230811
답변완료
문의드립니다.
N.darvas box 지표를 만들수 있는 수식문의합니다.
참고할 수있는거라도 부탁드립니다..
새해 복많이 받으세요^^
2016-02-05
243
글번호 95229
답변완료
지표부탁드립니다.
혹시 빨간 원 안에 있는 하늘색 선 처럼 차트에서 옆으로 나오는 지표가 있는지 있다면 그 지표가 무슨 지표인지 궁금합니다.
혹시나 여러 지표가 있다면 그 종류를 전부 알려주시면 감사하겠습니다.
2016-02-05
256
글번호 95223
답변완료
소수이하 절삭
소수이하 몇자리 이하 절삭하는 방법을 알고 싶습니다.
반올림함수 Round()는 있는데 반대로 절삭하는 함수는 없는것 같아 문의 드립니다.
2016-02-05
163
글번호 95216
답변완료
지표문의
수고많으십니다 지표트릭스기울기20이평위는빨강색 아래는청색부탁드립니다
2016-02-05
186
글번호 95215
답변완료
복리4번후다음3번후..
Input : shortPeriod(5), longPeriod(20) ;
Var : value(0),vol(0);
if MarketPosition != 0 Then{
if PositionProfit < 0 Then
Vol = min(80,MaxContracts*2);
Else
vol = 1;
}
if MarketPosition == 0 Then{
if PositionProfit(1) < 0 Then
Vol = min(80,MaxContracts(1)*2);
Else
vol = 1;
}
value = OSCP(shortPeriod, longPeriod);
If CrossUP(value, 0) Then
Buy("b",OnClose,def,vol);
If CrossDown(value,-0) Then
Sell("s",OnClose,def,vol);
# 추적청산
input : AtrMult(6), AtrPeriod(6);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+2);
PosLow = Lowest(L,BarsSinceEntry+2);
If MarketPosition == 1 and C < ma(c,20) Then
sell("ATR1", AtStop, PosHigh - ATRVal,Vol);
If MarketPosition == -1 and C > ma(c,20) Then
buy("ATR2", AtStop, PosLow + ATRVal,Vol);
If MarketPosition == 0 and C > ma(C,20) Then
sell("ATR3", AtStop, Highest(H,BarsSinceExit(1)+1) - ATRVal,Vol);
If MarketPosition == 0 and C < ma(C,20) Then
buy("ATR4", AtStop, Lowest(L,BarsSinceExit(1)+1) + ATRVal,Vol);
위수식에서
처음손실은4번후복리 다음은3번후복리 다음은2번후복리 다음부터는계속복리됨니다
목표가후복귀
항상 감사합니다.
2016-02-05
158
글번호 95205
답변완료
복리한번후두번후세번...
Input : shortPeriod(5), longPeriod(20) ;
Var : value(0),vol(0);
if MarketPosition != 0 Then{
if PositionProfit < 0 Then
Vol = min(80,MaxContracts*2);
Else
vol = 1;
}
if MarketPosition == 0 Then{
if PositionProfit(1) < 0 Then
Vol = min(80,MaxContracts(1)*2);
Else
vol = 1;
}
value = OSCP(shortPeriod, longPeriod);
If CrossUP(value, 0) Then
Buy("b",OnClose,def,vol);
If CrossDown(value,-0) Then
Sell("s",OnClose,def,vol);
# 추적청산
input : AtrMult(6), AtrPeriod(6);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+2);
PosLow = Lowest(L,BarsSinceEntry+2);
If MarketPosition == 1 and C < ma(c,20) Then
sell("ATR1", AtStop, PosHigh - ATRVal,Vol);
If MarketPosition == -1 and C > ma(c,20) Then
buy("ATR2", AtStop, PosLow + ATRVal,Vol);
If MarketPosition == 0 and C > ma(C,20) Then
sell("ATR3", AtStop, Highest(H,BarsSinceExit(1)+1) - ATRVal,Vol);
If MarketPosition == 0 and C < ma(C,20) Then
buy("ATR4", AtStop, Lowest(L,BarsSinceExit(1)+1) + ATRVal,Vol);
위수식에서
처음손실은1번후복리 다음은2번손실후복리 다음은3번손실후복리 다음은손실4번후복리
다음은5번손실후복리6.7.8.9.10.11.12....반복됨니다.
목표가후복귀
감사합니다.
2016-02-05
146
글번호 95204
답변완료
복리투자 처음4번은 안함
Input : shortPeriod(5), longPeriod(20) ;
Var : value(0),vol(0);
if MarketPosition != 0 Then{
if PositionProfit < 0 Then
Vol = min(80,MaxContracts*2);
Else
vol = 1;
}
if MarketPosition == 0 Then{
if PositionProfit(1) < 0 Then
Vol = min(80,MaxContracts(1)*2);
Else
vol = 1;
}
value = OSCP(shortPeriod, longPeriod);
If CrossUP(value, 0) Then
Buy("b",OnClose,def,vol);
If CrossDown(value,-0) Then
Sell("s",OnClose,def,vol);
# 추적청산
input : AtrMult(6), AtrPeriod(6);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+2);
PosLow = Lowest(L,BarsSinceEntry+2);
If MarketPosition == 1 and C < ma(c,20) Then
sell("ATR1", AtStop, PosHigh - ATRVal,Vol);
If MarketPosition == -1 and C > ma(c,20) Then
buy("ATR2", AtStop, PosLow + ATRVal,Vol);
If MarketPosition == 0 and C > ma(C,20) Then
sell("ATR3", AtStop, Highest(H,BarsSinceExit(1)+1) - ATRVal,Vol);
If MarketPosition == 0 and C < ma(C,20) Then
buy("ATR4", AtStop, Lowest(L,BarsSinceExit(1)+1) + ATRVal,Vol);
위수식에서
처음4번 손실이 지난후부터 계속복리입니다.
즉처음4번후부터 복리가시작됨니다.쭉계속복리
목표가후복귀
감사합니다.
2016-02-05
147
글번호 95203
답변완료
손실두번시 복리
Input : shortPeriod(5), longPeriod(20) ;
Var : value(0),vol(0);
if MarketPosition != 0 Then{
if PositionProfit < 0 Then
Vol = min(80,MaxContracts*2);
Else
vol = 1;
}
if MarketPosition == 0 Then{
if PositionProfit(1) < 0 Then
Vol = min(80,MaxContracts(1)*2);
Else
vol = 1;
}
value = OSCP(shortPeriod, longPeriod);
If CrossUP(value, 0) Then
Buy("b",OnClose,def,vol);
If CrossDown(value,-0) Then
Sell("s",OnClose,def,vol);
# 추적청산
input : AtrMult(6), AtrPeriod(6);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+2);
PosLow = Lowest(L,BarsSinceEntry+2);
If MarketPosition == 1 and C < ma(c,20) Then
sell("ATR1", AtStop, PosHigh - ATRVal,Vol);
If MarketPosition == -1 and C > ma(c,20) Then
buy("ATR2", AtStop, PosLow + ATRVal,Vol);
If MarketPosition == 0 and C > ma(C,20) Then
sell("ATR3", AtStop, Highest(H,BarsSinceExit(1)+1) - ATRVal,Vol);
If MarketPosition == 0 and C < ma(C,20) Then
buy("ATR4", AtStop, Lowest(L,BarsSinceExit(1)+1) + ATRVal,Vol);
위수식에서
손실이 두번발생때마다 복리를합니다 두번손실.또두번손실.또두번손실...
즉 손실한번을 두번으로바꿔주세요
목표가후복귀
감사합니다.
2016-02-05
147
글번호 95202
답변완료
부탁드립니다.
안녕하세요?
해외에서는 엘리어트 파동을 이용한 매매가 활발하게 이루어지고 있고 HTS에 ADD on Program도 많이 있습니다. 그래서 국내서도 구할 수 있나 찾아보았으나 찾을 수가 없었고 그나마 유사한 것으로 아래의 것을 찾았으나 바로 사용할 수가 없어서코딩을 좀 부탁드립니다.
장기변동율과 단기변동율을 바꾸어 볼 수 있게 코딩 부탁드리구요, 시간이 걸리는 일을 부탁드려서 미안합니다.
명절 잘 보내시기 바랍니다.
감사합니다.
===================================================================================
1) 고점과 저점 정의
고점조건 = 고가가 저점에서 장기변동률 이상 상승했고
저점이후고가보다 클 때;
저점조건 = 저가가 고점에서 장기변동률 이상 하락했고
고점이후저가보다 작을 때;
If 고점조건 만족 Then
{
저점이후고가 = 고가;
고점이후저가 = 0;
}
If 저점조건 만족 Then
{
고점이후저가 = 저가;
저점이후고가 = 0;
}
2) 고점인지 저점인지 판단
전환점구분을 null값으로 초기화;
If 고점조건과 저점조건 동시 만족 Then
{
If 1번 고점 < 고가 and 1번 저점 > 저가 Then
전환점구분 = “고저점”;
Else If 1번 고점 < 고가 Then
전환점구분 = “고점”;
Else If 1번 저점 > 저가 Then
전환점구분 = “저점”;
}
Else If 고점조건만 만족 Then
전환점구분 = “고점”;
Else If 저점조건만 만족 Then
전환점구분 = “저점”;
3) 고점 또는 저점일 때 처리
If 전환점구분 <> null Then
{
3-1) 고점이면서 저점일 때
If 전환점구분 == “고저점” Then
{
If 직전 전환점구분 == “고점” Then
{
1번 고점 = 고가;
전환점구분 = “저점”;
보조지표 1번 고점 = 보조지표 1번 저점 이후의 최고가를
for문으로 search;
}
Else If 직전 전환점구분 == “저점” Then
{
1번 저점 = 저가;
전환점구분 = “고점”;
보조지표 1번 저점 = 보조지표 1번 고점 이후의 최저가를
for문으로 search;
}
}
If 전환점구분 <> 직전 전환점구분 Then
{
3-2) 고점일 때 처리
If 전환점구분 == “고점” Then
{
3번 고점 = 2번 고점;
2번 고점 = 1번 고점;
1번 고점 = 고가;
보조지표 3번 고점 = 보조지표 2번 고점;
보조지표 2번 고점 = 보조지표 1번 고점;
보조지표 1번 고점 = 보조지표 1번 저점 이후의 최고가를
for문으로 search;
}
3-3) 저점일 때 처리
If 전환점구분 == “저점” Then
{
3번 저점 = 2번 저점;
2번 저점 = 1번 저점;
1번 저점 = 저가;
보조지표 3번 저점 = 보조지표 2번 저점;
보조지표 2번 저점 = 보조지표 1번 저점;
보조지표 1번 저점 = 보조지표 1번 고점 이후의 최저가를
for문으로 search;
}
}
If 전환점구분 == 직전 전환점구분 and
((전환점구분 == “고점” and 1번 고점 < 고가) or
(전환점구분 == “저점” and 1번 저점 > 저가)) Then
{
3-4) 연속 고점일 때 처리
If 전환점구분 == “고점” Then
{
1번 고점 = 고가;
보조지표 1번 고점 = 보조지표 1번 저점 이후의 최고가를
for문으로 search;
}
3-5) 연속 저점일 때 처리
If 전환점구분 == “저점” Then
{
1번 저점 = 저가;
보조지표 1번 저점 = 보조지표 1번 고점 이후의 최저가를
for문으로 search;
}
}
}
4) 종목 보합일 때 보조지표 처리
Else //전환점구분이 null 즉 주가가 고점과 저점사이에 보합 상태
{
If 직전 전환점구분 == “고점” and
보조지표 1번 고점 < 보조지표 값 Then
보조지표 1번 고점 = 보조지표 값;
If 직전 전환점구분 == “저점” and
보조지표 1번 저점 > 보조지표 값 Then
보조지표 1번 저점 = 보조지표 값;
}
5) 단기고점과 단기저점 정의
단기고점조건 = 고가가 저점보다 단기변동률 이상 상승했고
저점이후단기고가보다 클 때;
단기저점조건 = 저가가 고점보다 단기변동률 이상 하락했고
고점이후단기저가보다 작을 때;
If 단기고점조건 만족 Then
{
저점이후단기고가 = 고가;
고점이후단기저가 = 0;
}
If 단기저점조건 만족 Then
{
고점이후단기저가 = 저가;
저점이후단기고가 = 0;
}
6) 단기고점인지 단기저점인지 판단
단기전환점구분을 null 값으로 초기화;
If 단기고점조건과 단기저점조건 동시 만족 Then
{
If 1번 고점 < 고가 Then
단기전환점구분 = “고점”;
Else If 1번 저점 > 저가 Then
단기전환점구분 = “저점”;
}
Else If 단기고점조건만 만족 Then
단기전환점구분 = “고점”;
Else If 단기저점조건만 만족 Then
단기전환점구분 = “저점”;
If 단기전환점구분 == “고점” 또는 “저점” and
단기전환점구분 <> 직전 전환점구분 Then
{
매수선 = 고가;
매도선 = 저가;
}
7) 단기고점이면 매수 다이버전스 판단
If 단기전환점구분 == “고점” Then
{
If 2번 저점 > 1번 저점 and
보조지표 2번 저점 < 보조지표 1번 저점 Then
매수선에서 stop 주문(“일반 매수 다이버전스”);
If 2번 저점 < 1번 저점 and
보조지표 2번 저점 > 보조지표 1번 저점 Then
매수선에서 stop 주문(“역 매수 다이버전스”);
If 2번 저점과 1번 저점의 차이가
1번 저점의 0.005 보다 작고 and
보조지표 2번 저점 < 보조지표 1번 저점 Then
매수선에서 stop 주문(“과장 매수 다이버전스”);
If 3번 저점 > 1번 저점 and
2번 저점 > 1번 저점 and
보조지표 3번 저점 < 보조지표 1번 저점 and
보조지표 1번 저점 < 보조지표 2번 저점 Then
매수선에서 stop 주문(“3중 매수 다이버전스”);
}
8) 단기저점이면 매도 다이버전스 판단
If 단기전환점구분 == “저점” Then
{
If 2번 고점 < 1번 고점 and
보조지표 2번 고점 > 보조지표 1번 고점 Then
매도선에서 stop 청산주문(“일반 매도 다이버전스”);
If 2번 고점 > 1번 고점 and
보조지표 2번 고점 < 보조지표 1번 고점 Then
매도선에서 stop 청산주문(“역 매도 다이버전스”);
If 2번 고점과 1번 고점의 차이가
1번 고점의 0.005 보다 작고 and
보조지표 2번 고점 > 보조지표 1번 고점 Then
매도선에서 stop 청산주문(“과장 매도 다이버전스”);
If 3번 고점 < 1번 고점 and
2번 고점 < 1번 고점 and
보조지표 3번 고점 > 보조지표 1번 고점 and
보조지표 1번 고점 > 보조지표 2번 고점 Then
매도선에서 stop 청산주문(“3중 매도 다이버전스”);
}
[출처] 최소변동률 지그재그(zigzag) 파동을 이용한 전략식(1~2)|작성자 수식지왕
2016-02-05
309
글번호 95201