커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4359
글번호 230811
파워 님에 의해서 삭제되었습니다.
2018-03-16
72
글번호 117477
자라도 님에 의해서 삭제되었습니다.
2018-03-16
0
글번호 117476
답변완료
감사합니다 진심 어린 감사드려요
1,st002340 님이 수식 입니다----- 수정부탁드려봅니다
2, period (20) (60) (120) 추가하여 수정 부탁드려요
3, 아래수식에대한 설명도 부탁드립니다
input :Period(120), Type(1);
Vars : sHH(0), sLL(0), lHH(0), lLL(0),Price(0),v0(0);
Price = C;
If Type == 1 Then
V0 = ma(Price, Period);
Else
V0 = ema(Price, Period);
If Price > V0 Then
Begin
sHH = H;
sLL = L;
End
Else
Begin
sHH = sHH;
sLL = sLL;
End;
If Price < V0 Then
Begin
lHH = H;
lLL = L;
End
Else
Begin
lHH = lHH;
lLL = lLL;
End;
If CurrentBar > 1 And lHH[1] > 0 And lLL[1] > 0 And sHH[1] > 0 And sLL[1] > 0 Then
Begin
Plot1(sHH, "사용X");
Plot2(sLL, "하락추세용");
Plot3(lHH, "상승추세용");
Plot4(lLL, "사용X");
End;
2018-03-16
182
글번호 117475
답변완료
피라미딩 안됨
수정 수식에서
선언되지 않은 input : pyra(0.8)을 추가하여 시뮬레이션 했음에도 피라미딩이 안됩니다.
(별첨1)
질문 57082 건 피라미딩 수식
if MarketPosition == 1 Then
buy("bb",AtStop,LatestEntryPrice(0)+Pyra); 에서
buy를 sell로 +pyra를 -pyra로 바꾼 것인데 저도 이렇게 했더니
안되서 문의드렸던 것입니다.
다시 살펴주시면 고맙겠습니다.
**********************
안녕하세요
예스스탁입니다.
input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
HH = H;
}
if stime >= 시작시간 then{
if H > HH Then
HH = H;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{
E1 = 1;
L1 = L;
i1 = index;
V1 = HH; //시작점 종가
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
#고가가 시작봉종가보다 작을 때만 눌림체크
if H <= V1 and H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
//시작점 종가보다 높은 가격이 발생하면 초기화
if E1 >= 1 and H > V1 Then{
E1 = 0;
HH = H;
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
HH = H;
}
if H > HH Then
HH = H;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s2");
E1 = 0;
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx1");
E1 = 0;
}
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X2 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx2");
E1 = 0;
}
}
}
if MarketPosition == 1 and MaxContracts < 5 Then
sell("ss",AtStop,LatestEntryPrice(0)-Pyra);
}
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 피라미딩 추가
> 아래 sell 수식에 피라미딩을 추가하고 싶습니다.
* 0.8포인트씩 하락할 때마다 피라미딩
* input
- pyra : 0.80
- 피라미딩누적한도 : 5개
항상 고맙습니다
***********************************
input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
HH = H;
}
if stime >= 시작시간 then{
if H > HH Then
HH = H;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{
E1 = 1;
L1 = L;
i1 = index;
V1 = HH; //시작점 종가
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
#고가가 시작봉종가보다 작을 때만 눌림체크
if H <= V1 and H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
//시작점 종가보다 높은 가격이 발생하면 초기화
if E1 >= 1 and H > V1 Then{
E1 = 0;
HH = H;
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
HH = H;
}
if H > HH Then
HH = H;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s2");
E1 = 0;
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx1");
E1 = 0;
}
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X2 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx2");
E1 = 0;
}
}
}
}
2018-03-16
182
글번호 117469
답변완료
문의드립니다
한국투자증권 언어편집기 신호겁색 rsi
Input : RPeriod(14), SignalPeriod(9);
var : SValue(0), Signal(0), BuyCond(FALSE);
SValue = RSI(RPeriod, Close);
Signal = EMA(SValue,SignalPeriod);
BuyCond = SValue Cross Above Signal;
// 신호검색
IF BuyCond Then
Begin
Find(1);
End;
10봉전 신호 검색은 어떻게 합니까
2018-03-16
174
글번호 117468
답변완료
문의드립니다.
아래 검색식은 장중에는 검색이 안되는건가요??
어제 저녁만해도 검색이 잘 됐는데 장중에는 결과값이 안나옵니다.
input : ntime(93000);
var1 = ma(C,20);
var2 = ma(C,60);
var3 = ma(C,120);
if sdate != sdate[1] Then
Condition1 = false;
if ((sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime)) and
var1 > var2 and var2 > var3 Then
Condition1 = true;
if Condition1 == true then
find(1);
2018-03-16
159
글번호 117457
답변완료
문의
국선 차트에 보조지표 스토케스틱
10,3,3 일때 stok 가 stod 를 상향할때 빨간점
하향할때 파란점 처럼 그려지게 부탁합니다
점이 찍히는 자리를 구해야 된다면 5이평선따라 그릴수있게 부탁합니다.
2018-03-16
218
글번호 117454
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 코딩 변환 부탁드립니다.
inputs:
Period( 60 ),
OBLevel( 90 ),
OSLevel( 10 ),
NormalLevel( 50 ) ;
variables:
Stoch1( 0 ),
Stoch2( 0 ),
Diff( 0 ),
Range1( 0 ),
Range2( 0 ),
StressValue( 0 ) ;
StressValue = 50 ;
Stoch1 = 50 ;
Stoch2 = 50 ;
{ raw stochastics for price1 and price2 }
Range1 = Highest( High, Period ) - Lowest( Low, Period ) ;
Range2 = Highest( High of Data2, Period)
- Lowest( Low of Data2, Period ) ;
if Range1 <> 0 and Range2 <> 0 then
begin
Stoch1 = ( Close - Lowest( Low, Period ) ) / Range1 ;
Stoch2 = ( Close of Data2
- Lowest( Low of Data2, Period ) ) / Range2 ;
{ difference in stochastics }
Diff = Stoch1 - Stoch2;
{ stress indicator }
Range1 = Highest( Diff, Period ) - Lowest( Diff, Period ) ;
if Range1 <> 0 then
StressValue = 100 * ( Diff - Lowest( Diff, Period ) ) / Range1 ;
end ;
Plot1( StressValue, "Stress" ) ;
Plot2( Stoch1 * 100, "D1 Stoch" ) ;
Plot3( Stoch2 * 100, "D2 Stoch" ) ;
Plot4( OBLevel, "OverBought" ) ;
Plot5( OSLevel, "OverSold" ) ;
Plot6( NormalLevel, "Normal" ) ;
2018-03-16
157
글번호 117451
답변완료
피라미딩 추가
아래 sell 수식에 피라미딩을 추가하고 싶습니다.
* 0.8포인트씩 하락할 때마다 피라미딩
* input
- pyra : 0.80
- 피라미딩누적한도 : 5개
항상 고맙습니다
***********************************
input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
HH = H;
}
if stime >= 시작시간 then{
if H > HH Then
HH = H;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{
E1 = 1;
L1 = L;
i1 = index;
V1 = HH; //시작점 종가
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
#고가가 시작봉종가보다 작을 때만 눌림체크
if H <= V1 and H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
//시작점 종가보다 높은 가격이 발생하면 초기화
if E1 >= 1 and H > V1 Then{
E1 = 0;
HH = H;
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
HH = H;
}
if H > HH Then
HH = H;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s2");
E1 = 0;
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx1");
E1 = 0;
}
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X2 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx2");
E1 = 0;
}
}
}
}
2018-03-16
160
글번호 117450