커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6181
글번호 230811
답변완료
수정부탁드립니다
안녕하세요
48594번1-1 20일선 상승시빨강색 하락시파랑색 잘부탁드립니다
2018-01-30
159
글번호 116168
답변완료
시스템 문위드립니다
검정선 입니다
Input: M3(3.5), P5(5);
VAR: HL(0), MAHL(0), HILO(0), HR(0), LR(0), DIF1(0),
DIF2(0), ATRM(0), LOSS(0), TR(0);
HL= H - L;
MAHL= 1.5*MA(HL, P5);
HILO= IFF(HL<MAHL, HL, MAHL);
HR= IFF(L<=H[1], H-C[1], (H-C[1]) - (L-H[1])/2);
LR= IFF(H>=L[1], C[1]-L, (C[1]-L) - (L[1]-H)/2);
DIF1= MAX(HILO, HR);
DIF2= MAX(DIF1, LR);
ATRM= WWMA(DIF2, P5);
LOSS= M3*ATRM;
TR= IFF(C>TR[1] AND C[1]>TR[1],Max(TR[1],C-loss),
IFF(C<TR[1] AND C[1]<TR[1],Min(TR[1],C+loss),
IFF(C>TR[1],C-loss,C+loss)));
Plot1(TR, "HILO TRAIL");
2018-01-29
228
글번호 116167
답변완료
질문드립니다.
Strategy: Ehlers DFT
inputs:
Price( MedianPrice ),
Window( 50 ), { maximum Window = 50 }
OverBought( 70 ),
OverSold( 30 ),
Frac( 0.5 ) ;
variables:
HP( 0 ),
CleanedData( 0 ),
Per( 0 ),
CosPer( 0 ),
CycPer( 0 ),
Alpha1( 0 ),
Period( 0 ),
n( 0 ),
MaxPwr( 0 ),
Num( 0 ),
Denom( 0 ),
ThreeMinus( 0 ),
DominantCycle( 0 ),
Change( 0 ),
AbsChange( 0 ),
Count( 0 ),
DFT_RSI( 0 ) ;
{ arrays are sized for a maximum period of 50 bars }
arrays:
CosinePart[50]( 0 ),
SinePart[50]( 0 ),
Pwr[50]( 0 ),
DB[50]( 0 ),
SF[50]( 0 ),
NetChgAvg[50]( 0 ),
TotchgAvg[50]( 0 ),
RSIArray[50]( 0 ) ;
{ detrend data by high-pass filtering with a 40 period
cut-off }
if CurrentBar <= 5 then
begin
HP = Price ;
CleanedData = Price ;
end
else if CurrentBar > 5 then
begin
Per = 360 / 40 ;
CosPer = Cosine( Per ) ;
if CosPer <> 0 then
Alpha1 = ( 1 - Sine( Per ) ) / CosPer ;
HP = 0.5 * ( 1 + Alpha1 ) * ( Price - Price[ 1 ] ) +
Alpha1 * HP[1] ;
CleanedData = ( HP + 2 * HP[1] + 3 * HP[2] + 3 *
HP[3] + 2 * HP[4] + HP[5] ) / 12 ;
end ;
{ calculate DFT }
for Period = 8 to 50
begin
CosinePart[Period] = 0 ;
SinePart[Period] = 0 ;
for n = 0 to Window - 1
begin
CycPer = ( 360 * n ) / Period ;
CosinePart[Period] = CosinePart[Period] +
CleanedData[n] * Cosine( CycPer ) ;
SinePart[Period] = SinePart[Period] +
CleanedData[n] * Sine( CycPer ) ;
end ;
Pwr[Period] = Square( CosinePart[Period] ) +
Square( SinePart[Period] ) ;
end ;
{ find maximum power level for normalization }
MaxPwr = Pwr[8] ;
for Period = 8 to 50
begin
if Pwr[Period] > MaxPwr then
MaxPwr = Pwr[Period] ;
end ;
{ normalize power levels and convert to decibels }
for Period = 8 to 50
begin
if MaxPwr > 0 and Pwr[Period] > 0 then
DB[Period] = -10 * log( 0.01 / ( 1 - 0.99 *
Pwr[Period] / MaxPwr ) ) / log( 10 ) ;
if DB[Period] > 20 then
DB[Period] = 20 ;
end ;
{ find dominant cycle using CG algorithm }
Num = 0 ;
Denom = 0 ;
for Period = 8 to 50
begin
if DB[Period] < 3 then
begin
ThreeMinus = 3 - DB[Period] ;
Num = Num + Period * ThreeMinus ;
Denom = Denom + ThreeMinus ;
end ;
end ;
if Denom <> 0 then
DominantCycle = Num / Denom ;
Change = Price - Price[1] ;
AbsChange = AbsValue( Change ) ;
for Count = 1 to Window
begin
if CurrentBar = 1 then
begin
SF[Count] = 1 / Count ;
NetChgAvg[Count] = ( Price - Price[Count] ) /
Count ;
TotChgAvg[Count] = Average( AbsChange, Count ) ;
end
else
begin
NetChgAvg[Count] = NetChgAvg[Count][1] +
SF[Count] * ( Change - NetChgAvg[Count][1] ) ;
TotChgAvg[Count] = TotChgAvg[Count][1] +
SF[Count] * ( AbsChange -
TotChgAvg[Count][1] ) ;
if TotChgAvg[Count] <> 0 then
RSIArray[Count] = ( 50 *
( NetChgAvg[Count] / TotChgAvg[Count] +
1 ) )
else
RSIArray[Count] = 50 ;
end ;
end ;
DFT_RSI = RSIArray[ iff( Frac * DominantCycle < 50,
Frac * DominantCycle, 50 ) ] ;
{ CB > 1 check used to avoid spurious cross confirmation at CB = 1 }
if Currentbar > 1 then
begin
if DFT_RSI crosses over OverSold then
Buy ( "RSI-LE" ) next bar at market ;
if DFT_RSI crosses under OverBought then
Sell Short ( "RSI-SE" ) next bar at market ;
end ;
TS 코드를 가져온 것인데요. 예스트레이더와 굉장히 흡사한 랭귀지를 구사하고있네요. buy sell식을 빼고 구현하고싶습니다. 변환이 가능한지 궁금합니다.
2018-01-29
311
글번호 116166
답변완료
문의 드립니다
1일선 위에서 발생하는 파라볼릭(종가) 상승 신호에는 매수진입만 해서 50틱에 수익실현 하고 파라볼릭(종가) 하락 신호에는 로스컷
1일선 아래에서 발생하는 파라볼릭(종가) 하락 신호에는 매도진입만 해서 50틱에 수익실현 하고 파라볼릭(종가) 상승 신호에는 로스컷
하는 수식을 부탁 드립니다
2018-01-29
147
글번호 116165
답변완료
부탁드립니다.
수고하십니다.
아래 수식을 해주셨는데 다음날 아침 장시작을 0에서 시작하는데
전날 종가에 더해서 누적으로 계속 이어지게 부탁드립니다.
안녕하세요
예스스탁입니다.
var : 시가1(0),종가1(0),저가1(0),고가1(0);
if Bdate != Bdate[1] Then{
시가1 = O-O;
종가1 = C-O;
저가1 = L-O;
고가1 = C-O;
}
else{
시가1 = 종가1[1]+(O-O);
종가1 = 종가1[1]+(C-O);
저가1 = 종가1[1]+(L-O);
고가1 = 종가1[1]+(C-O);
}
plot1(시가1);
plot2(종가1);
plot3(저가1);
plot4(고가1);
즐거운 하루되세요
> 비류천 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 안녕하십니까.
먼저 항상 정성스러운 답변에 진심으로 감사드리며 추운날씨에 감기 조심하시길 바랍니다.
아래 수식 부탁드리는것은 목적은 차트 캔들 갭보정을 표현 하기위함입니다.
1개 캔들의 시가,종가,저가,고가를 지수로 나타내는게 아니라 크기로만 나타내어
크기로 만든 차트 첫 캔들의 종가에 이어서 계속 더해가며 보조지표로 표현하려합니다.
->선으로 나타내려고 합니다.
첫캔들
시가1 = 시가-시가 ->그래서 무조건 시가는 0이된다.
종가1 = 종가-시가
저가1 = 저가-시가
고가1 = 고가-시가
두번째캔들부터는 : 그전 종가에 누적으로 크기를 더해가는 방식
시가1 = 종가1[1] + (시가-시가)
종가1 = 종가1[1] + (종가-시가)
저가1 = 종가1[1] + (저가-시가)
고가1 = 종가1[1] + (고가-시가)
감사합니다.^^
2018-01-29
155
글번호 116164
답변완료
문의 합니다
안녕하세요?
수고하십니다
간단시스템 시그널 부탁합니다.
20 이평선이 당일중심가를 상향돌파시 매수
20 이평선이 당일중심가를 하향하락시 매도 시그널
이평선 수치 변경가능토록 부탁합니다.
감사합니다.
2018-01-29
148
글번호 116163
답변완료
Re : Re : Re : 수식 수정요청 드립니다.
안녕하세요.
수정해 주신 아래 수식을 연결선물 차트에 적용하면 당일진입 수식이 매수와 매도가 번갈아 진입하네요.
-> 당일 진입식이 매수로 1차 진입할 경우, 매수로만 2차, 3차.....진입 -> 매수 목표청산, 당일 매도진입 금지.
-> 당일 진입식이 매도로 1차 진입할 경우, 매도로만 2차, 3차.....진입 -> 매도 목표청산, 당일 매수진입 금지.
그리고 목표청산후 진입은 목표 청산한봉의 다음봉 시가에 진입되도록 수정요청 드립니다.
제가 내용 설명을 잘못한거 같네요.
수식 수정요청 드립니다.
감사합니다.
//----------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
청산과 동시에 즉시 동일방향 즉시 진입은 가능하지 않습니다.
시스템 체계상 청산발생시 동일방향 신호가 발생하면
청산이 다시 발동해서 해당 진입도 청산하게 됩니다.'
목표수익 청산하면 해당봉 완성시에 동일방향으로 진입하게 작성했습니다.
Input : Period(12), sigPeriod(9),SSPT1(0.5),당일손실(1.0);
var : N1(0),daypl(0),Xcond(false);
if Bdate != Bdate[1] Then{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
daypl = NetProfit-N1;
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
if MarketPosition == 0 and TotalTrades > TotalTrades[1] and IsExitName("StopProfitTarget",1) == true and Xcond == false then{
if MarketPosition(1) == 1 Then
buy("bb");
if MarketPosition(1) == -1 Then
sell("ss");
}
If CrossUP(value1, value2) and Xcond == false Then
{
Buy();
}
If CrossDown(value1, value2) and Xcond == false Then
{
Sell();
}
if MarketPosition == 1 then{
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
SetStopPosition;
SetStopProfittarget(SSPT1,PointStop);
SetStopEndofday(150000);
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : Re : 수식 수정요청 드립니다.
> 안녕하세요.
작성해주신 아래수식에서 진입수식 진입은 1일 1회 적용, 수익은 제외한 당일손실 적용
1.진입수식 매수진입, 1차, 2차, 3차..... 진입은 동일방향 청산과 동시에 매수즉시 진입
-> 당일 매수 1차진입이 당일손실일경우 매매 종료.
-> 당일 매수 1차진입이 목표청산 수익이면 -> 청산즉시 매수 2차진입 -> 2차진입이 당일손실 경우 매매 종료.
-> 당일 매수 1차진입이 목표청산 수익이면 -> 청산즉시 매수 2차진입 -> 2차진입이 목표청산 수익이면
-> 청산즉시 매수 3차진입 -> 3차진입이 당일손실 경우 매매 종료.
-> 당일 계속해서 목표청산 수익일경우, 청산즉시 매수진입 목표청산시 당일청산 시간까지 목표청산 매수 진입.
2.진입수식 매도진입, 1차, 2차, 3차..... 진입은 동일방향 청산과 동시에 매도즉시 진입
-> 반대적용
수식 수정요청 드립니다.
감사합니다.
//----------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
Input : Period(12), sigPeriod(9),SSPT1(0.5),당일손실(1.0);
var : N1(0),daypl(0),Xcond(false);
if Bdate != Bdate[1] Then{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
daypl = NetProfit-N1;
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
If CrossUP(value1, value2) and Xcond == false Then
{
Buy();
}
If CrossDown(value1, value2) and Xcond == false Then
{
Sell();
}
if MarketPosition == 1 then{
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
SetStopPosition;
SetStopProfittarget(SSPT1,PointStop);
SetStopEndofday(150000);
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식 요청 드립니다.
> 안녕하세요.
수식 수정요청 드립니다.
1. 연결선물 당일청산 아래 시스템에서 당일진입 목표정산 당일손실을 기준으로
-> 당일 1차 진입이 당일손실일경우 매매 종료.
-> 당일 1차 진입이 목표청산 수익이고, 2차진입이 당일손실일경우 매매 종료.
-> 당일 1차 진입 -> 목표청산 수익 -> 2차 진입 -> 목표청산 수익 -> 3차진입
-> 목표청산 수익 -> 3차진입, 즉 직전진입이 목표청산 수익일경우 계속 진입하고,
손실일 경우에 당일 매매 종료.
-> 당일 계속해서 목표청산 수익일경우 당일청산 시간까지 목표청산 진입합니다.
감사합니다.
#진입수식(예제)
Input : Period(12), sigPeriod(9),당일손실(1.0);
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
# 매수/매도청산
If CrossUP(value1, value2) and dayPL > -당일손실 Then{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) and dayPL > -당일손실 Then{
Sell();
}
#목표수익청산
Input : SSPT1(0.5);
SetStopPosition;
SetStopProfittarget(SSPT1,PointStop);
#당일청산
SetStopEndofday(150000);
2018-01-30
150
글번호 116162
답변완료
문의합니다
시스템 수식입니다
아래 수식을 지표로 표현하여 주세요 감사합니다
Input : Period(12);
value1 = TRIX(Period);
# 매수/매도청산
If CrossUP(value1, 0) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, 0) Then
{
Sell();
}
2018-01-29
170
글번호 116161
답변완료
종목 검색식 문의
종목 검색식 문의드립니다.
거래대금 250억 이상
전일 종가대비 당일고가 15%이상
당일 시가대비 고가 15%이상
당일 시가대비 종가 9%이상
이 검색조건으로 종목검색할수있는 검색식좀... 부탁드립니다.
2018-01-29
156
글번호 116160