커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8161
글번호 230811
답변완료
문의드립니다
안녕하세요
아래지표식에서 추세선막대기가 형성되는순간마다 수치전환수직선이 그려지는것을원합니다.
추세선확정과상관없이 무조건 추세선막대기가 새롭게 형성될때(그려질때) 마다 수치전환수직선이 그려지면 됩니다 .사진한장첨부했습니다
감사합니다
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Highest(H,length) == H and lastHiVal <> H;
Condition2 = Lowest(L,length) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],
sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");//소리출력
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,4);
TL_SetColor(TL1,GREEN);
Plot1(Highest(H,length));
Plot2(Lowest(L,length));
2017-02-05
297
글번호 106534
답변완료
부탁합니다
일봉이나 주봉을 차트에서 볼 때
월봉의 흐름을 같이 보고 싶은데요.
월봉의 스토캐스틱 (25,6,6)을 나타내는 지표식 부탁합니다.
일봉이나 월봉 차트에서 구현될 수 있도록 부탁합니다
2017-02-04
207
글번호 106533
답변완료
수식문의 드립니다.
안녕하세요
하기 수식 구현이 가능하신지 검토 부탁드립니다.
1. 금일 신고점이 발생합니다.
2. 스토캐스틱이 과매수 구간을 탈출합니다.
3. 현재 봉이 볼린져 밴드 상단 접촉을 더 이상하지 않고 볼린져 밴드에서 떨어집니다.
상기 세가지가 충족되면 매도 진입합니다.
반대상황에서는 매수 진입합니다.
전일 최고점과 최저점을 나타내는 지표식도 같이 부탁드립니다.
감사합니다.
2017-02-06
189
글번호 106532
답변완료
부탁드립니다.
도움 주심에 감사 드립니다.
지정된 일시 외에도 다음날에도 지표가 나타 나고 있습니다.
오직 지정된 일시에만 나타 내고 싶습니다.
미리 감사 드립니다.
input:시작년월일(20170202),시작시각(080000);
input:종료년월일(20170202),종료시각(153000);
input: Period1(12),Period2(26),Period3(9);
variables: VolumeValue( 0 ), MedPrice( 0 ), PV( 0 ),StartCalcDate(0),StartTime(0),
CumulativeVolume( 0 ), CumulativePV( 0 ), Started( false ), Denom( 0 ),
KeyCumVol( 0 ), KeyCumPV( 0 ), MidasValue( 0 ),endCalcDate(0),endTime(0) ;
Var : Ep1(0), JISU1(0),Ep2(0), JISU2(0),Ep3(0),Jisu3(0);
var : MACDVal(0),MACDSig(0),ii(0),SD(false),ED(false);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
StartCalcDate=시작년월일;
StartTime=시작시각;
endCalcDate=종료년월일;
endTime=종료시각;
if SD == false and sdate >= StartCalcDate Then
SD = true;
if SD == true and stime >= StartTime Then
Started = true;
if Started == true and ED == false and sdate >= endCalcDate Then
ED = true;
if Started == true and ED == true and stime >= endTime Then
Started = false;
if Started == true then
{
VolumeValue = iff( DataCompress < 1, Ticks, Volume ) ;
MedPrice = (H + L)/2 ;
PV = MedPrice * VolumeValue ;
CumulativeVolume = VolumeValue + CumulativeVolume ;
CumulativePV = PV + CumulativePV ;
}
if Started == true and Started[1] == false then
{
Started = true ;
Denom = 1 ;
KeyCumVol = CumulativeVolume ;
KeyCumPV = CumulativePV ;
}
else if Denom >= 1 then
Denom = CumulativeVolume - KeyCumVol ;
if Started then
{
if Denom > 1 then
MidasValue = ( CumulativePV - KeyCumPV ) / Denom ;
else if Denom == 1 then
MidasValue = MedPrice ;
ii = ii+1;
if ii <= 1 then {
JISU1 = MidasValue;
JISU2 = MidasValue;
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal;
}
else{
JISU1 = MidasValue * EP1 + JISU1[1] * (1-EP1);
JISU2 = MidasValue * EP2 + JISU2[1] * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal * EP3 + MACDsig[1] * (1-EP3);
}
plot1(MACDVal);
plot2(MACDsig);
PlotBaseLine1(0);
}
2017-02-05
224
글번호 106531
khj012 님에 의해서 삭제되었습니다.
2017-02-04
34
글번호 106530
답변완료
수식 부탁합니다. 매매
Input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell();
}
기본 매매 수식인데... 2개의 계약을 들어가서 1개는 0.3~0.4p에서 정리하고 나머지 한 개는 청산 기준에서 또는 본청에서 처리를 하고 싶습니다.
(2개 계약에서 손절 신호가 나오면 2개 전부 정리합니다.)
수고하세요. ^^
2017-02-05
177
글번호 106529
답변완료
수식문의드립니다.
5일선 상승전환하면 매수 익절 10틱설정
매수 진입 후 밀리면
-10틱에서 1계약 진입 익절 10틱설정
-20틱에서 1계약 진입 익절 15틱설정
-30틱에서 1계약 진입 익절 20틱설정
-40틱에서 1계약 진입 익절 30틱설정
2017-02-03
167
글번호 106528
회원 님에 의해서 삭제되었습니다.
2017-02-05
34
글번호 106527
답변완료
수식 문의 드려용
내려올땐 볼밴뚤었다 들어오는 첫음봉에 올라갈땐 첫양봉에 콩이 나와야 합니다
inputs: p1(10);
if index == 0 then Begin
var1 = h;
var2 = l;
End
if ma(c,p1) > ma(c,p1)[1] and ma(c,p1)[1] < ma(c,p1)[2] then var1 = h;
if ma(c,p1) < ma(c,p1)[1] and ma(c,p1)[1] > ma(c,p1)[2] then var2 = l;
if h > var1 then var1 = h;
if l < var2 then var2 = l;
Plot1(var1,"highest since");
Plot2(var2,"Lowest since");
이수식에서 수정 가능 할까요??
2017-02-03
190
글번호 106526